Summary of changes from v2.6.3 to v2.6.4 ============================================ [netdrvr] e100 version 3 (complete rewrite) [e100] ICH6 IDs + ia64 memcpy fix + module_param * Add ICH6 device IDs. Devices funcionally equivalent to supported ICH5 devices, but new IDs. * Fixed unaligned access to casted skb->data (Matt Willcox [willy@debian.org]). * MODULE_PARM -> module_param * Bug printk after register_netdev to identify nic details. * misc cleanups. [netdrvr e100] include linux/moduleparam.h Fixes build. [netdrvr bonding] Cannot remove and re-enslave the original active slave In TLB/ALB modes, when enslaving a slave that has the bond's mac address, allow the operation if no other slave has that address. Should be applied after the cleanup patch set. [netdrvr bonding] Releasing the original active slave causes mac address duplication When releasing the active slave in TLB/ALB modes, bond_alb_deinit_slave() must be called before trying to select a new active slave. [netdrvr bonding] Add support for slaves that use ethtool_ops When collecting link information from slaves via ETHTOOL, first try using the relevant ethtool_ops functions. [netdrvr e100] netpoll + fixes to speed/duplex forced settings * Preserve forced speed/duplex settings during close/open sequence. * Reset PHY when going from autoneg to forced speed/duplex settings using ethtool. * Add netpoll support. [netdrvr bonding] fix build breakage [PATCH] [bonding 2.6] Fix compilation warning in bond_alb.c The IPX_TYPE_* constants and ipxhdr.ipx_type are u8 values, so we shouldn't use __constant_htons(). [netdrvr bonding] trivial - Update comment blocks and version field Update comment blocks, version field and copyright years to match all the recent changes that were accepted into 2.4/2.6. [PATCH] [bonding 2.6] Save parameters in a per-bond data structure - Save the bonding parameters in a per-bond data structure. - Move all handling of the insmod parameters to bond_check_params(). - Fix the handling of some warning messages regarding parameter use. [PATCH] [bonding 2.6] Use the per-bond value of the bond_mode parameter Change usage of the global 'bond_mode' parameter to the per-bond value. [PATCH] [bonding 2.6] Use the per-bond values of all remaining parameters Change usage of the all remaining global parameters to the per-bond values. [wan lapb] beginning of cleanups Beginning of lapb cleanups: lapb_register gets net_device along with the "token" and it gets stored in lapb_cb (token argument will die later). [wan lapb] switch to use net_device instead of custom token lapb functions that used to take a token to select lapb_cb they'll deal with are switched to getting net_device instead. Callbacks switched to using lapb->dev instead of lapb->token. [wan lapb] Printks switched from %p lapb->token to %p lapb->dev. [wan lapb] kill now-unused custom token container Nothing is using lapb->token anymore; removed, along with the old "token" argument of lapb_register(). [wan hdlc] hdlc_open() switched to net_device Beginning of hdlc fixes. hdlc_open() switched from hdlc_device to net_device. [wan hdlc] hdlc_close() switched to net_device. [wan hdlc] new port_to_dev() helper New helper in hd6457x.c: port_to_dev(). A bunch of port->hdlc eliminated. [wan hdlc] switch sca_xxx() to use net_device More hd6457x.c massage: sca_open(), sca_close(), sca_dump_rings() switched to net_device. Bunch of hdlc_to_port() eliminated in favor of dev_to_port(). [wan hdlc] hdlc_set_carrier() switched to net_device. [wan hdlc] hdlc->attach() switched to net_device. [wan farsync] Eliminated a bunch of port->hdlc and hdlc_to_dev() uses [wan hdlc] hdlc->proto.*() switched to net_device. Eliminated a bunch of ->netdev and hdlc_to_dev() uses. [wan hdlc] hdlc_cisco: killed ->netdev, hdlc_to_name() and hdlc_to_dev() uses. [wan hdlc] hdlc_fr: eliminated ->netdev, hdlc_to_dev() and hdlc_to_name() uses. [wan hdlc_x25] eliminated hdlc_to_dev() and hdlc_to_name() uses. [wan wanxl] eliminated hdlc_to_name() uses and a bunch of port->hdlc ones. [wan hdlc] switch internal ioctl dispatch to net_device Switched remaining ioctls to net_device, killed a bunch of hdlc_to_dev() and killed hdlc_to_name(). [wan pc300] more direct use of net_device In pc300 replaced dev->hdlc with dev->dev (hdlc to net_device). Killed a bunch of ugliness in pc300_tty.c, killed hdlc_to_dev() uses. [wan hdlc] new hdlc_stats() helper New inlined helper - hdlc_stats(). A lot of places had it spelled out; replaced with calls. [wan dscc4] Uses of ->hdlc and hdlc_to_dev() encapsulated into dscc4_to_dev(). [wan hdlc] switch register_hdlc_device() to take net_device arg register_hdlc_device()/unregister_hdlc_device() switched to net_device. Now all remaining callers of hdlc_to_dev() are isolated and we can start killing them. [wan hdlc] new private struct pointer in hdlc_device, and helpers for it New field in hdlc_device: void *priv; New helpers: struct net_device *alloc_hdlcdev(priv) allocates hdlc, sets ->priv and returns pointer to hdlc->netdev free_hdlcdev(dev) takes such pointer and frees its hdlc. wanxl switched to use of those; instead of embedding hdlc into card->ports[] we allocate it separately right after card had been allocated and store pointer to hdlc->netdev in card->ports[]->dev. Freeing is done just before freeing card. Pointer back to card->ports[] is stored in hdlc->priv. port_to_dev() and dev_to_port() rewritten in the obvious way; by now the rest of driver doesn't care whether hdlc is embedded or not - everything uses port_to_dev() and dev_to_port(). That killed embedded hdlc replacing it with pointer to net_device. Fairly similar work will be done in the next few patches for other drivers. Additionally, setup-after-register and free_irq()-before-unregister races had been fixed. [wan hdlc] kill embedded struct in various drivers Killed embedded hdlc in hd6457x.c derivatives (same as wanxl in previous patch) [wan pc300] use alloc_hdlcdev()/free_hdlcdev(). Leak fixed [wan farsync] embedded struct hdlc_device removal Removed embedded hdlc in farsync (same as for wanxl and friends). setup-after-registration race fixed. [wan dscc4] embedded struct removal Killed embedded hdlc in dscc4 (same as for other drivers). Fixed a setup-after-registration race. That was the last user of hdlc_to_dev(); killed. [wan hdlc] removal hdlc_to_dev() No more users, we may remove it. [wan hdlc] kill embedding of struct net_device Now we can kill the embedding of net_device into hdlc_device. Indeed, all instances of hdlc_device are created by alloc_hdlcdev() and nothing uses hdlc->netdev directly. So we can * remove hdlc->netdev * have alloc_hdlcdev() implemented via alloc_netdev() with the rest of hdlc_device as private part of net_device. * replace free_hdlcdev() with free_netdev(). * have dev_to_hdlc(dev) simply return netdev_priv(dev). [wan hdlc_fr] Switched allocation of net_device to alloc_netdev(). [wan hostess_sv11] sane net_device allocation Sane allocation in sv11. Switched it to SET_MODULE_OWNER(), while we are at it. Fixed a leak on exit and destroy-before-unregister race. [wan sbni] sane net_device allocation; plug a bunch of leaks Plugged a bunch of leaks in sbni. Replaced check_region() with intended request_region() in pci probe (BTW, that bugger should be turned into normal PCI driver at some point). [wan sealevel] Plugged a leak [netdrvr tun] Killed bogus ->init() [wireless airo] switched to sane allocation. [netdrvr s390/netiucv] partially sanitized wrt allocation [netdrvr fec] switched to sane allocation. It still leaks on failure exits, though. [wan sdla] Fixed leaks and double-free [netdrvr isa-skeleton] cleanups and fixes isa-skeleton.c got the same changes as actual ISA drivers - dynamic allocation, leak fixes, clobbering fixes, fix for IO-before-request_region(). [all over] more kfree -> free_netdev Remaining kfree -> free_netdev replacements (easy part of free_netdev() fixes) [netdrvr acenic] Race and leak fixes [netdrvr 3c509] Leak fixed [netdrvr apne] resource leak fix [wireless orinoco] check alloc_etherdev for failure [netdrvr s390/lcs] Leak fix lcs_cleanup_channel() is not enough there, we need full lcs_cleanup_card() (e.g. to free netdev) [wan] leak fixes in hostess_sv11, lapbether [netdrvr arm/am79c961] Fix for IO-before-request_region race [netdrvr saa9730] fix double-free Fixed double-free in saa9730.c (caller of that function does free_netdev() itself if we return an error). [netdrvr arch/uml] leak fix [netdrvr dvb/dvb_net] fixes Don't leave dvbnet->device[...] dangling after we free the sucker [netdrvr shaper] fix double-free Fix for double-free (we do explicit free_netdev() after unregister_netdev() in shaper.c) [netdrvr s390/qeth] Alloc fixes [PATCH] bugfixes for dgrs.c Update the RightSwitch dgrs.c driver for net-drivers-2.5-exp (2.6.1-rc3) to resolve some of the outstanding cruft there. Al may have a better/newer patch. * Don't copy net_device structure on slave device! This won't work because of state variables in structure. * make sure and request_regions before doing i/o to the card * use cpu_relax rather than barrier while spin waiting * don't use dev->init to do the probing work because hard to get unwind correct * Use new pci/eisa probing model, don't search the bus directly Beneficial side effect, don't need to keep on device list anymore. * Be more careful about releaseing resources in error paths Compiled and module loaded/unloaded, but don't have this hardware. Remove unused and invalid 'struct ppp' definition from if_pppvar.h. Eliminate ancient and unused include/linux/{if_pppvar,ppp}.h. Well, unused except for one silly constant in isdn_ppp.c. [netdrvr e100] fix slab corruption * Addresses two problems, both resulting in slab corruption: 1) driver indicating skb while HW is still DMA'ing (ouch!), 2) driver not stopping receiver activity before downing i/f. Fix is 1) wait for RNR (receiver-no-resources) interrupt before restarting receiver, 2) reseting HW to stop receiver before stopping i/f. This issue was also reproducible with eepro100. You need to turn off the copybreak, and reduce the number of descriptors to 4. Then bang on it with pktgen with 60-byte packets, with slab debugging enabled. For e100-3.0.x, the issue was a lot easier to reproduce with NAPI, because NAPI polls independently of where the HW is at, so it's easier for us to catch HW in the middle of finishing off the last Rx (as it runs out of resources) and asking HW if it's idle. Checking the RU status is not-reliable! That's the problem, and the mistake both eepro100 and e100-3.0.x were making. The solution is rely on RNR interrupts as the only indicator that HW is truly done, and then we're ready to restart the RU. We should only get RNR interrupts when we overrun the Rx ring. With NAPI, if the ring is overrun, we'll post RNR, but not restart the RU until we're out of polling. Without NAPI, we'll restart the RU as soon as we get RNR. I ran some 24-hour tests with and without NAPI (with 4 descriptors) and didn't get any corruption. Prior to this patch, I would get many errors about slab corruption. Also, the patch is larger than you might expect, but I initially thought I was doing something wrong with managing the ring, so I that code using old fashion double-link list. The ring management wasn't the problem, after all, but I prefer the old-fashion d-link implementation as it's easier to read. [netdrvr e100] copyright + trailing blanks + misc * Misc: 2004 copyright, remove trailing white space, remove some unused symbols. [wan] apply hdlc cleanups to new driver pci200syn [ALPHA] Mark exit_code before waking process for SINGLESTEP. From Aneesh Kumar . [IA32] VIA C3 crypto/RNG bits * Enable ACE (crypto) and RNG units on bootup. * Do not disable RNG unit when unloading hw_random module. * New bits listed in /proc/cpuinfo: rng_en, ace, ace_en * Add ACE-associated constants to cpufeature.h IEEE1394(r1118): Addition of new config-rom processing code [TG32]: Use pci_get_slot() to find 5704 peers, to handle domains properly. [IPV6]: Unify ipv6 output routine. [NET]: Kill bogus kmem cache alignment in neigh_table_init(). [TG3]: Reset GRC, if necessary, before DMA test. With help from Michael Chan. [NET]: Mention tuxmobil.org in drivers/net/Kconfig. JFS: get_UCSname does not need nls_tab argument This is a minor code cleanup. get_UCSname can get nls_tab by following the dentry to the superblock. This makes the calling code simpler and prettier. [IPV6]: Clean up ndisc printks. [PKTGEN]: Fix unintentional unaligned access. [IPV6]: Spelling corrections, and remove some XXX's [NET]: Fix ethtool oops if device support get but not set ringparam. [NET_SCHED]: Fix slot leakage in SFQ scheduler. [NET]: Do not send negative 2nd arg to skb_put(). With help from Yoshfuji Hideaki. [IPV6]: Kill remaining in6_u.u6_addrX uses. [IRDA]: Fix URLs in Kconfig. [HAMRADIO]: Fix URLs in Kconfig. JFS: Don't do filename translation by default Due to its roots in OS/2, JFS has always tried to convert pathnames into unicode. Unfortunately, it never had a reliable idea of what the incoming character set was, so it defaulted to CONFIG_NLS_DEFAULT. This behavior was confusing and many users have requested that JFS have a more sane behavior. This patch changes the default behavior to store the incoming bytes directly without translation. This is consistent with the behavior when the default value of CONFIG_NLS_DEFAULT (iso8859-1) was defined. The default behavior can be overridden by using the iocharset mount option. [IPV6]: Except MLD packets from source filtering. Co-authored with Yoshfuji Hideaki. [IPV6]: Kill 64-bit warnings in ndisc.c [CPUFREQ] Update URL. [libata] catch, and ack, spurious DMA interrupts Hardware issue on Intel ICH5 requires an additional ack sequence over and above the normal IDE DMA interrupt ack requirements. Issue described in post to freebsd list: http://www.mail-archive.com/freebsd-stable@freebsd.org/msg58421.html Since the bug workaround only requires a single additional PIO or MMIO read in the interrupt handler, it is applied to all chipsets using the standard libata interrupt handler. Credit for research the issue, creating the patch, and testing the patch all go to Jon Burgess. [ACPI] revert previous AML param patch for ACPICA update [ACPI] ACPICA 20040211 udpate from Bob Moore Completed investigation and implementation of the call-by-reference mechanism for control method arguments. Fixed a problem where a store of an object into an indexed package could fail if the store occurs within a different method than the method that created the package. Fixed a problem where the ToDecimal operator could return incorrect results. Fixed a problem where the CopyObject operator could fail on some of the more obscure objects (e.g., Reference objects.) Improved the output of the Debug object to display buffer, package, and index objects. Fixed a problem where constructs of the form "RefOf (ArgX)" did not return the expected result. Added permanent ACPI_REPORT_ERROR macros for all instances of the ACPI_AML_INTERNAL exception. [IRDA]: Add stir4200 driver. After a long maturation, this is time to send you the latest version of the stir4200 USB driver. Initially started by Paul Stewart, modified by Martin Diehl and me, and later partially rewriten by Stephen Hemminger. The hardware has many quirks. This is the first version that work reliably at SIR and mostly work at FIR. We may never get optimal operation from this hardware due to its pecularities, but at least its now usable. [IRDA]: Forgot to add stir4200.c in previous commit. [IPSEC]: Move hardware headers for decaped packets. Move the hardware header so that it appears next to the payload for AF_PACKET sockets. [TG3]: Abstract out mailbox workarounds into tw32_{rx,tw}_mbox(). [IPV4]: Add configurable restriction of local IP announcements in ARP requests. [IRDA]: Fix error return status in stir4200 driver. If stir_reset() succeeds, stir_net_open() must not return a success status code for every failure until irlap_open(). [IRDA]: In stir4200 driver, defer netif_start_queue() until device opening succeeds. [WAN]: Kconfig clean-up and update URL links. [IPVS] remove the superfluous call of waitpid in sync code [IPVS] retry to run kernel_thread when memory is temporarily exhausted [IPVS] update the version number of code to 1.2.0 [SUNGEM]: Kill unused variable on ppc. [TG3]: Define MBOX_WRITE_REORDER flag to zero on non-x86. [SCTP] Revert back to use kmalloc() for ssnmap allocs of sizes < 128K. [CPUFREQ] bump copyrights. [PATCH] USB: EHCI updates (mostly periodic schedule scanning) [USB] EHCI updates Update periodic schedule scanning - fix shutdown sometimes-hangs (Bernd Porr) - resolve the "whole frame at once" FIXME - try harder to avoid rescanning - don't delegate interrupt qh handling to a buggy helper routine - describe more of the relevant iso tuning parameters One-liners: - URB_NO_INTERRUPT hint affects ISO - show correct data toggle in sysfs debug files - FIXME is resolved by Linus' 20msec delay [PATCH] USB: fix usblp.c The line that IMHO triggers the bug is this: "writecount += usblp->writeurb->transfer_buffer_length;" It uses "usblp->writeurb->transfer_buffer_length" before initializing it, assuming that it will be zero on the first run. If it is not zero, but instead random *negative* garbage from memory, the loop will start printing endless data from user-space data. [PATCH] USB: ftdi_sio new PIDs and name fix for sysfs This patch adds a couple of new PIDs for the ftdi_sio driver and changes the name of the USB-UIRT device to avoid the "/" character, as that appears as a directory separator in the sysfs namespace. [IPV6]: Add sysctl to force MLD version. IEEE1394(r1125): Set host field of hpsb_address_serve struct when registering address spaces. IEEE1394(r1126): Small cleanup based on patch from Isaac Claymore. IEEE1394(r1128): Implement bus reset handling for hosts (based on patch from Oracle) IEEE1394(r1129): Initial support for reusing node entries over plug/unplug cycles IEEE1394(r1130): Conversion of some list_for_each() usages to list_for_each_entry(). IEEE1394/OHCI(r1131): Suspend/resume isn't dependent on CONFIG_PM. IEEE1394(r1132): Update Kconfig description of the eth1394 driver. IEEE1394: Sync revisions IEEE1394(r1134): Fix some typos introduced over the last few changes IEEE1394(r1135): Initial ieee1394_host_class implementation. IEEE1394(r1136): Implement node class [TG3]: Two more PHY bug workaround, plus fix DMA test on big-endian. [PATCH] USB: some stv680 fixes - swapRGB is already initialized to 0 - change "swapRGB_on == 1" to match in-source documentation - submit urb with GFP_ATOMIC (interrupt context) - this made driver unusable because of "might_sleep" messages. - group some "case"s - release vdev on fail - remove "kfree(0)" checking [TG3]: Fix early chip programming in tg3_setup_copper_phy(). 1) First action must be to set MAC_EVENT to zero. 2) Do not forget to clear MI_COMPLETION/LNKSTATE_CHANGED status bits in MAC_STATUS register. This fixes the bug wherein the link does not come up at all at the first ifup done after tg3 module load. [PATCH] USB: Remove unneeded and error-provoking variable in UHCI This patch removes an unneeded "status" field from the UHCI driver's URB-private data structure. The driver had been storing the status of completed URBs there rather than in the URBs themselves. This not only is wasteful of space but is also a cause of bugs, since the USB core relies on urb->status for proper synchronization with the driver. The patch also takes care of a number of small things that have been bugging me for ages: Close a small loophole by allowing an URB to be unlinked even before the uhci_urb_enqueue() procedure has started. Remove some fossil code from back when interrupt URBs were automagically resubmitted. Giveback unlinked URBs in the order they were unlinked. Don't set urb->status for dequeued URBs; the core has already set it for us. Rename uhci_remove_pending_qhs to uhci_remove_pending_urbps. (That has _really_ bothered me!) [TG3]: Bump driver version and reldate. [PATCH] USB: Even out distribution of UHCI interrupt transfers This patch evens out the distribution of interrupt transfers for the UHCI driver. It insures that no frame must handle interrupt queues for more than two different periods, thus improving the bandwidth utilization. It also simplifies the initialization code by replacing a multi-nested "if" statement with a simple bit-operation (thanks to Eric Piel for suggesting this approach). [PATCH] USB: ERRBUF_LEN compiling error when PAGE_SIZE=64KB on IA64 Randy, thanks for forwarding this to me. > Johannes, > > When I compile base kernel 2.6.1 with PAGE_SIZE=64KB on an IA64 > platform, there is an error. > CC init/version.o > LD init/built-in.o > LD .tmp_vmlinux1 > drivers/built-in.o(.init.text+0x168a2): In function `uhci_hcd_init': > : undefined reference to `__you_cannot_kmalloc_that_much' > make: *** [.tmp_vmlinux1] Error 1 > > That's because ERRBUF_LEN (equal to PAGE_SIZE*8) is too long when > PAGE_SIZE=64KB. Actually, there was a similar error found by Tony. See > http://marc.theaimsgroup.com/?l=linux-ia64&m=105604765306485&w=2. > > Could you change the definition of ERRBUF_LEN to a fixed value? For > example, 32*1024? > > Yanmin Yanmin, I'm the new maintainer for the UHCI driver. Yep, that's a definite error. This will fix it. Also included in this patch: change some confusing references from "high speed" to "full speed" and add proper hyphenation. [PATCH] USB: Simplify locking in UHCI This patch is an amalgam of 9 contributions from Stephen Hemminger. It begins the process of straightening out the use of semaphores and locking in the UHCI driver by removing unneeded irqsaves and irqrestores. It also removes an unnecessary list node and makes a couple of other small changes. clear_next_interrupt only called in IRQ context don't need irqsave/restore Since uhci_finish_completion is only called from IRQ routine, the irqsave/irqrestore is redundant and unnecessary. UHCI transfer_result is only called from IRQ context so irqsave/restore is unnecessary here. uhci_finish_urb is always called from irq so no need for irqsave/irqrestore. uhci_add_complete only called from IRQ context The complete_list element in the urb private data is redundant, since it is only used when the urb is on the complete list. And given the state transitions, an urb can't be on the complete list and any other list (remove, or urb_list). Therefore just use urb_list to link the complete_list Use list_move_tail to move between remove (or urb_list) and the complete_list. Save irq state in uhci_stop so that the irqsave/irqrestore's in all the free_pending and remove_pending code can be eliminated. Since uhci_stop now saves IRQ state, the free/remove pending routines no longer need irqsave/irqrestore. [PATCH] USB: Mask "HC Halted" bit in the UHCI status register Contrary to the UHCI specification document, in real controllers the "HC Halted" bit in the status register cannot be cleared by writing a 1. It will persist for as long as the controller is halted. Hence the bit needs to be masked away before checking whether or not the controller initiated an interrupt. Without this patch, other devices sharing the same IRQ line might not get serviced while the host controller is suspended, because the always-on status bit would cause the UHCI driver to report that it had handled the interrupt. [PATCH] USB Storage: Handle excess 0-length data packets This patch is an attempt to cope with Genesys Logic's, shall we say, creative approach to implementing the USB protocols. Their high-speed mass storage devices sometimes add an excess 0-length packet to the end of a data phase transmission. Of course we don't read that packet as part of the data phase; we see it as a 0-length CSW message. The real CSW follows immediately after. (Or sometimes a STALL follows immediately after, with the real CSW coming after that!) The patch checks the results of the first attempt to read the CSW. If it sees a normal packet (not a STALL) with length 0, it retries the read. Reports from two users indicate that it improves the performance of their USB-2 DVD drives. [PATCH] USB Storage: Treat STALL as failure for CB[I] I recall something like this had to be changed a while ago, but it looks like it's still not right. A STALL during either the command or data phase of a CB[I] command should indicate a failure. [PATCH] USB Storage: Reduce auto-sensing for CB transport This patch addresses a problem common among digital cameras that use the CB transport. Namely, too much auto-sensing confuses them; particularly auto-sensing after INQUIRY. I've made some traces of a Windows 2000 driver to see what it does (data sent to Andries Brouwer for inclusion on his web site; I'll announce when it's ready for viewing). Basically, it almost never sends REQUEST SENSE unless it received a STALL from the device. That's a pretty bogus way to operate, because it means that Windows has no way to tell when the device has finished executing a command if the command doesn't involve an IN transfer. Even after a lengthy WRITE, Windows continues to transmit more commands without regard for whether or not they will get overwritten in the device's internal buffer (and hence not executed). Indeed, exactly that happened with some of the commands in one of my traces. To be safe, we must follow every non-IN transfer with an auto-sense, but IN transfers that don't stall can be considered to have succeeded. That's what this patch does. It reduces auto-sensing by a considerable factor, probably close to half. It also fixes the problem with INQUIRY, since INQUIRY involves an IN data transfer. [PATCH] USB Storage: Save the SCSI residue value when auto-sensing This patch (a regeneration of as173) saves the residue value of a command when doing an auto-sense. Not that it really matters much -- almost nobody looks at that value. But it's definately incorrect the way it is, and this fixes it. [PATCH] USB Storage: Reduce unsolicited auto-sense This patch (a regeneration of as185) reduces the amount of auto-sensing we do even further. It also zeros-out the sense buffer in those cases where we do auto-sense and get back no error. [PATCH] USB Storage: Fix small endian-ness bug This patch fixes up a small endian-ness bug from mid-January. [PATCH] USB Storage: unusual_devs.h fixup On 15 Feb 2004, Frank D. Cringle wrote: > Hi, > > my syslog requests that I send this message. See below regarding > usb-storage: This device ... has an unneeded SubClass entry in unusual_devs.h > Feb 15 00:11:16 dagger usb-storage: This device (07cf,1001,1000 S 05 P 00) has an unneeded SubClass entry in unusual_devs.h > Feb 15 00:11:16 dagger Please send a copy of this message to Thank you for sending this in. Greg, it looks like an earlier patch changed too much. Here is the fix. Also included in this patch: Moved several entries that were in the wrong positions. Removed an entry (0x08ca, 0x2011) that could never be used because the preceding entry always would take precedence. [PATCH] USB: Fix USB host code to use generic DMA API [SCTP] Force enable Crypto options that are needed by SCTP config. [IPV4]: Add sophisticated ARP reply control via arp_ignore sysctl. [NET]: Ditch TSO in loopback driver, it's had enough testing. [SPARC32] Uninline atomic_t functions to save space. [PATCH] PCI: Changing 'GALILEO' to 'MARVELL' I'm working with some Marvell components (formerly Galileo Technologies) and noticed that the entries in include/linux/pci_ids.h have become dated. I have attached a patch that changes 'GALILEO' to 'MARVELL', adds some more devices, and updates the uses of the macros in the code. Please note that the newer marvell parts start with 'MV' instead of 'GT' to represent the new name. Also, I didn't change all uses of galileo to marvell, only the macro in pci_ids.h. [PATCH] PCI: add copyright for files msi.c and msi.h First I would like to say sorry for not responding immediately after receiving your email mentioning Copyright. I have contacted Intel Legal for proper text upon receiving this email; but have not received any response. As a result of team discussion, the attached patch, based on Linux kernel 2.6.3-rc2, includes the Intel Copyright for files: msi.h and msi.c. [PATCH] PCI: Fix pci_bus_find_capability() pci_bus_find_capability() is currently broken. It checks the wrong device's hdr_type for being a cardbus bridge or not. This patch pulls the guts of pci_bus_find_capability() and pci_find_capability() into a new function __pci_bus_find_cap() and changes these two functions to call it. [PATCH] PCI: remove unused defines in pci.h It occured to me that we also have the following related code in pci.h: Perhaps this should be removed as well? [PATCH] Intel x86-64 support merge This has all the x86-64 specific changes for Intel Prescott/Nocona support. It requires a few minor changes outside arch/x86_64, which I am sending separately. This patch is needed to boot an 64bit kernel on a 64-bit capable Prescott machine. The ugliest part is probably the swiotlb code. In fact the code for that is not even included, but just reused from IA64. swiotlb implements the PCI DMA API using bounce buffering. I don't like this at all, but there was no other way to support non DAC capable hardware (like IDE or USB) on machines with >3GB. Please redirect all flames for that to the Intel chipset designers. ChangeLog: - Add Kconfig options for PSC - Add support to reuse microcode driver from i386 (Suresh B Siddha) - Try to optimize for the selected CPU - Fix early CPUID check for Intel CPUs (Suresh B Siddha) - Fix GDT to use the configured cache line size for padding - Support monitor/mwait idle loop - Support HyperThreading - Support Intel CPUID flags - Remove all 3dnow prefetches - Add alternative() for the prefetchw prefetch inline. - Include P4 driver in oprofile - Support Intel NOPs in alternative [PATCH] Update i386 microcode driver for x86-64 The microcode driver needs to support 64bit physical addresses too. [PATCH] Enable Intel AGP on x86-64 Enable the Intel AGP driver for x86-64 too. [PATCH] Allow P4 oprofile code for x86-64 P4 support was previously ifdefed out for x86-64, remove that. [PATCH] ia64: fix possible memory leak in PCI alloc_resource() [PATCH] ia64: add "platform_data" to struct pci_controller, update SN2 accordingly Here's a small mod for Altix. It breaks up our 'pci fixup' function and has some other smallish clean ups. For the ia64 crowd I've added 'platform_data' to struct pci_controller. [PATCH] PCI Hotplug: Add SHPC and PCI Express hot-plug drivers [PATCH] PCI Hotplug: Add PPC64 PCI Hotplug Driver for RPA [PATCH] PCI Hotplug : add DLPAR driver for PPC64 PCI Hotplug slots Please consider the following patch for submission. This patch contains the implementation of the I/O Slot DLPAR Drivers for PPC64 RISC Platform Architecture. This module depends on the RPA PCI Hotplug Module in the previous post. The patch is made against kernel version 2.6.3-rc2. The Dynamic Logical Partitioning Module allows the runtime movement of I/O Slots between logical partitions. An administrator can logically add/remove PCI Buses to/from a PPC64 partition at runtime. These operations are initiated using interface files located at: /sys/bus/pci/pci_hotplug_slots/control/ Development contact for this module is John Rose (johnrose@austin.ibm.com). [IPVS] tidy up the header files to include [APPLETALK]: Use '%Z' for size_t. [PATCH] USB: usbcore, scatterlist cleanups [USB] minor usb_sg_wait() cleanups - count urb completions correctly when there's a non-recoverable fault during scatterlist submission ... prevents a hang (seen only with already-faulty usb-storage devices). - don't local_irq_{save,restore}() when not needed [PATCH] USB: usbcore, hub driver enables TT-per-port mode [USB] hub driver turns on multi-TT mode This turns on the multi-tt mode in hubs that support it; the Cypress "TetraHub" products are appearing at retail now, complete with some of the first Mini-B connectors I've seen shipping. This will be important for hooking up lots of full speed isochronous devices (audio, video, etc). [PATCH] USB: usbcore, avoid RNDIS configs [USB] usbcore avoids RNDIS configuration. Modifies the "choose a configuration" heuristic to recognize the other case that 2.4 handled: RNDIS, a MSFT protocol that's sometimes used as the first/default configuration (as specified by MSFT) on cable modems. CDC Ethernet is vendor-neutral, and preferred (except by MSFT). The initial version didn't catch RNDIS because it cloaks its ethernet links as a kind of CDC ACM (modem) device. [PATCH] USB: usbtest, two more protocol cases [USB] usbtest, two more control queueing subtests From Alan Stern. This adds two more "short control read" test cases, both padding the "expected" transfer to end-of-packet. We need both hosts and devices/gadgets to behave correctly here. [BLUETOOTH]: Use min_t to avoid warning in rfcomm sock.c [DECNET]: Make second arg to dn_alloc_send_skb a size_t pointer. [PATCH] USB: ehci-hcd, fullspeed iso data structures (1/3) [USB] start ehci split transaction support Updates split ISO transaction descriptor structure, add bitmask #defines; it's groundwork for full speed ISO support in EHCI. Updates periodic schedule scanning, and bandwidth calculations accordingly. Fixes bandwidth calculation to behave when the periodic schedule has entries of multiple types ... as will be more common as ISO support starts to be used here. [PATCH] USB: ehci-hcd, fullspeed iso data structures (2/3) [USB] ehci, rename some iso data structures Rename some data and functions used by EHCI to manage ISO transactions, since they currently assume only high speed transfers. Much of the same infrastructure will be used for full speed ISO, with split transactions. [PATCH] USB: ehci-hcd, scheduler handles TT collisions (3/3) [USB] ehci-hcd detects microframe transaction scheduling collisions This detects TT schedule collisions for split periodic transactions on USB 2.0 hubs, handling both isochronous and interrupt transfers but not supporting the "wrap around to the next frame" modes for either transfer type. The ISO scheduler is modified to use that support for full speed transfers ... though nothing will yet ask it to do that. It also tracks schedule depth, to help avoid accepting ISO URBs which need more time than currently remains unscheduled. [PKTSCHED]: Use queue limit of 1 when tx_queue_len is zero. PCI: fix pci quirk for P4B533-V, fixes bug 1720 Thanks to stephanrave@gmx.de (Stephan Rave) for the patch. [PATCH] USB: Improve UHCI root hub code: descriptor, OC bits, etc. This patch is from David Brownell. UHCI root hub updates ... minor bugfixes and cleanups, improving conformance with the USB hub specification. - UHCI doesn't support any kind of power switching; so modify the hub descriptor to stop claiming it does! Likewise fail attempts to disable power on any port. - Intel defined both overcurrent status overcurrent-change bits, but the current code only knows about one. Modify hub descriptor to report per-port overcurrent protection; and use both bits. - Modify the port status set/clear macros to know about the bits that must always be written as zero, and the write-to-clear bits. Update callers which wrote "set" instead of "clear". - Rewrote code returning port status; magic numbers are gone. - Driver can't really support 8 root hub ports; don't try. Also moves the #define DEBUG earlier so that it can kick in any of the various debug macros ... like pr_debug() and dev_dbg(). [PATCH] USB: More UHCI root hub code improvements This adds some minor improvements to the UHCI root hub code. The only important change is that it handles the overcurrent indicator bits on VIA controllers properly; they are reported using the opposite sense from Intel controllers. Report the OverCurrent status bits in the /proc debugging file and spontaneously change the use of whitespace. Remove unused variable in uhci_hub_status_data(). Report OverCurrent status for VIA controllers properly (the meaning of the status bit is inverted with respect to Intel controllers). Save the port status I/O address in a variable rather than recalculating it many times. Merge code for handling SetHubFeature and ClearHubFeature since we don't implement either one. Remove some unnecessary comments. Remove redundant min_t calculation. Fix up the microcode update on regular 32-bit x86. Our wrmsr() is a bit unforgiving and really doesn't like 64-bit values. We should possibly make wrmsr() automatically truncate the arguments, but regardless we should just fix microcode.c. IEEE1394(r1137): Check to make sure we have a hostinfo in sbp2_host_reset. [PATCH] move CONFIG_HOTPLUG to init/Kconfig As a bonus: cris, h8300, m68k and sparc can use CONFIG_HOTPLUG now. [PATCH] ia64: add support for time-interpolation via IBM EXA Cyclone timer This patch provides access to the cyclone time source found on IBM EXA based systems (x450 and x455). This is needed on multi-node systems where the CPU ITCs are not synchronized, causing possible time inconsistencies. This release fixes one last minor think-o and ran overnight without any time inconsistencies (when used in conjunction w/ the time-interpolator-fix_A0 patch). [PATCH] 2.6.3 pcnet32.c bus master arbitration failure fix Here is the first of several individual patches to 2.6.3 for the pcnet32 driver. The driver did not properly serialize accesses to chip registers, resulting in reading/writing the wrong register. This patch eliminates this problem and gets rid of the cause of the symptom of 'bus master arbitration failure'. It was easier to use generic_mii_ioctl than modify the current pcnet32_ioctl routine with the necessary locks. This has been re-tested on an IA32 system. [PATCH] hp100 pci probe problem Jean discovered problem with my hp100 PCI changes. This should fix the problem... The multi-bus probe logic error handling was botched. He validated it; so please apply [PATCH] 2.6.3 pcnet32.c SLAB_DEBUG length error fix The pcnet32 driver uses the incorrect length (of zero) in pci_[un]map_single for receive buffers. This is seen with SLAB_DEBUG enabled. Tested in IA32 system. If this patch is not applied after my previous one hunks #1, #3, and #5 will have an offset of -2 lines. [PATCH] sk98lin: Added Support for Belkin adapter Patch 1/2 [SK98LIN]: Added Support for Belkin adapter [SK98LIN]: Don't handle Yukon2 cards at the moment [PATCH] [kernel 2.6] sk98lin: Insert revision version and date to uniquely identify the files, it's necessary to add the version of each file. Please, don't remove the revision infos. It's really important for us. Patch 2/2 [SK98LIN]: Insert revision version and date [back] into the files [PATCH] 6pack reinit bug This patch is the same as to mkiss a while ago, the current code triggers a bug when reattaching a network device. [PATCH] Add support for HW accel. slaves Now that David Miller accepted the first half of this set into 2.6, I'm resending the last half to you for inclusion in netdev-2.6. Tested against latest netdev-2.6. Summary: Change the bond interface to publish full VLAN hardware acceleration offloading capabilities, and add capability in all xmit functions to take special care for VLAN HW accel. tagged skb's that are going out through a slave that is not offloading capable. Add a mechanism to collect and save the VLAN Id's that have been added on top of a bond interface, and propagate the register/add/kill operations to the slaves. Add blocking mechanism to prevent adding VLAN interfaces on top of a bond that contains VLAN challenged slaves and to prevent adding VLAN challenged slaves to a bond that already has VLAN interfaces on top of it. Add a section about VLAN to Documentation/networking/bonding.txt and also correct some minor spelling/grammer errors. [PATCH] Add VLAN support in TLB mode Add capability to tag self generated learning packets that are required to speed up port selection in the switch after a fail over in bonding since some switches will only update their MAC tables from tagged packets when VLAN support is turned on. All VLAN Id's that have been configured on top of the bond interface will be used in cyclic order. [PATCH] Add VLAN support in ALB mode Add capability to tag self generated ARP packets that are required for receive load balancing in bonding. VLAN Id's are saved and used each time a new IP connection is established since 8021q currently supports IP binding. Update module version and comment blocks. [netdrvr sis900] fix multicast bug [SELINUX]: Event notifications via netlink. [SELINUX]: Forgot to add these in previous commit. [PATCH] depca: remove double semi-colon description: remove double semi-colon typo; [PATCH] 2.6.3 pcnet32.c transmit hang fix The transmit routine will stop interrupting and hang, causing the tx_timeout routine to attempt to restart the device when the 32-bit cur_tx counter wraps below dirty_tx. If the device had called netif_stop_queue it will never call netif_wake_queue in the interrupt routine (at least on an IA32 system) due to 32-bit wrap around arithmetic. On my IA32 system 'dirty_tx > lp->cur_tx - TX_RING_SIZE + 2' would always evaluate to false when dirty and cur_tx were less than 15, preventing netif_wake_queue to be called. By starting dirty_tx and cur_tx at 0xfffffff0 (to reduce test time) I found that once cur_tx wrapped to zero, that transmitted buffers would never be unmapped or freed because 'while (dirty_tx < lp->cur_tx) {' was not true. cur_tx would keep incrementing (in start_xmit) but dirty_tx would not (in pcnet32_interrupt), thus leaking skb's and pci map entries. On PPC machines, the system would quickly run out of pci maps. Fix tested on PPC and IA32. [PATCH] tr/3c359: handle kmalloc failures during init From: Pablo Menichini and maximilian attems while looking at kj mails from 200212 and 200301 this patch slept through originally from: Pablo Menichini rediffed and compile tested patch applies on plain 2.6.0 maximilian attems handle kmalloc failures during init diff -puN drivers/net/tokenring/3c359.c~tr3c_kmalloc drivers/net/tokenring/3c359.c linux-261-bk4-kj1-rddunlap/drivers/net/tokenring/3c359.c | 13 +++++++++++++ 1 files changed, 13 insertions(+) [PATCH] 2.6.3 - drivers/net/sis190.c - Tx desc overflow Tx descriptor overflow - take II. Assume tp->dirty_tx = NUM_TX_DESC/2, tp->cur_tx = NUM_TX_DESC - 1, watch "entry" go beyond NUM_TX_DESC. Actually this is where the same bug in r8169 driver comes from. IEEE1394(r1138): Cleanup nodemgr probe, and fix a bug with the driver update. [PATCH] tulip printk warning fix Don't assume the size of a dma_addr_t [PATCH] add card types to aacraid driver This patch adds support for new RAID cards. Also removes two cards from the list that were never products. Makefile | 2 aacraid.h | 21 +++ linit.c | 32 +++- rkt.c | 416 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ rx.c | 10 - 5 files changed, 465 insertions(+), 16 deletions(-) [CPUFREQ] Add extra __init markers to longhaul driver. Caught by Randy Dunlap. longhaul_cpu_init only gets called during startup, and calls other __init routines. [CPUFREQ] Add extra __init markers to longrun driver. Caught by Randy Dunlap. longrun_cpu_init() only gets called during startup, and calls other __init routines. [PATCH] remove flush_cache_all() from qla1280 It's not needed with the new DMA API and isn't exported to modules on some architectures. (See davem's qla2xxx patch for reference) [PATCH] qla2xxx: remove flush_cache_all [PATCH] ISDN udpate From: Karsten Keil - new port of 2.4 I4L core to 2.6 - new port of 2.4 I4L HiSax to 2.6 - fixes for I4L CAPI subsystem to make it stable in 2.6 - fix parameter handling of AVM ISA cards (calle) - cleanup ISDN config variables - SMP in act2000 and pcbit driver - remove check_region in act2000 - mark hysdn, isdnloop and divert as BROKEN_ON_SMP [PATCH] i4l: hisax deadlock fix From: Karsten Keil This patch fix a deadlock in HiSax (reported from David Woodhouse ). upper layer was called back while holding the card lock fix is to move the wakeup call into BH handler to avoid direct callbacks. [PATCH] Fix for PPP activ/passiv filter From: Karsten Keil I found a bug in the PPPIOCSPASS PPPIOCSACTIVE IOCTL implementation in kernel 2.5/2.6. The current pppd code use a empty filter (uprog.len=0) to detach the filter in the kernel, but this code was removed in 2.5.71 while fixing a compiler warning. Here the new patch, also with better limit checking. The second patch check for flen == 0 in the filter check too, since later in this code a filter[flen - 1] access is done, which is not so funny with flen 0. Maybe it's not really needed anymore, since with the first patch it would not longer called with flen=0. paulus says: It looks correct. Previously we had (and in 2.4 we still have) if (uprog.len > 0 && uprog.len < 65536) { ... which gave warnings since uprog.len is unsigned short. So someone decided that both parts of the condition were redundant. [PATCH] ia32 early printk From: Andi Kleen Implement VGA and serial early printk on x86. We just include the x86_64 version. [PATCH] early printk tweaks - Use __pa() around the VGA base address: more friendly for the 4g/4g split. - Use cpu_relax() rather than open-coding rep_nop(). - Default to 9600 baud - Move documentation to Documentation/kernel-parameters.txt - Make CONFIG_EARLY_PRINTK disableable if CONFIG_EMBEDDED [PATCH] Remove BDEV_RAW and friends These no longer do anything. This patch changes modules API. It was acked by Arjan@RH and Hubert@Suse. [PATCH] msg.h needs list.h msg.h uses list_head. (I'm not sure what config actually required this, but it is legit). [PATCH] ppc64: Fix prom.c warnings arch/ppc64/kernel/prom.c:200: warning: missing braces around initializer arch/ppc64/kernel/prom.c:200: warning: (near initialization for `hmt_thread_data[0]') arch/ppc64/kernel/prom.c: In function `prom_hold_cpus': arch/ppc64/kernel/prom.c:1090: warning: implicit declaration of function `_get_PIR' [PATCH] ppc64: fix saved_command_line/cmd_line lengths From: Anton Blanchard cmd_line was twice the size of saved_command_line but we did a strcpy from the larger into the smaller. Create COMMAND_LINE_SIZE and use it. [PATCH] ppc64: fix debugger() warnings From: Anton Blanchard Fix compile warnings and add some type safety to debugger macros. [PATCH] ppc64: iseries IRQ fix From: Stephen Rothwell This patch lets 2.6.3-rc4 build and boot on an PPC64 iSeries box (at least for my configuration). The veth.o bit in the networking Makefile got there by accident and should be removed anyway ... There is more to make it work properly (note the "Temporary hack"), but this gets us closer. [PATCH] loop: remove the bio remapping capability This patch removes the loop feature wherein we remap BIOs for block-backed loop. So file-backed and block-backed loop are handled identically. It cleans up the code a lot and fixes the low-on-memory lockups which block-backed loop currently suffers. What we lose is the journalling ordering guarantees which exts-on-loop-on-blockdev had. But dm-crypt provides that. [PATCH] remove useless highmem bounce from loop/cryptoloop From: Ben Slusky The attached patch changes the loop device transfer functions (including cryptoloop transfers) to accept page/offset pairs instead of virtual addresses, and removes the redundant kmaps in do_lo_send, do_lo_receive, and loop_transfer_bio. Per Andrew Morton's request a while back. [PATCH] loop: BIO handling fix From: Ben Slusky One more patch --- this fixes a minor bio handling bug in the filebacked code path. I'd fixed it incidentally in the loop-recycle patch. I don't think you could actually see damage from this bug unless you run device mapper on top of loop devices, but still this is the correct behavior. [PATCH] loop.c doesn't fail init gracefully From: BlaisorBlade loop_init doesn't fail gracefully for two reasons: 1) If initialization of loop driver fails, we have an call to devfs_add("loop") without any devfs_remove; I add that. 2) On lwn.net 2.6 kernel docs, Jonathan Corbet says: "If you are calling add_disk() in your driver initialization routine, you should not fail the initialization process after the first call." So I make loop.c conform to this request by moving add_disk after all memory allocations. [PATCH] loop: remove redundant initialisation From: "Yury V. Umanets" This removes a redundant assignment in loop. [PATCH] ACPI PM timer From: Dominik Brodowski , John Stultz , Dmitry Torokhov Add the ACPI Powermanagement Timer as x86 kernel timing source. Unlike the Time Stamp Counter, it is a reliable timing source which does not get affected by aggressive powermanagement features like CPU frequency scaling. Some ideas and some code are based on Arjan van de Ven's implementation for 2.4, and on R. Byron Moore's drivers/acpi/hardware/hwtimer.c. We also replace the loop based delay_pmtmr with a TSC based delay_pmtmr, which resolves a number of issues caused by the loop based delay. Unsynced TSCs as well frequency changing TSCs will effect the length of __delay(), but it seems this method works best. [PATCH] kthread primitive From: Rusty Russell These two patches provide the framework for stopping kernel threads to allow hotplug CPU. This one just adds kthread.c and kthread.h, next one uses it. Most importantly, adds a Monty Python quote to the kernel. Details: The hotplug CPU code introduces two major problems: 1) Threads which previously never stopped (migration thread, ksoftirqd, keventd) have to be stopped cleanly as CPUs go offline. 2) Threads which previously never had to be created now have to be created when a CPU goes online. Unfortunately, stopping a thread is fairly baroque, involving memory barriers, a completion and spinning until the task is actually dead (for example, complete_and_exit() must be used if inside a module). There are also three problems in starting a thread: 1) Doing it from a random process context risks environment contamination: better to do it from keventd to guarantee a clean environment, a-la call_usermodehelper. 2) Getting the task struct without races is a hard: see kernel/sched.c migration_call(), kernel/workqueue.c create_workqueue_thread(). 3) There are races in starting a thread for a CPU which is not yet online: migration thread does a complex dance at the moment for a similar reason (there may be no migration thread to migrate us). Place all this logic in some primitives to make life easier: kthread_create() and kthread_stop(). These primitives require no extra data-structures in the caller: they operate on normal "struct task_struct"s. Other changes: - Expose keventd_up(), as keventd and migration threads will use kthread to launch, and kthread normally uses workqueues and must recognize this case. - Kthreads created at boot before "keventd" are spawned directly. However, this means that they don't have all signals blocked, and hence can be killed. The simplest solution is to always explicitly block all signals in the kthread. - Change over the migration threads, the workqueue threads and the ksoftirqd threads to use kthread. - module.c currently spawns threads directly to stop the machine, so a module can be atomically tested for removal. - Unfortunately, this means that the current task is manipulated (which races with set_cpus_allowed, for example), and it can't set its priority artificially high. Using a kernel thread can solve this cleanly, and with kthread_run, it's simple. - kthreads use keventd, so they inherit its cpus_allowed mask. Unset it. All current users set it explicity anyway, but it's nice to fix. - call_usermode_helper uses keventd, so the process created inherits its cpus_allowed mask. Unset it. - Prevent errors in boot when cpus_possible() contains a cpu which is not online (ie. a cpu didn't come up). This doesn't happen on x86, since a boot failure makes that CPU no longer possible (hacky, but it works). - When the cpu fails to come up, some callbacks do kthread_stop(), which doesn't work without keventd (which hasn't started yet). Call it directly, and take care that it restores signal state (note: do_sigaction does a flush on blocked signals, so we don't need to repeat it). [PATCH] Remove kstat cpu notifiers From: Rusty Russell Some well-meaning person put a notifier in for CPUs to update the kstat structures in sched.c. However, it does nothing, and even with the full hotplug CPU patch, it still does nothing. Simple counters very rarely need anything done when CPUs come up or go down. If you have per-cpu caches, or per-cpu threads, you need to do something. But very rarely for stats. [PATCH] Minor workqueue.c cleanup From: Rusty Russell Move duplicated code to __queue_work(), and don't set the CPU for queue_delayed_work() until the timer goes off. The second one only has an effect on CONFIG_HOTPLUG_CPU where the CPU goes down and the timer goes off on a different CPU than it was scheduled on. [PATCH] Remove More Unneccessary CPU Notifiers From: Rusty Russell Three more removed CPU notifiers extracted from the hotplug CPU patch. kernel/softirq.c: the tasklet cpu prepration callback is useless: the vectors are already initialized to NULL. Even with the hotplug CPU patches, they're of little or no use. fs/buffer.c: once again, they are already initialized to zero. mm/page_alloc.c: once again, already initialized to zero. [PATCH] Use CPU_UP_PREPARE properly From: Rusty Russell The cpu hotplug code actually provides two notifiers: CPU_UP_PREPARE which preceeds the online and can fail, and CPU_ONLINE which can't. Current usage is only done at boot, so this distinction doesn't matter, but it's a bad example to set. This also means that the migration threads do not have to be higher priority than the others, since they are ready to go before any CPU_ONLINE callbacks are done. This patch is experimental but fairly straight foward: I haven't been able to test it since extracting it from the hotplug cpu code, so it's possible I screwed something up. [PATCH] Limit hashtable sizes From: "Chen, Kenneth W" The issue of exceedingly large hash tables has been discussed on the mailing list a while back, but seems to slip through the cracks. What we found is it's not a problem for x86 (and most other architectures) because __get_free_pages won't be able to get anything beyond order MAX_ORDER-1 (10) which means at most those hash tables are 4MB each (assume 4K page size). However, on ia64, in order to support larger hugeTLB page size, the MAX_ORDER is bumped up to 18, which now means a 2GB upper limits enforced by the page allocator (assume 16K page size). PPC64 is another example that bumps up MAX_ORDER. Last time I checked, the tcp ehash table is taking a whooping (insane!) 2GB on one of our large machine. dentry and inode hash tables also take considerable amount of memory. Setting the size of these tables is difficult: they need to be constrained on many-zone ia64 machines, but this could cause significant performance problems when there are (for example) 100 million dentries in cache. Large-memory machines which do not slice that memory up into huge numbers of zones do not need to run the risk of this slowdown. So the sizing algorithms remain essentially unchanged, and boot-time options are provided which permit the tables to be scaled down. [PATCH] add Pentium M and Pentium-4 M options From: Adrian Bunk add Pentium M and Pentium-4 M options: - add MPENTIUMM (equivalent to PENTIUMIII except for a bigger X86_L1_CACHE_SHIFT) - document that MPENTIUM4 is the right choice for a Pentium-4 M [PATCH] gcc 2.95 supports -march=k6 (no need for check_gcc) From: Adrian Bunk gcc 2.95 supports -march=k6 (no need for check_gcc) [PATCH] AMD Elan is a different subarch From: Adrian Bunk - AMD Elan is a different subarch, you can't configure a kernel that runs on both the AMD Elan and other i386 CPUs - added optimizing CFLAGS for the AMD Elan [PATCH] Documentation: remove /etc/modules.conf refs From: Rusty Russell Someone complained about the number of references to /etc/modules.conf in the documentation. While fixing them up (and examples where changed), removed those which are redundant due to MODULE_ALIAS. [PATCH] add some more MODULE_ALIASes From: Rusty Russell New MODULE_ALIASes in: 1) arch/i386/kernel/microcode.c 2) drivers/char/genrtc.c 3) drivers/ide/ide-tape.c 4) drivers/net/bonding/bond_main.c 5) drivers/net/bsd_comp.c 6) drivers/net/ppp_deflate.c 7) drivers/net/ppp_generic.c [PATCH] bonding alias revert and documentation fix From: Rusty Russell Jeff Garzik disliked the bonding driver knowing it was called "bond0". Remove that alias, and revert documentation. [PATCH] NGROUPS 2.6.2rc2 + fixups From: Tim Hockin , Neil Brown , me New groups infrastructure. task->groups and task->ngroups are replaced by task->group_info. Group)info is a refcounted, dynamic struct with an array of pages. This allows for large numbers of groups. The current limit of 32 groups has been raised to 64k groups. It can be raised more by changing the NGROUPS_MAX constant in limits.h [PATCH] Mark intermezzo as broken The NGROUPS changes broke it, and we're not sure how to fixit, and nobody appears to be working on or testing intermezzo. [PATCH] bd_set_size i_size handling We need to hold i_sem while running i_size_write(). But that seems like a lot of fuss and deadlock potential. So just write the dang thing. [PATCH] snprintf fixes From: Juergen Quade Lots of places in the kernel are using [v]snprintf wrongly: they assume it returns the number of characters copied. It doesn't. It returns the number of characters which _would_ have been copied had the buffer not been filled up. So create new functions vscnprintf() and scnprintf() which have the expected (sane) semaptics, and migrate callers over to using them. [PATCH] devfs: race fixes and cleanup From: Andrey Borzenkov - use struct nameidata in devfs_d_revalidate_wait to detect when it is called without i_sem hold; take i_sem on parent in this case. This prevents both deadlock with devfs_lookup by allowing it to drop i_sem consistently and oops in d_instantiate by ensuring that it always runs protected - remove dead code that deals with major number allocation. The only remaining user was devfs itself and patch changes it to - use register_chardev to get device number for internal /dev/.devfsd and /dev/.statd. - remove dead auto allocation flag as well - remove code that does module get on dev open - it is handled by fops_get. Use init_special_inode consistently - get rid of struct cdev_type and bdev_type - both have just single dev_t now [PATCH] Enable coredumps > 2GB From: Andi Kleen Some x86-64 users were complaining that coredumps >2GB don't work. This will enable large coredump for everybody. Apparently the 32bit gdb/binutils cannot handle them, but I hear the binutils people are working on fixing that. I doubt it will harm people - unreadable coredumps are not worse than no coredump and it won't make any difference in space usage if you get a 1.99GB or a 2.5GB coredump. So just enable it unconditionally. If it should be really a problem for 32bit the rlimit defaults in resource.h could be changed. For file systems that don't support O_LARGEFILE you should just get an truncated coredumps for big address spaces. [PATCH] MIPS: New 2.6 serial drivers From: Ralf Baechle Three new MIPS-specific serial drivers. ip22.c is derived from the sparc zilog driver; guess we should write a generic Zilog driver somewhen ... [PATCH] #if versus #ifdef cleanup From: Valdis.Kletnieks@vt.edu 15 changes of #if to #ifdef and 2 places CONFIG_FOO should be defined(CONFIG_FOO). This gets rid of spurious warnings if you build with "-Wundef" so you get a warning if you have a preprocessor command like: #if CONFIG_ETRAX_DS1302_RSTBIT == 27 and you'll be told if it's substituting a zero rather than silent weirdness and unexpected code generation. [PATCH] kNFSd: Fix possible scheduling_while_atomic in cache.c From: NeilBrown We currently call cache_put, which can schedule(), under a spin_lock. This patch moves that call outside the spinlock. [PATCH] kNFSd: Allow sunrpc/svc cache init function to modify the "key" From: NeilBrown When adding a item to a sunrpc/svc cache that contains kmalloced data it is usefully to move the malloced data out of the key object into the new cache object rather than copying (as then we would need to cope with kmalloc failure and such). This means modifying the original. If the kmalloced data forms part of the key, then we must not move the data out until after the key isn't needed any more. So this patch moves the call to "INIT" on a new item (which fills in the key) to *after* the item has been found (or not), and also makes sure we only call the HASH function once. Thanks to "J. Bruce Fields" also 1/ remove unnecessary assignment 2/ fix comments that lag behind implementation. [PATCH] kNFSd: ip_map_init does a kmalloc which isn't checked... From: NeilBrown There is no way to return an error from a cache init routine, so instead we make sure to pre-allocate the memory needed, and free it after the lookup if the lookup failed. [PATCH] kNFSd: convert NFS /proc interfaces to seq_file From: NeilBrown From: shemminger@osdl.org Sat Sep 6 09:19:50 2003 Date: Fri, 5 Sep 2003 16:19:30 -0700 Converts /proc/net/rpc/nfs and /proc/net/rpc/nfsd to use the simpler seq_file interface. [PATCH] kNFSd:fix build problems in nfs w/o proc_fs on 2.6.0-test5 From: NeilBrown From: Stephen Hemminger Date: Fri, 12 Sep 2003 11:31:06 -0700 NFS won't build w/o CONFIG_PROC_FS. Looks like typo's (or a C++ programmer) in stats.h [PATCH] md: Print "deprecated" warning when START_ARRAY is used. From: NeilBrown The "START_ARRAY" ioctl depends on major/minor numbers (as stored in the raid superblock) are stable over reboots, which is increasingly untrue. There are better ways to start an array (e.g. with mdadm) so we mark the ioctl as deprecated for 2.6, and will remove it in 2.7. [PATCH] md: Split read and write end_request handlers From: NeilBrown Instead of having a single end_request handler that must determine whether it was a read or a write request, we have two separate handlers, which makes each of them easier to follow. [PATCH] md: Discard the cmd field from r1_bio structure From: NeilBrown The only time it is really needed is to differentiate a retry-on-fail from a write-after-read-for-resync request to raid1d. So we use a bit in 'state' for that. [PATCH] md: Remove some un-needed fields from r1bio_s From: NeilBrown next_r1 is never used, so it can just go. read_bio isn't needed as we can easily use one of the pointers in the write_bios array - write_bios[->read_disk]. So rename "write_bios" to "bios" and store the pointer to the read bio in there. [PATCH] md: Avoid unnecessary bio allocation during raid1 resync From: NeilBrown For each resync request, we allocate a "r1_bio" which has a bio "master_bio" attached that goes largely unused. We also allocate a read_bio which is used. This patch removes the read_bio and just uses the master_bio instead. This fixes a bug wherein bi_bdev of the master_bio wasn't being set, but was being used. We also introduce a new "sectors" field into the r1_bio as we can no-longer rely in master_bio->bi_sectors. [PATCH] md: Dynamically limit size of bio requests used for raid1 resync From: NeilBrown Currently raid1 uses PAGE_SIZE read/write requests for resync, as it doesn't know how to honour per-device restrictions. This patch uses to bio_add_page to honour those restrictions and ups the limit on request size to 64K. This has a measurable impact on rebuild speed (25M/s -> 60M/s) [PATCH] md: Allow partitioning of MD devices. From: NeilBrown With this patch, md used two major numbers for arrays. One Major is number 9 with name 'md' have unpartitioned md arrays, one per minor number. The other Major is allocated dynamically with name 'mdp' and had on array for every 64 minors, allowing for upto 63 partitions. The arrays under one major are completely separate from the arrays under the other. The preferred name for devices with the new major are of the form: /dev/md/d1p3 # partion 3 of device 1 - minor 67 When a paritioned md device is assembled, the partitions are not recognised until after the whole-array device is opened again. A future version of mdadm will perform this open so that the need will be transparent. [PATCH] dm: Export dm_vcalloc() From: Joe Thornber Export dm_vcalloc() [PATCH] dm: Move to_bytes() and to_sectors() into dm.h From: Joe Thornber Move to_bytes() and to_sectors() into dm.h [PATCH] dm: Get rid of struct dm_deferred_io in dm.c From: Joe Thornber Remove struct dm_deferred_io from dm.c. [Christophe Saout] [PATCH] dm: Maintain ordering when deferring bios From: Joe Thornber Make sure that we maintain ordering when deferring bios. [PATCH] dm: Tidy up the error path for alloc_dev() From: Joe Thornber Tidy up the error path for alloc_dev() [PATCH] dm: Correct GFP flag in dm_table_create() From: Joe Thornber For some reason dm_table_create() was allocating GFP_NOIO rather than GFP_KERNEL. [PATCH] dm: Zero size target sanity check From: Joe Thornber Add sanity check to dm_table_add_target() against zero length targets. [Christophe Saout] [PATCH] dm: Remove redundant spin lock in dec_pending() From: Joe Thornber Remove redundant spin lock in dec_pending() [PATCH] dm: drop BIO_SEG_VALID bit From: Joe Thornber I just noticed that bio_clone copies the BIO_SEG_VALID bit from the original bio when it was set. When we modify bi_idx or bi_vcnt afterwards the segment counts are invalid and the bit must be dropped (though it is fairly unlikely that it has already been set). [Christophe Saout] [PATCH] Fix printk level on non fatal MCEs From: Andi Kleen For various reasons non fatal Machine Checks can happen on Athlons (e.g. we have reports that laptops like to trigger them on suspend/resume) They are not necessarily fatal and often only minor hardware glitches. But what's annoying is that they're KERN_EMERG and pollute your console and scare the user into writing confused kernel bug reports. This patch just replaces the KERN_EMERGs with KERN_INFO for now. Longer term I think it would be better to log this stuff into a separate log. [PATCH] MCE fixes and cleanups Andi notes that the smp_call_function(foo); foo(); in there is incorrect on preemptible kernels. Fix that by using on_each_cpu(), which takes care of such things. Also, remove the open-coded timer from here. We have schedule_delayed_work(). And remove the `timerset' variable, which doesn't do anything. [PATCH] Rename bitmap_snprintf() and cpumask_snprintf() to *_scnprintf() From: Joe Korty Rename bitmap_snprintf() to bitmap_scnprintf() and cpumask_snprintf() to cpumask_scnprintf(), as these functions now belong to the scnprintf family of functions. [PATCH] OSS: remove #ifdef's for kernel 2.0 From: Adrian Bunk The patch below removes two #ifdef's for kernel 2.0 from OSS. [PATCH] remove kernel 2.2 #ifdef's from {i,}stallion.h From: Adrian Bunk The patch below removeskernel 2.2 #ifdef's from {i,}stallion.h . [PATCH] kbuild documentation fix From: Ryan Boder Explains how to compile external modules in Documentation/kbuild/modules.txt. [PATCH] adfs: remove a kernel 2.2 #ifdef From: Adrian Bunk The patch below removes a kernel 2.2 #ifdef from fs/adfs/adfs.h . Note that this #ifdef was only present in the header, the implementation of adfs_bmap was already removed. [PATCH] defer panic for too many items in boot parameter line From: Werner Almesberger When passing too many unrecognized boot command line options (which become arguments or environment variables), the 2.6 kernel panics (unlike 2.4, which just ignores the extra items). Unfortunately, this happens before the console is initialized, so all you get is a kernel that dies quickly, for no apparent reason. This is particularly irritating if using UML with init=something wi th a lot of ar gu men t s The patch below delays the panic until after console_init. (akpm: I mainly added this in because we have other places where the panic-later-on machinery is needed). [PATCH] cpufreq_scale() fixes From: Dominik Brodowski Use do_div on 32-bit archs in cpufreq_scale, and native "/" on 64-bit archs. [PATCH] Minor cross-compile issues From: Pratik Solanki - Fix include path for build.c so that it finds asm/boot.h. /usr/include/asm/boot.h may not be present when cross-compiling on a non-Linux machine. - $(CONFIG_SHELL) instead of sh. [PATCH] /proc thread visibility fixes From: Kingsley Cheung Is is possible to examine the data of tasks currently existing in the system which are not threads of the same thread group. For example, the only task in the group where init is group leader is itself: gen2 02:50:44 ~: ls /proc/1/task 1 However, I can then read the contents of 'stat' for any other task in the system: gen2 02:49:45 ~: cat /proc/1/task/$$/stat 1669 (bash) S 1668 1669 1669 34816 1730 256 1480 6479 12 4 8 5 5 17 15 0 1 0 +8065 3252224 451 4294967295 134512640 134955932 3221225104 3221222840 +4294960144 0 65536 3686404 1266761467 3222442959 0 0 17 0 0 0 I had a look at fs/proc/base.c and found that the 'lookup' functions for these directories were checking that the task in question existed, but overlooked the following: 1. In the function proc_pid_lookup, a check is required to ensure that the task in question is a thread group leader. Without the check, any task can have its data retrieved accordingly. Consider the following. There is a multithreaded process 1777. gen2 23:22:47 /proc/1777: ls task 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 However, I can read the stat file for its thread 1778 as follows: gen2 23:22:50 /proc/1777: cat /proc/1778/stat 1778 (multithreadtest) T 1777 1777 1672 34816 1672 64 0 0 0 0 14 17 0 0 15 0 12 0 8871 24727552 104 4294967295 134512640 134515104 3221222496 1077365276 4294960144 0 0 0 0 3222479248 0 0 -1 1 0 0 But 1778 is not meant to show up in /proc/, as intended right?: gen2 23:22:56 /proc/1777: ls /proc/ 1 1365 1661 1793 881 dma kcore scsi 10 1371 1662 18 9 driver kmsg self 1014 1372 1663 2 909 execdomains loadavg slabinfo 1032 14 1664 3 963 fb locks stat 1062 15 1665 4 966 filesystems mdstat swaps 1066 16 1666 5 buddyinfo fs meminfo sys 1067 1605 1669 6 bus ide misc sysrq-trigger 1087 1610 1670 7 cmdline interrupts modules sysvipc 1095 1611 1671 736 cpuinfo iomem mounts tty 11 1641 1672 8 crypto ioports mtrr uptime 12 1658 17 807 devices irq net version 13 1660 1777 810 diskstats kallsyms partitions vmstat 2. The other part of the bug is in the function proc_task_lookup. Here there needs to be a check that the task X is indeed a thread of the thread group Y when we read /proc//task/. Right now, this check does not exist, which allows for any existing task to have its data read from another thread group directory. The following reads the stat directory of my bash shell from the thread group 1. gen2 23:28:07 ~: cd /proc/1 gen2 23:28:10 /proc/1: ls auxv cwd exe maps mounts stat status wchan cmdline environ fd mem root statm task gen2 23:28:11 /proc/1: ls task 1 gen2 23:28:27 /proc/1: cat task/$$/stat 1671 (bash) S 1670 1671 1671 34817 1802 256 1953 8101 12 4 10 6 9 26 15 0 1 0 5789 3252224 454 4294967295 134512640 134955932 3221225104 3221222840 4294960144 0 65536 3686404 1266761467 3222442959 0 0 17 0 0 0 [PATCH] drivers/char/vt possible race From: Benjamin Herrenschmidt I falled again on the crash in con_do_write() with driver->data beeing NULL. It happens during boot, when userland is playing open/close games with tty's, I was intentionally typing keys like mad during boot trying to trigger another problem when this one poped up. Looking at the code, I'm not sure how protected we are by the above (tty) layer, paulus told me to not rely on anything like locking coming from there, so I decided to extend the scope of the console semaphore one more bit to cover races between calls to con_open, con_close and con_write. Note that in con_do_write, I intentionally drop the semaphore to avoid keeping it held when waiting on the local buffer, and I added some sanity checks on tty->driver_data with some printk's in case we still have an open race by the tty layer. At least, now, the couple vc_allocated & tty->driver_data should be protected though. [PATCH] off_t in nfsd_commit needs to be loff_t From: Neil Brown , From: Miquel van Smoorenburg While I was stress-testing NFS/XFS on 2.6.1/2.6.2-rc, I found that sometimes my "dd" would exit with: # dd if=/dev/zero bs=4096 > /mnt/file dd: writing `standard output': Invalid argument 1100753+0 records in 1100752+0 records out After adding some debug printk's to the server and client code and some tcpdump-ing, I found that the NFSERR_INVAL was returned by nfsd_commit on the server. Turns out that the "offset" argument is off_t instead of loff_t. It isn't used at all (unfortunately), but it _is_ checked for sanity, so that's where the error came from. [PATCH] skip offline CPUs in show_free_areas From: Christoph Hellwig Don't try to display the per-cpu information for CPUs which aren't there. [PATCH] fix display of NBD in /proc/partitions The recent change to /proc/partitions which prevents it from displaying removeable media accidentally caused 128 NBD and 16 ramdisk partitions to appear in /proc/partitions instead. So add a specific gendisk flag which says "don't show me in /proc/partitions" and use that. [PATCH] cleanup patch that prepares for 4Kb stacks From: Arjan van de Ven I have 4Kb stacks + IRQ stacks working in my tree. The biggest part of the 4K-stacks work is changing hardcoded 8Kb assumptions to the proper, pre-existing define for this. That part of the patch is appropriate in general, even when 4Kb stacks might not be. [PATCH] 3c59x: bring back the `enable_wol' option Some machines appear to have BIOS problems which are causing 3c59x adapters to come up in a powered-off state when WOL and PM are enabled. So bring back the 2.4 `enable_wol' module option which disables wake-on-lan unless the user specifically asked for it. [PATCH] Oprofile: fix nmi_timer_int detection From: Philippe Elie From: Zwane Mwaikambo The nmi_timer_int oprofile driver was enabling itself unconditionally if an SMP kernel was being used on a UP system without an IOAPIC. Tested on a P5 using NMI timer int driver and UP system using timer int driver both running an SMP kernel. 2004-02-11 Zwane Mwaikambo * arch/i386/kernel/nmi.c: export nmi_active * arch/i386/oprofile/nmi_timer_int.c: use it to check if owe can use an nmi interrupt [PATCH] oprofile: ARM infrastructure From: Philippe Elie From: Zwane Mwaikambo This patch adds infrastructure code and enables ARM to utilise the timer int oprofile driver. There is PMU code under development for the XScale but that is still forthcoming. In the meantime you can use the timer int driver with an updated Oprofile-CVS userspace (SF is a bit slow, please allow 24hrs). [PATCH] oprofile: add Pentium Mobile support From: Philippe Elie From: Will Cohen Add oprofile support for Pentium Mobile (P6 core). Pentium Mobile needs to unmask LVPTC vector, since it doesn't hurt other P6 core based cpus we do it unconditionally for all these. This patch require userspace tools >= 0.8 (only in sourceforge cvs currently) [PATCH] remove max_anon limit From: Tim Hockin Remove the max_anon via dynamically allocation. We also change the idr_pre_get() interface to take a gfp mask, which should have always been there. [PATCH] Fix __release_region() race From: MAEDA Naoaki I am testing PCI hot-plug in 2.6.2 kernel, but sometimes a struct resource tree in kernel/resource.c was broken if multiple hot-plug requests are issued at the same time. The reason is lots of drivers call release_region() on hot removal, and __release_region(), which is invoked by release_region() macro, changes the tree without holding a writer lock for resource_lock. I think __release_region() must hold a writer lock as well as __request_region() does. A following patch fixes the issue in my environment. [PATCH] Documentation on how to debug modules From: Alex Goddard How to debug module loading problems. The wording is a slightly changed version of what Rusty said. [PATCH] Module headers cleanup From: Brian Gerst Cleans up some leftovers from the old module loader: - Remove unused defines from modules.h - Remove unused file modsetver.h [PATCH] add clock_was_set() to all architectures From: Anton Blanchard Add clock_was_set to all architectures. I'm disappointed this wasnt done by whoever wrote the code. (It is a callback which the arch-specific RTC-updating code must make when someone sets the time). [PATCH] Fix race in epoll_ctl(EPOLL_CTL_MOD) From: Davide Libenzi A potential race can happen in epoll_ctl(EPOLL_CTL_MOD) where an event can happen in between f_op->poll() and the lock on ep->lock (we cannot call f_op->poll() inside a lock, and the f_op->poll() callback does not carry any info at the current time - missing wake_up_info() already ;). In that case the event would be removed. We can easily leave the event inside the ready list and have the ep_send_events() logic do the job for us at later time. (Thanks to david.lee@teracruz.com for reporting the thing, since it shouldn't have been a nice one ;) [PATCH] slab: remove extraneous printk From: "David S. Miller" From: YOSHIFUJI Hideaki If I create some kmem cache on 64-bit with like 3 u32's in it, it should silently just work and not warn. [PATCH] do_swap_page() return value fix From: BlaisorBlade An exhausted do_swap_page() should return VM_FAULT_OOM rather than -ENOMEM. [PATCH] ide-tape: remove obsolete onstream support From: Willem Riede The onstream drives, be they scsi, atapi, ieee1394 or usb, are supported by the osst driver. When the drives were new, code was introduced in ide-tape independently, but never really maintained since. There are issues with the drives I found and dealt with in osst, that ide-tape doesn't address. So this code in ide-tape is both redundant and imperfect. I assumed from http://marc.theaimsgroup.com/?l=linux-kernel&m=107550547613846&w=2 that there was buy in for removing it. When this patch is applied, ide-tape will refuse to attach to an onstream DI drive, and will write to syslog to use ide-scsi + osst instead. [PATCH] Disable bootmem warning From: Andi Kleen Make the "hm, page reserved twice" message dependent on CONFIG_DEBUG_BOOTMEM. [PATCH] dm-crypt From: Christophe Saout Adds a crypto module for device-mapper. The intent here is to remove cryptoloop ASAP, to pull the remapping gunk out of the loops driver and to migrate people onto dm-crypt. It is on-disk compatible with existing cryptolop installations. See http://www.saout.de/misc/dm-crypt/ for usage details. [PATCH] Fix make rpm when using RH9 or Fedora.. From: Thomas Davis Doing a 'make rpm' will fail with the current RH9/Fedora RPM macros. The failure message is this: Processing files: kernel-debuginfo-2.6.3rc1mm1-12 error: Could not open %files file /usr/src/redhat/BUILD/kernel-2.6.3rc1mm1/debugfiles.list: No such file or directory The fix is this patch: [PATCH] menuconfig: fix the check for ncurses-devel From: Sam Ravnborg Corrected check for missing ncurses-devel when executing "make menuconfig". Now tell user to install 'ncurses-devel' if check fails. [PATCH] Inefficient TLB flush fix From: Martin Hicks This is a patch based on one that Jack Steiner sent to the ia64 list in November. The original thread can be found at: http://marc.theaimsgroup.com/?l=linux-ia64&m=106869606922555&w=2 I created the little wrapper function that was requested. I think the only other arch, other than ia64, that doesn't at least include asm-generic/tlb.h is arm. Something appears broken in TLB flushing on IA64 (& possibly other architectures). Functionally, it works but performance is bad on systems with large cpu counts. The result is that TLB flushing in exit_mmap() is frequently being done via IPIs to all cpus rather than with a "ptc" instruction or with a new context.. [PATCH] sf16fmr2 radio card driver From: "ZIGLIO, Frediano, VF-IT" Add a new driver for the SF16FMR2 Radio card. [PATCH] Remove overenthusiastic BUG in smp_boot_cpus From: "Martin J. Bligh" There's no real need to BUG and stop the system from booting if the BIOS spec'ed apicid for the boot CPU isn't correct - we can continue perfectly well with the real one. [PATCH] Codingstyle update From: Michael Frank [PATCH] smbfs: support the loop driver From: Urban Widmark Add the necessary bits for loop-over-smbfs. [PATCH] Fix sprintf modifiers in usr/gen_init_cpio.c for cygwin From: Pragnesh Sampat The file initramfs_data.cpio is slightly different when generated on cygwin, compared to linux, which causes the kernel to panic with the message "no cpio magic" (See Documentation/early-userspace/README). The problem in cpio generation is due to the difference in sprintf modifiers on cygwin. The code uses "%08ZX" for strlen of a device node. printf man pages discourages "Z" and has 'z' instead. Both of these are not available on cygwin sprintf (at least some versions of cygwin). The net result of all of this is that the generated file literally contains "ZX" and then the strlen after that and messes up that 110 offset etc. The file is 516 bytes long on the system that I tested and on linux it is 512 bytes. The fix below just uses "%08X" for that field. [PATCH] wireless/Kconfig enable/select complete replacement From: mcgrof@studorgs.rutgers.edu (Luis R. Rodriguez) Complete the migration from Kconfig's undocumented "enable" to "select". [PATCH] tuner driver fixes From: Gerd Knorr "options tuner type=2" is just there for historical reasons and should only be used/needed if the main driver doesn't allow to configure the tuner type. I'm not sure whenever I can remove that altogether without breaking anything. There are several users of the tuner module, some outside the standard kernel tree ... > > if (type < TUNERS) { > > + t->type = type; > > printk("tuner: type forced to %d (%s) [insmod]\n", > > t->type,tuners[t->type].name); > > set_type(client,type); That is wrong, it will break in other corner cases, it may cause the set_type() function not doing the initializations. The prink can also be dropped because set_type does that too. The patch below removes that. It also makes the kernel messages a bit more verbose and adds support for two new tuners. [PATCH] crc32.c copyright fix From: Matt Domsch Patch below applies to both 2.4.25 and 2.6.3, and replaces the public domain statement and non-warranty with the GPL, as is permitted by the code being in the public domain, and is done with legal advice. [PATCH] Add C99 initializers to arch/i386/pci/fixup.c From: "Art Haas" Here's a small patch that adds C99 initializers to the file. [PATCH] mark ftape un-removable From: Christoph Hellwig I've just grepped over the tree for reamining MOD_INC_USE_COUNT users, and ftape is a really horrible one, it relies on MOD_{INC,DEV}_USE_COUNT in the most horrible places + it's own bookkepping and the <= 2.4 may unload hooks. And although I don't have the hardware I can guarantee it doesn't work as expected. So let's just remove the module_exit handler and mark it unremovable, if someone wants to fix up ftape later it's fine with me, but it's a really scary driver.. [PATCH] aio sysctl parms From: Janet Morgan It looks like aio_nr and aio_max_nr were intended to be sysctl parameters. [PATCH] SCSI: Make retries obey host_self_blocked flag The following patch against 2.6.2 will prevent the midlayer from issuing retries if host_self_blocked is set. This was raised as an issue here: http://marc.theaimsgroup.com/?l=linux-scsi&m=107357742430401&w=2 [PATCH] Remove CONFIG_SCSI_DC390T_NOGENSUPP Now that the Am53C974 driver is gone it doesn't make sense to not support all Am53C974-based cards, and the amount of code under the ifdef is tiny anyways. [PATCH] fix up ini9100 interrupt handling Currently is has a different irq handler for every "supported" chip. Make use of the private data passed to request_irq instead. [PATCH] fix up NCR5380 private data Use the private data passed to request_irq instead of looping over all controllers. The patch was ACKed by Alan a while ago. Note that the patch only looks so huge because of the two leves of indentation removed by the tiny chage. [PATCH] qla2xxx -- Properly schedule mailbox command timeouts. For mailbox commands which the firmware internally times-out in 2 * R_A_TOV, the driver should timeout no sooner than 2.5 * R_A_TOV so we do not inappropriately schedule an ISP abort. [PATCH] qla2xxx -- FCP_RSP IU check during command completion. While processing command completions in qla2x00_status_entry() interrogate the FCP_RSP IU in case of any FCP protocol errors (FCP-3, 9.4.11) during command execution. If there were any failures, schedule a retry of the command via DID_BUS_BUSY. [Corrected patch attached. Thanks to RA for pointing this out.] [PATCH] move remaining definitions from drivers/scsi/scsi.h to include/scsi Simple move for a bunch of definitions so driver can finally stop doing the -Idriver/scsi mess. I'd like to get it out ASAP because the distros are going to branch their first 2.6 releases soon and the vendors will want to support those basically forever. [PATCH] have CONFIG_SCSI_PROC_FS depend on CONFIG_PROC_FS Patch against recent 2.6: have CONFIG_SCSI_PROC_FS depend on CONFIG_PROC_FS, as configuring CONFIG_SCSI_PROC_FS without CONFIG_PROC_FS prevents scsi core from initializing. [PATCH] fix memory leaks in binfmt_flat loader Fix a number of memory leaks in the uClinux binfmt_flat loader. All are related to not cleaning up properly on failure conditions. [PATCH] allow configuration for shared flat binary support This adds the configuration option to enable the uClinux shared flat binary support. The code support is already in the binfmt_load code, just the config option is missing. [PATCH] add m68k elf relocation types to elf.h Added ELF relocation type defines. These are needed by the module loading code for m68knommu. [PATCH] fixes to ColdFire/5407 startup code Correct the cache setup bits for the 5407. This enables the write buffers properly (despite what the previous comment said). This combined with fixed cache flushing code provides a nice performance boost on the 5407. Also fix the ROMfs setup to only move the ROMfs region if it is actually configured. [ARM] URL change for linux-on-laptops Patch from: Sebastian Henschel Attached is a cosmetic patch for arch/arm/Kconfig which updates the URL for Kenneth's page and introduces the URL of tuxmobil.org. IEEE1394/SBP2(r1139): Some cleanups, and a better, more unique id for ieee1394_id attribute. IEEE1394(r1140): Add a bus rescan bus_attr file, and an ignore_driver attr for ud's [PATCH] ramdisk cleanup Fairly pointless coding-style cleanups which I've been sitting on for ages. The ramdisk driver is still buggy: it drops pagecache when unmounted. I still need to fix this. Apparently it also displays data corruption under load even when not unmounted. [PATCH] slab: print slab name in kmem_cache_init() Print the name of the offending slab if we're going to go BUG in kmem_cache_init(). [PATCH] prevent ptrace from altering page permissions From: Roland McGrath Under some circumstances, ptrace PEEK/POKE_TEXT can cause page permissions to be permanently changed. Thsi causes changes in application behaviour when run under gdb. Fix that by only marking the pte as writeable if the vma is marked for writing. A write fault thus unshares the page but doesn't necessarily make it writeable. [PATCH] slab: hexdump for check_poison From: Manfred Spraul The patch is designed improve the diagnostics which are presented when the slab memory poison detector triggers. check_poison_obj checks for write accesses after kfree by comparing the object contents with the poison value. The current implementation contains several flaws: - it accepts both POISON_BEFORE and POISON_AFTER. check_poison_obj is only called with POISON_AFTER poison bytes. Fix: only accept POISON_AFTER. - the output is unreadable. Fix: use hexdump. - if a large objects is corrupted, then the relevant lines can scroll of the screen/dmesg buffer. Fix: line limit. - it can access addresses behind the end of the object, which can oops with CONFIG_DEBUG_PAGEALLOC. Fix: bounds checks. Additionally, the patch contains the following changes: - rename POISON_BEFORE and POISON_AFTER to POISON_FREE and POISON_INUSE. The old names are ambiguous. - use the new hexdump object function in ptrinfo. - store_stackinfo was called with wrong parameters: it should store caller, i.e. __builtin_return_address(0), not POISON_AFTER in the object. - dump both the object before and after the corrupted one, not just the one after. Example output: <<< Slab corruption: start=194e708c, len=2048 Redzone: 0x5a2cf071/0x5a2cf071. Last user: [<02399d7c>](dummy_init_module+0x1c/0xb0) 010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 7b 030: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 63 Prev obj: start=194e6880, len=2048 Redzone: 0x5a2cf071/0x5a2cf071. Last user: [<00000000>](0x0) 000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b <<< [PATCH] page_add_rmap(): remove meaningless test Remove page validity test. I had a warning in there for a few weeks, no reports of it happening. [PATCH] Add CONFIG for -mregparm=3 From: Andi Kleen , me. Using -mregparm=3 shrinks the kernel further: (compiled with gcc 3.4, without -funit-at-a-time, using the later and together with -Os shrinks .text even more, making over 700KB difference) 4129346 708629 207240 5045215 4cfbdf vmlinux 3892905 708629 207240 4808774 496046 vmlinux-regparm This one helps even more, >236KB .text difference. Clearly worth the effort. This patch adds an option to use -mregparm=3 while compiling the kernel. I did an LTP run and it showed no additional failures over an non regparm kernel. According to some gcc developers it should be safe to use in all gccs that are still supports (2.95 and up) I didn't make it the default because it will break all binary only modules (although they can be fixed by adding a wrapper that calls them with "asmlinkage"). Actually it may be a good idea to make this default with 2.7.1 or somesuch. We add new kbuild infrastructure: the command scripts/gcc-version.sh $(CC) will print out the version of gcc in a canonical 4-digit form suitable for performing numerical tests against. DESC arch/i386/Makefile,scripts/gcc-version.sh,Makefile small fixes EDESC From: Serge Belyshev <33554432@mtu-net.ru> arch/i386/Makefile: * omitted $(KBUILD_SRC)/ in script call. scripts/gcc-version.sh: * GNU tail no longer supports 'tail -1' syntax. We should consider adding -fweb option: vanilla: $ size vmlinux text data bss dec hex filename 3056270 526780 386056 3969106 3c9052 vmlinux with -fweb: $ size vmlinux text data bss dec hex filename 3049523 526780 386056 3962359 3c75f7 vmlinux Also note 0.1 ... 1.0% speedup in various benchmarks. This option is not enabled by default at -O2 because it (like -fomit-frame-pointer) makes debugging impossible. [PATCH] Use -funit-at-a-time on ia32 From: Andi Kleen The upcomming gcc 3.4 has a new compilation mode called unit-at-a-time. What it does is to first load the whole file into memory and then generate the output. This allows it to use a better inlining strategy, drop unused static functions and use -mregparm automatically for static functions. It does not seem to compile significantly slower. This is also available in some of the 3.3 based "hammer branch" compilers used in distributions (at least in SuSE and Mandrake) Some tests show impressive .text shrinkage from unit-at-a-time. e.g. here is the same kernel compiled with -fno-unit-at-a-time and -funit-at-a-time with a gcc 3.4 snapshot. The gains are really impressive: text data bss dec hex filename 4129346 708629 207240 5045215 4cfbdf vmlinux-nounitatatime 3999250 674853 207208 4881311 4a7b9f vmlinux-unitatatime .text shrinks by over 130KB!. And .data shrinks too. At first look the numbers look nearly too good to be true, but they have been verified with several configurations and seem to be real. It looks like we have a lot of stupid inlines or dead functions. I'm really not sure why it is that much better. But it's hard to argue with hard numbers. [A bloat-o-meter comparision between the two vmlinuxes can be found in http://www.firstfloor.org/~andi/unit-vs-no-unit.gz . It doesn't show any obvious candidates unfortunately, just lots of small changes] With the gcc 3.3-hammer from SuSE 9.0 the gains are a bit smaller, but still noticeable (>100KB on .text) This patch enables -funit-at-a-time on ia32 if the compiler is gcc-3.4 or later. We had several reports of gcc-3.3 producing very early lockups. [PATCH] Add noinline attribute From: Andi Kleen This patch adds the `noinline' function attribute. It can be used to explicitly tell the compiler to not inline functions. We need this due to what is, IMO, a bug present in gcc-3.4 and current gcc-3.5 CVS: the compiler is inlining init/main.c:rest_init() inside init/main.c:start_kernel(), despite the fact that thay are declared to be placed in different text sections. [PATCH] use noinline for rest_init() gcc-3.4 incorretly inlines rest_init() into start_kernel(), causing things to crash when the .text.init section gets unloaded. Use noinline to prevent that. [PATCH] gcc-3.5: bonding drivers/net/bonding/bond_alb.c: In function `bond_alb_xmit': drivers/net/bonding/bond_alb.c:1188: error: invalid lvalue in assignment [PATCH] fix access() POSIX compliance From: Andreas Gruenbacher The fix for permission() that makes it compliant with POSIX.1-2001 apparently was lost. Here is the patch I sent before. (The relevant lines from the standard text are cited in http://www.ussg.iu.edu/hypermail/linux/kernel/0310.2/0286.html. The fix proposed in that posting did not handle directories without execute permissions correctly.) Make permission check conform to POSIX.1-2001 The access(2) function does not conform to POSIX.1-2001: For root and a file with no permissions, access(file, MAY_READ|MAY_EXEC) returns 0 (it should return -1). [PATCH] fix pfn_valid on ia32 discontigmem From: "Martin J. Bligh" Fix pfn_valid for architctures with discontiguous memory. This only changes the NUMA definition, and it leaves the NUMA-Q definition as was, because it's faster that way, it's in hotpaths, and our memory is always contiguous. [PATCH] ia32: pfn_to_nid fix From: "Martin J. Bligh" Makes sure pfn_to_nid is defined for all combinations of subarches, and that it's defined before it's used so we don't run into implicit declaration problems. [PATCH] ia32: disallow NUMA on PC subarch From: "Martin J. Bligh" Disallow NUMA on the i386 PC subarch (it doesn't work, nor was it intended to). [PATCH] config option for irqbalance From: "Martin J. Bligh" Make irqbalance into a config option - some people (jgarzik, arjan, etc) wanted to be able to disable it and do things from userspace instead. This patch allows each camp to do their own thing, which seems fair ;-) [PATCH] print some x86 build options during oopses I find this handy sometimes: it makes the oops output include info as to whether the user has selected CONFIG_PREEMPT, CONFIG_SMP or, particularly, CONFIG_DEBUG_PAGEALLOC. It can save one email round-trip. [PATCH] show_task() fix and cleanup show_task() is preinting negative numbers for free stack due to arithmetic against the wrong pointer. Fix that up, and clean up a few related things. show_task still has bogus code which atempts to work out how much stack the task has ever used - it cannot work because we don't actually zero out the stack pages when allocating them. We should fix that, or take it out. [PATCH] show_task() is not SMP safe From: Arnd Bergmann Christian Bornträger noticed that the kernel can crash after -T. It appears that the show_task function gets called for all tasks, which does not work if one of the tasks is running in a system call on another CPU. In that case the result of thread_saved_pc and show_stack is undefined and likely to cause a crash. For tasks running in user space on other CPUs, show_task() is probably harmless, but I'm not sure if that's true on all architectures. The patch below is still racy for tasks that are about to sleep, but it demonstrates the problem. IEEE1394(r1141): Add an "ignore_drivers" global default. [PATCH] ia64: on SN2, use the pda to count interrupts [PATCH] ia64: on SN2, skip init_platform_hubinfo() if on the simulator [PATCH] ia64: SN2 header file cleanups Here is a patch to clean up some of the Altix header files and includes. I've run the patch past the appropriate people at SGI and they seem happy with the changes. [PATCH] ia64: clean up SN2 setup.c Cleanup the SN setup.c file. Add __init and static to functions where required. [PATCH] ia64: cleanup SN2 pci_bus_cvlink.c I incorporated (at least in spirit I hope) hch's suggestions on the fixup code put in some kfrees that I was missing and static for sn_alloc_pci_sysdata (thanks Bartlomiej Zolnierkiewicz). White space clean up. IEEE1394(r1142): Use a kernel thread to rescan devices so we don't block the writer. ia64: Back-port from libunwind: fix off-by-one error in kernel-unwinder. There are no known failures due to this bug, but it's clearly a bug and given the right compiler, it could trigger and lead to bad stack traces etc. [PATCH] sys_device_[un]register() are not syscalls sys_xyz() names in Linux are all syscalls... except for sys_device_register() and sys_device_unregister(). This patch renames them so that the sys_ namespace is once again used only by syscalls. [PATCH] USB: Another unusual_devs.h update On Thu, 19 Feb 2004, Agustin De Igartua wrote: > Initializing USB Mass Storage driver... > usb-storage: This device (04e6,0002,0100 S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h > Please send a copy of this message to scsi0 : SCSI emulation for USB Mass Storage devices Thank you for sending this in. Greg, here's the patch. [PATCH] USB: Repair unusual_devs.h entry On Fri, 20 Feb 2004, Gustavo Guillermo wrote: > Ok, I tested the patch, The camera works, just as in the old Kernel, > Thanks, I'm including as an atachment the /proc/bus/usb/devices from > kernel 2.4.x and 2.6.x, and the kernel log for 2.4.x, but ooops, I forgot > to biold 2.4.x with full debug, if someone need it I will do. > > Please include this FIX in the Next Release. Greg, I now feel confident that this patch should be applied. [PATCH] USB: Use driver-model logging in the UHCI driver The main item in this patch is the conversion of the UHCI driver from using the old usb.h logging macros to the new driver-model dev_xxx macros. There are a few other minor changes too: updated version number, author, copyright, and maintainer information, removed some unneeded error messages, added some line breaks, added a convenience macro for the device pointer. [PATCH] USB: fix up compile errors in uhci driver. [PATCH] propogate errors from misc_register to caller The patch to check for / in class_device is not enough. The misc_register function needs to check return value of the things it calls! [PATCH] USB: add comments to sddr09.c People ask how to write the CIS on a SmartMedia card using an sddr09 reader/writer. The patch below documents the required command (but does not add the code). Two years ago or so I used this to fix the CIS on a card that my camera no longer wanted to accept. A Linux utility to do this might be useful, but the problem always is that we do not really have a good mechanism. How does one tell a driver that it has to do something special? Add yet another ioctl? IEEE1394(r1143): Fix FCP requests, broken by my change for list_for_each_entry(). USB storage: sync up with some missing unusual_devs entries that were in my tree. [SPARC64]: Update defconfig. [I2C]: Fix resource address typing. [I2C]: Use correct port address types in i2c-velleman.c [I2C]: Fix resource address typing in i2c-voodoo3.c [PATCH] Be careful about memory ordering in sungem driver Some barriers between setting up the DMA regions and writing the descriptor addresses would be most useful. I had some in my 2.4 version but they got lost someway, probably me not properly merging with davem at this point. The 970 is definitely more agressive at re-ordering stores than previous CPUs... Here is a patch adding some (probably too much, but better safe than sorry). [PATCH] Fix a DMA underrun problem with pmac IDE This fixes the behaviour of the pmac "macio" IDE driver when a DMA transfer happen to get less data out of the device than expected when setting up the DMA commands (the device underruns). This is very common with recent ATAPI stuffs and used to cause problem & disable DMA. This patch fixes the way we handle that condition, thus also fixing DVD burning on a bunch of recent pmacs. [FREEVXFS]: Fix u64 printk warnings on some 64-bit platforms. [I2C]: If comparing against ULONG_MAX, use ulong type, in lm85.c [PATCH] ppc64 compile fix From: Arjan van de Ven fix obvious non-C-standard stubs on ppc64 [PATCH] v850 ptrace.c task_struct leak From: Herbert Poetzl sys_ptrace() for v850, if pid == 1, doesn't put the struct task_struct (child), the following patch should fix that ... [PATCH] Fix the display of max-ever-used-stack in sysrq-T output The sysrq-T output currently tries to display the mimimum amount of free stack which each task has ever had available. It has been busted for years, because we forgot to zero out the stack when it is first created. Fix that up, adding a conig option for it. If the option is disabled, or the arch is not x86 then the free stack usage will display as zero. [PATCH] smbfs: remove debug code Remove an unneeded WSET() which snuck in there. [PATCH] x86_64 uniproc build fix From: Andi Kleen This fixes some more problems introduced by the IA32e merge on x86-64 - Make it compile on UP again. - Let the microcode driver build as a module [PATCH] remove dead kernel parameters Remove "hdx=flash" (ignored since 2.5.63) and "hdx=slow" (ignored since 2.5.41) kernel parameters. Also remove "slow" entry from /proc/ide/hdx/settings and "ata_flash", "nobios" and "slow" fields from ide_drive_t. [PATCH] keep documentation of kernel parameters in one place only [PATCH] kill useless IDE_SUBDRIVER_VERSION [PATCH] kill default_shutdown() and ide_drive_t->shutdown [PATCH] kill default_flushcache() and ide_drive_t->flushcache [PATCH] remove bogus comment and code from ide_unregister_driver() When ide_remove_proc_entries() is called, driver specific /proc/ide/hdx/ entries have been already removed by ->cleanup()->ide_unregister_subdriver(). [PATCH] remove dead/unfinished taskfile version of ide_cmd_ioctl() [PATCH] remove unused ide_end_taskfile() Additionally ide_end_drive_cmd() contains all functionality of this function. [NFSD]: Fix u64 printk warnings on some 64-bit platforms. [PATCH] fix /proc/ide/ for IDE PCI modules Make IDE PCI drivers register /proc/ide/ entries themselves. [SMBFS]: Use '%z' printf format for size_t types. [MEDIA]: Print out pointers correctly in dst.c [MEDIA]: Use '%z' printf format for size_t. [SKFDDI]: Use unsigned long for resource base/size. [SUNDANCE]: Fix casting so u64 printk does not warn on some 64-bit platforms. [MEDIA]: Use '%z' printf format for size_t/ptrdiff_t types in w9968cf.c. [PATCH] initial support for transmeta's efficeon processors This implements the initial support for the AGP gart in Transmeta's Efficeon processors. This code is based on linus' code from a while ago. Peter and I adapted it for the current kernel. The note at the top indicates how it was tested, known issues, and so forth. It is working quite well, and we'll work to fix the minor issues and test it some more with s3, more cards, other southbridges, etc., next. [I2C]: Use correct port address typing in i2c-elv.c [SPARC64]: Do similar macro casting for {in,out}{b,w,l}() as we do for {read,write}{b,w,l,q}(). Include the header file for DMA mapping. You know you want it. Give it to me. [SPARC32]: Do similar macro casting for {in,out}{b,w,l}() as we do for {read ,write}{b,w,l,q}(). [SPARC64]: Update defconfig. [SPARC32]: Nuke a.out build cruft This removes C_LABEL and asm/cprefix.h as well as NEW_GAS. These were used to support building on SunOS and with ancient binutils. [ARM PATCH] 1759/1: Add ARM925 support, updated Patch from Tony Lindgren The following patch adds the ARM925 processor support. This patch is based on the proc-arm925.S in 2.4 kernel, and it has been modified to be more like the ARM926 support in the 2.6 kernel, except for the cache flushing and initialization. Also, this patch fixes the writeback cache flushing for most part. There are still some issues with writeback cache flushing with devices using direct memory access, such as USB OHCI. It is recommended to use the writethrough instead if using USB. This is the default for OMAP-1510. OMAP-1610 does not have these issues, as it uses ARM926 core. This patch includes the update for the processor functions to be armv4t instead armv5t as suggested here: http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=1740/1 [ARM PATCH] 1670/1: PXA serial driver Patch from Holger Schurig PXA Serial port (FFUART, BTUART, STUART) and console support This patch works perfectly here with "console=ttyS0,115200" in the kernel command line. It contains Jean-frederic Clere fix to detect STUART and BTUART. Nico said that I should post it to your patch tracker. It replaces patch 1662/1 [PATCH] PCI: update MSI Documentation After getting feedback from Tom,I made some changes to the patch Attached is a revised version. [IPV6]: In ipv6_skip_exthdr(), access frag header correctly. [NETFILTER]: Fix ipv6 TCP/UDP matching wrt. extension headers [WAN]: Fix single_open confusion in wandev_show. [IGMP/MLD]: Validate filter size against optlen. [IPV6]: Use udpv6_queue_rcv_skb for multicast delivery. Noticed by Takashi Hibi. [NETFILTER]: Include net/ipv6.h in ip6_tables.c [IPV6]: Make ipv6_skip_exthdrs take const skb arg. [PATCH] PCI Hotplug: fix build warnings on 64 bit processors [NETFILTER]: C99 initializers in ip_conntrack_standalone.c [IPV4]: Make ip_auto_config a late initcall. [ARM PATCH] 1761/1: Remove SA1111_PCI_FAKEDEV (take 2) Patch from Deepak Saxena Follows your suggestion and also removes the #ifdef around pci_unmap_addr and friends. Since pci.h should only be getting included if PCI is enabled by PCI drivers and core, we shouldn't need the NOP version. [ARM] Make Acorn I2C build again. Unfortunately some i2c drivers were missed when the "name" element of struct device was removed. This cset fixes these drivers. [ARM] Fix ambakmi to use amba_request_regions() and the correct IRQ. [PATCH] ICS IDE is not a PCI IDE interface Don't list icside.o in drivers/ide/pci/Makefile - it's in drivers/ide/arm. Fix silly thinko in sungem network driver. From David Miller. [NETFILTER]: Resync with 2.4.x - Update listhelp.h to benefit from prefetching - More efficient selective_cleanup() impl. in conntrack - Export number of conntrack buckets via r/o sysctl. [ARM] Fix Acorn VIDC sound driver. Update the Acorn VIDC sound interrupt handler to return IRQ_HANDLED. [NETFILTER]: Remove unused structure member in NAT, from Patrick McHardy. [PATCH] NCR53C9x slave_{alloc,destroy}() NCR53C9x: Add missing slave_{alloc,destroy}() (from Kars de Jong and Matthias Urlichs). This affects the following drivers: - Amiga Blizzard 1230, Blizzard 2060, CyberStorm, CyberStorm Mk II, Fastlane, and Oktagon SCSI - DECstation NCR53C94 SCSI - Jazz ESP 100/100a/200 SCSI - Mac 53C9x SCSI - MCA NCR 53c9x SCSI - Sun-3x SCSI (was already fixed on its own) [PATCH] Sun-3x ESP SCSI clean up Sun-3x ESP SCSI: Remove obsolete cruft IEEE1394/SBP2(r1144): Convert sbp2 to do one scsi_host per unit-directory. [PATCH] aacraid reset handler Adds a reset handler to the aacraid template IEEE1394: Revision sync [PATCH] ia64: fix sched.c compile warning MPT Fusion driver 3.00.03 update From: "Moore, Eric Dean" Here's a new patch for MPT Fusion driver version 3.00.03 It address issues with proper hot plug implementation. [PATCH] MIPS mega-patch From: Ralf Baechle Below following 125547 lines of patches, all to arch/mips and include/asm-mips. I'm going to send the remaining stuff of which the one or other bit may need to be discussed in smaller bits. [PATCH] ia64: Fix 64 bit DMA mapping problem with PCI cards on SN2 PCI cards were forced to 32 bit addresses. There is significant extra overhead to DMA setup with 32 bit, and it is fairly easy to run out of mapping resources. This patch reenables 64 bit DMA mapping for PCI cards. [PKT_SCHED]: Convert to {subsys,module}_initcall(), fix init failure bugs in sch_teql.c pktsched_init() and tc_filter_init() converted to subsys_initcall(). initialization of individual qdisc and tcf_proto switched to module_init(). Some of them used to be registered twice if built-in, BTW. init failure handling in sch_teql.c fixed - it used to leave objects (both qdisc and netdev) registered if insmod failed. [PKT_SCHED]: Missing linux/init.h includes in sch_{arm,dsmark}.c IEEE1394 is no longer experimental, but eth1394 is. [SERIAL] fix 8250_pnp resource allocation Patch from: Mark Hindley Patch below to ensure that 8250_pnp sets necessary flags so that 8250 driver will reserve ioports. Before, I was logging errors like Feb 20 08:42:37 titan kernel: Trying to free nonexistent resource <000003e8-000003ef> on module unload. IEEE1394(r1146): Make the probe callback return an error if problems, and unbind drivers on failure. IEEE1394/ETH1394(r1147): Make sure to set update_config_rom on add host. [PATCH] ppc32: rework l2 cache code This patch removes the code that tweaked the L1 cache when setting up the L2 one. That was added a while ago in the intend of making things more robust but ended up breaking earlier 750 CPU setup. Also fix some crap in the L1 cache code that is only used for the powermac sleep at this point. [PATCH] Synchronize sungem RX complation path While perusing the driver I noticed a workaround we don't have in the Linux driver. The comment I added explains the issue. [PATCH] ppc32: Export cpu_possible_map cpu_possible_map is needed by some modules, export it. [PATCH] Fix use of sector_t in swim3 driver This driver won't build with CONFIG_LBD due to a 64 bits division. Use the "simple" fix of a cast down to 32 bits, this is only a floppy driver, no need to do sector_div. [PATCH] H8/300 start_thread problem fix Illegal usp corrected a set problem in starting of thread. [PATCH] H8/300 include cleanup - duplicate define marge. - unused define delete. - reduced code size. [PATCH] H8/300 warning fix Fix any warnings [PATCH] H8/300 io.h bussizing problem fix - fix warning - byte swap miss fix - 16bit bus access problem fix [PATCH] H8/300 Kconfig / defconfig update delete obsolute CONFIG [PATCH] Remove use of "current" identifier in via-pmu Andrew spotted this one, here's the fix: Remove usage of "current" as a variable name and structure member in the battery management code of PowerMac via-pmu and apm-emu drivers [IPV4]: Do not return -EAGAIN on blocking UDP socket, noticed by Olaf Kirch. [IPV6]: Kill MODULE ifdeffing, common init for sysctls. [SERIAL] Discover ACPI serial ports before plug-in ports Patch from: Bjorn Helgaas This makes us discover ACPI serial ports before PCI ones. The ACPI ports tend to be built-in, and discovering them late means their ttyS names move around if PCI serial ports are added or removed. I think it makes more sense to have relatively predictable and consistent names for the built-in hardware. [SERIAL] Fix /proc serial info for MMIO ports Patch from: Bjorn Helgaas This patch against 2.6.2 fixes a minor issue with /proc/tty/drivers/*, which currently doesn't show MMIO address information. Current sample output: # cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16450 port:00000000 irq:65 tx:72 rx:0 RTS|DTR 1: uart:16550A port:00000000 irq:65 tx:2950 rx:0 RTS|DTR ... Output with the attached patch: # cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16450 mmio:0xF8031000 irq:65 tx:72 rx:0 RTS|DTR 1: uart:16550A mmio:0xFF5E0000 irq:65 tx:2403 rx:74 RTS|DTR ... IEEE1394/SBP2(r1148): Fix a few bugs, and add set blk_queue_dma_alignment to 512. [SPARC32]: Remove stale SMP irq implementation. [Bluetooth] Cleanup drivers Kconfig file This patch makes some cosmetic cleanups to the Kconfig file for the Bluetooth drivers. [Bluetooth] Copy all L2CAP signal frames to the raw sockets Currently only very few responses travel back to a L2CAP RAW socket, which is very bad if you need to see command responses. This patch copies every signal frame to all attached raw sockets. Patch from Collin R. Mulliner [PATCH] Sysfs class support for SCSI tapes This is a new version of the patch I sent two weeks ago. The code is the same but now diffed against 2.6.3. Some documentation has been added. Creation and removal of the st device files has been tested with udev-018. The patch adds support for /sys/class/scsi_tape. It also removes the links to/from the st files in /sys/cdev/major. A file is created for each mode and rewind/non-rewind device for each tape drive. Here is an example for one drive: > ls /sys/class/scsi_tape/ st0m0 st0m0n st0m1 st0m1n st0m2 st0m2n st0m3 st0m3n In addition to the automatic links (dev, driver), each directory contains files that export some of the mode parameters: > ls /sys/class/scsi_tape/st0m0 default_blksize default_density dev driver default_compression defined device A link is made from the SCSI device directory back to the mode 0 auto-rewind class file: > ls -l /sys/devices/pci0000:00/0000:00:1e.0/0000:02:01.1/host1/1:0:5:0/tape lrwxrwxrwx 1 root root 39 2004-02-05 23:14 /sys/devices/pci0000:00/0000:00:1e.0/0000:02:01.1/host1/1:0:5:0/tape -> ../../../../../../class/scsi_tape/st0m0 [ARM] Add safe sa1111 IO handling. This introduces a set of functions which allow the SA1111 IO pins to be safely modified with no fear of other kernel threads interfering. IEEE1394(r1149): Convert some hardcoded values to constants. Add pbook suspend/resume handlers. [ARM] Update SA1111 Neponset code to use safe GPIO functionality. Use the SA1111 GPIO functionality added by the previous cset to ensure that GPIOs are modified atomically. [Bluetooth] Initial sysfs and device class support This patch adds the initial Bluetooth device class and sysfs support. This new code replaces the hotplug and HCI proc interface. [ARM] Dynamically allocate SA1100 PCMCIA sockets. [ARM PATCH 1719/1] Acornfb update Patch from: Peter Teichmann, edited by Russell King. * a bugfix to the pseudo palette handling in 16/32 bit modes: the pseudo palette is always kept in 32 bit integers * a bugfix to setcolreg() in 16 bit modes: there have to be 32 colour registers (this has nothing to do with the 16 pseudo palette colours, it is a bit misleading that setcolreg() is used both for pseudo palette setup and DIRECTCOLOR colour translation) (The behaviour should be selected using the visual and the rgb representation rather than the current BPP setting. --rmk) * change 16 bit visual from TRUECOLOR to DIRECTCOLOR * take the limited bandwidth of the RiscPC video memory into account for acornfb_valid_pixrate() * acornfb_vidc20_find_rates() now takes into account the differences between VRAM and DRAM when setting the FIFO preload value. With VRAM, the FIFO can be set to the highest possible setting because there are no latency considerations for other memory accesses. However, in 64 bit bus mode the FIFO preload value must not be set to VIDC20_CTRL_FIFO_28 because this will let the FIFO overflow. See VIDC20 manual page 33 (6.0 Setting the FIFO preload value). * select Multifreq monitor as default, increase frequency range for Multifreq monitor (this is of course a philosophical question, but I believe a sensible default setting should not impose too much limits to the user) (I dropped this change because it is known that some monitor hardware shipped with Acorn machines does not take kindly to wrong timing signals. If people really care, they should use the kernel command line to select the correct monitor type. --rmk) [PATCH] fix /proc/ide/ for IDE PCI modules From: Andrey Borzenkov Also add dummy create_proc_ide_interfaces() for CONFIG_PROC_FS=n (per Linus' suggestion). [SPARC32]: Remove use of PF_USEDFPU [SPARC32]: Remove cli/sti from all arch code. [ARM] Fix late abort handler for Thumb code. ARM720T processors use the "late" abort option, which means we have to correct the base address of any page fault ourselves. However, we were mis-correcting the thumb "push" instruction, causing the retried instruction to fail in a spectacular way. [ARM] Remove non-existent Kconfig source statement. A bit too over-eager to minimise the delta resulted in this Kconfig file trying to source a currently non-existent Kconfig file. [IPV4/IPV6]: Convert tunnel drivers to unconditional module_init. [IPV6]: Kill unloadable noise in af_inet6.c [IPV6]: Fix typo in Al's module_init changes. [PATCH] serial fixups From: Russell King Convert a bunch of serial drivers to new-style ioctl handling. [PATCH] more serial driver fixups From: Russell King Here is a patch which updates various serial drivers in the kernel to make them less broken than they were before. Nevertheless, they are still broken. The improvement is to make these drivers use the tiocmget/tiocmset methods, which are present in the 2.6 kernel. Many of these have been incorrectly converted from the old global IRQ locking without regard for SMP issues, or still use the old global IRQ locking methods which are no longer present in 2.6 kernels. The full message thread can be found at: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=1dvnl-5Pr-1%40gated-at.bofh.it&rnum=1&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DISO-8859-1%26q%3DOutstanding%2Bfixups%26btnG%3DGoogle%2BSearch%26meta%3Dgroup%253Dlinux.kernel [PATCH] Intel i830 AGP fix From: Terence Ripperda When coming out of standby, some chipsets lose their configuration in pci config space. this includes not just the agp master register being lost, but chipset-specific information, such as the physical address of the gatt table and other settings. Calling this configure routine again restores those settings. Dave said he was adding chipsets to this list on an "as needed and tested" basis. I ran across this problem I believe on a Dell Inspiron 4100 with nv11. (there had been some similar problems with specific nv11 systems when doing apm with the 2.4 kernel, I suspect, but haven't been able to verify, it's the same problem). [PATCH] fix shmat From: Nick Piggin sys_shmat() need to be declared asmlinkage. This causes breakage when we actually get the proper prototypes into caller's scope. [PATCH] dynamic pty allocation From: "H. Peter Anvin" Remove the limit of 2048 pty's - allocate them on demand up to the 12:20 dev_t limit: a million. [PATCH] NBD rmmod oops fix From: Paul Clements Fix a module unload oops, as well as fix some return codes (so nbd-client can exit with the proper error code, rather than 0, when an error occurs). [PATCH] m68k: offsets.h generation From: Geert Uytterhoeven M68k offsets.h: Move arch/m68k/kernel/m68k_defs.h to include/asm/offsets.h and use gen-asm-offsets framework (from Andreas Schwab and Ray Knight) [PATCH] m68k: mm init warning From: Geert Uytterhoeven M68k mm: Kill warning (from Sam Creasey) [PATCH] m68k: Sun-3 console fix From: Geert Uytterhoeven Sun-3: Use dummycon if CONFIG_DUMMY_CONSOLE is defined only (from Sam Creasey) [PATCH] m68k: Sun-3 missing sbus_readl() From: Geert Uytterhoeven Sun-3 sbus: Add missing definition of sbus_readl() (from Sam Creasey) [PATCH] m68k: Atari name clashes From: Geert Uytterhoeven Atari Falcon: Prepend falcon_ to some Atari Falcon definitions to solve name clashes in some drivers. [PATCH] m68k: M68k MCA cleanup From: Geert Uytterhoeven M68k: Remove obsolete MCA definition [PATCH] m68k: M68k uses drivers/Kconfig From: Geert Uytterhoeven M68k: Use drivers/Kconfig and fix up some remaining dependencies: - M68k no longer uses rtc.c - M68k never has AGP - CONFIG_ZORRO depends on CONFIG_AMIGS [PATCH] m68k: Amifb modedb bug From: Geert Uytterhoeven Amifb: Fix bugs in the video mode database: - ntsc-lace lacks the yres value - a2024-15 is 15 Hz, not 10 [PATCH] m68k: M68k configuration From: Geert Uytterhoeven Update M68k configuration logic: - Introduce CONFIG_MMU_MOTOROLA and CONFIG_MMU_SUN3 - Move Sun-3 config selection to the top since all other platforms conflict with it - Sun-3 implies MMU_SUN3 - All other platforms imply MMU_MOTOROLA - Sun-3 implies M68020 - Sun-3x implies M68030 - Sun-3 kernels cannot support 68030, 68040, or 68060 [PATCH] m68k: arch/m68k/mm/Makefile cleanup From: Geert Uytterhoeven Clean up arch/m68k/mm/Makefile logic [PATCH] m68k: M68k module loader From: Geert Uytterhoeven M68k: Add missing relocation support to module loader (from Matthias Urlichs) [PATCH] m68k: M68k call trace output From: Geert Uytterhoeven M68k: Improve formatting of call trace output (from Matthias Urlichs) [PATCH] m68k: M68k cmpxchg From: Geert Uytterhoeven M68k: Add missing implementation of cmpxchg() (from Andreas Schwab, Roman Zippel and me) [PATCH] m68k: M68k FPU emu broken link From: Geert Uytterhoeven M68k FPU emu: Remove reference to non-existing website [PATCH] m68k: Mac IOP spelling From: Geert Uytterhoeven Mac IOP spelling fix (from Matthias Urlichs) [PATCH] m68k: Dummy dma mapping From: Geert Uytterhoeven Add a dummy for systems that don't support the new DMA API, and make m68k use it if !CONFIG_PCI [PATCH] m68k: M68k core spelling From: Geert Uytterhoeven M68k core spelling fix (from Michael Hayes) [PATCH] add range checking to sys_sysctl() If you pass a huge nlen value into sys_sysctl() it will loop for hours printing billions of question marks, so range-check the arguments. Also, remove the code which informs the user that the sysctl is obsolete: it allows unprivileged users to spam the logs. [PATCH] Kconfig help: dm-crypto && cryptoloop From: bert hubert Current bitkeeper features a cryptoloop which is not safe for journaled file systems and also a Device Mapper target which is. The patch below updates Kconfig to that effect. [PATCH] nbd: fix set_capacity call From: Paul Clements This patch fixes the initial set_capacity call so that it matches nbd's internal device size (nbd_device->bytesize). [PATCH] nbd: remove PARANOIA and other cleanups From: Paul Clements This patch removes the PARANOIA define (it was always defined anyway). It also removes the requests_in/out counters (which weren't always accurate, and are superfluous anyway, since the block layer keeps its own in_flight counter). Also some minor cleanup of comments. [PATCH] cleanup condsyscall for sysv ipc From: Manfred Spraul Attached is a patch that replaces the #ifndef CONFIG_SYSV syscall stubs with cond_syscall stubs. [PATCH] IPMI warning fixes From: Geert Uytterhoeven When compiling the IPMI drivers on m68k, I needed a few more includes: - (for disable_irq_nosync() and enable_irq()) - (for size_t) - (for printk()) [PATCH] mtrr: init section usage From: "Randy.Dunlap" This patch tries to clean up init section usage in arch/i386/kernel/cpu/mtrr/*.c. [PATCH] Fixes to CodingStyle From: Xose Vazquez Perez Even master's books bring errors :-). URL has the errata and more information about the books [PATCH] Another x86-64 fix for problems from the recent merge From: Andi Kleen , From Suresh.B.Siddha Fix another bug caused by the recent IA32e merge. The full L1 cache size padding of the GDT didn't work with smaller cache line sizes. Just revert that. I must admit I still don't understand why it didn't work, but it's better to have a working system for now. [PATCH] ext3: fix scheduling-in-spinlock bug ext3_error() sleeps, so don't call it with the lock held. [PATCH] security oops fix From: Stephen Smalley Looking at d_splice_alias, it appears that the security_d_instantiate call in the first case (where it ends up moving an entry in place of the given dentry) should be passing 'new' rather than 'dentry' to ensure that the passed dentry is associated with the inode. This patch should fix the problem. (Addresses bugzilla #2153) [PATCH] From: "Randy.Dunlap" From: (Walter Harms) Hi list, while checking 2.6.1 for missing checks(). fs/jffs/inode-v23.c got overlooked somehow. This patch fixes: 2 unguarded kmem_cache_create 1 unguarded proc_mkdir [PATCH] janitor: media: use kernel min/max From: "Randy.Dunlap" From: Michael Veeck Remove unnecessary min/max macros and changes calls to use kernel.h macros instead. [PATCH] telephony: use kernel min/max From: "Randy.Dunlap" From: Michael Veeck Removes unnecessary min/max macros and use kernel.h macros instead. [PATCH] Fix ISDN v.110. From: David Woodhouse Now that we coalesce ACKs for outgoing packets, the v.110 code needs to look at the size it's given rather than assuming it'll get precisely one callback for each packet sent... [PATCH] Fix fs/partitions/efi.c printk warnings Lots of these: fs/partitions/efi.c:387: warning: long unsigned int format, u64 arg (arg 2) fs/partitions/efi.c:387: warning: long unsigned int format, u64 arg (arg 3) fs/partitions/efi.c:387: warning: long unsigned int format, u64 arg (arg 2) fs/partitions/efi.c:387: warning: long unsigned int format, u64 arg (arg 3) fs/partitions/efi.c:395: warning: long unsigned int format, u64 arg (arg 2) fs/partitions/efi.c:395: warning: long unsigned int format, u64 arg (arg 3) because it is assuming that you can print a u64 with %ld on 64-bit machines. [PATCH] powernow-k8 frequency handling fix From: Pavel Machek In 2.6.3, cleanups arrived, and they got test for invalid frequencies wrong. Only first frequency is allowed to be < FID_TABLE_BOTTOM, but due to bug it cleanups it allowed no frequencies < FID_TABLE_BOTTOM. This fixes it. [PATCH] Require GNU Make version 3.79.1 or later From: Adrian Bunk GNU make 3.78 reproducible segfaults when building kernel 2.6. See http://marc.theaimsgroup.com/?l=linux-kernel&m=107333742902438&w=2 Therefore, the minimum requirement for GNU make has to be raised in Documentation/Changes. GNU make 3.79.1 works. [PATCH] runtime PM deadlock fix From: Alexander Atanasov dpm_runtime_suspend holds dpm_sem and calls dpm_runtime_resume which deadlocks. Directly call runtime_resume instead. [PATCH] Disable debugging verbosity in macio_asic.c This undef's DEBUG by default in macio_asic, this is now working fairly well, and the actual output isn't really useful anyway. IEEE1394/Video1394(r1150): Initialize d->link list so that failures cleanup properly. IEEE1394/Video1394(r1151): Fix typo in last commit IEEE1394(r1154): Cleanup dma routines, and use vmalloc for sglist allocation. IEEE1394(r1155): Get rid of another user of round_up_to_page(). [TIGON3]: Add Apple tigon3 PCI device id. [TIGON3]: Comment out card RAM validation in tg3_test_dma() for now. [TIGON3]: Bump version and reldate. [PATCH] ia64: add Altix hotplug support [PATCH] ia64: SAL version is not zero-padded The SAL version is encoded as a BCD number, but shouldn't be zero-padded. SCSI: 53c700: reduce default tag depth to 4 This is a nice safe depth for older devices (which we've been having trouble with at larger depths). It is still adjustable upwards using sysfs if anyone really needs a larger queue. [PATCH] rename shmat to make it clear it isn't a system call entrypoint This renames sys_shmat to do_shmat. Additionally, I've replaced the cond_syscall with a conditional inline function. It touches all archs - only i386 is tested. [NET]: Set default socket rmem/wmem values more sanely and consistently. 1) Take into account the fact that struct sk_buff, which counts towards socket buffer limits, changes across different platforms. 2) Give ipv4/ipv6 ICMP sockets more accurately the wmem limits they want. [PATCH] Fix do_shmat() for CONFIG_SYSVIPC=n - The do_shmat() stub needs `static inline', not `inline' - We need errno.h for ENOSYS. eth1394(r1156): Fix oddities when MacOSX is IRM. Also MacOSX sets an invalid sspd in the ARP reply. [DECNET]: Zap MODULE ifdefs. [NET]: Handle kmem_cache_create() failure in neighbour.c [IPV4]: Handle kmem_cache_create() failure in inetpeer.c [IPV4]: Handle kmem_cache_create() failure in ipmr.c [IPV6]: Handle kmem_cache_create() failure in ip6_fib.c [IPV6]: Handle kmem_cache_create() failure in route.c [PPPOE]: Handle disabled PROC_FS properly. [PPPOE]: Kill unneeded ifdef/endif. IEEE1394(r1157): Create a kernel thread to handle all run_packet_complete() calls. SBP2(r1158): We don't need a remove_host callback in sbp2. [PATCH] blkdev_open/bd_claim vs BLKBSZSET I was modifying mkfs.xfs to use O_EXCL for 2.6, and hit a snag. It seems that once I've opened a block dev with O_EXCL I can no longer issue the BLKBSZSET ioctl to it. Making this change, the ioctl succeeds cos the original filp bdev owner from open now matches with the owner in the ioctl call. [PATCH] removal of bogus CONFIG_BINFMT_ELF uses We never use CONFIG_BINFTM_ELF and CONFIG_BINFMT_ELF_MODULE anywhere in the source (they are used in makefiles, obviously). 32bit-emulation binfmt_elf_... in arch/* still define those guys even though it hadn't been needed for years. Junk removed. PS: BTW, CONFIG_BINFMT_ELF32 _is_ used in several places in arch/mips and it looks like they really want #if defined(CONFIG_BINFMT_ELF32) || defined(CONFIG_BINFMT_ELF32_MODULE) in these ifdefs, but that's a separate story... IEEE1394(r1159): Merge run_packet_complete into kernel thread. [PATCH] tty utf8 mode This sounds like a good moment to come with this patch. This is essentially a five-year-old patch by Bruno Haible. It introduces utf8 mode, and the effect it has on erasing input characters. (Side note - without stty support, this is not very useful, but now the infrastructure is in place) ohci1394(r1160): Disable cross_bound() check, and add code to try to enable connected ports. [PATCH] ia64: improve gate generation This patch fixes a couple of things. - gate.lds.s is generated in the obj tree, not the src tree. - It can be generated by the normal .s.S rule. - Adding the extra-y list prevents it from being rebuilt unnecessarily. [PATCH] ppc64: remove dump_regs From: Anton Blanchard There is a prototype for dump_regs on ppc32 and ppc64 but its never defined. Remove it since it conflicts with something in drivers/atm/horizon.c. Also clean up ppc64 system.h a bit to match the ppc32 version. [PATCH] ppc64: cleanup lmb code From: Anton Blanchard - remove LMB_MEMORY_AREA, LMB_IO_AREA, we only allocate/reserve memory areas now - remove lmb_property->type, lmb_region->iosize, lmb_region->lcd_size, no longer used - bump number of regions to 128, we'll hit this limit sooner or later with our big boxes (if we have more than 64 PCI host bridges the reserved array will fill up for example) - make all the lmb stuff __init - no need to explicitly zero struct lmb lmb now we zero the BSS early - we had two functions to dump the lmb array, kill one of them - move the inline functions into lmb.c, they are only ever called from there [PATCH] ppc64: Potentially avoid an atomic operation in switch_mm. From: Anton Blanchard This appeared in the ia64 port and sounds like a good idea. Potentially avoid an atomic operation in switch_mm. [PATCH] ppc64: Remove duplicate pcibios_scan_all_fns definition From: Anton Blanchard Remove duplicate pcibios_scan_all_fns definition [PATCH] ppc64: Fix for ppc64 SMT enablement bug provided by Jimi Xenidis and Michael Day From: Anton Blanchard Fix for ppc64 SMT enablement bug provided by Jimi Xenidis and Michael Day [PATCH] ppc64: add rtas slot-error-detail information From: Nathan Fontenot Add call to rtas to retrieve slot-error-detail information and log this data to nvram in an EEH event. [PATCH] ppc64: add log_rtas_error() From: Nathan Fontenot Add log_rtas_error(), to be called in the event that a rtas call returns a hardware error (-1) so we can log additional information about the hardware error. [PATCH] Allow CROSS32_COMPILE to be set via environment variable From: Dave Hansen Allow CROSS32_COMPILE to be set via environment variable [PATCH] ppc64: Add a ppc64 archhelp. From: Jeremy Kerr Add a ppc64 archhelp. [PATCH] ppc64: print useful flags in oops, like x86 From: Anton Blanchard [PATCH] ppc64: Add DEBUG_STACK_USAGE From: Anton Blanchard Add DEBUG_STACK_USAGE to ppc64 [PATCH] ppc64: Add -funit-at-a-time From: Anton Blanchard Be like x86 and enable -funit-at-a-time. Use the check_gcc hook when enabling -mcpu=power4/-mtune=power4. [PATCH] Add 970FX entry into the cputable. From: Jake Moilanen Add 970FX entry into the cputable. [PATCH] ppc64: Fix for valid nvram rtas tokens. From: Olaf Hering Fix for valid nvram rtas tokens. [PATCH] fix naming collision with asm-ppc64/vio.h From: Dave Boutcher fix naming collision with asm-ppc64/vio.h. The define would be set there and this file would not get pulled in. [PATCH] ppc64: fix warning and compile error without CONFIG_SMP From: Hollis Blanchard fix warning and compile error without CONFIG_SMP [PATCH] ppc64 cpu spinup fixes From: Rusty Russell 1) Check for cpuids >= NR_CPUS in prom_hold_cpus: we previously overflowed arrays when this happened, and checking it here ensures that it doesn't happen elsewhere. Still move processors to secondary_hold (out of OF), but we won't release them. 2) smp_iSeries_message_pass and smp_xics_message_pass don't need to iterate if given a specific CPU: cleanup and fix. 3) kick_cpu variants don't need to check cpu range (caller is screwed anyway if this happened): replaced with BUG_ON for now. 4) smp_openpic_probe and smp_xics_probe can use cpus_weight(): it's faster and simpler. 5) User for_each_cpu/for_each_online_cpu as appropriate. [PATCH] ppc64: remove useless smp_message_pass args From: Anton Blanchard smp_message_pass has a few args that are never used. Remove em. Also add memory missing memory barrier in smp_call_function_interrupt. [PATCH] ppc64: This cleans up the rtasd logic, and also makes it hotplug CPU safe. From: Rusty Russell This cleans up the rtasd logic, and also makes it hotplug CPU safe. [PATCH] ppc64: Add stack overflow debugging From: Anton Blanchard This adds stack overflow debugging much like x86. Its pretty agressive and checks if > 8kB out of 16kB of stack is used. [PATCH] ppc64: remove get_users in backtrace code From: Anton Blanchard The might_sleep infrastructure doesnt like our get_users in the backtrace code, we often end up with might_sleep warnings inside might_sleep warnings. Instead just be careful about pointers before dereferencing them. Also remove the hack where we only printed the bottom 32bits of the WCHAN value. [PATCH] Add cpus and NUMA memory nodes to sysfs. Also add cpu physical id. From: Anton Blanchard Add cpus and NUMA memory nodes to sysfs. Also add cpu physical id. [PATCH] ppc64: Make a number of segment table functions static. From: Anton Blanchard Make a number of segment table functions static. Clean up one duplicated slbia. [PATCH] ppc64: Clean up per cpu usage in segment table code. From: Anton Blanchard Clean up per cpu usage in segment table code. [PATCH] ppc64: PER_CPU irq optimisations From: Anton Blanchard Another decent optimisation found in the ia64 port, dont take the irq descriptor lock or do the note_interrupt stuff on PER_CPU irqs (ie IPIs). [PATCH] ppc64: don't link some non iSeries stuff From: Stephen Rothwell I think Ben introduced this new file and iSeries doesn't need it. [PATCH] ppc64: Fix __get_SP() From: Anton Blanchard __get_SP used to be a function call which meant we allocated a stack frame before calling it. This meant the SP it returned was one frame below the current function. Lets call that bogusSP (and the real one SP). The new dump_stack was being tail call optimised so it remained one frame above bogusSP. dump_stack would then store below SP (as the ABI allows us to) and would stomp over the back link that bogusSP pointed to (__get_SP had set the back link up so it worked sometimes, just not all the time). Fix this by just making __get_SP an inline that returns the current SP. [PATCH] ppc64: set err to -ENODEV when a new node doesn't have "interrupt" property. From: Linda Xie set err to -ENODEV when a new node doesn't have "interrupt" property. [PATCH] fix for NUMA kernel on non NUMA machine From: Anton Blanchard Set node 0 online, otherwise the recent cpu/memory topology stuff will oops on a non NUMA machine. [PATCH] trivial oops formatting cleanups From: Anton Blanchard Some trivial oops cleanups. [PATCH] ppc64: restore cpu names From: Anton Blanchard Restore the old cpu names in /proc/cpuinfo, some applications parse this field. [PATCH] ppc64: uniprocessor compile fixes From: Anton Blanchard UP compile fixes. [PATCH] ppc64: fix cmd_line bugs From: Anton Blanchard There were a number of bugs in our cmd_line handling: - We were looking at cmd_line after it had been tokenised. Use saved_command line instead - Use strlcpy instead of memcpy/explicit NULL set. - Remove magic numbers in iseries cmd_line parsing IEEE1394(r1161): Major cleanup and addition of a ud-class, to make things even cleaner. [SPARC32]: Small SMP build fixes [PATCH] ppc64 oops on /proc/cpuinfo This fixes the ppc64 /proc/cpuinfo oops introduced with the lmb cleanups. We are trying to slowly phase out the LMB stuff (it mostly duplicates functionality of bootmem...), this part got overlooked. [PATCH] intermezzo ->permission() idiocy ... yes, Virginia, some perverts *do* tweak widely shared method tables and do that in very sensitive spots, at that... [PATCH] fix IRQBALANCE Kconfig dependencies CONFIG_IRQBALANCE only affects arch/i386/kernel/io_apic.c, so you should only see it as an option if you actually have one of those. This patch makes IRQBALANCE depend on X86_IO_APIC. [PATCH] ne: eliminate unused var. warning [PATCH] ibmtr: use kernel min/max [PATCH] strip: remove warnings when !PROC_FS When !CONFIG_PROC_FS, I'm getting this warning: drivers/net/wireless/strip.c:1169: warning: `strip_seq_fops' defined but not used [PATCH] strip: use kernel min/max Domen Puncer schrieb: > > Just some suggestions... > >> #define ELEMENTS_OF(X) (sizeof(X) / sizeof((X)[0])) > > Remove this define and s/ELEMENTS_OF/ARRAY_SIZE/g > There are more occurances of redundant ARRAY_SIZEs in the kernel. I will keep that in mind! > > >>@@ -847,7 +845,7 @@ >> static int allocate_buffers(struct strip *strip_info, int mtu) >> { >> struct net_device *dev = strip_info->dev; >>- int sx_size = MAX(STRIP_ENCAP_SIZE(MAX_RECV_MTU), 4096); >>+ int sx_size = max((int)STRIP_ENCAP_SIZE(MAX_RECV_MTU), 4096); > > > max_t? Changed that to max_t and min_t. A newbie queston: What should when be preferred and why? Add Documentation/networking/netif-msg.txt, describing the per-network-interface message logging standards for net drivers. Written by Donald Becker. [PATCH] PCI: Report meaningful error for failed resource allocation pci_assign_resource reports odd messages when resource allocation fails. This is because res->end and res->start are modified by allocate_resource. For example: PCI: Failed to allocate resource 1(0-ffffffff) for 0000:00:01.0 The following patch reports whether it's an IO or memory resource, and includes the correct size. For consistency, we report it in a similar way to the failure message in pci_request_region(), even though res->start is unlikely to be useful. [PATCH] PCI: Don't report pci_request_regions() failure twice pci_request_regions() reports an error when pci_request_region() fails. However, since pci_request_region() already reports an error on failure, pci_request_regions() has some unwanted duplication. [PATCH] PCI: Introduce bus->bridge_ctl member GregKH mentioned confirmed that people have been waiting for this patch. Appologies, it had completely evaporated from my mind. This patch introduces the "bridge_ctl" member of pci_bus, which allows architectures to tweak the bridge control register (eg, for setting fast back to back modes etc) in pcibios_fixup_bus(). Please note, though, that the value is only written back if pci_setup_bridge() is called. This will be called if an architecture is using the generic PCI bus setup functionality in setup-bus.c. If an architecture doesn't, then it is the responsibility of the architecture to write this value to the bridge as appropriate. (That said, the bridge control register is only ever changed if an architecture is using setup-bus.c anyway, so there should be no overall functional change.) [PATCH] PCI Hotplug: fix rpaphp bugs The attached patch has a fix for the conflict between fakephp and rpaphp so that fakephp and rpaphp can't be built into the kernel at the same time and a couple of problems I missed in my previous patch. (Sorry about that). [PATCH] PCI Hotplug: Patch to get polling mode in SHPC hot-plug driver properly working Here is the patch to get polling mode in SHPC hot-plug properly working. [CPUFREQ] Don't set up longhaul voltage scaling too early. We can bomb out early, so don't poke any registers just in case. [CPUFREQ] Extra sanity checks in longhaul. [CPUFREQ] Don't guess FSB on Nehemiah. Instead we can get it from the maximum capable fsb bits (given thats what we boot at). [PATCH] Undo SCSI 8-byte alignment relaxation This makes the default alignment requirements be 512 bytes for SCSI, the way it used to be. Jens will fix the SCSI layer problems, but low-level drivers might have other restrictions on alignment. [PATCH] fix SCSI non-sector bio backed IO This fixes the SCSI layer to handle non-sector-aligned requests from SG_IO (and potentially anything else producing these requests) that could stall the machine and cause all sorts of funnies depending on the low level driver used. [PATCH] CONFIG_REGPARM breaks non-asmlinkage syscalls With CONFIG_REGPARM=y, syscalls must be declared asmlinkage or else calling them will fail. This fix adds a few missing declarations for sys_fadvise64_64() and sys_remap_file_pages(). [PATCH] ia64: Add "install" make target i386 has a 'make install' target that I find rather useful. This patch introduces it to ia64 too. Once http://bugs.debian.org/234557 is accepted, it'll work in Debian. Until then, you may wish to add your own ~/bin/installkernel or chmod a-x /sbin/installkernel. [PATCH] typo fix in intermezzo patch Sigh... Build/fix bugs/rediff/send the old diff story... Sorry - just have noticed that ;-/ [PATCH] ia64: add support for NUMA machines with CPU-only (memory-less) nodes This patch works around a limitation in the current NUMA code, which doesn't support CPU-only (memory-less) nodes. With this patch CPU-only nodes are moved to a node with memory which is at the closest relative distance per the SLIT information. Any node reassignments will result in the compression of the nodes and renumbering the nid values where appropriate. PCI Hotplug: remove unneeded ACPI Makefile rules. PCI Hotplug: clean up the Makefile a bit more. Still need to fix up the pcie and shpc options to be saner for distros to use. SPARC64: Fix debug spinlocks to not trash random memory with > 4 cpus's (or sparse cpu's). [PATCH] 2.6.3 pcnet32.c wrong vendor ID fix This patch was originally sent by Jon Mason on Sat Jan 31. "I created a patch that allows pcnet32 adapters sold in IBM RS/6000 systems to be recognized in non-ppc computers. The problem is that the Vendor ID of this adapter is incorrect. There is a ppc specific workaround to get it working on that architecture (checkout http://lxr.linux.no/source/arch/ppc/kernel/pci.c?a=ppc#L87 for the workaround), but it obviously won't fix the problem in non-ppc architectures." [PATCH] 2.6.3 pcnet32.c convert to use netif_msg_* This patch converts the driver to use netif_msg_* for printing messages. Tested IA32. [PATCH] 2.6.3 pcnet32.c change to use ethtool_ops This changes the driver to use ethtool_ops to be more modular. There is a net delta of just a one line between the two implementations, but permission checking and copying to/from user space, etc. is all done in a consistent manner by ethtool.c [PATCH] pcnet32.c handle failures in open If there are errors in the open routine, the driver does not correctly clean up and free resources. This also removes an unnecessary netif_wake_queue, correctly supports the debug parameter, and updates the version and date. [PATCH] pcnet32.c non-mii errors with ethtool pcnet32 devices which do not contain an mii respond incorrectly to ethtool commands. Reported by VANDROVE@vc.cvut.cz and Thomas Munck Steenholdt. [PATCH] pcnet32.c add PCI hot remove support This patch adds support for PCI hot remove. Tested on PPC64 boxes. The driver has also been checked to comply with PCMCIA/cardbus remove requirements, but as I don't have a PCMCIA card, it is untested. If a PCMCIA card is removed, reads will return FFFF. The FFFF will cause all while loops to exit. [PATCH] pcnet32.c adds loopback test This adds the ability to do a local loopback test for the adapter. This source was submitted by James Lewis . Tested on PPC and IA32 systems. [PATCH] whitespace only change to pcnet32.c Last change for a while. This modifies the whitespace only. consistent indentation, deletes trailing tabs, trailing spaces, etc. [PATCH] pcnet32.c fix compile error Arrgh. I sent the wrong diff file. This one fixes the compile error I introduced ;-( [PATCH] 3c359_microcode.h clean up - 2.6.3 Small patch to clean up 3c359_micrcode.h, no other drivers in the kernel come anywhere near the file and the #if is superflous. Mike Phillips [PATCH] e1000: flow control * Bug fix: flow control high/low watermark settings not within Rx FIFO range: math error. [PATCH] e1000: disable TSO for now * Disable TSO as default setting until some hangs/resets caused with TSO enabled are root-caused. TSO can still be manually enabled using ethtool -K. [PATCH] e1000: disable CSA fix for 82547 * Multiple reports of system lock-ups with the CSA patch, so let's disable fix for now until we can understand why this is causing the hangs. It was first thought that only pre- productions systems would hang, but that's not true. [PATCH] e1000: delay may be too small * msec_delay macro wouldn't delay at all if x < 10, and wouldn't delay enough for x = 10. Not a concern for 2.6 (HZ=1000) but is for 2.4 (HZ=100). [PATCH] e1000: collision retry count too high * For half duplex, the IEEE says collision retry count should be 15 not 16. Would cause really slow transfers on some hubs (i.e NetGear DS108). [PATCH] e1000: handle register_netdev failure * driver not handling failures of register_netdev [Stephen Hemminger (shemminger@osdl.org)] [netdrvr e100] Response to Jeff's review plus some minor fixes. * define dump stats complete constant * add mwb() to keep order straight with HW when appending new resources to Rx and Tx queues * increment stats for rx_dropped and rx_over_errors [PATCH] Re: IA32 (2.6.3 - 2004-02-18.22.30) - 4 New warnings (gcc 3.2.2) Error path (EISA) probe was using device before set. # This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.1567 -> 1.1568 # drivers/net/dgrs.c 1.23 -> 1.24 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 04/02/19 shemminger@osdl.org 1.1568 # fix bug in eisa error path. # -------------------------------------------- # [PATCH] Allow pcnet_cs to work with shared irq Here is a rediff'd version of the patch to fix shared irq handling in pcnet_cs and generic 8390 drivers. [PATCH] m68k: Sun-3 LANCE Ethernet From: Geert Uytterhoeven sun3lance updates from Sam Creasey: - Pass the correct flags to request_irq() - Add debug code for transmitting packets [PATCH] m68k: Atari Pamsnet warning From: Geert Uytterhoeven Atari Pamsnet Ethernet: Kill warning [PATCH] m68k: Amiga A2065 Ethernet new driver model From: Geert Uytterhoeven A2065 Ethernet: Convert to the new driver model [PATCH] m68k: Amiga Ariadne Ethernet new driver model From: Geert Uytterhoeven Ariadne Ethernet: Convert to the new driver model [PATCH] m68k: Amiga Hydra Ethernet new driver model From: Geert Uytterhoeven Hydra Ethernet: Convert to the new driver model [PATCH] Re: Patch: netif_carrier_on()/off() for xircom_tulip_cb --Boundary-00=_EQjNA7alc3Y2zQJ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, > Please resend patches that may be applied with "patch -p1", > not "patch -p0". ok., here's the first, suspend/resume --Boundary-00=_EQjNA7alc3Y2zQJ Content-Type: text/x-diff; charset="iso-8859-1"; name="xircom_tulip_cb_pm.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="xircom_tulip_cb_pm.diff" [PATCH] netif_carrier_on()/off() for xircom_tulip_cb [PATCH] au1k leaks, allocation and free_netdev() fixes * fixes leaks on failed init * switches to sane allocation * fixes netdev freeing (kfree -> free_netdev) * fixes the idiocy with ->init() (from registger_netdev()) calling unregister_netdevice() in case of failure - before we got anywhere past the very beginning of register_netdev(). That's a part of NE* series that failed through the cracks (there were pending irda patches, so that had been postponed, irda patches either hadn't materialized in two months or hadn't touched that driver at all, the latter being more likely). Please, apply. [PATCH] vlsi_ir leak, allocation and freeing fixes * switched to sane allocation * fixes race on removal - we unregistered too late * contrary to the comment, device had no destructor, so removal had leaked - unregister_netdev() doesn't trigger freeing in that driver. * fixes freeing (kfree -> free_netdev) Otherwise the same story as with previous patch - irda-related part of NE* that got lost. [PATCH] tms380tr patch 1/3 (bug fix) Hi Jeff, this fixes some problems partly introduced in the latest token ring update: - mix of alloc_trdev(0) and alloc_trdev(sizeof(struct net_local)) confused memory management. - initialization of proteon and sknet cards was broken. - proteon_close() and skisa_close() deleted. --jochen abyss.c | 2 - madgemc.c | 2 - proteon.c | 91 ++++++++++++++++++++++++------------------------------- skisa.c | 100 +++++++++++++++++++++++++------------------------------------ tms380tr.c | 41 +++++++++---------------- tmspci.c | 2 - 6 files changed, 100 insertions(+), 138 deletions(-) [PATCH] tms380tr patch 2/3 (queue fix) Hi Jeff, this one removes the internal queue of tms380tr. It was racy, anyways. --jochen tms380tr.c | 178 +++++++++++++++++++++++-------------------------------------- tms380tr.h | 4 - 2 files changed, 70 insertions(+), 112 deletions(-) [PATCH] tms380tr patch 3/3 (get firmware out of kernel) Hi Jeff, the last one makes tms380tr use the kernel firmware loader instead of linking some propriatary code into the kernel, probably violating the GPL. drivers/net/tokenring/tms380tr_microcode.h can go after this patch has been applied. --jochen tms380tr.c | 34 ++++++++++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 4 deletions(-) Delete tms380tr firmware, no longer needed now that driver uses request_firmware() Improvements to the bk-make-sum BitKeeper summary/submission script: * use bk:// url to reduce confusion * remove "Linus, " from introductory output text * don't diffstat each individual cset; do the entire patch all in one go. Makes the script a -lot- faster when summarizing a large number of changesets. SPARC64: Use hard_smp_processor_id() for init_irqwork_curcpu() [PATCH] default 8139too to PIO Some machines still appear to lock up under MMIO mode, so default to PIO. [PATCH] Clean up IRQ mapping code On the larger ppc64 machines we remap the interrupt numbers used by the hardware/firmware to virtual IRQ numbers < NR_IRQS. Up until now we have used an array for the "real" (hardware) -> virtual IRQ number mapping, but with new machines coming out that will have 24-bit hardware IRQ numbers, this will break. However, in fact it is only the XICS interrupt controller which cares about this mapping. This patch moves that side of the mapping (real -> virtual) into the XICS code and makes it use a radix tree. On iSeries we have a similar issue, where the "real" IRQ numbers that we need are in fact an encoding of the bus/device/function address of the device. This patch fixes iSeries to use the virt->real IRQ mapping, allowing us to support larger iSeries machines. This patch also gets rid of the temporary hack that Stephen Rothwell submitted. On machines with OpenPIC (including the G5) the mapping is explicitly 1-1, and that hasn't changed. For other machines this patch cleans up and simplifies the code that sets up the virtual->real mapping. I have tested this code and verified that G5, pSeries and iSeries boot and run correctly with this patch. [PATCH] ppc64: archhelp fix From: Jeremy Kerr This patch is missing a single quote; here's a fix. [PATCH] Fix make xconfig on /lib64 systems From: Andi Kleen , R. J. Wysocki Without this make xconfig doesn't find the Qt library on systems using /lib64 (like x86-64) [PATCH] Report NGROUPS_MAX via a sysctl (read-only) From: Tim Hockin Attached is a simple patch to expose NGROUPS_MAX via sysctl. Nothing fancy, just a read-only variable. glibc can use this to sysconf() the value properly, so apps will stop relying on NGROUPS_MAX as a real constant. [PATCH] Make insert_resource work for alder IOAPIC resources From: James Bottomley This is a necessary precursor patch for getting the Intel Alder motherboard working (it has a PCI device corresponding to the IO-APIC which has to be forcibly inserted into the machine's reserved memory region). Eric Biederman was going to come up with a more comprehensive fix, but in the meantime, this is the minimum necessary to get insert_resource to work when the covering region is larger than the resource being inserted. [PATCH] add the Intel Alder IO-APIC PCI device to quirks From: James Bottomley The alder has an intel Extended Express System Support Controller which presents apparently spurious BARs. When the pci resource code tries to reassign these BARs, the second IO-APIC gets disabled (with disastrous consequences). The first BAR is the actual IO-APIC, the remaining five bars seem to be spurious resources, so we forcibly insert the first one into the resource tree and clear all the others. [PATCH] x86: remove THREAD_SIZE assumption cleanups From: Arjan van de Ven some more hardcoded THREAD_SIZE cleanups. [PATCH] cosmetic printk fix From: Arjan van de Ven One of my machines prints the following in dmesg during boot; CPU: Trace cache: 4K uops<6>CPU: L2 cache: 256K cause is a missing \n being printed; fix below. [PATCH] remove unneeded check from sys_sysctl() That check I just added to sys_sysctl() is not needed: do_sysctl() checks as well. [PATCH] clarify MSI requirements in Kconfig From: Martine Silbermann Having spent a non trivial amount of time trying to pull in the code to enable MSI, I would suggest that a clear indication in Kconfig that MSI requires CONFIG_PCI_USE_VECTOR would be very helpful. Also since the MSI code was integrated into 2.6.1 I've updated the comment that called for installing the MSI patch. [PATCH] pty changes require procps 3.2 From: Albert Cahalan Now that /dev/pts is using the 12:20 dev_t, a new procps is required. [PATCH] jffs2: Don't jump between contexts From: David Woodhouse Don't jump between contexts. (don't write comprehensible changelogs, either). [PATCH] fix the build with CONFIG_UNIX98_PTYS=n From: Ian Wienand - Fix inline function declarations - Use #ifdef for CONFIG_*, not #if [PATCH] Eicon isdn driver compile __devexit compile fix From: Armin Pointers to __devexit functions must be wrapped with the __devexit_p() macro. [PATCH] Change ENOTSUPP to EOPNOTSUPP From: James Morris ENOTSUPP is the wrong value, and should not be returned to userspace. [PATCH] swsusp/s3: Assembly interactions need asmlinkage From: Pavel Machek swsusp/s3 assembly parts, and parts called from assembly are not properly marked asmlinkage; that leads to double fault on resume when someone compiles kernel with regparm. Thanks go to Stefan Seyfried for discovering this. [PATCH] acpi/utils.c warning fix drivers/acpi/utils.c: In function `acpi_evaluate_reference': drivers/acpi/utils.c:353: warning: unsigned int format, different type arg (arg 5) [PATCH] drivers/acpi/sleep/proc.c warnings drivers/acpi/sleep/proc.c:359: warning: initialization from incompatible pointer type drivers/acpi/sleep/proc.c:367: warning: initialization from incompatible pointer type [NETFILTER]: Fix amanda helpers, forward port from 2.4.x version. [WANROUTER]: Kill MODULE ifdefs. [XFRM_USER]: Fix SKB sizing in xfrm_send_policy_notify(). [XFRM_USER]: In xfrm_send_{acquire,policy_notify}(), use {RTA,NLMSG}_SPACE(). [IPV6]: UDPv6 needs recvmsg csum error path fix too, thanks Olaf. [ATM]: horizon: make reset function not __init (from Randy Dunlap ) [ATM]: use clip_tbl instead of clp_tbl_hook (from Francois Romieu ) [IGMP/MLD]: Check for numsrc overflow, plus temp buffer tweaks. IEEE1394(r1162): Check return value for errors from hpsb_register_protocol. IEEE1394(r1163): Fixup nodemgr_{suspend,resume}_ne to use the ud class list. [PATCH] add syscalls.h From: "Randy.Dunlap" Add syscalls.h, which contains prototypes for the kernel's system calls. Replace open-coded declarations all over the place. This patch found a couple of prior bugs. It appears to be more important with -mregparm=3 as we discover more asmlinkage mismatches. Some syscalls have arch-dependent arguments, so their prototypes are in the arch-specific unistd.h. Maybe it should have been asm/syscalls.h, but there were already arch-specific syscall prototypes in asm/unistd.h... Tested on x86, ia64, x86_64, ppc64, s390 and sparc64. May cause trivial-to-fix build breakage on other architectures. [PATCH] asmlinkage fixes From: Andreas Gruenbacher , and me. Latest gcc cvs is able to detect mismatches between functions which are tagged asmlinkage and declarations which are missing asmlinkage. Or vice versa. Fix up the fallout from an x86 allyesconfig build. [PATCH] x86-64 merge for 2.6.3 Bring the x86-64 port up to date. Lots of smaller bug fixes that have accumulated. Also fixes another nasty bug introduced by the IA32e changes that causes BUGs at boot for some people. Only changes x86-64 specific files. There are some other changes that I'm sending separately. - Some cleanup in NMI watchdog code - Fix HyperThreading CPU setup race (Suresh B. Siddha) - Update defconfig - Add a comment on why iommu_fullflush is disabled. - Export sys_ioctl again - Fix build with IA32_EMULATION=y and SYSVIPC=n - Remove noisy boot printks in the mptable scan. - Implement automatic NMI watchdog switching for real now - Remove redundant 32bit ioctl handlers for autofs - Remove CONFIG ifdefs around rtc 32bit ioctl handlers - Remove useless nfsctl ifdef in syscall.c (Al Viro) - Increase padding for prefetchw alternative - Check for NX bit early before setting up memory maps (Suresh B. Siddha) - Change Intel IA32e config description and fix help texts (Jun Nakajima) - Fix microcode driver build really now (Dave Jones) - Add nohpet option to disable HPET timer - Fix double semicolon in aperture.c - Add cmpxchg16b cpuid entry - Fix return value of read_pci_config_16 (Paul Menage) - Fix __KERNEL_COMPAT32_CS (Zachary Amsden) - Disable the infamous 30 minutes check in CMOS time setting - Update URLs in Kconfig (Petri T. Koistinen) - Fix ACPI interrupt source parsing for Nforce3 (Maciej W. Rozycki) - Fix 32bit ipc version parsing. - Run local APIC NMI watchdog only once a second (or less often on idle boxes) - Merge ACPI APIC SCI functions from i386 - Add i8254 timer suspend code from i386 - Merge with 2.6.2-rc3 + minor changes from i386 - Fix empty_zero_page declaration (Greg Johnson) - Readd sysctls for exception/page fault trace and vsyscall32 - Fix WCHAN - Fix STACK_TOP usage. Stack for 64bit processes should be at the top of memory now again. Also set it correctly for LINUX32_3GB. - Add warning fixes for gcc 3.4 and -Wdeclaration-after-statement [PATCH] New machine check handler for x86-64 This adds a new completely rewritten machine check handler for x86-64. The old one never worked on 2.6. The new handler has many improvements. It closely follows the Intel and AMD recommendations on MCE handlers now (the old one had many violations). It handles unrecoverable errors in user space better now - it will only kill the process now if possible instead of panicing. This one is CPU independent now - it should work on any CPU that supports the standard x86 MCA architecture. This new handler only logs fatal errors that lead to kernel panic to the console. Non fatal errors are logged race free into a new (non ring) buffer now and supplied to the user using a new character device. The old one could deadlock on console and printk locks. This also separates machine check errors from real kernel errors better. The new buffer has been also designed to be easily accessible from external debugging tools: it has a signature and could be even recovered after reboot. It is not organized as a ring buffer - this means the first errors are kept unless explicitely cleared. The new error formats can be parsed using ftp://ftp.suse.com/pub/people/ak/x86-64/mcelog.c The new character device for it can be created with mknod /dev/mcelog c 10 227 There is a new sysfs interface to configure the machine check handler. It has a "tolerant" parameter that defines the aggressiveness of the machine check: 0: always panic 1: panic if deadlock possible (e.g. MCE happened in the kernel) 2: try to avoid panic Default is 2 Despite of having more features the new handler is shorter. [PATCH] Run 32bit compat ioctl handlers in BKL Give 32bit emulation ioctl handlers the same locking rules as normal ioctl handlers. This will avoid surprises in driver code. Most call sys_ioctl who would take it anyways. [PATCH] Support AGP bridge on Nvidia Nforce3 + cleanup For some unknown reasons Nvidia NForce3 doesn't use the standard Hammer AGP architecture, but requires set up of some shadow registers. This patch adds that to the K8 AGP driver. Based on an old 2.4 patch from someone at Nvidia. Also includes another bug fix for the K8 AGP handler, from Brad House. We should not assume that there is only one northbridge in a Uniprocessor system. Always flush all. Also some minor cleanup. [SPARC64]: Use prom_printf in sun_do_break() instead of printk. Avoids lockup. ACPI URL update [libata] Guarantee that S/G entries do not straddle IDE DMA 64k boundary [libata sata_sil] fix 4-port support on SII 3114 ia64: Fix bug in ia64_get_scratch_nat_bits()/ia64_put_scratch_nat_bits(). ia64: Update defconfig [libata] Explicitly set max_phys_segments to 128 (current blk default), in case MAX_PHYS_SEGMENTS ever changes. [libata sata_promise] Fix DIMM initialization on PCI-X bus [libata] bump versions [Bluetooth] Dynamic allocation of HCI device For correct integration into the driver model the allocation of the HCI device must be dynamic. [Bluetooth] Use C99 initializer for HCI USB driver This patch changes the GNU-style initializers to C99 style initializers in the HCI USB driver. Patch from Art Haas Fix PCI MSI build when kirqd is disabled. [libata] Much better s/g table fill routine My version wouldn't work for really large iommu merges. Contributed by Benjamin Herrenschmidt, with a tiny optimization from me. [ACPI] delete unnecessary dmesg lines, fix spelling ia64: Update defconfig [PATCH] 2.6.3 - fix for undefined mdelay in 3c505 This patch fixes undefined mdelay() in 3c505 driver - at least on alpha (maybe on other archs is included by some other headers, but on alpha it isn't) there was warning: *** Warning: "mdelay" [drivers/net/3c505.ko] undefined! [PATCH] ppc64: fix de4x5 build From: Benjamin Herrenschmidt It should be _machine, not ppc_machine. [PATCH] remove init_{etherdev,netdev} and dev_alloc These are racy by "design", and all users have been eliminated. [PATCH] pcnet32 non-mii link state fix s patch correctly returns the link state of an adapter which does not have an MII. Tested by myself and the patch author Thomas Munck Steenholdt . (This version has the correct file name) [PATCH] Update via-rhine Kconfig entry I've noticed that via-rhine supports my VIA Rhine-III. Kconfig mentions only rhine-1 and rhine-2. Here update. [PATCH] remove useless MOD_{INC,DEC}_USE_COUNT in lasi_82596.c [PATCH] remove useless MOD_{INC,DEC}_USE_COUNT in sun3lance [PATCH] remove useless MOD_{INC,DEC}_USE_COUNT in sb1250-mac [PATCH] remove useless MOD_{INC,DEC}_USE_COUNT in meth [PATCH] remove useless MOD_{INC,DEC}_USE_COUNT in wanpipe wanpipe_open/close are used by sub-modules in their open/close handlers, thus locking sdlamain into memory by using the exports [PATCH] Add IBM PowerPC Virtual Ethernet Driver [netdrvr r8169] fix TX descriptor overflow Please apply attached patch. Without patch, bogus descriptors are parsed as soon as tp->cur_tx%NUM_TX_DESC + (tp->cur_tx - tp->dirty_tx) > NUM_TX_DESC (assume for instance tp->dirty_tx = NUM_TX_DESC/2, tp->cur_tx = NUM_TX_DESC - 1 and watch entry go beyond NUM_TX_DESC). Missing stats update is fixed by the patch btw. [ARM] Optimise ARM720T Thumb abort unwinding. Patch from: Andre. Optimise data_thumb_pushpop and data_thumb_ldmstm population counting code with a slightly more optimal algorithm than the original as there are only 8 bits to count instead of 16. [ARM] Add ARM architecture version 6 support. This cset adds support ARM architecture version 6. JFS: Error path accessed uninitialized variables [CPUFREQ] Export powernow-k7 scaling frequencies From: Kronos The following patch make powernow-k7.c export supported frequencies via sysfs. I'm trying to write a scaling deamon and I need to know them. [CPUFREQ] scaling_available_frequencies work for remaining x86 drivers. Export scaling_available_frequencies on the remaining x86 freq_table-based cpufreq drivers. powernow-k7, acpi and speedstep-centrino are already queued. Please note that this cannot be done in the cpufreq core as the cpufreq core tries very hard to be independent of the freq_table helpers. [CPUFREQ] Fix ARM cpufreq governor selection From: Russell King [PATCH] m68k: Amiga Zorro8390 Ethernet new driver model From: Geert Uytterhoeven Zorro8390 Ethernet: Convert to the new driver model [PATCH] HFS rewrite From: Roman Zippel This is a complete rewrite of the HFS driver, it gets rid of a all the special conversion options, which belong in user space. The driver uses now a btree support very similiar to HFS+, so that both could be merged at some point. Thanks to Ethan Benson for a number of patches to make the driver more compliant with the spec and Christoph Hellwig for fixing up the documentation. [PATCH] HFS+ support From: Roman Zippel This driver adds full read/write support for HFS+ and is based on the readonly driver by Brad Broyer. Thanks to Ethan Benson for a number of patches to make the driver more compliant with the spec. [PATCH] superblock fixes From: - Avoid sync_fs with clean fs & wait mode = 0 - mark_files_ro overrides pending deletes (doc) - some trivial doc fixes [PATCH] fix module reference counting in zoran driver From: Christoph Hellwig Take a reference before calling into the module and release it after we're done. Also remove the useless (and wrong) refcounting in videocodec - symbols from this module are used by other modules if we call into those functions so it can't be unloaded anyway. We really need to add a debug check to tip all those try_module_get(THIS_MODULE) callers.. [PATCH] s390: general update. From: Martin Schwidefsky Core s/390 changes: - Add -mbackchain to CFLAGS to prepare for gcc 3.4 with comes with a default setting of -mno-backchain - Add implementation of strcpy. - Pad bytes after string end in strncpy. - Fix __sem_update_count inline assembly for gcc 3.4. - Export smp_ptlb_all for tlb flushing in module code. - Fix sched_clock. - Remove the last KERNEL_VERSION #if in s390 code. - Add dummy implementation for missing dma_{alloc,free}_coherent. - Avoid cast of lvalue in idal_buffer_{from,to}_user. - Remove _exit definition from unistd.h. [PATCH] s390: common i/o layer. From: Martin Schwidefsky Common i/o layer fixes: - Add atomic onoff variable to ccw devices and ccw-group devices to avoid races during online/offline. - Fix pr_debug calls. - A lot of path fixes: + Set device to disconnected state after no path event. + Fix chpid vary on/off for single path devices. + Make logical vary on/off consistent with physical vary on/off. + Don't update subchannel schib if the device is gone (dnv not set). + Add code to recover lost chpids after machine checks. + Avoid processing link incidents, resource accessability events and chpid machine checks for logically offline chpids. + Recover disconnected devices after chsc machine checks. + Delay de-registering of no path devices to avoid deadlocks. + Don't redo ssd for known subchannels - the info is static. + Introduce a second, "slow" machine check handler thread for new devices. The "fast" machine check handler only recovers disconnected devices. - Deregister subchannel rather than ccw device on not oper events. - Fix calling sequence of notify function vs. path verification. - Reset timeout for disconnected devices. - Fix problem with debug feature and %s arguments. - Fix __get_subchannel_by_stsch to deal with "zombie" subchannels. - Avoid "zombie" subchannels if device is not operational during sense id. - Handle call to the io_subchannel remove function if the ccw device is not registered yet. - Add availability attribute for ccw devices: "good", "no device", "no path", "boxed". - Export ccw_device_work for qdio as module. - Retry sense id for tape devices which present intervention required. - Don't check the activity control to decide if the device driver interrupt handler needs to be called but use the bits in status control. - Fix race in ccw_device_stlck. - Accumulate deferred condition code. - Fix setting_up_sema locking. - Call qdio_shutdown instead of qdio_cleanup on failed establish. - Fix problem when 64 FCP adapters are initialized simultaneously. - Fix problem with >64 adapter interrupt capable devices. - Reduce stack usage in qdio. [PATCH] s390: console driver. From: Martin Schwidefsky Console driver fixes: - Fix ^n at end-of-line check in 3215 and sclp driver. - Fix copy_from_user/might_sleep/spinlock problem in sclp. [PATCH] s390: compat_timer_settime. From: Martin Schwidefsky sys_timer_settime returns EINVAL if *new is NULL, compat_timer_settime returns EFAULT. Add a check to compat_timer_settime to return EINVAL if *new is NULL. [PATCH] s390: CTC network driver. From: Martin Schwidefsky CTC network driver fixes: - Fixed some debug messages (did not compile with DEBUG defined). - Added sanity checks in ctc_proto_store() & ctc_shutdown_device(). - Added some bugfixes from 2.4. - Tweaked logging. - Removed syntax error in pr_debug call. - Changed do_IO (not existing any more) to ccw_device in messages. - Corrected format failure in pr_debug of channel_get. - Add symlinks between net device and ctc device. - Add tiocmset/tiocmget API change patch from Russell King - Fix locking problem in ctc_tty_cleanup. [PATCH] s390: LCS network driver. From: Martin Schwidefsky LCS network driver fixes: - Fix ccwgroup behaviour, remove should offline cards still online. - Better not write to the debug feature before it is registers. - Don't free card structure on offline but on remove. - Check for deferred condition code 1 in lcs_irq for halt requests. - Call free_netdev only if there is a net device. [PATCH] s390: IUCV network driver. From: Martin Schwidefsky IUCV interface fixes: - VM workaround: redirect setmask call to cpu 0. - Disable message interrupts during connection setup. - Honor incoming connection severed during connection setup. - Add connect retry when remote severed connection. - Add symlinks between net device and iucv device. - More fixes for proper net device allocation/deallocation. [PATCH] s390: DASD device driver. From: Martin Schwidefsky DASD driver fixes: - Fix generic_set_online if diag discipline is not availab.e - Fix reserve on already reserved device. - Use default-erp for unit check without sence information. - Revert dasd naming scheme change from dasd to dasd__. This breaks too many user space packages. - Extend dasd naming scheme to four letters dasd-dasd. - Fix formatting of dasds. [PATCH] s390: virtual timer interface. From: Martin Schwidefsky Add virtual timer interface. [PATCH] s390: z/VM monitor stream. From: Martin Schwidefsky Add Linux - z/VM monitor stream. [PATCH] s390: collaborative memory management. From: Martin Schwidefsky Add collaborative memory management interface. [PATCH] s390: channel measurement block interface. From: Martin Schwidefsky Add channel measurement block interface. [PATCH] s390: zfcp host adapter From: Martin Schwidefsky Add new features to the zfcp host adapater driver: - Add support for FCP access control. - Error recovery enhancements. [PATCH] s390 syscalls.h update From: Arnd Bergmann With the s390 updates in -mm3, you also need this patchlet. [PATCH] s390: DCSS block device driver. From: Martin Schwidefsky Add z/VM discontiguos saved segments (DCSS) block device driver. [PATCH] dvb: Update subsystem docs From: Michael Hunold - dvb docs: added a nice howto on how to get Avermedia DVB-T running - nice tutorial for DVB newbie, too - dvb docs: fix various incorrect informations in cards.txt, faq.txt, firmware.txt [PATCH] dvb: Update saa7146 driver core From: Michael Hunold - saa7146: fix timeout bug on AMD64 in saa7146_wait_for_debi_done() - saa7146: release resources for video overlay properly, don't (incorrectly) rely on VIDIOC_OVERLAY(0) [PATCH] dvb: Minor Skystar2 updates From: Michael Hunold skystar2: renamed two functions, deleted spurious spaces. [PATCH] dvb: core update From: Michael Hunold - dvb-core: replace usage of sleep_on_...() with wait_event_interruptible_timeout() - dvb-core: fix dvb_ringbuffer_read/write() buffer pointer bug - video: added VIDEO_EVENT_FRAME_RATE_CHANGED and VIDEO_GET_FRAME_RATE ioctl [PATCH] dvb: Misc frontend updates From: Michael Hunold - alps_tdlb7 + alps_tdmb7: Changed to use full i2c reads in probing instead of i2c pings to be compatable with ttusb - nxt6000: bugfix by Robert Cook: FE_RESET did the same as FE_INIT, thus invalidating current channel settings on FE_RESET - sp887x: fixed typo - Makefile: add nxt6000 frontend driver to Makefiles - Kconfig: DVB_TDA1004X and DVB_NXT6000 do not depend on !STANDALONE (i.e. no compile-time firmware image necessary) - ves1820: turn off ves1820 test output pins - ves1820: verbose-print AFC only if carrier has been recovered - ves1820: change AFC handling as suggested by Robert Schlabbach, use bit 1 of the SYNC register for FE_HAS_SIGNAL [PATCH] dvb: stv0299 DVB frontend update From: Michael Hunold stv0299: Added seperate settings for SU1278 on Technotrend hardware [PATCH] dvb: tda1004x DVB frontend update From: Michael Hunold - tda1004x: standardised where the firmware should be. - tda1004x: need to re-invert inversion for tda10046 in get_fe() - tda1004x: reset chip before uploading firmware - tda1004x: split firmware upload off from frontend init. the initial tune attempt was taking too long. provide explanation of tuner frequency calculations - tda1004x: Fixed signal strength reading for tda10046h [PATCH] dvb: av7110 DVB driver update From: Michael Hunold - av7110: check result of saa7146_wait_for_debi_done() in av7110_bootarm() and bail out early if booting the ARM failed - av7110: correct voffset for analog standard - av7110: replace usage of sleep_on_interruptible_timeout() with wait_event_interruptible_timeout() [PATCH] dvb: TTUSB-Budget DVB driver update From: Michael Hunold - dvb-ttusb-budget: Fixed i2c code to detect nearly all errors - dvb-ttusb-budget: Added "V 2.1" to prevent warning message on driver load - dvb-ttusb-budget: Some printks turned into dprintks - dvb-ttusb-budget: Removed __initdata. It is now possible in kernel 2.6 to compile the DVB drivers into a monolithic kernel. - dvb-ttusb-budget: Fix for failing urb submission under 2.6 kernels [PATCH] n_tty.c cleanup From: James Simmons Remove kd.h. We don't need this header. Use the inline functions to set the current process state. [PATCH] M68k Macintosh driver config From: Geert Uytterhoeven Update Macintosh driver config logic: - Move remaining Mac/m68k-specific logic from arch/m68k/Kconfig to drivers/macintosh/Kconfig - Fixup Mac/m68k conflicts [PATCH] request_firmware(): misc fixes From: Manuel Estrada Sainz Based on patch and suggestions from Dmitry Torokhov - use vfree to free vmalloc memory. - Make sure fw_setup_class_device sets *class_dev_p to NULL in all case of error. - Fix error handling in firmware_class_init. [PATCH] request_firmware(): more misc fixes From: Manuel Estrada Sainz Based on patch and suggestions from Dmitry Torokhov - Take advantage of strlcpy. - Extra error logging. - Use struct coping instead of memcpy. - Put all aborting code in a single place, and fully abort if fw_realloc_buffer fails. - Abort on unexpected 'loading' values. [PATCH] request_firmware(): add status bitmap From: Manuel Estrada Sainz Based on patch and suggestions from Dmitry Torokhov - Make an status bitmap instead of using independent boolean variables. It will make things nicer later when new issues need to be tracked. [PATCH] request_firmware(): fix firmware_priv leak From: Manuel Estrada Sainz Based on patch and suggestions from Dmitry Torokhov - release 'struct firmware_priv' from class_dev->release. [PATCH] request_firmware(): race fixes From: Manuel Estrada Sainz - Remove races related to the handling and release of 'struct firmware' [PATCH] request_firmware(): refactor fw_setup_class_device() From: Manuel Estrada Sainz Based on patch and suggestions from Dmitry Torokhov - Refactor fw_setup_class_device for readability and maintainability. [PATCH] request_firmware(): fix attribute removal From: Manuel Estrada Sainz Based on patch and suggestions from Dmitry Torokhov - Don't remove attributes, they should be gone automatically. [PATCH] early printk documentation fix early printk documentation fix [PATCH] radeon config fix From: Herbert Xu RADEON is selecting I2C_ALGOBIT but as kconfig currently does not propagate selects up the dependency chain (that is according to Roman), this can leave I2C as m while I2C_ALGOBIT is y. [PATCH] Remove unused tty CALLOUT defines From: Marcelo Tosatti The callout code has been removed long ago from 2.6. I believe it is safe to remove some of its unused defines. [PATCH] don't use floating point in tdfxfb From: Jakub Bogusz This patch removes using of floating point operations in tdfxfb - they are really not needed here (these consts are used only in substitutions and comparisons with integers) are cause unresolved symbols on some archs - e.g. on alpha: *** Warning: "__ltdf2" [drivers/video/tdfxfb.ko] undefined! *** Warning: "__adddf3" [drivers/video/tdfxfb.ko] undefined! *** Warning: "__floatsidf" [drivers/video/tdfxfb.ko] undefined! [PATCH] mtd locking fix From: David Woodhouse , Dave Jones Add a missing unlock. [PATCH] C99 patch for fs/afs/inode.c From: "Art Haas" This patch converts the file to use C99 initializers. The file had this patch applied before, but a subsequent patch reversed the change and readded the GNU-style initializer. This patch brings back the C99 one. [PATCH] Kill bogus __KERNEL_SYSCALLS usage From: Dave Jones Now that the syscalls.h stuff is in mainline, that clears the way for this I guess? [PATCH] C99 initiailzers for drivers/isdn/i4l/isdn_common.c From: "Art Haas" Here's a small patch changing a few GNU-style initializers to C99 initiailzers. [PATCH] C99 initializers for drivers/net/wireless/airo.c From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] C99 initializers for drivers/net/wan/wanxl.c From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] C99 initializers for drivers/net/wan/pci200syn.c From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] C99 initializers for drivers/net/irda/irda-usb.c From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] C99 initializers for drivers/media/common/saa7146_video.c From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] C99 initializer for drivers/media/dv/frontend/stv0229.c From: "Art Haas" Here's a small patch changing GNU-style initializers to C99 initializers. [PATCH] C99 initializers for drivers/media/dvb/frontends/alps_tdlb7.c From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] C99 initializers for drivers/media/dvb/frontends/sp887x.c From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] C99 initializer for driver/media/dvb/ttpci/budget-av.c From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] V4L: Add new driver for Teletext decoder SAA5246A from Philips From: linux@MichaelGeng.de (Michael Geng) Add new driver for Teletext decoder SAA5246A from Philips. [PATCH] kbuild: add defconfig targets to make help From: Sam Ravnborg List all entries in arch/$(ARCH)/configs/*_defconfig when doing 'make help'. Results in output like this (ppc64 as example): g5_defconfig - Build for g5 pSeries_defconfig - Build for pSeries The implementation is generic and enables this for all users of _defconfig. [PATCH] wanmain.c build fix net/wanrouter/wanmain.c:195: error: parse error before "static" [PATCH] swsusp locking fix From: Herbert Xu update_screen() requires the console semaphore. [PATCH] Fix for a really stupid off by 1 bug. I goofed in my last patch to this code.. It reported 1 less CPU than it should have. Doh. [PATCH] m68knommu: remove non-existant option from defconfig Remove non-existent config option from defconfig. [PATCH] m68knommu: fix interrupt handler return types to be irqretur_t Fix interrupt handler return types to be irqreturn_t. [PATCH] m68knommu: use KERN_DEBUG in debug printk()'s Use KERN_DEBUG in all debugging printk() output. This patch originally from the kernel janitors. [PATCH] removal of ifdef MODULE from fs/openpromfs Removes gratuitous ifdefs - get_nodes() is only called from __init and by itself, check_space() is only called by get_nodes(), so they can be made unconditionally __init. [PATCH] Always put cache aligned code in own section, even for modules We put ____cacheline_aligned things in their own section, simply because we waste less space that way. Otherwise we end up padding innocent variables to the next cacheline to get the required alignment. There's no reason not to do this in modules, too. [PATCH] Clean up __cacheline_aligned arm-26, ppc, sparc, sparc64 and sh have per-arch definitions of __cacheline_aligned that are identical to default. And yes, removal is safe - all users of __cacheline_aligned actually pull linux/cache.h in. [Bluetooth] Initialize interval of ISOC URB's The urb->interval value must be set when submitting an ISOC URB. If this is not done, the usb_submit_urb() call fails. Patch from Andreas Kemnade [JHASH]: Make key arg const in jhash(). [NET]: Capture skb->protocol after invoking bridge. [ATM]: [lec] put back pressure on network stack [NET]: Export sysctl_optmem_max to modules. [PATCH] switch alpha to use drivers/Kconfig This switches alpha to use drivers/Kconfig instead of including most of files included by drivers/Kconfig, thus enabling previously omitted i2c (already used in some drivers available on alpha) and telephony drivers. Because drivers/message/fusion/Kconfig was included only conditionally ("if PCI"), this patch also changes CONFIG_FUSION to depend on PCI. (these changes were consulted with Christoph Hellwig in "i2c on alpha - used but not available in 2.6.3" thread on LKML) [IRDA]: Fix handling of shared IRQs in smsc-ircc2 driver.: [IRDA]: COnver irda-usb to dynamic device allocation. [IRDA]: Rename setup_dma to irda_setup_dma. [IRDA]: Make more symbols static, to avoid namespace pollution. [IRDA]: Make more symbols static, to avoid namespace pollution. [IRDA]: Make more symbols static, to avoid namespace pollution. [IRDA]: Make more symbols static, to avoid namespace pollution. [IRDA]: No need for volatile type when using set/test_bit. [IRDA]: Kill infrared_mode, unused. [IRDA]: Kill dev_flags, unused. [IRDA]: Hashbin cleanups, remove unused code and add const where needed. [IRDA]: Zap bogus wireless.h include. [IRDA]: Make irda_device_txqueue_empty inline. [IRDA]: Mark irport driver as having locking issues. [IRDA]: Rename dongle entry points for consistency. [RXRPC]: C99 initialiers for net/rxrpc/connection.c [SPARC64]: Fix compile warning from RW_LOCK_UNLOCKED with spinlock debug enabled. [PATCH] siimage.c: limit requests to 15kB only for Seagate SATA drives Fix from jgarzik's sata_sil.c libata driver. This was in -mm for a long time... [PATCH] add UDMA6 support to ALi PCI IDE driver From: Vojtech Pavlik Add UDMA6 support to ALi PCI IDE driver. Forward port from 2.4 and a patch from ALi. Was in -mm for a long time... [PATCH] fix ide_system_bus_speed() causing "Badness in pci_find_subsys..." Noticed by Marcel Cotta . ide_init() always initializes system_bus_speed variable so system_bus_clock() should never call ide_system_bus_speed() and no driver is calling ide_system_bus_speed() directly. Bug was that if no IDE kernel parameter was given during boot system_bus_speed will be zeroed in init_ide_data(). This patch should fix the problem (as a bonus -> no need to zero these variables they are static). [PATCH] ide-io.c: CONFIG_LBD fix From: Andrew Morton Use sector_t for the block number. [PATCH] explicitly define PRD_ENTRIES to 256 From: William Lee Irwin III PRD_ENTRIES is specified to be precisely 256; on platforms where PAGE_SIZE varies from 4KB the calculation in the current expression defining it is inaccurate, which may cause crashes. This patch changes it to the constant literal 256. [PATCH] remove redundant ide_setup_pci_device{s}() declarations [PATCH] ide-proc.c: remove unused MIN() macro [PATCH] ide-taskfile.c: remove debugging placeholders IEEE1394(r1165): Better pending packet handling, patch from Steve. [PATCH] cyclades async driver update This patch is the first of several planned fixes for the cyclades multiserial cards driver. Its mostly a sync with in-house driver: - Prevent users from opening non-existing Z ports - Implement special XON/XOFF character handling in Z cards - Prevent data-loss on Z cards - Throttling fix for Z card - Only throttle if CTS/RTS are set - Fix accounting of received data Kudos to Cyclades R&D [PATCH] multicast broken on x86_64 The x86-64 implementation of csum-partial.c causes it to compute the checksum incorrectly. As a result, multicast doesn't work. It looks as though iptables is also affected. Here's a simple patch. Don't allow memory "lines" argument in "xor_p5_mmx_5()". Since we do push/pops, a stack-based memory argument would do the wrong thing by using the wrong offsets. [SPARC64]: Update defconfig. [PATCH] Improve code generation for x86 raid XOR functions This helps avoid doing push/pop pairs on register contents that we just don't care about. After we've done the xor, the pointers are dead anyway. [PATCH] fix x86_64 build for sys_device_register rename fix x86_64 build for sys_device_register rename [libata] limit S/G table size to 128 entries Agreeing with Ben H's recommendation, I reduce the max-hw-segments number to 128, to match max-phys-segments number. This shouldn't affect performance because 128*64K is far above the max transfer size for most current IDE devices. Even 128*4K is OK. [libata ata_piix] add support for ICH6 [libata ata_piix] Update PCI quirk with new Intel SATA devices And also make a note in ata_piix.c so this is not forgotten in the future. Add Intel ICH6 PCI ids to pci_ids.h. Add Intel ICH6 irq router. Add Intel PCI ids to old-OSS driver i810_audio [ACPI] include CONFIG_ACPI_RELAXED_AML code always add acpi=strict option to disable platform workarounds Add Intel PCI ids to IDE (PATA) driver. [XFS] Use same string for identifying whether security namespace is enabled. SGI Modid: xfs-linux:xfs-kern:166409a [SPARC]: Move ptrace_signal_deliver() implementation out of header file. [XFS] Add XFS_FS_GOINGDOWN interface to xfs. SGI Modid: xfs-linux:xfs-kern:166489a [XFS] Add I/O path tracing code, useful in diagnosing that last unwritten extent problem. SGI Modid: xfs-linux:xfs-kern:166497a [ACPI] ACPICA 20040220 from Bob Moore Implemented execution of _SxD methods for Device objects in the GetObjectInfo interface. Fixed calls to _SST method to pass the correct arguments. Added a call to _SST on wake to restore to "working" state. Check for End-Of-Buffer failure case in the WalkResources interface. Integrated fix for 64-bit alignment issue in acglobal.h by moving two structures to the beginning of the file. After wake, clear GPE status register(s) before enabling GPEs. After wake, clear/enable power button. (Perhaps we should clear/enable all fixed events upon wake.) Fixed a couple of possible memory leaks in the Namespace manager. [XFS] use generic XFS stats and sysctl infrastructure in pagebuf SGI Modid: xfs-linux:xfs-kern:166505a [XFS] Use a naming convention here thats more consistent with everything else. SGI Modid: xfs-linux:xfs-kern:166562a [PATCH] PPC64 iSeries virtual disk driver From: Stephen Rothwell Add the PPC64 iSeries virtual disk driver [PATCH] Add kallsyms_lookupname() From: Rusty Russell Attached patch adds a kallsyms_lookupname() function for lookups of a symbol name to an address. Debuggers such as ppc[64] xmon can use this. It's intentionally not exported as a symbol for module use, since it can be used to circumvent other symbol export restrictions. [PATCH] ppc64: use kallsyms_lookup_name() in xmon From: olof@austin.ibm.com Use the new kallsyms_lookup_name() in xmon on ppc64. Ben said he might backport these changes to ppc32 as well. [PATCH] ppc64: move sg_dma_{len,address} macros From: Anton Blanchard From: Stephen Rothwell This moves the sg_dma_* macros to asm/scatterlist.h where they belong (and where almost every other architecture has them). [PATCH] ppc64: Fix a sleeping with spinlock bug in ioremap From: Benjamin Herrenschmidt ppc64 uses its own range allocator for ioremap (in order to allocate things in a different space than normal vmalloc). This is historic stuff, we may get rid of it, but in the meantime, here's a patch turning the spinlock in there into a semaphore so it doesn't blow up when doing kmallocs. [PATCH] knfsd: NGROUPS fixes From: Neil Brown Tidy up new groups handling in nfsd. Set up the group_info structure when decoding the RPC packet instead of in nfsd. [PATCH] nfsd: don't modify group_info structures From: Neil Brown Make sure nfsd doesn't modify group_info structures as they might be shared. [PATCH] kNFSd: Add minimal server-side support for rpcsec_gss. From: NeilBrown From: "J. Bruce Fields" Note that the user (or exportfs, on the user's behalf) allows a gss pseudoflavor to be used to access an export by exporting to a special client named "gss/pseudoflavor-name", e.g., "gss/krb5" or "gss/lipkey-i". [PATCH] kNFSd: gss api changes for integrity checking. From: NeilBrown Doesn't actually add integrity support on the server yet; just adapts server-side code to the gss api changes necessary to get integrity working on the client. [PATCH] kNFSd: IDmap support for the NFSv4 server. From: NeilBrown Updated version which uses ascii-encoding of messages, from http://www.citi.umich.edu/u/marius/linux-2.5.70-idmap-server-new.diff as of October 14, 2003. [PATCH] kNFSd: Nfsdv4 pointer cleanup From: NeilBrown From: "William A.(Andy) Adamson" Compare inode pointers instead of dentry pointers when checking an inode refered to by a stateid against an inode refered to by a file handle. Set st_vfs_set to 0 if the stateid/file handle check fails to avoid referencing bad state when reaping stateid's. [PATCH] kNFSd: NFSv4 locking state fix From: NeilBrown It's OK for the find_lockstateowner_str to fail; that just means we haven't seen the lockowner, and will compare the request range to all locks on the file. [PATCH] kNFSd: v4 exclusive open fix. From: NeilBrown Exclusive creates were failing with permission errors, because they don't set the mode on the newly created file, and the permission check in fh_verify (called at the end of do_open_lookup) was failing. So pass in the MAY_OWNER_OVERRIDE flag to allow the owner of the file to override the permission check. [XFS] Remove a superflous i_size_write SGI Modid: xfs-linux:xfs-kern:166629a [PATCH] kNFSd: Use higher-resolution time for the changeinfo, instead of using time and filesize. From: NeilBrown Use higher-resolution time for the changeinfo, instead of using time and filesize. [PATCH] kNFSd: When looking for a shareowner in the nfsd open, make sure we don't get a lockowner instead. From: NeilBrown When looking for a shareowner in the nfsd open, make sure we don't get a lockowner instead. [PATCH] kNFSd: NFSdV4 fixes for replaying open requests. From: NeilBrown Since the open op changes the current filehandle, we can't correctly replay compounds containing opens unless we save the filehandle resulting from the open as well as the encoded reply. [PATCH] kNFSd: Use only the uid when deciding whether a setclientid is being done with the "same principal". From: NeilBrown I would have assumed that we should also check for the same security (pseudo)flavor, but that doesn't seem to be how Solaris does it, and since the spec doesn't suggest including such information in the clientid, that would make it impossible to switch pseudoflavors. [PATCH] kNFSd: When looking for a shareowner in the nfsd open, make sure we don't get a lockowner instead. From: NeilBrown When looking for a shareowner in the nfsd open, make sure we don't get a lockowner instead. [PATCH] kNFSd: readdir error code fix From: NeilBrown changes nfserr_readdir_nospc to nfserr_toosmall, following rfc3530 which has no nfserr_readdir_nospc. error 10030 which was nfserr_readdir_nospc is actually nfserr_restorefh. [PATCH] kNFSd: correctly tests and sets nfserr_nofilehandle for current and save fh. From: NeilBrown nfsd4_restore_fh() returns nfserr_restorefh instead of nfserr_nofilehandle [PATCH] kNFSd: Fix for lookup-parent at pseudo root From: NeilBrown tests if current_fh is the pseudo root for the client and returns nfserr_noent if so. need to call exp_pseudoroot because different clients can have [PATCH] kNFSd: Correct error returns. From: NeilBrown Call decode_fattr on writable attributes to check for xdr errors, incorrect utf8, etc. [PATCH] kNFSd: fixes an xdr error by removing the verifier from error return. From: NeilBrown [PATCH] kNFSd: correct symlink related error returns. From: NeilBrown unlike v2/v3, nfsv4 returns nfserr_inval when attempting to read, write, commit or test lock a symlink. nfsv4 does return nfserr_symlink on lookup and open, so a simple fix in fh_verify() will not work. [PATCH] kNFSd: check lock length, return appropriate error From: NeilBrown check lock length, return appropriate error [PATCH] kNFSd: correct rename error returns. From: NeilBrown unlike v2/v3, nfsv4 returns nfserr_exist in some situations where the underlying filesystem returns nfserr_isdir, nfserr_notdir. on rename, nfsv4 returns nfserr_notdir instead of nfserr_symlink. [PATCH] kNFSd: unlock-on-close fix From: NeilBrown add the bookeeping necessary to remove all locks held by an nfsv4 lockowner upon CLOSE, or upon state expiration. calls locks_remove_posix(). replace list_del_init() with list_del on nfsv4 state structures that are being reaped. [XFS] Fix up daemon names SGI Modid: xfs-linux:xfs-kern:166665a [PATCH] kNFSd: Remove a comment that is no longer accurate From: NeilBrown Remove a comment that is no longer accurate [PATCH] kNFSd: move fh_dup2 and fix it From: NeilBrown fh_dup2 duplicates an entire svc_fh structure, so in addition to dget()'ing the dentry, it also needs to bump the reference count on fh_export. Moved it out of the header file into nfsfh.c for the simple reason that I couldn't figure out how to reorganize the headers files right so that the fh_dup2 could use the definition of svc_fh. Since fh_dup2 is never actually used outside of nfs4proc.c, it could just as well be moved there.... [PATCH] kNFSd: Implement the nfsv4 RELEASE_LOCKOWNER operation. From: NeilBrown Implement the nfsv4 RELEASE_LOCKOWNER operation. [PATCH] kNFSd: add OP_ILLEGAL, and fix processing of compounds with out of bounds op numbers. From: NeilBrown add OP_ILLEGAL, and fix processing of compounds with out of bounds op numbers. [PATCH] kNFSd: fix an error return for OP_CREATE From: NeilBrown fix an error return for OP_CREATE [PATCH] kNFSd: Add a check in OP_LOCK for new lockowners to ensure that the open stateid is From: NeilBrown owned by the lockowner clientid. [PATCH] kNFSd: Corrects an error return for OP_OPEN_CONFIRM. From: NeilBrown Corrects an error return for OP_OPEN_CONFIRM. [PATCH] kNFSd: Enforce open_downgrade requirement From: NeilBrown The spec requires that the access and deny bits requested in open_downgrade represent the union of the bits for some subset of the OPENS for the given open_owner and file. Enforce that requirement. [PATCH] kNFSd: Fix an out-of-spec readlink error return. From: NeilBrown Fix an out-of-spec readlink error return. [PATCH] kNFSd: Fix an out-of-spec error in nfsd4_remove. From: NeilBrown Fix an out-of-spec error in nfsd4_remove. [PATCH] kNFSd: Miscellaneous fixes to stateid-based replay From: NeilBrown Save replays for LOCK operations, make sure errors are replayed correctly. [PATCH] kNFSd: Fix out-of-spec error return in attribute decoding. From: NeilBrown Fix out-of-spec error return in attribute decoding. [PATCH] kNFSd: Make the calculation in the first READ_BUF easier to understand. From: NeilBrown Don't rely on the assumption that sizeof(stateid_t) == sizeof(stateid_opaque_t) + 4. [PATCH] kNFSd: make sure sunrpc init routines called before gss init routines. From: NeilBrown make sure sunrpc init routines called before gss init routines. [PATCH] kNFSd: return more than one page of directory entries. From: NeilBrown From: Bruce Allan This requires checking if the entry will fit in the current page and, if it doesn't, encoding it into the next page, and then copying it back to lie across the boundary between two pages. [PATCH] Add a MODULE_VERSION macro From: Rusty Russell The way it works is that the .mod file contains the name of the module (as before), but succeeding lines are the constituent parts (assumed to be .c files, which usually works: if they use MODULE_VERSION in a file for which this isn't true we'll get a warning). As we postprocess modules, we look in the .modinfo section for a "version=", which is placed by the MODULE_VERSION() macro. This will be of form "version=" "\0" [24 chars] "\0". The 24 chars are replaced by the md4 sum of the .c files and any files they #include using '#include "file"' which are found in the current directory. Whitespace is collapsed outside strings, and comments are ignored for purposes of the sum. The result is a .modinfo entry such as version=1.16ac-rustytest B13E9451C4CA3B89577DEFF At the kernel summit, various people asked for a MODULE_VERSION macro to store module strings (for later access through sysfs). A simple md4 is needed to identify changes in modules which, inevitably, do not update the version. It skips whitespace and comments, and includes #includes which are in the same dir. The module versions should be set according to this definition, based on the RPM one, or CVS Revision tags. Violators will be shot. [`:'][`-'] : A (small) unsigned integer which allows you to start versions anew. If not mentioned, it's zero. eg. "2:1.0" is after "1:2.0". : The may contain only alphanumerics. : Like , but inserted for local customizations, eg "rh3" or "rusty1". Comparison of two versions (assuming same epoch): Split each into all-digit and all-alphabetical parts. Compare each one one at a time: digit parts numerically, alphabetical in ASCII order. So 0.10 comes after 0.9. [XFS] Fix BUG in debug trace code, it was plain wrong for the unmapped page case. SGI Modid: xfs-linux:xfs-kern:166828a [PATCH] rename other MODULE_VERSION users Avoid cpp clash with the new MODULE_VERSION [PATCH] fbdev cursor fix From: James Simmons This patch creates a separate cursor image drawing region and regular drawing region. [XFS] Merge missing mount stripe-unit/width-alignment check. SGI Modid: xfs-linux:xfs-kern:166614a [XFS] Fix the by-handle attr list interface (used by xfsdump) for security attrs. SGI Modid: xfs-linux:xfs-kern:167038a [XFS] only lock pagecache pages SGI Modid: xfs-linux:xfs-kern:167054a [XFS] Implement mrlocks on top of rwsems, instead of using our own mrlock code. SGI Modid: xfs-linux:xfs-kern:167181a [XFS] Fix length of mount argument path strings, off by one. SGI Modid: xfs-linux:xfs-kern:167192a [XFS] Fix log recovery case when have v2 log with size >32K and we have a Log Record wrapping around the physical log end. Need to reset the pb size back to what we were using and NOT just 32K. SGI Modid: xfs-linux:xfs-kern:167196a [ARM] Cleanup MODULE_* macros Thanks to Adrian Bunk. Remove kernel 2.0 #ifdef's from arm code, and move MODULE_* to the end of the file. Add an appropriate MODULE_LICENSE(). [PATCH] Fix broken PIIX build Fix the build. Pass me a brown paper bag. IEEE1394(r1166): Move generic packet initialization to kmem_cache ctor. IEEE1394(r1167): Cleanup hostnum allocation to prevent race of double allocation. IEEE1394(1164): Added 1394 acknowledge codes. [ARM] Update sa1111-pcibuf for dmapool changes. - use dev_dbg for device-centric debugging messages - use pr_debug for general debugging messages - use dmapools instead of pcipools - use NULL rather than 0 for NULL pointers - use enum dma_data_direction rather than int - use DMA_* direction definitions rather than PCI_DMA_* - only check for sane DMA direction on mapping functions, but check that DMA direction matches when unmapping/syncing. [ARM] Add SA11x0 sched_clock() implementation. [ARM] Remove obsolete sysctl PM interface. The old sysctl PM interface has been replaced by the driver models interface. This has been gone for a while in the -rmk tree and no one complained, so there's no point keeping it around. [ARM] Update mach-types definitions file. [ARM] Improve bad IRQ reporting. This gives greater information on the cause of the bad IRQ, allowing the cause to be more effectively traced. [ARM] Optimise readsl. This optimises the underlying string-long read function for little endian platforms. [ARM] Allow decompressor to use "cache type" register This allows the decompressor to automatically detect the geometry of the cache while booting to ensure correct behaviour over a wider number of ARM CPUs. [ARM] Add resources and platform devices for SA11x0 serial ports. [PATCH] ppc64: Fix warning on pmac build Fix a stupid warning in PowerMac SMP build on ppc64 [PATCH] radeonfb: small cleanup of common register init This removes the unused common_regs_m6 and add one more register to be cleared, according to latest XFree code from ATI. [PATCH] ppc64: physical RAM accounting fix On machines with an IO hole (like Apple G5 with more than 2Gb of RAM, but also some pSeries) we failed to properly account for the real amount of physical RAM and inform the zone allocator of our hole size. During the process, I included Anton slaughtering of the guard page we had in the first 256Mb kernel segment, thus allowing this segment to be mapped with large pages as it should be. [PATCH] ppc64: Fix /dev/mem idea of what is memory This adds a hack to /dev/mem (along with the other ones already there) to prevent mapping cacheable of the IO hole. Without this, XFree blows up on machines with enough memory to go past the IO hole. It also tries to prevent memory from beeing mapped uncached. Cache paradoxes are evil and can kill the CPU. The necessary page_is_ram() call was added by the previous patch doing the proper IO hole accounting. [PATCH] ppc64: iommu rewrite Lots of things renamed, sillicaps killed, stuffs moved around and common code properly extracted from implementation specific code, new allocator, etc... The code is overall a lot simpler, faster, less prone to fail, and a lot more manageable. I didn't use "bk mv", there is no need to keep the old history attached to the new file. [PATCH] ppc64: Fix drivers/ide when using an IOMMU Make IDE advertise only 128 entries of SG table on archs with an IOMMU. The current IOMMU implementations of pci_map_sg() may produce segments that don't match the boundary requirements of IDE, thus causing the driver to break them up. The BIO is supposed to account for that, however, it cannot account for a pci_map_sg producing a segment of the requested size, but with incorrect alignement, thus we may still try to break up the list in more entries than is supported by the HW. A similar fix already went in libata. The "real" long term fix will be to move the boundary requirements to struct device so that pci_map_sg() can respect them when producing the sglist. In the meantime, this band-aid works around the problem. [PATCH] ppc64:Implement support for Apple DART IOMMU (PowerMac G5) This allows us to use more than 2Gb of RAM on a PowerMac G5. You can also boot with iommu=off to disable it, but then you get back the 2Gb RAM limitation. [ARM] amba_{request,release}_regions Add documentation for the above two functions. Allow a NULL name to be passed to amba_request_regions. In this case, we use the driver's name associated with the device. [PATCH] ppc64: fix kernel access of user pages Set the ks bit on userspace segments otherwise the kernel can read/write into userspace mprotected pages. [PATCH] ppc64: TLB flush rework ppc64 tlb flush rework from Paul Mackerras Instead of doing a double pass of the pagetables, we batch things up in the pte flush routines and then shoot the batch down in flush_tlb_pending. Our page aging was broken, we never flushed entries out of the ppc64 hashtable. We now flush in ptep_test_and_clear_young. A number of other things were fixed up in the process: - change ppc64_tlb_batch to per cpu data - remove some LPAR debug code - be more careful with ioremap_mm inits - clean up arch/ppc64/mm/init.c, create tlb.c [PATCH] ppc64: fix pci hotplug compile error Fix a compile error in the ppc64 pci hotplug code. [PATCH] ppc64: remove CONFIG_VETH CONFIG_VETH isnt used anymore so we lets get rid of it. [PATCH] ppc64: defconfig update Add an iseries defconfig and update the pseries one. [SCTP] Fix incorrect INIT process termination with sinit_max_init_timeo. Currently, sinit_max_init_timeo is treated as the maximum timeout value for INIT retransmissions and the INIT process is aborted when the timeout reaches this value. But as per the SCTP sockets API draft, sinit_max_init_timeo only limits the timeout. The INIT process should be aborted only after MAX_INIT_RETRANSMITS. [IDE] Create DECLARE_PIIX_DEV declarator, to eliminate a large amount of redundancy, and to help prevent future errors. [ARM] Make free_memmap() use PFNs instead of physical addresses. ppc64: fix non-iSeries build Add d_type information to legacy readdir system call [PATCH] ia64: make hugetlbfs page size a boot-time option This patch makes it possible to select the hugetlbfs page size at boot-time, rather than at compile-time. We believe we have resolved all the remaining issues. All critical speed path has been taken care of, i.e., vhpt handler and context switch. There should be no performance penalty with this dynamic hugetlb page size feature. We would like to thank Jack Steiner for his initiative on this feature and his initial cool working patch. kobject: fix kobject hotplug debug message to show more needed info. kobject: clean up kobject_get() convoluted logic. [PATCH] ppc64: virtual IO bus updates This makes GregKH happy by removing the device name from the device.bus_id field (and replacing it with a "name" sysfs attribute). It also renames the parent device from "vdevice" to "vio", making the /sys/bus and /sys/devices hierarchies consistent. [PATCH] Driver for IBM service processor - updated (1/2) Here is a device driver for the IBM xSeries RSA service processor. The ibmasm driver is mainly intended to be used in conjunction with a user space API and systems management applications that need to get in-band access to the service processor, such as sending commands or waiting for events. For the remote video feature the driver relays remote mouse and keyboard events to user space. By itself the driver also allows the OS to make use the UART on the service processor board as a regular serial line. The user interface to the driver is a custom file system. It does not use sysfs since the operations on the files are somewhat beyond the one file / one value rule for sysfs. Since it is not strictly a char driver I put it into the drivers/misc directory. The patch is fairly big, therefore I split it up into the file system part and the everything-else part. Here is the non-filesystem part: [PATCH] Driver for IBM service processor - updated (2/2) Here is the filesystem part for the IBM RSA service processor device driver [PATCH] hp100 -- isa probe fix Jeff, here is a cleaned up version of the 2.6.3 hp100 isa (non-modular) probing. It needs to check for the board being present before reading the signature. [SUNRPC]: Use '%z' for size_t printk in svcauth_gss.c [MTD] Fix build errors in Lubbock MTD map driver. [ARM] Fix SA1111 OHCI IRQ handler return type. [MTD] Fix ARM Firmware Suite MTD partition detection. Tighten AFS partition checks: - check footer checksum. - check that the image name is NUL terminated. - return error from mtd->read intact. This prevents us finding bogus AFS partitions. Linux 2.6.4-rc1 [MTD] Update integrator-flash.c with MTD CVS. Allow command line partitioning for use with Integrator flash. [PATCH] ia64: move irq_entry()/irq_exit() to ia64_handle_irq() This patch fixes a bug which could cause do_softirq() to be called at the wrong time (from do_IRQ()) or without pre-emption protection. [PATCH] export locks_remove_posix kNFSd needs it. [PATCH] ppc64: Add iommu=on for enabling DART on small-mem machines This makes it possible for people like me with a small-mem G5 to enable the DART. I see two reasons for wanting to do so: 1. To debug/test DART/iommu code itself (small audience, including myself). 2. To debug drivers on small-mem machines, since bad pci_map*() usage will be punished (possibly larger audience). IEEE1394(r1168): Add on a mempool for packet allocation, in addition to the kmem_cache. IEEE1394(r1169): Trivial cleanups. IEEE1394: Revision sync ia64: Fix IDE block-layer BUG_ON() reported by Darren Williams. The problem was that IDE-disks on machines with IDE harddisks, memory above 4GB and no hardware I/O TLB would go BUG_ON() in blk_queue_bounce_limit() because the IDE-controller could only address 4GB of memory and that was much less than BLK_BOUNCE_ISA (which is equal to ISA_DMA_THRESHOLD). Note that the problem does NOT trigger with CD-ROMs, which always uses the software I/O TLB (and hence bounce-buffers) on such machines. The best fix seems to be to simply lower ISA_DMA_THRESHOLD to 4GB-1 since that will ensure that the IDE block layer allocates memory with GFP_DMA, which will minimize bounce buffering. [PATCH] ia64: perfmon update - fix bug in pfm_unload(), not allowed when not on correct CPU for system-wide - some perf/cleanup in overflow handler - fix reset_pmds to be on a per PMD basis on counter overflow rather than global - remove timing debug code on messages - no kernel info leak on PFM_END_MSG - remove double-store on reg_flags for pfm_write_pmcs, pfm_write_pmds - on restart reset_pmds is 0 by default - cleanup useless macros - cleanup some debug prints - added ability to remove debug code - streamlined sys_perfmonctl(), pfm_read_pmds(), pfm_write_*() - added current->tgid to default format sample header by using one reserved field [PATCH] ia64: greatly speed-up I/O-SAPIC irq_enable()/irq_disable() This patch changes the I/O SAPIC code to cache the low 32 bits of the mask word in kernel memory. This greatly speeds up mask_irq() and unmask_irq(). Normally, these operations are not on the speed-critical path of the kernel but with certain devices drivers (including users-level device- drivers) they can become performance-critical. ia64: Fix pdflush-triggered stack-overflow due to long thread-creation chains. The pdflush kernel threads can lead to an unbounded chain of thread-creations which can overflow the kernel stacks because we didn't uses to reset the stack on kernel thread-creation. We do now. Reported by Andreas Schwab, tracked down with help from Keith Owens. [ARM] Update ICS IDE driver. Update ICS IDE driver with ide-dma and bio changes. IEEE1394/SBP2(r1170): Unblock scsi requests specifically in the update callback. IEEE1394/Video1394(r1171): Fix bug with cdev_add usage from a previous change. [PATCH] ppc64: Use iommu=force instead of iommu=on for commonality with x86_64 [PATCH] oprofile needs smp_num_siblings on x86-64 P4 oprofile needs cpu_sibling_map and smp_num_siblings, the later was not exported [PATCH] move rme96xx to Documentation/sound/oss/ From Hans Ulrich Niedermann All sound documentation with the exception of the OSS rme96xx documentation is under Documentation/sound/{alsa,oss}. Move the rme966xx docs, and fix the Kconfig comments [PATCH] oops on HPFS filesystem file rename Maurice van der Stee noted that he got an oops on a HPFS filesystem when saving an edited file.. This fixes it. That, BTW, means that *nobody* had ever tried to use hpfs r/w since 2.5.3-pre3. [ARM] Always return IRQ_HANDLED for USB interrupts The SA1111 appears to re-trigger an interrupt immediately following a successful interrupt, despite no interrupt actually pending. [TCP]: Restart tw bucket scan when lock is dropped, noticed by Olof Johansson. IEEE1394(r1172): Generalize the default config rom entries for new hosts. [libata] Use scsi_finish_command as completion function, in our error handling thread callback. This also exports scsi_finish_command in the SCSI layer. Thanks much to James Bottomley and his patience, as this solution was figured out. IEEE1394(r1173): Small change to csr1212 prevent possible kernel panics from improper directory parsing. [ATM]: Gcc-3.5 fix for net/atm/lec.c [Bluetooth] Use BT_ERR wherever possible This patch neatens the code by using BT_ERR and so using the function name in the macro to save code and rom space. Patch from Joe Perches [NET]: Propagate dev_mc_{add,delete}() error to SIOC{ADD,DEL}MULTI. Noticed by Randy Dunlap. [AF_UNIX]: Add SOCK_SEQPACKET support. [AF_UNIX]: Mark unix_*_ops as static. IEEE1394(r1174): Fixed a problem parsing directories with null entries. [SPARC64]: Add support for CONFIG_DEBUG_STACK_USAGE. IEEE1394/eth1394(r1175): Added MODULE_DEVICE_TABLE(). IEEE1394: Revision sync. IEEE1394(r1176): Remove mempool and ctor stuff. IEEE1394/dv(r1177): Fix dv1394 devfs cleanup. [PATCH] lost Amiga Hydra Ethernet patch On Fri, 27 Feb 2004, Linus Torvalds wrote: > Ok, as usual, there was a lot of stuff for the -rc1, but as seems to be > more and more true it is mainly in the "periphery". > > Andrew Morton: > o m68k: Amiga Hydra Ethernet new driver model This part of the patch seems to have been lost (root_hydra_dev is no more): [PATCH] Update via-rhine Kconfig entry Previous Kconfig change was incorrect, this is a better one. IEEE1394/ohci(r1179): Remove ohci->id. It was just the same as host->id anyway. [ACPI] acpi_boot_init() cleanup suggested by Matt Wilcox HPET doesn't depend on IOAPIC [TIGON3]: tg3_phy_copper_begin() tweaks. - Zap wait_for_link arg, never set. - Decrease delay loop when forcing link down. [BR_NETFILTER]: Fix vlan-encapsulated fragmented IP traffic. When vlan-tagged fragmented IP traffic passes the bridging firewall and ip_conntrack is loaded and iptables sees this IP traffic, an oops can occur when trying to fragment the defragmented packets. This only happens in the slow_path of ip_fragment(). The problem was reported, diagnosed and fixed by Adam Osuchowski and Tomasz Dubinski. When ip_fragment() is fragmenting an IP packet that's encapsulated, it has to make sure there is enough head room for the encapsulating header. The patch below fixes it. I saw no other way than to add some code to ip_fragment(), but this extra code is located in the slow_path so it's hardly ever executed. [ACPI] Support for PCI MMCONFIG for PCI Express (Matt Wilcox) [ACPI] delete ACPI table parsing code from bootflags module SPARC/m68k: Remove sun_setup_serial references, which is already gone. [PATCH] fix CDROM_SEND_PACKET 32 -> 64-bit translation Here's a much better version. The real bug was of course that the get_user/put_user for data_direction were transposed. This patch also fixes the translation of "quiet" and "timeout" to be safer and clearer (instead of memcpying them as two ints and knowing that "quiet" is first and assuming that "compat_int_t" is always the same as the native "int", the code now handles them explicitly). We should use "access_ok()" and __get_user/__put_user to generate better code for this, but it's not performance-critical, so we don't care. Some other day, perhaps. [PATCH] PCI Hotplug: Patch to get cpqphp working with IOAPIC On Fri, Feb 13 2004, Sy, Dely L wrote: > Since filling out the INTERRUPT_LINE is needed for systems running > with legacy irqs and not needed for systems running with IO-APIC. The > possible > solutions: > 1) Best is there is a run-time check (a flag or an API call) that tells > whether the system is running on legacy mode or IO-APIC mode. Is there > such check that you know of? Dan suggested that we look at what IRQ the hotplug controller has been assigned in the MPS table. If its < 0x10 we're in legacy/mapped mode. That would probaly work > > > > > > Do those servers work on 2.6.2 without my patch? > > > > > > Yes > > They work but they get dev->irq = 9 or 11 in the APIC enabled mode. > Correct? > Yes. All hot-added adapters get legacy IRQs like IRQ5 in the example below where eth2 was added after bootup: linux:~ # cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 831113 0 0 0 IO-APIC-edge timer 1: 255 0 0 0 IO-APIC-edge i8042 2: 0 0 0 0 XT-PIC cascade 5: 0 0 0 0 XT-PIC eth2 8: 2 0 0 0 IO-APIC-edge rtc 12: 92 0 0 0 IO-APIC-edge i8042 14: 29 0 0 0 IO-APIC-edge ide0 20: 0 0 0 0 IO-APIC-level cciss0 21: 0 0 0 0 IO-APIC-level cciss1 29: 107 0 0 0 IO-APIC-level eth0 30: 7702 0 0 0 IO-APIC-level aic7xxx 31: 30 0 0 0 IO-APIC-level aic7xxx 34: 336 0 0 0 IO-APIC-level cpqphp.o, cpqphp.o NMI: 0 0 0 0 LOC: 830760 830893 830892 830891 ERR: 0 MIS: 0 I attached a patch that does the legacy mode check that Dan suggested and IRQs for hot-added adapters seems to be given out in the APIC range. [PATCH] Re: 2.6.4-rc1 + hp100 EISA, not working >>>>> "Pawel" == Pawe writes: Pawel> On 2.6.3 it just Oopsed and didn't work. On 2.6.4-rc1 it does Pawel> not oops but it doesn't work (neither as module nor as build in kernel). Note that hp100 in 2.6.4-rc1 is still broken wrt EISA probing, since it lacks the terminating entry in the EISA ID list. This one-liner should take care of random crashes that are often reported to LKML : ===== drivers/net/hp100.c 1.24 vs edited ===== [PATCH] Wireless pcmcia netdev patches On Mon, Nov 17, 2003 at 02:57:44PM -0800, Jean Tourrilhes wrote: > On Sun, Nov 16, 2003 at 11:33:01PM +0000, Russell King wrote: > > Jean, > > > > Could you please arrange for this patch to be tested? It covers all > > the PCMCIA wireless drivers in 2.6.0-test9; I haven't been able to > > test. > > Dual P500, kernel 2.6.0-test9 + your patch. > ------------------------------------------------- >... > Few comments : > o Yanked the cards out of the socket, cardmgr did ifconfig > down and removal of module automatically. > o I did not see any patch for the Orinoco driver, but I did > not check if it needs one. Did not look at HostAP either... > o wl3501_cs : ask Arnaldo. > o With 2.6.0-test9, I had instances of "can't read CIS". I > actually had to reboot to perform the test. > o The kobject Oops is something I think I saw before. I never > remove my Aironet card because I don't want to reboot :-( This time, > it seems to have survived better, so I see that as progress ;-) This patch seems to have been forgotten about, so here it is again, this time against 2.6.4-rc1. This really needs to be send upstream, though I don't know where we got to with this one. Maybe we should put it in akpm's tree for a while? It's essentially more of the "don't deadlock if you pull out a PCMCIA network card and it's currently configured up" patch which went in recently for PCMCIA NIC cards. [PATCH] Fix USB printer transfers From Barry K. Nathan This fixes the ulblp transfer length code, which would otherwise skip the final iteration and lead to incomplete printer output (and us waiting forever for the transfer to complete) [PATCH] ppc64: make "viodev->unit_address" 32-bit vio_dev->unit_address only holds 32 bits of information anyways, so no need for 64-bit field. [PATCH] ppc64: export vio_find_node() To hotplug-remove virtual devices, we need vio_find_node() so we have a pointer to pass to vio_unregister_device(). [PATCH] broken PowerPC Virtual Ethernet This fixes the PowerPC Virtual Ethernet driver that got broken by the recent ppc64 iommu patch... [PATCH] rename sys_bus_init() rename sys_bus_init() to system_bus_init() so that it doesn't appear to be a syscall; PCI Hotplug: fix stupid directory name of "pci_hotplug_slots" to be just "slots" IEEE1394(r1180): Fix pdrv update call to use ud class list. Fixes an oops. IEEE1394(r1179): Fix nodemgr_get_max_rom() to work properly on little endian machines. [XFS] plug race in pagebuf freeing SGI Modid: xfs-linux:xfs-kern:167222a [XFS] kill some dead constants from pagebuf SGI Modid: xfs-linux:xfs-kern:167273a [XFS] Remove some dead debug code SGI Modid: xfs-linux:xfs-kern:167279a [XFS] release i_sem before going into dmapi queues SGI Modid: xfs-linux:xfs-kern:166619a [XFS] Remove PBF_SYNC buffer flag, unused for some time now. SGI Modid: xfs-linux:xfs-kern:167442a [XFS] DMAPI deadlock prevention when interacting with the IO path. SGI Modid: xfs-linux:xfs-kern:167547a [XFS] Version 2 log fixes - remove l_stripemask and add v2 log stripe padding to ic_roundoff to cater for pad in reservation cursor updates. SGI Modid: xfs-linux:xfs-kern:167580a [XFS] fix up some debug log code for when XFS_LOUD_RECOVERY is turned on. SGI Modid: xfs-linux:xfs-kern:167581a [PATCH] fix umount dataloss problem address_spaces have a `dirtied_when' jiffies field which records the time at which the mapping was first dirtied. This is used for the periodic writeback (kupdate) function. It is also used to prevent livelocks in the writeback code: don't try to write back objects which were dirtied after sync_sb_inodes() was called. It used to be the case that dirtied_when == 0 had magical properties, so there is code in there which avoids accidentally setting dirtied_when to zero at jiffy wrap time. We just set it to jiffies|1. Unfortunately, jiffies|1 is in the future. So under some rare timing circumstances (inode dirtied within one jiffy of umount) the livelock avoidance code in sync_sb_inodes() can accidentally trigger and we fail to write an inode out, resulting in filesytem corruption on ext2-style filesystems. Normally, nobody dirties a file within a millisecond of umount, so it was not noticed. It is no longer the case that (address_space.dirtied_when == 0) has special meaning, so we can just remove all that code and fix the bug. [PATCH] ppc64: fix a bug in iSeries MMU hash management From: Benjamin Herrenschmidt iSeries HyperVisor is doing some evilery when inserting PTEs that I didn't properly account for when rewriting that code, causing iSeries box to blow up regulary. [PATCH] ppc64: iSeries virtual disk update From: Stephen Rothwell This patch (hopefully) addresses concerns Christoph Hellwig had with the virtual disk probing code. [PATCH] Add missing numa EXPORT_SYMBOLs From: Anton Blanchard Add some missing EXPORT_SYMBOLs. [PATCH] ppc64: Update G5 defconfig, remove DISCONTIGMEM From: Benjamin Herrenschmidt This patch updates the g5_defconfig on ppc64, running it through oldconfig and removing CONFIG_DISTCONTIGMEM. I don't use the discontigmem stuff at all, even on machines with +2Gb of RAM, so it's just bloat. [PATCH] s390: core s390 update From: Martin Schwidefsky s390 bug fixes: - Add missing i/o controls to compat ioctl translation table. - Fix some gcc 3.4 warnings. - Export _sb_findmap. - Export smp_call_function_on only if CONFIG_SMP=y. - Add safe-guard to diag10. - Add type definition for compat_timer_t. - Fix first argument of signal_processor_ps. [PATCH] s390: common i/o layer. From: Martin Schwidefsky Common i/o layer fixes: - Remove documentation entry for non-existent cio_notoper_msg parameter. - Add documentation for availability attritube. - Replace function of the steal_lock attribute by "echo force" to the online attribute. - Trigger device sensing in the online function for unknown devices. - Always try to get devices online even if they are marked reserved. Someone could have released the device while it was offline. - Add try_module_get/module_put pairs to the online function of ccw devices and ccwgroup devices. - Add owner field to ccwgroup driver structure. Set owner field in ctc, lcs and qeth. - Fix alignment problems in channel measurement block interface. [PATCH] s390: sclp console From: Martin Schwidefsky sclp console fixes: - Add signal-quiesce bug-fix from 2.4. - Add irq_enter/irq_exit to sclp_sync_wait to prevent the softirqs from processing after the external interrupt. [PATCH] s390: tape class for s390 tapes From: Martin Schwidefsky s390 tape device driver changes: - Add private tape class to support udev configuration. [PATCH] s390: xpram driver From: Martin Schwidefsky xpram fix: Replace old style module parameter definition with new style. [PATCH] Doc/00-index additions From: "Randy.Dunlap" From: Alexey Dobriyan Mostly added descriptions of files in Documentation/ that were not listed in Documentation/00-INDEX. [PATCH] sysrq-o atomicity fix sysrq-o is supposed to power off the machine. But if it calls into ACPI (at least) it does lots of sleepy things, so we best not do this from interrupt context. [PATCH] fix small highmem bio bounce bvec handling glitch From: Christophe Saout __end_that_request_first might modify the bv_offset and bv_len if the segment was partially completed. The bio-read-bounce-back code should use the unmodified bv_offset when copying the segment data: [PATCH] move scatterwalk functions to own file From: Christophe Saout I've cleaned up the latest patches and adjusted the header files. This patch moves the scatterwalk functions from cipher.c to scatterwalk.c and adds a header file. [PATCH] fix in-place de/encryption bug with highmem From: Christophe Saout This patch fixes the bug where in-place encryption was not detected when the same highmem pages is mapped twice to different virtual addresses. This adds a parameter to xxx_process to indicate whether this is an in-place encryption and moves the responsability to the caller using a helper function scatterwalk.h. [PATCH] dm-crypt cleanups From: Christophe Saout These are some dm-crypt cleanups. Use a #define PFX "crypt: " for all the places where something gets logged as suggested by Jeff Garzik. It also adds a small additional security check and fixed header includes. [PATCH] dm-crypt end_io bv_offset fix From: Christophe Saout We should copy the bvec array for read requests so that we still have the unmodified bvec array to decrypt the data afterwards. (as discussed earlier this day for highmem bounces) [PATCH] revert the /proc thread visibility fix It appears that gdb, perfmon and perhaps other applications are already opening /proc/ even though it does not appear in /proc readdir output and is available under its group leader's directory anyway. Apparently ascertaining the group leader is hard for gdb and thsi trick always worked for LinuxThreads apps. So revert this change. [PATCH] zr36067 driver update From: "Ronald S. Bultje" Fix the zoran driver (zr36067) for the fact that we did not handle bitrate-conversion at all in the zr36050 MJPEG codec (on DC30 cards), with the result being that at high-resolution, we'd overload the PCI bus and drop half of our video capture data into /dev/null'ishness. Also update Ronald's email address in MAINTAINERS. [PATCH] C99 initializers for drivers/usb/serial/keyspan.h From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] C99 initiailzers for drivers/isdn/hisax/hisax_fcpcipnp.c From: "Art Haas" Here is a small patch changing the GNU-style initializers to C99 initializers. [PATCH] raid1: fix oops in bio_put() From: Neil Brown Fix an off-by-one in the r1buf_pool_alloc() ENOMEM error recovery path. [PATCH] linux/README update From: Zwane Mwaikambo Patch to resolve http://bugzilla.kernel.org/show_bug.cgi?id=1644 The bug reporter pointed out a bit of outdated information in the README file. Test booted on a 32x NUMAQ with 10,000 disks [PATCH] DCSSBLK depends on CONFIG_S390 From: Dave Jones This is probably useless on x86 for eg.. (Everything else in this file is dependant on some other s390 feature, so only this one shows up). Too bad the drivers/s390/block stuff gets source'd at all on !s390. [PATCH] NFS SUNRPC fix From: James Morris The patch below fixes a bug in the error handling code of xprt_create_socket(). If sock_create() fails, we should not try and release the non existent socket. This fix is by James Carter . [PATCH] Fix tty drivers which dont set tty_driver->devfs_name From: Marcelo Tosatti The following patches fixes tty drivers which dont set devfs_name. Not doing so will cause the tty layer to create "/dev/x" entries when devfs is being used. I used "drivername/" in isicom and pcxe because the letter used to identify them are already used by other drivers. [PATCH] Fix VT mode change vs. fbcon From: Benjamin Herrenschmidt This patch implements what we discussed earlier to fix the switch bewteen KD_GRAPHICS and KD_TEXT. It has been tested for a few days now and appear to resolve the problem for affected users. James: I know you have some objections, I don't fully agree with them, and I want that in asap now, that bug has been plaguing fbdev since the very beginning and it's time to get rid of that and my corresponding todolist entry. You are welcome to propose a patch on top of this one if you feel you can make things cleaner. The approach of adding a parameter to con_blank() is Linus idea btw :) I didn't add a separate function as that would have made the butchering of drivers/char/vt beyond what I want to deal with in 2.6. [PATCH] sys_alarm() return value fix From: Kurt Garloff when calling alarm(1); alarm(0); the second alarm can wrongly return 2. This makes an LSB test fail. It happens due to rounding errors in the timeval to jiffie conversion and back. On i386 with HZ =3D=3D 1000, there would not need to be rounding error IMVHO, but they even occur there. On HZ=3D1024 platforms, they may even be unavoidable. Attached patch fixes the return value of alarm(). [PATCH] Fix network hashtable sizing The new networking hashtable sizing is all bollixed up. The logic is wrong and tcp is setting it to the logarithm of what was intended. Heaven knows. Fix it up so that the sizing is the same as it used to be in 2.6, with a boot-time override. Which was what was intended. [PATCH] buslogic initsection fix From: Bob Doyle BusLogic_UnregisterHostAdapter() is referenced from __exit code, so it cannot be __init. [PATCH] remove a few remaining "make dep" references From: Adrian Bunk The patch below is an updated version of the patch that removes some remaining mentions of "make dep". [PATCH] clarify CONFIG_SWAP Kconfig help From: Adrian Bunk "swap" is more known than "Support for paging of anonymous memory". The patch below adds "(swap)" to the prompt of CONFIG_SWAP. [PATCH] Make powernow-k8 cpufreq control work again From: Pavel Machek We curretly have an off-by-factor-of-1000: cat /proc/cpufreq minimum CPU frequency - maximum CPU frequency - policy CPU 0 2000 kHz (100 %) - 2000 kHz (100 %) - powersave I do not have explanation why it is 2MHz - 2MHz. On my system I removed bug which prevented my system from being reported as 0.8MHz - 1.8MHz. (And modulo cosmetic uglyness, it worked). This fixes cosmetic uglyness, adds proper copyrights, removes warning "untested on PREEMPT" (someone tested it, and makes it easier to override PST by user (eMachine users will need that one). [PATCH] x86-64 fixes for 2.6.4rc1 From: Andi Kleen Fix a few issues on x86-64 for 2.6.4rc1. The 32bit emulation used 4GB/3 for the mmap break. This actually gave programs less sbrk space than with a standard 32bit kernel. Move the 32bit mmap break to 0xc5000000. Uses the correct gcc option to optimize for Prescott now (requires a very new mainline gcc) Also merge the i386 sched_clock(). I hope this will fix some interactivity problems with the scheduler. - Change initializer to new style (Arnd Bergmann) - Remove 2 sibling limit in HT support (from i386) - Always log RIP in MCE records even when not exact - Move 32bit program task break up to 0xc5000000 by default - Use -march=prescott for Prescott optimized kernel if possible - Don't divide by zero with report_lost_ticks on and HPET off - Merge preempt/smp/debug_pagealloc oops printing from i386 - Add pfn_to_nid() - Merge more accurate sched_clock from i386 - Remove traces of debugging code in mce.c - Update defconfig [PATCH] watchdog updates From: Wim Van Sebroeck (04/02/29 1.1628) [WATCHDOG] v2.6.3 pcwd_usb-watchdog Add the Berkshire Products USB-PC Watchdog driver (04/02/29 1.1629) [WATCHDOG] v2.6.3 MODULE_*-patch Add MODULE_* info (04/02/29 1.1630) [WATCHDOG/SPARC64] v2.6.3 Kconfig-WATCHDOG_CP1XXX/WATCHDOG_RIO-patch Move WATCHDOG_CP1XXX and WATCHDOG_RIO for SPARC64 architecture from arch/sparc64/Kconfig to drivers/char/watchdog/Kconfig and made them dependant of WATCHDOG also [PATCH] convert pdflush to kthread From: Keith Owens New pdflush threads are launched on-demand by pdflush. It turns out that on some architectures (eg, ia64) a kernel thread inherits its parent's stack utilisation. So after the thread-launches-a-thread cycle has progressed sufficiently far we run out of stack space and crash. Simple fix: convert pdflush to use kthreads. All kthreads are parented by keventd so there is no stack windup as a result of pdflush launching pdflush. [PATCH] firmware loader: pin firmware module From: Dmitry Torokhov We need to pin the firmware loader module until the last reference to the firmware class device is dropped and the class device is destroyed. [PATCH] firmware loader: delay firmware hotplug event From: Dmitry Torokhov Do not call hotplug until firmware class device is completely instantiated. [PATCH] swsusp: fix error handling in "not enough swap space" From: Pavel Machek Without this, if there's not enough swapspace, suspend fails, but leaves devices suspended, leading to dead machine. [PATCH] m68k interrupt handling fix From: Geert Uytterhoeven The syscalls.h change broke the m68k interrupt management code, since sys_{request,free}_irq() are not syscalls, but routines to manage system (CPU) interrupts. [PATCH] scripts/modpost warning From: Geert Uytterhoeven I need the following patch to kill a warning (__endian() may be unused) when cross-compiling m68k kernels on an ia32 box. [PATCH] oprofile: fix P4 HT msr sharing From: Philippe Elie When I debugged P4 ht oprofile a few month ago I noticed that but though it wasn't a problem... The fix I propose is not completely clean. With P4 HT we split msr in two subset, one for each logical processor. The msrs subset used in op_model_p4.c at save and setup point of view are distinct (*), it means we must serialize setup and save operation else a logical processor can save some msr value already setup by the other thread then when oprofile shutdown we restore wrong msrs values. Nobody noticed the problem because after restoring the msrs we call enable_lapic_nmi_watchdog() -> setup_p4_watchdog() wich clear all the msrs but it's a bit fragile. If nmi watchdog is not enabled nothing bad occurs because the LVTPC remains disabled. (*) this is done in this way because it allows a lot of simplification in op_model_p4.c, yes it isn't clean but it's not fixable w/o rewriting 75% of op_model_p4.c and I think the code will be bigger and more complex. Update x86 defconfig [PATCH] Avoid writing the APIC ID register A small birdie tells us that in the long run it may not be a good idea to write the APIC ID register. It might be read-only in some hypothetical situation down the road. [PATCH] ISDN strpbrk fix Here is a small ISDN fix for the current tree. There is a compiler inlining/optimation problem with strpbrk, if it has only a one character search string. This results in a missing strchr because the compiler internally replace strpbrk with strchr in this case, but did so after inline handling stage. Make IBMASM driver depend on X86 as that is the only valid platform for it. PCI Hotplug: fix up the permission settings on a few of the sysfs files. Thanks to Linda Xie for pointing this out. [PATCH] ppc32: Fix crash on load in DACA sound driver The DACA sound driver (early iBook models) doesn't clear the i2c_client structure. That cause the embedded struct device (and thus kobject) to contain garbage in the "k_name" field, which kobject_set_name will later try to kfree... Also remove references to unused struct data_data. [PATCH] OHCI urb unlink fixes Fix two OHCI unlink issues. * All EDs now get a 1 msec delay before re-linking, even those which were seemingly "clean" unlink cases. This gets rid of some list corruption issues ("bad entry") by getting rid of a fast-path carried over from 2.4 usb-ohci. * In case of unlink-during-submit, we must giveback() right away. This is a reasonably rare case. There have been recent reports of problems here. The "bad entry" showed up with usbtest tests #11 and #12, or "stir4200", and maybe in other cases. The unlink-during-submit shows up in usbtest. Driver core: add CONFIG_DEBUG_DRIVER to help track down driver core bugs easier. [PATCH] PCI Hotplug: fixes for shpc and pcie hot-plug drivers This patch contains the following: 1. Fix up the pcie and shpc options to make it easier for distros to use as what we have discussed; 2. Fix bug encountered when installing the drivers on non-hotplug systems; 3. Put PCI_CAP_ID_SHPC in include/linux/pci.h PCI Hotplug: clean up the Makefile a bit more. [SPARC]: Kill sys_ioperm decl from unistd.h [XFS] Sort out some minor differences between trees. [libata ata_piix] Fix transposed ICH6 PCI id [PATCH] Alpha: switch semaphores to PPC scheme Which is a lot simpler than the two-way counter implementation. [libata ata_piix] Add yet another Intel ICH6 PCI id [SPARC64]: Update defconfig. [PATCH] parport: move exports to where they are defined Exports moved from parport/init.c to files where functions are actually defined. [PATCH] parport: use module_init() Init of low-level drivers (except parport_pc) turned into module_init(). [PATCH] parport: sysctl registration Registration of sysctls turned into module_init(). [PATCH] parport: option parsing cleanup parport_pc options parsing moved to parport_pc.c; parport/init.c is gone. Warning fixes from -mm added. [PATCH] parport: fix probe leaks parport_pc_probe_port() sanitized; leaks fixed. [PATCH] parport: slave port cleanups references to slave ports of mux added to struct parport. parport_daisy_init() doesn't go through parport_announce_port() for mux slaves anymore; parport_annouce_port() deals with found ones itself. Error handling sanitized, races on unregistration fixed. [PATCH] parport: fix parport_unregister_port parport_unregister_port() is split; parport_remove_port() does what parport_unregister_port() used to do sans the final parport_put_port() call. Callers updated; many of them needed only parport_put_port() (failure exit paths where we never had the port announced to drivers). Fixed multiple races on port removal by shifting parport_remove_port() in front of the code that releases irq/io ports/etc. [PATCH] parport: clean up parport_announce_port and friends parport_announce_port() was always called right after parport_proc_register(). Call shifted into parport_announce_port(). Similar for parport_remove_port() and parport_proc_unregister(). [PATCH] parport: keep track of parport_pc ports parport_pc switched to keeping track of the ports it had created; in module_exit it uses the private list instead of messing with parport_enumerate(). Added compile fix for configs that have CONFIG_PARPORT_PC_FIFO turned off (from -mm). [PATCH] parport: keep track of parport_sunbpp ports parport_sunbpp switched to keeping track of the ports it had created; in module_exit it uses the private list instead of messing with parport_enumerate(). Added check for sbus_ioremap() failure in port initialization. [PATCH] parport: get rid of parport_enumerate parport_enumerate() is gone. The last caller was under ifdef that never had been true. Function itself is removed, port list handling cleaned up (now we can do that, since drivers don't mess with the list directly), tons of racy crap removed from parport/share.c [PATCH] parport: list cleanups parport driver list turned into list.h one; parport/share.c code that works with that list got cleaned up. [PATCH] update for pdc202xx_old driver - fix bug introduced by my recent fixes (do not try to disable 66MHz clock on PDC20246) - cleanup cable verification code a bit - remove unused macros (leftovers from driver split-up) and duplicated define from pdc202xx_old.h [PATCH] ppc64: More IOMMU cleanups * Tidy up some of the arguments to iommu_*() * Comment cleanup * Don't bump the hint to the next block for large allocs, to avoid fragmentation. * Simplify vmerge logic during SG allocations * Move the memory barriers from the bus-specific parts into the common code. Some changes are mine, some are from Ben Herrenschmidt. JFS: Support sharing of journal by multiple volumes [PATCH] New Permedia2 framebuffer driver. This fixes the permedia2 framebuffer driver to the new API. [ Currently it doesn't even compile. This only touches the current permedia driver. ] [PATCH] radeonfb: some more PLL problems I've had reports of flicker that appear with large (23") flat panels and radeonfb. From experiments, it appears that forbiding the "odd" PLL divider values fix it (like it fixes the blur problem on TMDS2). There should not be anything special with TMDS1 and "odd" PLL values though, so the problem may be subtly different (a bandwidth problem), but until I have proper bandwidth calculation and access to this monitor, the following patch is an acceptable workaround (Odd PLL values aren't that useful anyway) [PATCH] /proc/cpuinfo fixes for G5 This adds a "timbase" entry in /proc/cpuinfo like p/iSeries that provides the CPU timebase frequency. It is using by a all sort of performance analysis tools we are hacking in house. It also remove a useless bit about the l2 cache that was copied over from ppc32. Fix typo in radeon pll update It was missing an "s" from "uses_dvo" Linux 2.6.4-rc2 [IRDA]: stir4200 update for 2.6.4-rc1 New revision of the Sigmatel irda driver. This version has much better performance and doesn't drop frames in FIR mode. Tested with both UHCI and EHCI/OHCI against nsc-ircc on laptop. Thanks to Martin for additional testing and feedback. * Receiver: - changed from interrupt to bulk URB. Queue's one bulk urb per USB tick (1ms). - FIR unpack now uses get_unaligned and cpu32_le instead of explicit shifts - FIR unpack copies small frames * Transmitter: - pack data into io buffer. Since irda is half duplex can use same buffer for transmit and receive. - use xchange and wait_event for synchronization * Other: - use USB format messages rather than IRDA (ugly) - clean up USB startup - reset device on network open to clear up stuck state - handle FIFO errors - disconnect cleanup (from viro) - don't DMA onto stack when reading fifo status [CRYPTO]: Add ARC4 module. [TIGON3]: Consolidate MMIO write flushing using tg3_f() macro. [SPARC64]: Update defconfig. [PATCH] d_alloc_root() fixes: gadgetfs gatgetfs fill_super: - double-free of inode on last two failure exits - leak on the last failure exit - touching addresses near 0 on last two failure exits [PATCH] d_alloc_root() fixes: adfs - leak of root inode if d_alloc_root() fails. [PATCH] d_alloc_root() fixes: afs - useless dput(NULL) on failure exit (would be a double-free if we ever got there with non-NULL dentry). [PATCH] d_alloc_root() fixes: autofs4 - oops if inode allocation fails. [PATCH] d_alloc_root() fixes: befs - inode leak if d_alloc_root() fails. [PATCH] d_alloc_root() fixes: coda - unchecked result of d_alloc_root() leading to oops in fs/super.c [PATCH] d_alloc_root() fixes: cramfs - inode leak on d_alloc_root() failure - unchecked result of d_alloc_root() leading to oops in fs/super.c [PATCH] d_alloc_root() fixes: efs - inode leak on d_alloc_root() failure [PATCH] d_alloc_root() fixes: ext2 - inode leak on d_alloc_root() failure [PATCH] d_alloc_root() fixes: ext3 - inode leak on d_alloc_root() failure [PATCH] d_alloc_root() fixes: freevxfs - inode leak on d_alloc_root() failure [PATCH] d_alloc_root() fixes: hfs - inode leak on d_alloc_root() failure [PATCH] d_alloc_root() fixes: hfsplus - inode leak on d_alloc_root() failure [PATCH] d_alloc_root() fixes: romfs - inode leak on d_alloc_root() failure - sanitized the cleanup logics [PATCH] d_alloc_root() fixes: hpfs - inode leak on d_alloc_root() failure [ARM PATCH] 1762/1: Fix typo in CONFIG_CPU_BIG_ENDIAN help text Patch from Deepak Saxena [ARM PATCH] 1764/1: Export __arch_strncpy_from_user for modules Patch from Ian Campbell __arch_strncpy_from_user needs to be exported if you build the framebuffer console driver as a module. [ARM PATCH] 1757/1: Allow building of LE kernels with BE-default toolchain Patch from Deepak Saxena The ARM makefile currently assumes that the compiler being used defaults to little-endian builds unless the big-endian options are provided. This may not always be the case (my toolchains default to BE since that's what I mostly work with) so this patch forces endianess options to be passed to the toolchain. W/O this, building without CONFIG_CPU_BIG_ENDIAN on a big-endian toolchain will still result in a big-endian kernel. [PATCH] Fix typo in radeonfb This fixes a typo in the list of PCI IDs in radeonfb, which in turn fixes detection of some mobility models. [FFB]: Force-disable cursor in ffb_switch_from_graph(). Fix ramdisk driver leak on module unload. Noticed by me, fixed by Jens. [PATCH] another rd.c leak Free the request queues on the rd_init() error recovery path. [SPARC]: Add stack usage instrumentation [SPARC]: Make parport_sunbpp compile again [PATCH] PnP BIOS exception fixes This fixes two errors in fixup_exception() for PnP BIOS faults: - Check for the correct segments used for the BIOS - Fix asm constraints so that EIP and ESP are properly reloaded [PATCH] kNFSd - Tidy up new filehandle type. nfsd uses several different mechanisms for identifying the filesystem from the filehandle. This patch: Marks type 2 as deprecated - it wastes space, and space in the filehandle is not unlimited Adds type 3 which handles new, large device number in 32bits of space Tidies up the code for determining which type to use in a newly created filehandle - the addition of type 2 broke this code. [Bluetooth] Send HCI_Reset for some Broadcom dongles This patch introduces a quirk flag for sending the HCI_Reset command. In general the HCI_Reset is not needed, but some Broadcom dongles uses this reset command to switch from HID to HCI mode. And it is not safe to send the HCI_Reset to every Bluetooth device, because the CSR firmware prior HCI 12.x will reset the host transport and this is wrong according to the Bluetooth specification. [Bluetooth] Add notify callback for host drivers This patch adds a notification callback to the hci_dev structure which is used by the HCI core to tell the driver about connection creation and clearing. It also notifies about changed voice setting. [Bluetooth] Dynamic allocation of the RFCOMM TTY devices Only allocate the RFCOMM TTY devices when they are really in use. This prevents the system from calling hotplug and udev 256 times to create or remove every device node. In fact this makes the loading and unloading of the RFCOMM module much faster. [SERIAL] Make serial console work for any port (take 2) The current serial console code only works for ports that are either defined in SERIAL_PORT_DFNS (and set up by serial8250_isa_init_ports()) or registered by early_serial_setup(). On ia64, SERIAL_PORT_DFNS is empty because we discover everything via ACPI and PCI. And we only use early_serial_setup() for one port described by the HCDP firmware table. This patch against 2.6.4-rc1 makes it work for any valid port. If we don't know about the port early, we just return -ENODEV from the setup() function, which leaves the serial console disabled. After the driver has found all the ports, we try to register the serial console again if it hasn't been enabled already. Keith Owens noticed that the first version of this patch broke some serial console setups because many early serial ports are registered with "type == PORT_UNKNOWN". So this version tests "port->ops" instead, and Keith has confirmed that this works for him. [SERIAL] Fix supprot for AFAVLAB 8port boards in 2.6.x I didn't yet use one of my AFAVLAB boards with 2.6.x until now. The upper 4 ports are not detected at all. I suppose the bug was introduced while porting the driver from 2.4.x. Please consider applying the following patch. It also adds support for a new 8 port board called P030. [SERIAL] Remove obsolete CLPS711x serial driver names. [SERIAL] Clear up comments concerning mapbase and membase. [SERIAL] Don't initialise port->mctrl before calling ->startup If a serial port is hung up using vhangup() with HUPCL cleared (so DTR isn't dropped), and then re-opened, we don't want to drop the DTR line. This occurs during the login process, and dropping DTR would cause a modem to hang up. [SERIAL] Correct Oxford Semiconductor 16PCI952 PCI type entry. WRT 2.4, Ed Vance put this fix into 2.4: According to the data sheet, the OX16PCI952 has port 0 in BAR0 and port 1 in BAR1. (unlike the OX16C954, BTW) The 921600 base baud value is your oscillator rate divided by the default oversample rate, 16. Since 2.6 PCI IDs have been updated to use the real device ID for this part, we really should include this fix as well. [QLOGIC]: Mark mbox_param[] as static to avoid namespace pollution. [IPV4]: Add sysctl for per-socket limit on number of mcast src filters. [SPARC]: Pass a real page into do_mount() a final arg. [PATCH] mismatched syscall protos. Sparse noticed a bunch of mismatched prototypes in the new syscalls.h file when compiling net/socket.c Whilst most of them are just missing __user tags, the last argument of sys_socketpair was completely different. [PATCH] High BAT initialization wrong The code initializing the "high" BATs on CPUs like the 750FX got broken when copied over from 2.4. This cause random problems with machines using those CPUs (iBook 2s typically). [PATCH] Add missing AFAVLAB P030 PCI ID [XFS] zero log buffer during initialization at mount time SGI Modid: xfs-linux:xfs-kern:167980a [XFS] Fix out-of-space deadlock when flushing delalloc data with pages locked under write. SGI Modid: xfs-linux:xfs-kern:167948a [PKT_SCHED]: Fix ipv6 ECN marking in RED scheduler. [SPARC32]: Avoid an oops if thread_info allocation fails [PATCH] hfsplus: symlink initialization fix This fixes a problem with creating symlinks, a few fields in the inode/dentry were left uninitialized. [PATCH] Fix knfsd filehandles... Here's a fix for an obvious typo in changeset neilb@cse.unsw.edu.au|ChangeSet|20040305155724|31191 that was causing ESTALE errors galore on my NFS testrig. [PATCH] svcauth_gss oops fix From: "J. Bruce Fields" I've done some testing with 2.6.4-rc1. It looks fine, except that one critical patch got dropped somewhere along the way, without which rpcsec_gss will oops. We've changed gss_get_mic to write mic in place instead of kmalloc'ing new memory for it; change must also be reflected in server side code. [PATCH] dm: remove v1 ioctl interface From: Joe Thornber Remove the version-1 ioctl interface. [PATCH] drivers/sbus/char/vfc_dev.c needs mm.h From: Jakub Bogusz drivers/sbus/char/vfc_dev.c: In function `vfc_mmap': drivers/sbus/char/vfc_dev.c:623: error: dereferencing pointer to incomplete type [PATCH] fastcall / regparm fixes From: Gerd Knorr Current gcc's error out if a function's declaration and definition disagree about the register passing convention. The patch adds a new `fastcall' declatation primitive, and uses that in all the FASTCALL functions which we could find. A number of inconsistencies were fixed up along the way. [PATCH] ppc64: Make xmon survive exit after soft reset From: Olof Johansson Below patch makes xmon survive a softreset invokation (and quite likely invocations because of other traps as well). [PATCH] ppc64: iSeries_vio_dev cleanup From: Stephen Rothwell This patch declares iSeries_vio_dev in an include file and includes it where necessary. It also fixes arch/ppc64/kernel/mf.c to use the generic dma API with iSeries_vio_dev. [PATCH] ppc64: iSeries virtual cdrom driver From: Stephen Rothwell This patch adds the virtual cdrom driver for PPC64 iSeries. [PATCH] ppc64: Convert mm_context_t to a struct From: David Gibson Converts the mm_context_t on ppc64 to be a struct. This lets us separate the low_hpages flag into a separate field rather than folding it into the actual context id. That makes things neater, since the flag is conceptually separate and has, for example, should be propogate across a fork whereas the context ID obviously isn't. The mm_context_id is the only place to put arch-specific information in the mm_struct. This patch will also make some interesting extensions to the hugepage support much easier, such as allowing dynamic resizing of the hugepage address space, or using special pagetables for hugepages. [PATCH] fix put_compat_timespec prototype From: Arnd Bergmann The wrong argument in put_compat_timespec is marked const, causing unnecessary compiler warnings. [PATCH] char/rio/rioctrl: fix ioctl return values From: "Randy.Dunlap" From: Tony Breeds It fixes 3 places where the ioctl returns positives instead of negatives. I've gotten feedback from the maintainer (Rogier Wolff (sp?) and he has no objections. [PATCH] Fix initrd Kconfig dependencies From: "Jim Gifford" Prevent initrd from being built if ram device is built as a module. [PATCH] c99 initializers for cs46xx_wrapper From: Arnd Bergmann This use of deprecated struct initializers was hidden behind macro magic and has appearantly not been noticed before. [PATCH] kill a dead function in lockd From: Christoph Hellwig sleep_on hurts my eyes and this offender is compltely unused, so.. [PATCH] serial_core.h needs sched.h In file included from drivers/misc/ibmasm/uart.c:27: include/linux/serial_core.h: In function `uart_handle_dcd_change': include/linux/serial_core.h:407: `TASK_INTERRUPTIBLE' undeclared (first use in this function) [PATCH] sb16 sample size fix From: Andreas Kies Fix improperly handled 16 bit sample size. If you use an odd number of bytes in 16 bit mode the driver fails to work. [PATCH] ext2/ext3 -ENOSPC bug From: Chris Mason find_group_other looks buggy for ext2 and ext3 in 2.6, it can cause -ENOSPC errors when the fs has plenty of free room. To hit the bug, you need a filesystem where: parent_group has no free blocks (but might have free inodes) Every other group with free inodes has no free blocks. That gets you down to the final linear search in find_group_other. The linear search has two bugs: group = parent_group + 1; means we start searching at parent_group + 2 because the loop increments group before using it. for(i = 2 ; i < ngroups ; i++) means we don't search through all the groups. The end result is that parent_group and parent_group + 1 are not checked for free inodes in the final linear search. ext3 has the same problem. [PATCH] add missing MODULE_LICENSEs From: Arjan van de Ven [PATCH] v4l1 compatibility module fix. From: Gerd Knorr This patch fixes a bug in the v4l1-compat module and makes it pass the correct buffer type to the v4l2 driver on VIDIOC_STREAM(ON|OFF) ioctls. [PATCH] i2o subsystem minor bugfixes From: Markus Lidel drivers/message/i2o/i2o_block.c: - corrected the initialization sequence of the request queues. - added initialization to queue spinlocks. - release device in i2o_scan because else the device could not be queried. - i2o_block event threads wait on signal KILL but signal TERM was sent. drivers/message/i2o/i2o_core.c: - set the HRT length to 0 at initialization, to avoid calling free on unallocated memory. - i2o_core event threads wait on signal KILL but signal TERM was sent. - added a limit of 3 tries to get the HRT from the controller. - removed the dpt parameter, which was used to force DPT controllers get handled by the i2o driver. Now all available i2o controllers will be handled by this driver. drivers/message/i2o/i2o_scsi.c: - beautifying of printk calls. - added scsi_unregister to properly clean up on module unload. drivers/message/i2o/Kconfig: - added help for i2o_block and i2o_scsi to describe the differences between the two drivers. include/linux/i2o-dev.h: - cleaned typo "tate" into "state". include/linux/i2o.h: - removed defines from i2o_block and insert it here. (Acked by Alan) [PATCH] fix oops in emu10k1_wavein_open() error recovery If a large pci_alloc_consistent() GFP_ATOMIC allocation fails this driver's recovery code will call emu10k1_wavein_close() far earlier than it should: it goes splat in emu10k1_timer_uninstall(). Fix it by simply removing that call: we haven't allocated any resources yet anyway. Note that one of the callers of emu10k1_wavein_open(), emu10k1_audio_read() will sit there stupidly retrying the open. But it has a sleep in there so something might eventually give way. [PATCH] CONFIG_LBD fixes From: Eric Sandeen Several functions in buffer.c are using unsigned long where they should be using sector_t. Also, use pgoff_t in several places so it is easier to tell what is beingused as a pagecache index, what is being used as a disk index and what is being used as an offset-into-page. [PATCH] Fix nobh_prepare_write() race Dave Kleikamp points out a race between nobh_prepare_write() and end_buffer_read_sync(). end_buffer_read_sync() calls unlock_buffer(), waking the nobh_prepare_write() thread, which immediately frees the buffer_head. end_buffer_read_sync() then calls put_bh() which decrements b_count for the already freed structure. The SLAB_DEBUG code detects the slab corruption. We fix this by giving nobh_prepare_write() a private buffer_head end_o handler which doesn't touch the buffer's contents after unlocking it. [PATCH] alpha ptrace race fix From: Aneesh Kumar KV We need to set the tasks's exit code prior to waking it, not afterwards. Acked by rth. [PATCH] Documentation/cdrom/ide-cd fix From: David Joerg Fix the description of the IO ports for the IDE primary and secondary interfaces. [PATCH] fix i2c compile warnings drivers/i2c/busses/i2c-elv.c: In function `i2c_bitelv_init': drivers/i2c/busses/i2c-elv.c:155: warning: unsigned int format, long int arg (arg 2) drivers/i2c/busses/i2c-elv.c:155: warning: unsigned int format, long int arg (arg 2) drivers/i2c/busses/i2c-velleman.c: In function `i2c_bitvelle_init': drivers/i2c/busses/i2c-velleman.c:141: warning: unsigned int format, long int arg (arg 2) drivers/i2c/busses/i2c-velleman.c:141: warning: unsigned int format, long int arg (arg 2) [PATCH] OSS Sound Driver Forte needs ac97_codec From: Marc-Christian Petersen OSS Sound Driver Forte needs ac97_codec. [PATCH] floppy oops fix From: Zwane Mwaikambo It looks like a block request snuck through before we had initialised the motor_off_timer timers. So I pushed the timer init earlier. [PATCH] arc4.c compile fix for older gcc's Declarations come before statements, please. Current gcc warns about this too, bless them: crypto/arc4.c: In function `arc4_crypt': crypto/arc4.c:65: warning: ISO C90 forbids mixed declarations and code [PATCH] add blk_queue_stopped() helper function The carmel driver will want to use this rather than muck around in queue internals directly. [PATCH] tulip printk cleanup From: Joe Perches Use %08llx for a dma_addr_t, not the recently-added %llx. [PATCH] missing setup for National DP83840 PHY rev b/c * Add National DP83840 PHY rev b/c setup. Only rev a was being setup. [PATCH] 2.6.x wanXL driver update The attached patch updates wanXL card driver. Please apply to Linux 2.6. Thanks. Changes: * fixed initialization kernel panic, introduced with recent alloc_netdev() wan patch, * wanxl_rx_intr() port# now checked before accessing port structure, * cleanups etc. -- Krzysztof Halasa, B*FH [PATCH] small iSeries cleanup This got missed in my cleanup if iSeries_vio_dev. [PATCH] xfs: filemap_flush() unresolved filemap_flush() needs exporting for modular XFS builds. [PATCH] blk_insert_request() buglet blk_insert_request() unconditionally calls q->request_fn(q) regardless of the plug state of the queue. This means that we could invoke request_fn with a plugged queue, which is an invalid state. Also fix a Jamesism style in there. JFS: setting xattr should update ctime [TIGON3]: Allow MAC address changing even when iface is up. JFS: warn users of inaccessible file names When no iocharset is specified, the default action is to trivially map each byte into the low order of the 16-bit unicode character. If an existing name exists that has a non-zero high order byte, the file will be inaccessible without remounting with iocharset set to a charset that supports the character. This patch will cause a warning to be issued to the syslog (no more than five times) suggesting that the volume be mounted with iocharset=utf8 in order to access the file. [TIGON3]: Always force PHY reset after major hw config changes. [TIGON3]: Update driver version and reldate. [NETFILTER]: In ip_route_me_harder, don't forget to set fl.proto [IPVS]: Code tidy up. Patch from Horms 1. The trailing '\n' was missing, it has been added 2. The protocol is already in host byte order, the ntohl() call has been removed [IPV4/IPV6]: Add sysctl limits for mcast src filters. [PATCH] fix blk_start_queue() Here's the second attempt at fixing blk_start_queue(). The only change since last version is using proper atomic bitops. If we moved the read/write full to a different variable, we could rely on the queue lock for plugging and stop/start of queue (by far the most used bit operations there) and skip the atomic bitops. [PATCH] proper error cleanup on security_acct hook Noted by Stephen Smalley: sys_acct does not properly clean up the open file when the security_acct hook returns an error. Fixed thus. JFS: Avoid incrementing i_count on file create Committing a transaction creating a file required insuring that the inode stayed in cache until the journal was written to. i_count was being incremented until the transaction was complete. However, incrementing i_count caused fcntl(S_SETLEASE) to fail. I reworked the transaction code so that the inode does not have to stay in-memory while the transaction is being committed. Thanks to Steve French for figuring out why setlease was failing. [PATCH] fix CONFIG_PDC202XX_FORCE/BURST for modular pdc202xx new/old drivers From: Jakub Bogusz Add missing QUEUE_FLAG_REENTER bit from Jens' blk_start_queue() fix. [ALPHA] Fix compressed bootp. From Jay.Estabrook@hp.com. The bootstrap decompressor uses some libraries built for the kernel, which include lib/lib.a and thus vsprintf.o, whose "vsnprintf" contains an unresolved reference to "printk". This is caused by Linus' changes to "vsnprintf" which will now issue a (printk) warning message under certain conditions. JFS: Add lots of missing statics and remove dead code Submitted by Christoph Hellwig [PATCH] update filemap_flush() comments It provides a best-effort, minimum-latency "get all the writeout underway" function. [PATCH] vma corruption fix From: Hugh Dickins Fixes bugzilla #2219 fork's dup_mmap leaves child mm_rb as copied from parent mm while doing all the copy_page_ranges, and then calls build_mmap_rb without holding page_table_lock. try_to_unmap_one's find_vma (holding page_table_lock not mmap_sem) coming on another cpu may cause mm mayhem. It may leave the child's mmap_cache pointing to a vma of the parent mm. When the parent exits and the child faults, quite what happens rather depends on what junk then inhabits vm_page_prot, which gets set in the page table, with page_add_rmap adding the ptep, but junk pte likely to fail the tests for page_remove_rmap. Eventually the child exits, the page table is freed and try_to_unmap_one oopses on null ptep_to_mm (but in a kernel with rss limiting, usually page_referenced hits the null ptep_to_mm first). This took me days and days to unravel! Big thanks to Matthieu for reporting it with a good test case. [PATCH] gcc-3.5 io_apic.c build fix From: Valdis.Kletnieks@vt.edu The send_IPI_self() in smp.c was fixed but the one in io_apic.c was not. [ALPHA] Fix gcc 3.4 build problems. [PATCH] stop_machine_run: Move Bogolock Code Out of module.c The "bogolock" code was introduced in module.c, as a way of freezing the machine when we wanted to remove a module. This patch moves it out to stop_machine.c and stop_machine.h. Since the code changes affinity and proirity, it's impolite to hijack the current context, so we use a kthread. This means we have to pass the function rather than implement "stop_machine()" and "restart_machine()". [PATCH] make module code use stop_machine.c Now we've moved the bogolock code out to stop_machine.c and generalized it a little, use it in module.c and delete the duplicate code there. [PATCH] Fix hp100 EISA probing >>>>> "Pawel" == Pawel Sokolowski writes: Pawel> This machine has RAM BIOS booted from floppy. I ran it and EISA Pawel> configure utility to check this once more. Card is enabled and not Pawel> locked. I added eisa_bus.enable_dev=2 parameter but it didn't help much. Pawel> I'm getting: Pawel> EISA: Probing bus 0 at eisa0 Pawel> EISA: Mainboard HWPC061 detected. Pawel> EISA: slot 2 : HWP1940 detected (forced enabled). Pawel> EISA: Detected 1 card. Pawel> I added this final entry you mailed but nothing changed. Still - module Pawel> loads and unloads cleanly and without any warnings on 2.6.4-rc1. But Pawel> does nothing - not a single line in logs/dmesg after it's loaded. Card Pawel> does not work after modprobe, I can't get interface up. Ok, found it. It really looks like the new EISA probing code in hp100 never got tested, since a precious offset has disappeared during the rewriting process. Please note that you still need to enable the device by hand, since your BIOS (or maybe the EISA CFG file, since I'm seeing the exact same problem on a Compaq machine here) doesn't properly enable the card. Here is what I'm getting on my test system : EISA: Probing bus 0 at 0000:00:0f.0 EISA: Mainboard CPQ0541 detected. EISA: slot 1 : DEC4250 detected. EISA: slot 2 : UNB0048 detected. EISA: slot 3 : HWP1940 detected (forced enabled). hp100: Using (slow) programmed i/o mode. hp100: at 0x3c38, IRQ 3, EISA bus, 128k SRAM (rx/tx 75%). hp100: Adapter is attached to 10Mb/s network (10baseT). EISA: slot 4 : NVL0701 detected. [PATCH] pcnet32 transmit hang fix The pcnet32 driver will hang after a few frames (<30) with the 79C971 (and probably the 79C972 though I don't have the hardware to prove it). By interrupting slightly more frequently the hang will not occur. [PATCH] sata vs suspend-to-ram The following patch is a very crude one to at least not make sata block suspend-to-ram entirely. Probably you want more powermanagement handling as well... but it's a start [libata] Include linux/suspend.h [libata ata_piix] Make sure annoying BIOSen don't disable our interrupts [libata sata_promise] provide proper SCSI completion function Promise driver uses a custom error handling function, so we need the fix that was applied to the libata core: the SCSI error handling thread requires that we complete commands using a special completion function, since the normal one doesn't work inside the error handling thread. [PATCH] introduce __drain_pages() to take a CPU number Extracts core of drain_pages() for hotcpu use. Trivial. Hotplug CPU needs to drain pages on a downed CPU (usually it's the current cpu). Introduce "__drain_pages", make the CPU an argument, and expose it if CONFIG_HOTPLUG_CPU as well as CONFIG_PM. [PATCH] minor cleanups for hotplug CPUs Note that without CONFIG_HOTPLUG_CPU, online cpus == possible cpus, so substitutions are a noop. - Changes show_stat to print out stats for every possible cpu, not just online CPUs. - Allocate mem in stat_open on possible, not online_cpus. - Add conventient macros to cpu.h: especially cpu_is_offline() for testing if a cpu is still online. - Add a num_possible_cpus() similar to num_online_cpus(), and define cpu_possible_mask for UP. - Allow printk on down cpus once system is running. - Mask cpumask with possible, not online cpus, for sys_getaffinity(). [PATCH] remove sparc64's num_possible_cpus() Levent Serinol found that the hotplug cpu patch broke Sparc64. I introduced a num_possible_cpus(), which Sparc64 already has. Remove the Sparc64 one. I also removed Sparc64's cpu_online() macro: it's in linux/cpumask.h already. [PATCH] minor slab cleanups for hotplug CPUs - Move free_block prototype, and ac_entry and ac_data functions up in file. - Use list_for_each_entry in cpuup_callback. - Remove unneccessary g_cpucache_up in cpuup_callback. - Make reap_timer_func take CPU number as data, and check if that is offline before rescheduing (noop without CONFIG_HOTPLUG_CPU). Fix bogon in slab hotplug cleanup from Rusty. [PATCH] Clean up hotplug slab some more This is a cleaner fix for the previous bogon fix. [PATCH] R128 DRI limits checking. This got fixed in 2.4, but somehow got missed in 2.6. [IRDA]: Move proc_irda export out of irsyms.c into irproc.c [IRDA]: Flush irtty symbols that were exported but never used. [IRDA]: Move hashbin exports out of irsyms and into irqueue. [IRDA]: Move irttp exports out of irsyms. [IRDA]: Move iriap routines out of irsyms, rename missing to irias_missing. [IRDA]: Move irlmp routines out of irsyms. Also, make get_{saddr,daddr} inline and rename lmp_reasons to irlmp_reasons. [IRDA]: Move async_wrap function exports out of irsyms. [IRDA]: Move crc16 exports out of irsyms. Also, make type __u16 rather than unsigned short to match input parameter. [IRDA]: Make irda_start_timer inline rather than exporting. [IRDA]: More irlap exports out of irsyms. [IRDA]: Make irda_get_mtt et al. inline and not defines for better type checking. irda_device_setup can now be static, only called from alloc_irdadev. [IRDA]: Move qos related exports out of irsyms. [IRDA]: Move irda_param related exports out of irsyms. [IRDA]: Move last of irsyms.c to irmod.c Original patch from Stephen Hemminger Move last bits of code out of irsyms and onto irmod.c where initialization happens. Move irda_debug parameter out of irsyms.c into irmod.c and make it a new style module parameter. [IPV4/IPV6]: Add missing kmalloc failure checks. [IPV6]: Do not report {multi,any}cast in inet6_dump_ifaddr(). [PATCH] Print function names during do_initcall debugging From Jan-Benedict Glaw [PATCH] pmac_zillog 1/2 : Cosmetic only, change "up" to "uap" to avoid collision This does cosmetic changes the pmac_zilog, changing the use of "up" as an identifier in favor "uap" to avoid collision with semaphores, use proper debug macros, and a few other cosmetic bits. [PATCH] pmac_zilog 2/2 : Fix various bugs This fixes possible lockups in pmac_zilog when beeing flooded with incoming data (not that other serial drivers share the same race, I told Russel about it already). It also fixes some SCC initialization problems, add some PM callback, and fix the irda setup code. Linux 2.6.4-rc3 Make sure to include syscalls.h to get proper prototypes. Especially with REGPARM these things actually matter. [PATCH] Fix PCI<->OF matching on G5 AGP bus Strangely, I though I fixed that a long time ago, but it was still broken in the current tree... Drivers like radeonfb fail to find the OF device matching a given PCI device on the G5 AGP bus because of some bus renumbering tricks. This patch fixes the problem by fixing the bus numbers in the OF node. This corrects radeonfb and other drivers looking for EDID / PLL datas in the OF node. [PATCH] ppc64: Fix occasional crash at boot in OF interface The assembly code used to callback into Open Firmware client interface in 32 bits mode used to backup the stack pointer in the SPRG2 register. That upsets Apple's implementation of Open Firmware significantly and maybe others, causing them to crash in _some_ operations, apparently the trigger is to cause a segment or hash table fault, typically happens when letting that code initialize the second display. This patch fixes it, along with other cleanups of that asm code, it did unnecessary register restores and backing up the stack pointer is actually useless anyway. [PATCH] ppc64: Let OF initialize all displays in the system This patch reworks the early boot calls to OF to initialize displays. All present displays are now initialized in reverse order so the OF console stays on the first one. Initializing them all is necessary for dual head configurations as we need OF driver to properly setup the secondary TMDS of the video card, XFree isn't able to do that currently [ALPHA] Add stat64 syscalls. [PATCH] ppc64 POWER3 segment table fix The ppc64 fix last week (enforcing permissions on the kernel when accessing userspace pages) uncovered a bug on POWER3/RS64. We werent zeroing the segment table entry before overwriting it and it was possible for the ks bit to be set on a kernel segment. The VSID mask was also changed to match reality (we only use 13 bits). [PATCH] set request fastfail bit correctly From Mike Christie The first three bio and request flags are no longer identical. The bio barrier and rw flags are getting set in __make_request and get_request respectively, and failfast is getting left out. This sets the request's failfast flag in __make_request when the bio's flag is set. [PATCH] bttv input update This adds infrared remote support for a few more bt878-based TV cards. [PATCH] ncpfs fails to correctly retry requests on timeout sock_sendmsg() modifies iovec passed to it - it sets all length members of iovec array to zero on success transmission (and even on failed if it fails after iovec copy, but...) and advances pointers to point at the end of buffers used. This has an unfortunate effect that ncpfs's retry on failure does not work for IPX/UDP connections - kernel refused to do anything because length from iovec was 0 while length passed to sock_sendmsg() was correct. This simple fix gets rid of a problem by creating temporary iovec copy, which can sock_sendmsg destroy if it has such wish. Remove 'const' from min/max, to avoid gcc warning about double usage. Make bad_page() print out information about who triggered it. The condition still seems to happen on ppc64. [PATCH] tty oops fix From: William Lee Irwin III Remember to invalidate the task->tty of threads, otherwise prod_pid_stat() later stumbles over the dangling pointers and crashes. Revert 8259 timer ack workaround This patch was trying to work around buggy SMM bios but causes problems by not deasserting NMI irq line (reported by Thomas Schlicht) for some integrated local apic. This patch was written originally as an optimization (with the side effect to fix those bugged bios) but was never applied to 2.4 tree. The rational was: fix your bios instead. Cset exclude: akpm@osdl.org|ChangeSet|20040219045328|16041 [PATCH] USB: fix OHCI list corruption Fix some OHCI TD list corruption issues: - Don't rewrite HC registers holding ED pointers until the HC had a good chance to finish using them. - Don't ever modify ed->hwTailP Adds text describing the different ED states. Adds TEMPORARY hack that may make a "rm_list becomes circular" bug continuable. [PATCH] Proper OHCI unlink fix. Getting some blood sugar made the real fix for that become obvious! This replaces the preceding TEMPORARY hack. Only unlink EDs that aren't already being unlinked! Duh. Make bad_page() print out the page address. The bug turned out to be memory corruption by DMA, and the corrupted address made it that much more obvious. [PATCH] pcnet32.c oops When adding an additional device, a variable which has been removed is accessed. Adding the first device or a 4-port card works. Adding a second device was not done in PCI hot plug testing. Now tested on IA32. [PATCH] Fix lockup accessing config space on G5 This patch fixes the code that workaround lockups when accessing the config space of devices on K2 when they are shut down. The code was there but in the wrong place ;) And a typo prevented the ohci1394 version of it from working. Linux 2.6.4