Summary of changes from v2.5.63 to v2.5.64 ============================================ sysfs: add sysfs_update_file() - Updates the timestamp on an attribute file (so userspace can know when an attribute changed). - From Greg K-H. sysfs: split up inode.c into different files for different purposes. - new files file.c, dir.c, symlink.c, mount.c. - Purely cosmetic (for now). Should make it easier to add new filetypes. sysfs: further localize file creation. - reanme sysfs_get_inode() to sysfs_create(). - Assume we're using the single sysfs superblock when creating something. - move file object-specific init commands to callbacks. - streamline file and directory creation to remove duplicate checks. - clean up sysfs_fill_super() a bit. sysfs: add initial support for binary files. Yes, binary files. But before you scream in angst, please realize that they do have a marked purpose for exporting certain types of data from the kernel. Basically, they are for exporting blobs of data that likely have some structure, but that the kernel has no control over. This includes VPD data from device headers, EDD data, or CPU microcode. Instead of parsing the data, then formatting in a certain way, only so userspace can parse the data again, we just shove it out in a binary blob to userspace, and let them deal with it. Anyway, it defines a struct bin_attribute, with read() and write() methods for the data. A read call should set the pointer in the sysfs_bin_buffer object that is passed in. A write call receives a buffer ptr, too, and must obey the count/offset fields for correct data. [SCTP] Minor surgery on ulpevent & related cleanups. sndrcvinfo.sinfo_cumtsn is new field added by the latest (05) API I-D. Remove unused fields in ulpevent, minimally to make room for for storing this new field. But I'll clear out even more so I can make room for impending partial data delivery work. See changes in comments for ulpqueue.c. Many naming and typedef removal cleanups. [SCTP] SET_DEFAULT_SEND_PARAM sockopt. (ardelle.fan) Supports setting the default send params. Still needs a 'get' though. [SCTP] Partial Data Delivery Support pushing a partial record up to the application if we are receiving pressure on rwnd. The most common case is that the sender is sending a record larger than our rwnd. We send as much up the receive queue in hopes that a read will occur up room in rwnd. Other associations on the socket need held off until the partial delivery condition is finally fufilled (or ABORTed). Additionally, one must be careful to "do the right thing" with regards to associations peeled off to new sockets, properly preserving or clearing the partial delivery state. [SCTP] MSG_ADDR_OVER support. (ardelle.fan) Allow the primary destination address to be overridden on a per message basis. [SCTP] sctp mib statistics update/display support. [SCTP] Minor cleanup on tsnmap. Move duplicate TSN tracking into tsnmap. Remove typdefs for sctp_tsnmap_t and sctp_tsnamp_iter_t. [SCTP] C99 Initializer cleanup (Art Haas) Allow uart drivers to calculate divisors differently. In order to deal with the weird and wonderful ways of obtaining a uart clock which a lot of the high-speed hacks for 16550-based chips seem to have, we need to make uart_update_timeout() and uart_get_divisor() take the desired baud rate as their arguments, instead of termios or divisor as before. The main reason for the change to uart_get_divisor(), requiring a call to uart_get_baud_rate() before it, is so that the drivers actually _have_ the baud rate in order that they can pass it to uart_update_timeout(). Support high-speed serial modes of National Semiconductor and SMSC Super-IO chips. Complain about setting custom speed or divisor on serial ports. [SCTP] Update retransmission path in a round-robin fashion when a retransmission timer expires instead of using the same path until the path error count reaches its threshold value. [SCTP] Renege to make room for CTSN+1 chunk. If our receive buffer is full, but this is the most important TSN to receive, make room by reneging less important TSNs. Only renege if there is a gap and this is the next TSN to fit in the gap. Add getsockopt for DEFAULT_SEND_PARAM. (ardelle.fan) [netdrvr] Update Doc/networking/netdevices.txt with more locking rules kbuild: Remove scripts/elfconfig.h with "make clean" We have a bit of a mess with build-targets, EXTRA_TARGETS, targets, which needs cleaning up some time. Anyway, we just add $(targets) to the files which get deleted with "make clean" for now. kbuild: Fix a race with module postprocessing For the modversions case, we need vmlinux to be built before postprocessing modules can start, since we need to extract the checksums from it. For the non-modversions case, we use vmlinux if it's available (so we can sensibly give warnings about unresolved symbols), but otherwise not. However, this could race with vmlinux being built at the exact same time as being processed. Fixed by waiting until vmlinux is finished before starting module postprocessing. kbuild: Handle MODULE_SYMBOL_PREFIX in module postprocessing Loosely based on a patch by Miles Bader, have modpost deal with weird archs (v850) which prefix their symbols with '_'. Modpost does not yet handle ppc64 "prefix function symbols with '.'" correctly, btw. kbuild: typo fix Patch from Rolf Eike Beer: > Linus asked for typo fixes, so here is one... kbuild: [PATCH] eliminate warnings in generated module files From Richard Henderson: > The compiler.h fragment should describe the problem well enough. (I tested egcs 2.91.66, even there no problem) kbuild: [PATCH] Remove checkhelp.pl and header.tk From Brian Gerst: > Changes in the config system have obsoleted these files. kbuild: [PATCH] put genksyms in scripts dir This puts genksyms into scripts/genksyms/. genksyms used to be maintained externally, though the only possible user was the kernel build. Moving it into the kernel sources makes it easier to keep it uptodate, like for example updating it to generate linker scripts directly instead of postprocessing the generated header file fragments with sed, as we do currently. Also, genksyms does not handle __typeof__, which needs to be fixed since some of the exported symbol in the kernel are defined using __typeof__. (Rusty Russell/me) kbuild: [PATCH] adapt genksyms for current kbuild By Rusty Russell. o generate output in a form feasible as linker script instead of munging it with sed during the build o remove checksum version 1 support o remove prefix support kbuild: Fix genksyms __typeof__ handling genksyms used to fail generating a checksum for a symbol which was defined using __typeof__. This minimal patch fixes it to recognize the case which occurs in the kernel, it's not a complete correct typeof handling, but it serves our needs. ACPI: Do not count processor objects for non-present CPUs (Thanks to Dominik Brodowski) ACPI: Revert a change that allowed P_BLK lengths to be 4 or 5. This is causing us to think that some systems support C2 when they really don't. [PATCH] USB: sync with some 2.4 ohci fixes, prepare for backport The 2.5 version branched from 2.4.5 or so, and since then a couple hardware-specific tweaks were merged to 2.4; this teaches 2.5 about NatSemi SUPERIO and PA-RISC quirks. This also uses os/version neutral HCD calls to register the root hub and find the HCD's bus. It also adds os/version neutral macros for its diagnostic macros. Most of those changes have been split out separately, but the macros and a few uses of them weren't naturally splittable. Also a couple minor cleanups, like removing CVS ids, having only one copy of a routine used with the debug files, and getting rid of some inline #ifdefs. [PATCH] USB: ohci-hcd, more portable diagnostics This is the rest of the work to make the driver not care which version of the OS it's using, so the difference between the 2.5 and 2.5 versions can just be a small patch with stuff that has a real need to be different. [PATCH] USB: ohci-hcd fewer diagnostics This gets rid of some potentially scarey messages I've recently seen on disconnect, "bad hash" for a TD ... it's really a "no hash" case, and this prevents the message in some cases where that's not an issue. Likely this is what Gary Gorgen noticed, but even he had a different problem, this message shouldn't always appear. It also slims down one other message, preventing it from appearing in the routine "protocol stall" case (and cluttering logfiles). [PATCH] USB: usbtest checks for in-order completions This makes "test 10" verify that completions are returned in-order, resolving a FIXME. OHCI and EHCI do, but UHCI doesn't. (*) That simplified a cleanup of the queue fault tests to make it easier to handle optional faults (with one or more failure modes). It also returns a "lost subcase" that accidentally was not getting run. And in a case of pure paranoia, the unlink tests handle the EBUSY return from an async urb unlink ... if that ever shows up I'd expect it to be on an SMP box. (*) I'd suspected as much given the first round of tests with UHCI; the diagnostics from "usbtest" made no sense otherwise. This is just repeatable confirmation of the earlier bug report. This could cause trouble in the usb_sg_*() I/O calls. In this case, "testusb -at10 -g4" reported that subcase 1 completed out of order (before subcase 0) ... without looking at details, I'd guess a list_add() vs list_add_tail() issue. Then after trying the queue cleanup code, I got diagnostics from uhci_destroy_urb_priv; then a kmalloc poisoning oops in uhci_irq, or "uhci_remove_pending_qhs+0x7c/0x1b0" in more detail. Those looks to be the same "can't unlink from completions" errors that was also reported before in that code. Note that "testusb -at10" (like "testusb -at9") can be made to work with any USB device, using "usbtest" module options. [PATCH] USB speedtouch: take ref to USB device udsl_atm_proc_read may be called after USB disconnect. [PATCH] USB: Yet another unusual_devs.h member. Also note that SL11R was duplicated, so I removed it. [PATCH] USB ipaq.c: add ids for fujitsu loox Added ids for the Fujitsu-Siemens Loox. Thanks to Michael Brausen. [PATCH] USB speedtouch: use USB dbg macro [PATCH] USB: USB-MIDI support for Roland SC8820 [AGPGART] compile fix for alpha. Spotted by Jeff Wiedemeier [PATCH] USB visor: fixed the driver_info cast to the proper type. [PATCH] USB visor: cleanup the close() logic [PATCH] USB pl2303: add locking now that the usb-serial core doesn't protect us. do_mounts: Move devfs into own file. Get rid of a couple scattered #ifdef CONFIG_DEVFS_FS in init/do_mounts.c by moving the devfs code into its own file and using stubs when it's not selected. do_mounts: __init* cleanup o prepare_namespace() is called before free_initmem(), so it can be __init. o all static data in do_mounts.c can be __initdata for the same reason. o move the __init into its standard location between return value and function name. o root_device_name can be a char *. do_mounts: move early MD setup into own file Again, just get rid of some #ifdefs by moving MD setup into its own file which is only compiled when CONFIG_BLK_DEV_MD is set. do_mounts: fix device name recognition for md= command line option As we all know, strncmp() returns 0 for match... Obviously nobody uses this codepath since it never worked, but let's fix it anyway. do_mounts: Remove unneeded check for initrd_start If initrd_start is 0, initrd_load() -> rd_load_image() -> open("dev/initrd") will fail anyway, so no need for the explicit check here. do_mounts: initrd_load() is never called w/o CONFIG_BLK_DEV_INITRD When CONFIG_BLK_DEV_INITRD is not set, mount_initrd will always be 0, so initrd_load() won't be called. However, we need a stub to make the compiler happy. do_mount: Move more of the initrd load logic into initrd_load() This just moves a bit of logic out of prepare_namespace() into initrd_load(), which means that we now don't reference handle_initrd() anymore if CONFIG_BLK_DEV_INITRD is not set (we wouldn't call it anyway), so we can put some bits of code under a common #ifdef CONFIG_BLK_DEV_INITRD. do_mounts: Simplify logic for ramdisk from floppy. Currently, we would try to read in a ramdisk image from floppy, if o root device is /dev/fd* o "load_ramdisk=1" on the command line o CONFIG_BLK_DEV_INITRD is not set, or "noinitrd" on the command line. Relax the last restriction, which only makes things more complicated for no reason, and changes behavior depending on an unrelated config option. do_mounts: mount_initrd is now only needed w/CONFIG_BLK_DEV_INITRD The mount_initrd check can be moved into initrd_load(), so that we have all initrd code consolidated in one #ifdef'd section now. do_mounts: Move CONFIG_BLK_DEV_RAM stuff into own file There's still an #ifdef in there for CONFIG_BLK_DEV_INITRD, but at some point it just gets too many files, so accept that for now. There's also a #define BUILD_CRAMDISK in there, which should be either made a config option or removed... [SERIAL] 64bit warning in serial/core.c Patch from Andi Kleen. Just avoid a warning from converting 64bit pointers to 32bit int. For 2.5.59. do_mounts: Separate out common root mounting code into do_mount_root() Small savings, but somewhat nicer anyway. do_mounts: create_dev() before mounting The only path where the /dev/root created by prepare_namespace() wouldn't be overwritten by a later create_dev() call is mount_nfs_root(), so move it there, so that all the create_dev() calls are now next to the actual mount. Also simplify mount_root() a little. [PATCH] wd33c93 updates The PC98 folks have some updates in their tree to make the generic wd33c93 driver usable in PIO mode, but unfortunately the way they do it (include a header specific to their lowlevel driver in wd33c93.c conditionally) is rather ugly. I reworked it to provide different implementations of the access method inside wd33c93.c independent of the lowlevel driver. In addition the patch contains various patches to actually get the driver compile in 2.5 and a reindent to follow kernel codingstyle (sorry, but the maintainer hasn't touched it for four years and it made my eyes bleed..) [PATCH] fix some Kconfig typos spotted by Matthew Jacob [PATCH] some scsi_scan.c restructuring for ieee1394 hotplugging I had some discussion with Ben Collins on ow to properly allow hotplugging of ieee1394 storage device (sbp2). While the scsi_add_host/ scsi_remove_host interface allows hotpluging of ieee1394 adapters we need a way to register the actual devices with the scsi layer when they're plugged in. I've restructured the code to handle the /proc/scsi/scsi code to add/remove devices a bit to have an interface the ieee1394 driver can use, and created the following new interface: struct scsi_device *scsi_add_device(struct Scsi_Host *shost, uint channel, uint id, uint lun) int scsi_remove_device(struct scsi_device *sdev) in addition scsi_probe_and_add_lun() got some overhaul to become readable and can now return the struct scsi_device it probed as an optional argument. clean up wd33c93 data direction code Data direction is now provided by the SCSI mid-layer [PATCH] Add PC-9800 bios parameter support in SCSI James' scsi tree already contains an big update to wd33c93 that will make integrating pc980155 a lot easier - it will hopefully appear in 2.5.63. I've done some more work on the bios parameter stuff, this is the patch I came up with, James can you merge it into the linux-scsi tree? It just adds a new file for pc98-style bios geometry to the scsi core. [WATCHDOG] SuperH 5 support for SH watchdog driver. From patch in 2.4 by Paul Mundt [PATCH] swsusp and S3 fixes These are minor fixes for swsusp and S3 sleep. - #ifdef mess in acpi_save_state_mem() is simplified - better error handling in reserving bootmem - handle video bioses that play with segment registers - automagic support for S3 on toshiba notebook - don't try to sync() when pdflush is already stopped - reorder actions to make pdflush not complain [PATCH] fix make rpm make rpm has been broken in several kernel versions, fix it. Solves http://bugme.osdl.org/show_bug.cgi?id=373 which Paolo Ciarrocchi pushed me to fix. 1) Moved make rpm to the noconfig section, thus allowing it to see the clean target. 2) Fixed the commandline for find 3) Use rpmbuild if present 4) In mkspec use the generic all target, and drop the dep target This made the build command arch independent Make ACPI dmi fixup properly depend on CONFIG_ACPI_SLEEP Sun StorEdge[tm] array SparseLUN support Hello, I work on the Sun StorEdge[tm] arrays for Sun Microsystems, Inc. As part of my testing of Linux, the attached changes are needed to enable Sparse LUN support for Sun StorEdge[tm] arrays. [PATCH] IBM PCI Hotplug: Clean up the error handling logic for a number of functions, and fix a locking mess. [PATCH] IBM PCI Hotplug: fix typo in previous patch. [PATCH] IBM PCI Hotplug: get rid of unneeded ops structure and surrounding logic. [PATCH] PCI Hotplug: remove the list_lock, as we rely on sysfs to detect any duplicate slot names. [PATCH] Compaq PCI Hotplug: move /proc files to sysfs [PATCH] Compaq PCI Hotplug: rename cpqphp_proc.c to cpqphp_sysfs.c [PATCH] PCI: remove check_region abuse (and code duplication) from pci hp code We have a function pci_dev_driver() to check whether a pci_dev has an driver attached to it. It's handling of legacy devices is a bit simpler than what the hotplug code did (duplicated in various places), but if that stuff is really needed the generic code should be updated. [PATCH] PCI: Make hot unplugging of PCI buses work Here's the updated patch: - Scott spotted a leak my handling of procfs wrt buses. - I've also killed pci_remove_device() entirely - it is now inlined. - After one of Alan's mails, I decided that pci_remove_behind_bridge() is a much better name than pci_remove_all_bus_devices() [PATCH] Compaq PCI Hotplug: convert to use pci_remove_bus_device instead of custom code. [PATCH] Compaq PCI Hotplug: remove unused walk of the device on insertion. [PATCH] ACPI PCI hotplug: convert to use pci_remove_bus_device() Also got rid of some unneeded bus walking on device init and shutdown. [PATCH] IBM PCI Hotplug: convert driver to use pci_bus_remove_device() Also cleaned up a lot of unnecessary bus walking on device startup and shutdown. [PATCH] PCI: export pci_scan_bus_parented which is needed by the IBM pci hotplug driver. [PATCH] CPCI core: remove unneeded visit device on unconfigure. The driver now links properly, but this is untested due to my lack of cPCI hardware. kbuild: make -j race fix, cosmetics Yet another "make -j" race fixed, and print the right number of spaces for consisting output [PATCH] Spelling fixes - occurrence This fixes: occurence -> occurrence occurences -> occurrences Fixes 13 occurrences (literally!) in all. [PATCH] Spelling fixes - receive This fixes: recieve -> receive recieved -> received reciever -> receiver Fixes 14 occurrences in all. [PATCH] Spelling fixes - occurring This fixes: occuring -> occurring Fixes 29 occurrences in all. [PATCH] Spelling fixes - occurred This fixes: occured -> occurred Fixes 135 occurrences in all. [PATCH] Spelling fixes - transceiver This fixes: tranceiver -> transceiver Some function names had this misspelling (e.g. e100_reset_tranceiver) and I changed them, but I haven't tested it. Fixes 34 occurrences in all. [PATCH] Spelling fixes - initial This fixes: intial -> initial intially -> initially intiali[sz]e -> initiali[sz]e intiali[sz]ed -> initiali[sz]ed intiali[sz]es -> initiali[sz]es intiali[sz]ation -> initiali[sz]ation Fixes 32 occurrences in all. [PATCH] Spelling fixes - necessary This fixes: neccessary -> necessary unneccessary -> unnecessary Fixes 46 occurrences in all. [PATCH] Spelling fixes - privilege This fixes: priviledge -> privilege priviledged -> privileged unpriviledged -> unprivileged nonpriviledged -> nonprivileged Fixes 7 occurrences in all. [PATCH] Spelling fixes handel -> handle This patch provides the following spelling fixes: handel -> handle handeling -> handling handeled -> handled handeler -> handler [PATCH] 2.5.63 loose pedantry; loose -> lose where appropriate. This patch replaces "loose" with "lose" where appropriate. There remain 56 correct uses of "loose" in the 2.5 kernel source. [PATCH] Spelling fixes for relevent -> relevant This patch provides spelling fixes for the following: relevent -> relevant irrelevent -> irrelevant [PATCH] Spelling fixes for negotation -> negotiation and others. This patch provides the following spelling fixes: negotation -> negotiation stabelized -> stabilized labled -> labeled availible -> available tabel -> table [PATCH] Spelling fixes for shold -> should and others This patch provides spelling fixes for the following: shold -> should Docement -> Document docomented -> documented whic -> which thresold -> threshold asociation -> association [PATCH] Spelling fixes for paticular -> particular and others. This patch provides the following spelling fixes: paticular -> particular usefull -> useful occurance -> occurrence occurances -> occurrences successfull -> successful [XFS] Allow the pagebuf daemon to suspend. SGI Modid: 2.5.x-xfs:slinx:140015a [XFS] Remove some off_t abuse in pagebuf_offset and the page_io routine, after some careful analysis. SGI Modid: 2.5.x-xfs:slinx:140039a [XFS] Fix some comments, remove an unused variable from the stack, fix missing clear of pb_locking field if IO completion handled in pagebuf_iorequest. SGI Modid: 2.5.x-xfs:slinx:140047a [XFS] Revert the recent hashing change, performance seemed to go way down in certain benchmarks. This is reverted to how it was, except the number of hash buckets is larger than previously to attempt to account for the workload Steve was originally targetting with that change. SGI Modid: 2.5.x-xfs:slinx:140053a [XFS] spin_lock_irqsave must take an ulong, not int. Spotted by Anton Blanchard SGI Modid: 2.5.x-xfs:slinx:140135a [XFS] fix compilation with CONFIG_SYSCTL=n SGI Modid: 2.5.x-xfs:slinx:140173a [XFS] shut up gcc warnings about _lsn_cmp SGI Modid: 2.5.x-xfs:slinx:140187a [XFS] Transition from xfsroot attribute namespace to the more generic trusted namespace which other filesystems are also supporting. SGI Modid: 2.5.x-xfs:slinx:140237a [XFS] Remove flags argument from xattr inode operations again SGI Modid: 2.5.x-xfs:slinx:140255a [PATCH] make jiffies wrap 5 min after boot From Tim Schmielau Force jiffies to start out at five-minutes-before-wrap. To find jiffy-wrapping bugs. [PATCH] Fix user time accounting's handling of jiffies wrap Patch from Hugh Dickins Userspace shows huge elapsed time across jiffies wrap: with USER_HZ less then HZ, sys_times needs jiffies_64 to calculate its retval. [PATCH] hugetlb put_page speedup Rework this function so that we only make the indirect call to the page-freeing function on the final put_page(), rather than on every invokation. [PATCH] Fix slab batchcount limiting code Spotted by Anton Blanchard: Our attempt to limit the interrupts-off time in slab wasn't very effective. #ifndef DEBUG is never true. [PATCH] crc32 optimizations Patch from Joakim Tjernlund Here is another update(against BK curr) for crc32(). A kind soul pointed out the optimizations below. lib/crc32defs.h: - Make it possible to define new values for CRC_LE_BITS/CRC_BE_BITS without modifying the source. lib/crc32.c: - Eliminate the need for ENDIAN_SHIFT. Saves a 24 bit shift in the byte loops. - Swap the XOR expression in DO_CRC. gcc for x86 can not do that simple optimization itself(gcc 3.2.2 and RH gcc 2.96 tested). Will improve performance with 20-25% on x86. [PATCH] flush_tlb_all preempt safety for voyager Patch from Thomas Schlichter Make flush_tlb_all() preempt-safe. Same as the ia32 fix. [PATCH] Early ioremap support for ia32 Patch from Patricia Gaughen , Dave Hansen It provides a very early sort of kmap-by-hand. The patch is used by the x440 discontigmem to map the srat tables into low memory so that the memory can be setup. This remap function is used very early in the boot process... at the start of setup_arch(). This functionality is only available to Summit and NUMAQ. It will work on other platforms, but they do not need it. [PATCH] x440 SRAT parsing Use the early ioremap code to parse the Static Resource Affinity Table on x440 machines. [PATCH] use find_get_page() in do_generic_mapping_read() do_generic_mapping_read() has an open-coded version of find_get_page() hidden inside it. [PATCH] Make kIrDAd us interruptible sleep Use interruptible sleep rather than uninterruptible to avoid perturbing load average. [PATCH] Check for zero d_count in dget() Patch from Maneesh Soni Turns out that sysfs is doing dget() on a zero-ref dentry. That's a bug, but dcache is no longer detecting it. The check was removed because with lockless d_lookup, there can be cases when d_lookup and dput are going on concurrently, If d_lookup happens earlier then it may do dget() on a dentry for which dput() has decremented the ref count to zero. This race is handled by taking the per dentry lock and checking the DCACHE_UNHASHED flag. The patch open-codes that part of d_lookup(), and restores the BUG check in dget(). [PATCH] Remove redundant check in pte_alloc_map() This check is not needed - the PMD is known to be present. [PATCH] SARD accounting fix Patch from Rick Lindsley Fixes a couple of odd cases in which disk requests were not being accounted for. [PATCH] Fix race between umount and inode pruning Patch from Hugh Dickins When prune_icache coincides with unmounting, invalidate_inodes notices the inode it's working on as busy but doesn't wait: Self-destruct in 5 seconds message, and later iput oopses on freed super_block. Neither end is a fast path, so the patch just adds iprune_sem for exclusion. The semaphore is held across dispose_list so that dispose_list->clear_inode->destroy_inode cannot reference a destroyed superblock. [PATCH] fix bug in slab.c debugging Patch from John Levon Looked like this condition was previously always false ... [PATCH] ext3: fix htree memory leaks Patch from Alex Tomas Fixes a couple of memory leaks in the htree code. [PATCH] fix IRQ balancing disable controls Patch from "Martin J. Bligh" Fixes up the logic and code which is used to suppress the IRQ balancing code. We now just have a single boolean, "irqbalance_disabled". The initial value comes from the per-platform "NO_BALANCE_IRQ" constant. If the platform defaults to "on", users can override this with the "noirqbalance" kernel boot option. [PATCH] don't let OOM killer kill same process repeatedly Patch from Rik van Riel If a process cannot exit because it's stuck in eg. a driver, it doesn't make sense to have the OOM killer kill it repeatedly; that could lead to a hung system. Instead, kill another process if the first process we tried to kill hasn't made any move to exit within 5 seconds. This way we have a much better chance of recovering the system. [PATCH] add some missing gloabl_flush_tlb() calls Patch from Thomas Schlichter Adds some missing global_flush_tlb() calls, which are requried after a call to change_page_attr(). [PATCH] ext3: speed up O_SYNC writes This is a forward-port of a 2.4 change from Stephen. The (old) 2.5 code is forcing a commit on every write by artificially dirtying the inode. But generic_file_aio_write() has called generic_osync_inode() for us, which has synced the file data. There is no need to force the extra commit. [PATCH] remove MAX_BLKDEV from genhd.c Patch from Andries.Brouwer@cwi.nl A patch for genhd.c: - removed outdated comments - removed MAX_BLKDEV In genhd.c the variable MAX_BLKDEV was only the size of a hash table, so I made it MAX_PROBE_HASH. It can be 1, or 23, or 256, or whatever one wants. Note that the current setup requires that every device number in a given range is mapped by dev_to_index() to the same index in the hash table, so this routine will have to be adapted in case one wants to register multimajor ranges. Discussion is possible about whether struct blk_probe needs a dev_t or a kdev_t, but I left things this time. If a range can end at precisely the end of [k]dev_t space, the old code was wrong since (p->dev + p->range) would be 0. That is why "p->dev + p->range <= dev" was replaced by "p->dev + p->range - 1 < dev". [PATCH] fix md /proc oops It it is using a pointer to a ctl_table for its proc_handler function pointer. Goes oops. [PATCH] USB: fix potential races in mct_u232 now that there's no locks in the usb-serial core. USB: fixed potential races in belkin_sa.c now that there's no locks in the usb-serial core [PATCH] USB ohci: "registers" sysfs file This is a slightly cleaned up version of Kevin's patch to add a "registers" sysfs debug file. Minor style and whitespace fixups, prints the other register, resolved config/build issues (minor). It also has two minor tweaks: a fix for a potential assertion violation on a "dead-hc" cleanup path (rare), and wasting less time blocking irqs when they're already blocked. [PATCH] USB: ehci-hcd, partial VIA workaround This patch resolves a FIXME, which happens to make many of the VIA problems act significantly less severe. The change defers unlinking any QH that just became idle, since it's not unlikely it'll be used again before many milliseconds pass. It reduces the number of unlink interrupts (IAA), and means fewer re-activation issues. Like: newly queued TDs being all or partially processed before the QH gets de-activated. The VIA hardware seems to have some problems in those cases. (Which are extremely common on 2.4 kernels, and less so on 2.5 because usb-storage streams data much better now.) It also starts tracking the "lost IAA" errors that I see on at least one VT8235 motherboard. It shows in the "registers" sysfs file. It'd be good to know if it's just my hardware that has this problem, or if other folk also see it. [PATCH] USB: New vendor/product ids for scanner driver This patch adds vendor/product ids for Artec, Avision, Brother, Medion, Primax, Prolink, Fujitsu, Plustek, and SYSCAN scanners. [PATCH] USB: Fixed generation of devfs names in scanner driver This patch fixes the generation of devfs names if dynamic minors are disabled. [PATCH] USB: KB Gear USB Tablet Drivers Attached are drivers for the KB Gear JamStudio Tablet. There are two files, one is against 2.4.20, the other against 2.5.62. I'm hoping this isn't too late in the 2.4.21-pre stages to get included (or the 2.5, for that matter =). This driver Works For Me, on both 2.4.20 and 2.5.62. Anyway, as usual, comments, complaints, and patches are more than welcome. [PATCH] USB: fixed potential races in kl5kusb105.c now that there's no locks in the usb-serial core [PATCH] USB: Small patch Here's a small patch to make your tree in sync with mine. Somehow, a line of comment got lost somewhere. [PATCH] remove kdevname abuse from reiserfs dito [PATCH] remove unused variables from the i2c core (from lm_sensors CVS) [PATCH] remove an unused function from the i2c core (from lm_sensors CVS) [PATCH] remove kdevname abuse from init/do_mount.c use bdevname() for block devices. [PATCH] i2c-dev cleanup (based on lm_sensors CVS) [PATCH] remove unused last argument to i2c_register_entry (from lm_sensors CVS) [PATCH] small i2c-amd8111 updates (based on lm_sensors CVS) [PATCH] pnp_activate_dev API changes. Someone nuked the 2nd arg in 2.5.62, but didn't fix up all the callers. Lazy. [PATCH] small drivers/atm/* cleanup The patch below does the following: - remove #if'd kernel 2.2 code - changes one MIN to min [PATCH] Spelling fixes: can't cant -> can't (28 occurrences) [PATCH] Spelling fixes: couldn't couldnt -> couldn't (4 occurrences) [PATCH] Spelling fixes: doesn't doesnt -> doesn't (35 occurrences) [PATCH] Spelling fixes: won't wont -> won't (21 occurrences) [PATCH] Spelling fixes: don't dont -> don't (135 occurrences) [netdrvr tg3] disable 5701 h/w bug workaround during core clock reset [PATCH] include unistd.h in m68knommu syscalltable.S This includes asm/unistd.h in the system call table setup code for m68knommu. It needs the local NR_syscalls define. linux/unistd.h is not assembler clean, so it must be asm/unistd.h. [PATCH] switch m68knommu to using asm-generic/siginfo.h This modifies the m68knommu siginfo include file to use asm-generic/siginfo.h instead of the asm-m68k/siginfo.h. The asm-generic/siginfo.h is more appropriate here, and the m68k is out of date. [PATCH] define struct for m68knommu/ColdFire timer registers This creates a sturcture to mirror the m68knommu/ColdFire CPU timer hardware. This is a much cleaner approach to accessing the timer registers than the previous set of register address defines. [PATCH] define timer_t and clockid_t for m68k archiecture This adds m68k defines for __kernel_timer_t and __kernel_clockid_t. The reset signal changes means these are now needed. [PATCH] include unistd.h in m68knommu vectors.c This includes unistd.h in the high level vector handling code. It needs NR_syscall. [PATCH] create NR_syscalls for m68knommu architecture This patch creates a local NR_syscalls define for the m68knommu architecture. [PATCH] include unistd.h in m68knommu entry.S This includes asm/unistd.h in the vector handling code for m68knommu. It needs the local NR_syscalls define. linux/unistd.h is not assembler clean, so it must be asm/unistd.h. [PATCH] Modules race fix Bob Miller points out that the try_module_get in use_module() can, of course, fail. Secondly, there is a race between setting the module live, and a simultaneous removal of it. [PATCH] Modules code tidy up Now that we search for 11 different sections by name, the if/else was getting unwieldy. Also, handle_section just does relocs, so it's a bit of a misnomer, and it's best simply moved into the main code. This open-codes handle_section, which simply does relocations now. Also adds "find_sec" and uses it to find the various sections. [PATCH] trident 1/3 fix "did not come out of reset" The M5451 can sometimes not come out of reset. This is non fatal and it continues to work fine, so print a nasty message but don't fail the driver initialization. [PATCH] trident 2/3 make me the maintainer Make Muli Ben-Yehuda the maintainer for trident as per Alan's suggestion [PATCH] trident 3/3 use pr_debug instead of TRDBG use the standard pr_debug macro instead of TRDBG [PATCH] replace it's with its where appropriate. This patch replaces it's (it is) with its (possessive of it) in the following cases where the possessive of it is meant. to it's -> to its into it's -> into its from it's -> from its of it's -> of its with it's -> with its under it's -> under its about it's -> about its [PATCH] replace its with it's where appropriate. This patch replaces its (possessive of it) with it's (it is) in the following cases where "it is" is meant. its a -> it's a its an -> it's an its not -> it's not except for the files arch/cris/boot/rescue/head.S arch/cris/kernel/kgdb.c where the substitution is "its not" -> "it is not" to avoid possible problems with single quotes in assembly comments. [netdrvr tg3] fix NAPI deadlock * do not hold driver spinlock during RX processing in tg3_poll (this is the deadlock fix) * create netif_poll_{en,dis}able to synchronize against dev->poll() * create __netif_rx_complete to avoid a third irq-save in tg3_poll * create tg3_netif_{start,stop} as driver-specific helper functions which disable and enable NAPI polling and TX queueing. Note that the TX queueing enable/disable is purely advisory, and is not intended to prevent any races. * remove tg3_halt call from tg3_set_power_state, as all callers have already called tg3_halt, making it redundant. Removing this function call also eliminates some locking complications. * use new helper __netif_rx_complete in tg3_poll * create tg3_reset_task, as a function that runs in process context which resets the NIC. This is needed because tg3_netif_stop() calls schedule() in the process of disabling dev->poll. * schedule tg3_reset_task from tg3_tx_timeout * schedule tg3_reset_task from tg3_timer * wrap several tg3_halt...tg3_init_hw sequences with tg3_netif_stop...tg3_netif_start. In addition to synchronizing with dev->poll, this additionally fixes bugs where we were not calling netif_wake_queue, when we should have been. * move netif_start_queue call to very bottom of tg3_open * add missing tg3_netif_{start,stop} to tg3_{suspend,resume}, further fixing obvious bugs. [netdrvr tg3] bump version to 1.4c / Feb 18 [netdrvr tg3] properly synchronize with TX, in tg3_netif_stop [netdrvr tg3] fix TX race in previous code, and another buglet * call netif_tx_disable after netif_poll_disable, fixing TX race, in tg3_netif_stop * follow the ordering of the tg3_netif_stop change, and enable poll after waking TX, in tg3_netif_start * after doing those two steps in tg3_netif_start, check for work using new helper function tg3_cond_int * add helper function tg3_cond_int, which delivers an interrupt if and only if the status block was updated (i.e. if work is likely to be available) [wireless] cleanup after recent shuffle In kernel 2.5.63, you have moved more wireless LAN drivers into ../drivers/net/wireless/. Unfortunately, there was a bit more to cleanup as the result of this work. You will need to : o Apply the attached patch o rm /drivers/net/pcmcia/aironet4500_cs.c Have fun... Jean P.S. : You will notice that I took the liberty to organise the config option in what I hope is a more logical order. [PATCH] Spelling fixes: weird wierd -> weird wierdo -> weirdo wierdness -> weirdness [PATCH] Spelling fixes: immediately immediatly -> immediately [PATCH] Spelling fixes: whether wether -> whether (A "wether" is a castrated goat.) [PATCH] Spelling fixes: invocation invokation -> invocation [PATCH] Spelling fixes: boundary boundry -> boundary boundries -> boundaries [PATCH] Spelling fixes: ugliness uglyness -> ugliness [PATCH] Spelling fixes: guarantee guarentee -> guarantee guarenteed -> guaranteed guarentees -> guarantees [PATCH] Spelling fixes: accommodate accomodate -> accommodate accomodated -> accommodated accomodates -> accommodates Fix up kernel/module.c breakage. Bad Rusty! [PATCH] USB: add the rest of the interface descriptor info to sysfs USB: fix bug that prevented usbcore from shutting down. [PATCH] C99 struct initialisers for aacraid [PATCH] aacraid extra devices. >From 2.4 [PATCH] increase aha152x timeouts. This made it into 2.4, and aparently fixes a problem with some tape devices. [PATCH] dpt_i2o bits from 2.4 First hunk is unexplained. Second hunk had the 2.4 changeset comment 'fix warnings' [PATCH] fdomain isa_ API conversion. [PATCH] fdomain pcmcia update from 2.4 [PATCH] Put sgiwd93.c back in sync with 2.4 [PATCH] sun3 updates from 2.4 [PATCH] Erroneous colon in sym53c8xx.c [PATCH] important bits. Spelling fixes! Woo! I gotta get me some of that. [PATCH] copy-paste ; breakage in sym_2 Same bug as other sym driver. [PATCH] wd33c93 sync up with 2.4 ACPI: Fix derive_pci_id (Ducrot Bruno, Alvaro Lopez) ACPI: Never use ACPI on VISWS [PATCH] Hex numbers in NCR53c406a.c This patch makes sure that there is a "0x" in front of all hex numbers and makes all outputs use a single style (all %x instead of mixed %x and %X). Eike [PATCH] IPS driver typo Not tested, against 2.5.63 regards john [PATCH] scsi_add_host/scsi_Remove_host for aic7xxx/aic79xx I remember having this submitted a while ago, but here's the code again, this time with the untested aic79xx bits. [PATCH] sun3_NCR typo Untested, 2.5.63 [PATCH] aix7xxx_old typo Untested, against 2.5.63 regards john [PATCH] FlashPoint typo Against 2.5.63, untested regards john [PATCH] NCR5380 typos Against 2.5.63, untested regards john [PATCH] update nsp_cs to use scsi_add_host / scsi_remove_host On Wed, Feb 26, 2003 at 08:20:05PM +0100, Christoph Hellwig wrote: > This patch updates nsp_cs to use scsi_add_host / scsi_remove_host when > compiledfor Linux 2.5 which allows to get rid of the scsi host list > walks and is a preparation for allowing to support multiple cards of > this type. Sorry, I sent you the wrong paetch, here's the right one: [PATCH] AM53C974 typo Against 2.5.63, untested regards john [PATCH] alpha: context switch fixes - Fix argument order for cmpbge in non-ev67 __ffs(). This caused a machine check in PAL mode early on boot, apparently in swpctx. - Sync up ret_from_fork with i386. This fixes "Badness in context_switch .." flood on UP. Ivan. [PATCH] alpha: remove ali ide quirk This quirk doesn't work anyway, the actual problem is fixed in generic PCI code now. Ivan. ACPI: Expand the mem= cmdline to allow the specification of reserved and ACPI DATA blocks (Pavel Machek) [PATCH] APIC ID fixes 1) apic_write_around(APIC_ID, boot_cpu_physical_apicid) places the APIC value in the lower 8 bits of APIC_ID, when it should be in the upper 8. As as result, it effectively forces the APIC id to always be 0 for the boot CPU, which is fatal on SMP AMD boxes. Fix: don't do the write at all. The APIC_ID value should be right already. 2) phys_cpu_present_map = 1 means we always set bit 0, but later on in setup_local_APIC() we do if (!clustered_apic_mode && !test_bit(GET_APIC_ID(apic_read(APIC_ID)), &phys_cpu_present_map)) BUG(); and the bug is triggered if the APIC_ID is not zero. Fix: initialize 'phys_cpu_present_map' correctly. [PATCH] Trivial patch for usb.h The usb_snddefctrl and usb_rcvdefctrl macros are wrong. This hasn't shown up until now because usb_rcvdefctrl isn't used anywhere at all, and usb_snddefctrl is used exactly once (in core/usb.c). This patch fixes the macros and moves them to hcd.h. ACPI: Map in entire table before performing checksum (John Stultz) [PATCH] USB: add support for two new keyspan drivers Thanks to kernel1@jsl.com for helping with this patch. [PATCH] scsi_set_device_offline lock fix Patrick pointed out that I could get into a ABBA issue with holding list_lock while calling scsi_eh_scmd_add which takes host_lock. A call to scsi_prep_fn already holds the queue_lock and then makes a call to scsi_get_command which takes list_lock. -andmike -- Michael Anderson andmike@us.ibm.com ===== name: 00_scsi_set_device_offline.diff version: 2003-02-26.15:18:19-0800 against: scsi-misc-2.5 scsi.c | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) ===== [PATCH] fix compilation of g_NCR5380.c In 2.5.63 I get the following compile error in drivers/scsi/g_NCR5380.c: <-- snip --> ... gcc -Wp,-MD,drivers/scsi/.g_NCR5380.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=k6 -Iinclude/asm-i386/mach-default -nostdinc -iwithprefix include -DKBUILD_BASENAME=g_NCR5380 -DKBUILD_MODNAME=g_NCR5380 -c -o drivers/scsi/g_NCR5380.o drivers/scsi/g_NCR5380.c drivers/scsi/g_NCR5380.c: In function `generic_NCR5380_detect': drivers/scsi/g_NCR5380.c:326: too many arguments to function `pnp_activate_dev' ... make[2]: *** [drivers/scsi/g_NCR5380.o] Error 1 <-- snip --> The following patch fixes it: [PATCH] fix the compilation of sym53c416.c In 2.5.63 I get the following compile error in drivers/scsi/sym53c416.c: <-- snip --> ... gcc -Wp,-MD,drivers/scsi/.sym53c416.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=k6 -Iinclude/asm-i386/mach-default -nostdinc -iwithprefix include -DKBUILD_BASENAME=sym53c416 -DKBUILD_MODNAME=sym53c416 -c -o drivers/scsi/sym53c416.o drivers/scsi/sym53c416.c drivers/scsi/sym53c416.c: In function `sym53c416_detect': drivers/scsi/sym53c416.c:682: too many arguments to function `pnp_activate_dev' make[2]: *** [drivers/scsi/sym53c416.o] Error 1 <-- snip --> The following patch fixes it: [FRAMEBUFFER]: Use u32 not long in cfbimgblt. cfbimgblit.c did not support 64-bit platforms correctly. In order to do so we would need to grow the cfb_tabX tables to be absolutely enormous. So the simplest fix is to use u32 throughout. [FRAMEBUFFER]: cfbcopyarea accesses fb without using FB_{READ,WRITE}L. [FRAMEBUFFER]: Convert creatorfb to new APIs. [SUNHME]: Fix bit testing typo. [SPARC64]: GPL export syscall table for solaris module. [PATCH] dm: ioctl interface wasn't dropping a table reference When reloading a device the ioctl interface was forgetting to drop a reference on the new table. [PATCH] dm: __LOW macro fix no. 1 Fix __LOW macro. [Kevin Corry] [PATCH] dm: bug in error path for unknown target type Silly mistake in error path when an unknown target type is requested. [PATCH] dm: allow slashes in dm device names Allow slashes ('/') within a DM device name, but not at the beginning. Devfs will automatically create all necessary sub-directories if a name with embedded slashes is registered. [Kevin Corry] [PATCH] dm: __LOW macro fix no. 2 Another fix for the __LOW macro. When dm_table and dm_target structures are initialized, the "limits" fields (struct io_restrictions) are initialized to zero (e.g. in dm_table_add_target() in dm-table.c). However, zero is not a useable value in these fields. The request queue will never let an I/O through, regardless of how small it might be, if max_sectors is set to zero (see generic_make_request in ll_rw_blk.c). This change to the __LOW() macro sets these fields correctly when they are first initialized. [Kevin Corry] [PATCH] dm: return correct error codes from dm_table_add_target() Return correct error codes from dm_table_add_target(). [Kevin Corry] [PATCH] dm: prevent possible buffer overflow in ioctl interface Use the correct size for "name" in register_with_devfs(). During Al Viro's devfs cleanup a few versions ago, this function was rewritten, and the "name" string added. The 32-byte size is not large enough to prevent a possible buffer overflow in the sprintf() call, since the hash cell can have a name up to 128 characters. [PATCH] dm: deregister the misc device before removing /dev/mapper Fix problem with devfs when unloading the dm module. dm-ioctl.c: deregister the misc device, and its associated symlink *before* removing the /dev/mapper dir. [Alasdair Kergon] [PATCH] Fix initializers on drivers/ide/pci/trident.h [PATCH] C99 initializers for include/linux/net.h [PATCH] Trivial C99 changes for kernel/posix-timers.c [PATCH] AD1848 OSS driver build fix This patch fixes bugzilla bug #398, http://bugme.osdl.org/show_bug.cgi?id=398, PNP API breakage in the ad1848 sound driver. [PATCH] remove unused file include/linux/ghash.h was this actually ever used? :) [PATCH] Remove redundant aligns. ENTRY implies ALIGN. [PATCH] Extraneous ; in cris eeprom code. [PATCH] Allow booting from 21 sector floppies. As per bugzilla #179 [PATCH] Missing acpi include. Uses CONFIG_ but doesn't include config.h [PATCH] Enable SSE on newer Athlons. [PATCH] VIA Nehemiah cache workaround. It turns out that this bug is only on the pre-production models, but as a few of them have 'escaped' the labs to the hands of a few lucky developers, we still need it. [PATCH] Fix ambiguous else in generic serial Closes bugzilla #307 [PATCH] Handle empty E820 regions correctly. [PATCH] C99 initializers for drivers/mtd files [PATCH] C99 initializers for drivers/mtd/chips [PATCH] C99 initializers for drivers/mtd/maps [PATCH] C99 initializer for drivers/mtd/nand/spia.c [PATCH] via-rhine: reset logic Since Linus and Jeff raised the issue of PCI posted writes, I cleaned up wait_for_reset() some more. Experiments show that with MMIO, a reset may indeed take seemingly longer -- that is fixed by flushing that buffer. Also, the driver now polls the appropriate register while waiting for the reset to finish. [PATCH] via-rhine: fix races This patch addresses two distinct races: - Until now, the driver started the chip for Tx regardless of errors pending in the status register. Not good if an error occured while we were queueing packets -- the chip counter had not been reset, so Tx died. (We can't reliably get an interrupt for every error condition) - The Rhine-II (when under load) frequently produces a Tx descriptor write-back race error. Failing to handle this means waiting for the netdev watchdog. Fixed. In addition, we must wait for the Tx engine to turn off on error conditions before we scavenge the descriptor entries. Failing to do so will typically lead to performance going down to about 10%: Burst, timeout, burst, timeout.. (again, with a Rhine-II under load). [SPARC64]: hardirq.h needs linux/cache.h [PATCH] USB speedtouch: better proc info Output the correct device name, show the state of the device (for debugging) and of the ADSL line (anyone want to write a graphical utility to show this, like under windows?). We no longer consult the usb_device struct in udsl_atm_proc_read, so don't take a reference to it. Against Greg's current 2.5 USB tree. [WATCHDOG] Remove unnecessary llseek function [FRAMEBUFFER]: Convert bw2, cg6, and cg3 drivers to new APIs. [WATCHDOG] Merge AMD 766/768 TCO Timer/Watchdog driver from 2.4 [WATCHDOG] missed C99 named initialiser conversion. [WATCHDOG] Use symbolic PCI names instead of hardcoded values. [AGPGART] Add support for Intel 852GM / 855GM and 865G [AGPGART] Move PCI device IDs to pci_ids.h [PATCH] fix recent dm breakage Dammit! I'm not having a good morning. :( Missing GFP_xxx argument to kmalloc. [ARM PATCH] 1406/1: Enable mtd partitions via mtdparts in dc21285 map driver Patch from Jonas Larsson The dc21285 mtd map driver supported RedBoot partitioning only. Kernel command line partitioning was not supported. This patch adds the missing functionality. [ARM PATCH] 1426/1: Remove rambase from head.S Patch from Dirk Behme Cleanup arch/arm/kernel/head.S a little bit by removing the unused rambase from pgtbl and krnladr macros. ACPI: Add S4BIOS support (Pavel Machek) ACPI: Add new file for GPE code [WATCHDOG] Remove old unneeded borken module locking. ACPI: Interpreter update - Add acpi_walk_resource support (Bjorn Helgaas) - Add S4BIOS support (Pavel Machek) - Rewrite GPE code to deal with future GPE block devices - Fix a bug that caused long delays when receiving SCIs - Fix a bug that causes oopses when battery strings are "" ACPI: Modify drivers to use new acpi_walk_resource API (Bjorn Helgaas) ACPI: Add S4BIOS support (Pavel Machek) ACPI: Update ACPI PHP driver with to use new acpi_walk_resource API (Bjorn Helgaas) [ARM PATCH] 1389/1: update iop3xx support for 2.5 (patch 2 of 4) Patch from Eli Carter Supercedes patch 1382 This patch copies the relevant documentation for the iop3xx support from the 2.4.19-rmk4-ds2 kernel. [WATCHDOG] return code checking and various cleanups for ib700wdt. partly based on a patch from Tariq Shureih to the kernel janitors list. [ARM PATCH] 1404/1: basic Lubbock/PXA250 updates Patch from Nicolas Pitre [WATCHDOG] remove remainder of the old broken module locking scheme [PATCH] C99 initializers for alpha/thread-info.h Hi. This trivial patch switches the file to use C99 initializers. Art Haas [ALPHA] Fix Jensen -Werror failures. From Marc Zyngier . d_validate() needs to use "__dget_locked()" since it's holding the dcache lock. Found by Maneesh Soni Avoid memory leak on fork() failure path. Noticed by Martin Schwidefsky ACPI: S3 fixes (Ole Rohne) ACPI: Update version to 20030228 [PATCH] USB speedtouch: don't race the tasklets [PATCH] USB speedtouch: be firm when disconnected Just say -ENODEV [PATCH] USB speedtouch: handle usb_string failure [PATCH] USB: kerneldoc/pdf Move the USB documentation to a separate file. [PATCH] usbcld typo Against 2.5.63. I believe && is meant here, not &. [PATCH] rio500 typo I believe && is meant here, but I cannot test it. This is against 2.5.63 [PATCH] Fix ext3/VFS double freeing warning After 12 hours of testing it looks like this problem can be solved by the following.. [PATCH] Fix scsi_probe_and_add_lun This fixes a bug introduced in the recent scsi_scan.c reorganisation. Without this patch, my Alpha Jensen was crashing just after detecting its first SCSI disk. It is now working fine. [PATCH] Move node pgdat into node's own memory Patch from William Lee Irwin This moves the node's pgdat into the node's own local memory area along with the lmem_map. It only touches arch/i386/mm/discontig.c - ie can only affect NUMA machines. Has been tested in my tree for over a month on UP, SMP, and NUMA and compile tested against a variety of different configs. [PATCH] Fix potential NULL pointer translation_table could be unintialised on machines other than NUMA-Q. You never see this, as the compiler happens to optimise it away, but it's still a Really Bad Idea (tm). Thanks to someone whose name I have unfortunately forgotten for pointing this out. Has been tested in my tree for over two weeks on UP, SMP, and NUMA and compile tested against a variety of different configs. [PATCH] Move pfn_to_nid inline Patch from William Lee Irwin Inline and simplify pfn_to_nid - this is called heavily, it's a tiny function, and makes a noticable difference in system time for kernel compiles (sorry, lost the data). Is only used on NUMA machines. Has been tested in my tree for over a month on UP, SMP, and NUMA and compile tested against a variety of different configs. [PATCH] provide pcibus_to_cpumask from topology Patch from Matthew Dobson Provide a pcibus_to_cpumask function in the topology infrastructure to access the pre-existing array. [PATCH] Fix kirq_balance up so I can disable it. At the moment, there are two different switches used, irqbalance_disabled and no_balance_irq ... each of which switches half the code off. This patch harmonises them into one (irqbalance_disable), and uses the old subarch stuff as a default value so that this is auto-disabled on boxes like NUMA-Q that can't cope with it. Also renamed no_balance_irq to NO_BALANCE_IRQ as it's really a static defined number now, not pretending to be a switch variable any more. Now off by default for NUMA-Q, on by default for others, but can be disabled with the boot time flag if people desire. [PATCH] need PIT timer available for NUMA-Q This simple patch just makes sure the PIT code is available for NUMA-Q (as its TSCs are not synced). Has been tested in my tree for over a month on UP, SMP, and NUMA and compile tested against a variety of different configs. [PATCH] Fix error bounds checking for NUMA-Q Patch from Dave Hansen. Fix simple bounding error found by some Stanford-checker type thing to use the proper MAX_MP_BUSSES define instead of a constant. [PATCH] trident 1/1 fix operator precedence bug Fix an operator precedence bug that caused a comparison to always return false. Patch from John Levon . [PATCH] cpufreq (1/5): x86 driver updates #1 (elanfreq, gx-suspmod, powernow-k6) - switch the AMD Elan, AMD PowerNow-K6 and the Cyrix/MediaGX driver to use the advanced cpufreq_driver registration process - cleanups [PATCH] cpufreq (2/5): x86 driver updates #2 (acpi, longhaul) - update the VIA Longhaul driver to use frequency table helpers and the advanced cpufreq driver registration interface. - cleanup of the ACPI P-States cpufreq driver - very small update of the core -- set 24API values ahead of the setpolicy call. [PATCH] cpufreq (3/5): "userspace" governor The old /proc/sys/cpu/ - based interface is nothing else than a cpufreq governor which decides what frequency to use within a policy based on userspace input. So, convert this interface (and add a corresponding sysfs file, /sys/devices/sys/cpu0/scaling_setspeed) to become a cpufreq governor, and move it out to an extra module (which partly explains the size of this patch). [PATCH] cpufreq (4/5): update x86 drivers to compile with new "userspace" governor Update x86 drivers so that they can live with the new cpufreq governor "userspace". sparc64 doesn't need any change, and I'll send the corresponding patch for ARM to Russell King. [PATCH] cpufreq (5/5): update documentation update CPUfreq documentation, and move it to extra directory. kbuild: Module postprocessing needs include/linux/compile.h [PATCH] via-rhine: fixing the reset fix This trivial patch fixes an obvious typo. Please apply. Bad semicolon in previous patch ([1/2]). Thanks to Erik@harddisk-recovery.nl for spotting this. [PATCH] via-rhine: 1.17 release Alas no rave reviews on lkml, but the private feedback I have received so far on the recent changes has been excellent. The Rhine-II is now finally usable with via-rhine. Time to call it 1.17. kbuild: Silence some warnings when building vmlinux For some people (though not me), the '+' indicating that a command will invoke a sub-make didn't propagated properly, and caused a warning. Putting the command all into one line should fix that. Plus some cosmetics and clean up the per_cpu check. kbuild: Small updates in top-level makefile 1) Define comma so dependency files does not include a '_' in the filename 2) Use correct path for mkspec and mkversion 3) Removed checkhelp - corresponding perl script is no longer present 4) Spelling correction (reported on lkml) [PATCH] Fix cardbus build problem This is a temporary patch which should get cardbus working again. In order to use pci_remove_behind_bridge(), we need to separately allocate the pci_dev structures. [PATCH] Fix USB address setting You wouldn't expect that an innocent two-line patch would practically destroy the entire functionality of the USB subsystem. But that's what my last patch did. I didn't realize until I saw it in Greg's list of patches forwarded to Linus; that patch includes a mistakenly unreverted prior change. This explains the problems I was having yesterday, and probably also the problems a great many people are having today. Anyway, here's the correction -- it puts things back to what they should have been in the first place. Greg, please apply this and send it to Linus for his tree as soon as reasonably possible. [ARM] SA11x0 PCMCIA 1 Make SA11x0 generic pcmcia implementation fit better with Dominik's work - pass around our socket structure rather than the socket number itself. Reference socket operations using the socket structure rather than a static variable. [ARM] SA11x0 PCMCIA 2 Make low-level configure_socket() method take the socket number as a parameter rather than embedded in a structure. [ARM] SA11x0 PCMCIA 3 Make low level socket_status() method take the socket index as an argument in the same way that our other methods do. socket_status() now only returns the status of the requested socket, not all sockets. [ARM] SA11x0 PCMCIA 4 Convert all SA11x0 drivers to register with the Linux driver model, so they work with the pcmcia layer in 2.5.63. [ARM] SA11x0 PCMCIA 5 Remove get_irq_info method, passing the information via the init method instead. The IRQ allocated to a socket never changes on these platforms, so the extra code was just bloat. [ARM] SA11x0 PCMCIA 6 Sanitise our pcmcia interrupt handling. Make sure we only use set_irq_type after the interrupt has been registered. Register the socket handling interrupts using the function name rather than some pointer passed by the generic code. Let the generic sa11x0 code handle the cards interrupt masking. [ARM] SA11x0 PCMCIA 7 Request PCMCIA socket resources without marking them busy - this allows future modifications to pcmcia to allow it to claim the CIS resources for statically mapped sockets. [ARM] SA11x0 PCMCIA 8 Fix socket memory mapping bug - we need to take account of the requested card offset when returning the address for ioremap. do_mounts: Fix CONFIG_BLK_DEV_MD=m case We don't really have a nice way to say "compile this when CONFIG_FOO is y, don't otherwise". Alternatives are: obj-$(subst m,,$(CONFIG_FOO)) := foo.o or obj-$(CONFIG_FOO) := foo.o obj-m := or obj-y := do_foo.o do_foo-$(CONFIG_FOO) := foo.o I chose the last one, though I'm not particularly happy with either. [PATCH] spelling fixes s/seperate/separate/ [PATCH] fix e100 for big-endian machines Patch from Anton Blanchard e100 is performing a header checksum calculation which is a) duplication of the core kernel's calculation of the same and b) incorrect on big-endian machines. This fix has been tested on ia32 and pppc64 and acked by davem, jgarzik and Scott Feldman [PATCH] deadline IO scheduler dispatching fix Patch from Nick Piggin Closes a window in which we can get an invalid (already dispatched) request in the next_drq cache. This fixed an oops which was reported by Janet Morgan. [PATCH] loop: Fix OOM and oops The loop driver takes a copy of the data which it is writing. When this happens on the try_to_free_pages() path, loop can easily consume ALL memory and bio_copy() will fail to allocate a page. Loop forgets to check the bio_copy() return value and oopses. Fix this by dropping PF_MEMALLOC and throttling to the block writeout speed. The patch exports blk_congestion_wait() to modules for this. This is a needed export: several filesystems have a "try to allocate and yield if it failed" loop and blk_congestion_wait() is a more appropriate way of implementing the sleep in this situation. [PATCH] kbuild: do not run split-include for all compilations When a rule in the top-level Makefile includes scripts as one of the prerequisites it inherits FORCE, and thus is always build. include/linux/autoconf.h recently included scripts hereby forcing split-include to be run for each compilation. Fix all rules that lists scripts as a prerequisite but did not list FORCE. Fixed by listing the executable needed direct. [PATCH] fix presto_get_sb() return value and oops. Patch from Maneesh Soni It's supposed to return an ERR_PTR value on error, not NULL. [PATCH] fix preempt-issues with smp_call_function() Patch from Thomas Schlichter Based on a patch from Dave Jones. It converts a large number of instances of: smp_call_function(foo); foo(); into on_each_cpu(foo); and in doing so fixes up the preempt-unsafeness of the first version. [PATCH] Don't panic if TSC is enabled and notsc is used Patch from: john stultz The kernel will currently panic if it was built with CONFIG_X86_TSC and someone boots it with `notsc'. Change it to just print a warning. [PATCH] clean up redundant code for alloc_pages Patch from Matthew Dobson Consolidate alloc_pages() and alloc_pages_node(). There is no change in sizeof(vmlinux). [PATCH] ext2: clear ext3 htree flag on directories Forward port of a change which Ted made to 2.4's ext2. HTREE backwards compatibility patch. "I thought (and assumed) this patch had been applied to both the ext2 and ext3 filesystems in the 2.4 kernel. It turns out it had only made it into the ext3 filesystem code. This means that if an HTREE-enabled filesystem is mounted using ext2, it will corrupt the filesystem as far as e2fsck and an ext3 htree-enabled kernel is concerned. (The corruption won't cause any data loss, but it will cause e2fsck and an ext3-htree kernel to omit a lot of warning messages.)" [PATCH] fix typo in arch/i386/kernel/mpparse.c in printk Patch from "Vitezslav Samel" Obvious fix of printk level (wrong since 2.5.62). [PATCH] allow CONFIG_SWAP=n for i386 Patch from Christoph Hellwig There's a bunch of minor fixes needed to disable the swap code for systems with mmu. [PATCH] remove dead hugetlb_key forward decl Patch from Rohit Seth. Remove a dead declaration. [PATCH] hugetlbpage documentation update Patch from Rohit Seth. Updates the hugetlb page documentation. [PATCH] hugetlb: fix MAP_FIXED handling Patch from Rohit Seth ia64 reserves virtual address region 4 (any address which starts with 0x4) for huge pages. Apparently, for hardware reasons, we do not wish to allow mappings with other page sizes to appear in that region. This patch prevents the user from being able to place regular MAP_FIXED mappings into region 4 on ia64. It is a no-op for ia32. [PATCH] cciss: fix unlikely startup problem Patch from Stephen Cameron * Make cciss driver wait longer for board to enter simple mode to handle an unlikely corner case. (Hot replace of failed 144GB drive in RAID 5 set at just the wrong time prior to driver loading can make the board take a longer than usual time to go into "simple mode". Without the patch, the driver gives up too early, and consequently doesn't work. (A reboot will generally "fix" it.) This patch avoids the problem. * Fix a couple ioctls to return EAGAIN instead of inappropriate EFAULT. [PATCH] cciss: retry bus resets Patch from Stephen Cameron Make cciss driver retry 3rd party bus reset aborted commands up to 3 times. (ported to 2.5 by me, original patch by Charles White) This is needed for a multi port storage box that can have multiple hosts connected to it, or be used in a multipath configuration. In certain configurations SCSI bus resets initiated by one host may affect another host. [PATCH] kbuild: Top-level Makefile, trivial tidy up 1) Remove dep from "make help", it is no longer useful 2) replace Generating with GEN when generating version.h [PATCH] cciss: add cmd_type to sendcmd parameters Patch from Stephen Cameron * add cmd_type to sendcmd parameters to allow scsi messages to be sent down. * factor out duplicated code into fill_cmd function. [PATCH] cciss: add CCISS_GETLUNINFO ioctl Patch from Stephen Cameron Add CCISS_GETLUNINFO ioctl. This ioctl returns the LUNID, number of partitions, and current number of opens on a logical volume. Used by the array config utility or any app that needs to send passthrough commands to a particular logical disk. [PATCH] cciss: add passthrough ioctl Patch from Stephen Cameron Add new big passthrough ioctl to allow large buffers. Used by e.g. online array controller firmware flash utility. [PATCH] fix Coverted -> Converted This patch fixes what might have been a joke, but wasn't. Coverted -> Converted One down, 285 to go. kbuild: remove dependency on compile.h We had a dummy dependency on include/linux/compile.h, but it really caused more trouble than benefits. It's not actually needed for the module postprocessing, it was only put there to make sure we recognize when gcc changed under us. However, we really can only do so much, and the rest of kbuild won't notice a changed gcc either, so if the user replaces gcc during a build, he just can't rely on the build doing the right thing. The common cases are still covered, anyway. When the command to invoke gcc changes ("CC=gcc32") we notice, and when the path to /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h changes (which luckily contains the "2.96", we'll notice and handle that, too. [FRAMEBUFFER]: Convert cg14 driver to new APIs. [FRAMEBUFFER]: Convert P9100 driver to new APIs. [FRAMEBUFFER]: Convert TCX driver to new APIs. [SPARC64]: Update defconfig. [SPARC64]: Solaris module asm needs asm/thread_info.h [SPARC]: Kill GFP_DMA in iommu code. [SPARC]: Fix Kconfig typo. [SPARC64]: update us3_cpufreq to support userspace governor. [SPARC32/64]: Expand ioctl size field in backwards-compatible way. [NET]: Move fc_type_trans into generic code. [SPARC64]: Use EXTRA_CFLAGS instead of mangling CFLAGS directly. [IPV6]: Export in6addr_{any,loopback} to modules. [NET]: Remove 2.0/2.2 compat code from netfilter, approved by Rusty. [ATM]: Use skb_pull instead of direct skb mangling. [ATM]: Fix mispatch. [IPV6]: Make sure temporary addresses are regenerated properly. [ATM]: Get minimum frame size right in lec.c [NETFILTER]: Switch over to new-style module refcounting, help from Christoph Hellwig. [ATM]: Let upper layer k now lec supports multicast. [ATM FORE200E]: Fix build. [NETFILTER]: Fix icmp-type all problem in iptables. [NETFILTER]: fix NAT ICMP reply translation of inner packet. [NETFILTER]: Fix conntrack bug introduced by list_del change. [NETFILTER]: Fix typo in ftp conntrack helper. [NETFILTER]: Add new ip6tables matches. [BRIDGE]: C99 patches for net/bridge/netfilter. [IPSEC]: Make sure ESP output pads Null Encryption properly. [IPV6]: More C99 initializers. [ATM SUNI]: suni_init should not be __init and remove mod inc/dec. [SCTP]: net/sctp/proc.c needs linux/init.h sysfs: fix oops in directory removal. If a file that doesn't exist was looked up in a directory, and that directory is later removed, sysfs would reap the negative dentrys along with the valid ones. Fix is to manually remove the dentrys from the parent's list under the dcache_lock, then check if they're valid with dget_locked(). This ensures all the dentrys are removed, valid and invalid, and we don't reap anything we shouldn't. driver model: remove from include/linux/device.h From Matt Wilcox kobject: fix oops in to_kset() Check whether kset is NULL or not before doing container_of(). From Dominik Brodowski [PATCH] Spelling fixes from spell-fix.pl This patch contains the first fruits of the automatic spell checking and correcting scripts written by Dan Kegel and Matthias Schniedermeyer. Those scripts are available here: http://www.kegel.com/kerspell/ This patch fixes these six words from the first five lines of spell-fix.txt. 280 lines remaining. accesible -> accessible accesing -> accessing accomodate -> accommodate acommodate -> accommodate Acknowlege -> Acknowledge acknoledged -> acknowledged driver model: fix device interfaces. - Remove struct intf_data. It was silly, and gave us an unbalanced interface. Instead, when removing a device_interface, all of a class's devices are iterated over, and intf->remove_device() is called for each. (Instead of the device's list of interfaces it belongs to). Interfaces are expected to tell if they support the device being removed. - Remove struct device::intf_list. - Protect classes' device list access with devclass_sem, which is taken when a device or interface is added or removed. This allows access to the list w/o taking the class's lock, which allows subordinate objects to be registered (e.g. the interface itself, or objects the interfaces create for a device). - This should fix a deadlock when devices are added to interfaces, which calls intf->add_device(), then interface_add_data(), which call kobject_register() and hangs, since it tries to take the class's lock again. cpufreq: convert to use new interface code. - Create and register kobjects when adding a cpu to the cpufreq interface, instead of the terminally broken struct intf_data. ACKed by Dominik Brodowski. sysfs: fix more merge breakage. [PATCH] small tty irq race fix [PATCH] Another bitop on boolean in pnpbios [SPARC64]: Fix SMP boot failures. [SYSFS]: fs/sysfs/mount.c needs linux/init.h [HOTPLUG]: drivers/base/hotplug.c needs linux/sched.h and linux/string.h sysfs: fix warning. From Andrew Morton driver model: Make initialization explicit. - Call driver_init() from init/main.c::do_basic_setup(). This ensures that all the driver model subsystems are initialized before any drivers or devices can be registered. It nearly frees up the core and postcore initcall levels, making them available for other kernel code to use freely. sysfs: initialize from fs/namespace.c::mnt_init(). This ensures that sysfs is initialized very early, before anything can possibily registered with it. It happens early enough that all filesystems can registered with sysfs (besides sysfs itself), which is coming next. driver model: implement platform_match() - For matching registered platform devices with platform drivers. - Also, make sure platform_bus is initialized early, with the rest of the core stuff. [PATCH] sysfs build fix pnp interface.c needs for 'kfree()' sysfs: Register filesystems with sysfs. Originally from Nikita Danliov. - Add struct subsystem to struct file_system_type. - Add fs_subsys_init() to explicitly call sysfs_init() very early. - Register base fs subsystem then, too. - Register filesystems' embedded subsystem when registered with fs core. Resulting tree looks like: # tree /sys/fs/ /sys/fs/ |-- bdev |-- devpts |-- eventpollfs |-- ext2 |-- ext3 |-- futexfs |-- iso9660 |-- pipefs |-- proc |-- ramfs |-- rootfs |-- sockfs |-- sysfs `-- tmpfs [PATCH] IEEE1394 updates - Add ioctl32 compat function registration for video1394, dv1394 and amdtp. - Convert SBP-2 driver to new SCSI hotplug host/device interfaces. - Initial Async ISO (GASP) support. [PATCH] IEEE1394 ioctl allocation documentation [PATCH] dcache/inode hlist patchkit - Inode and dcache Hash table only needs half the memory/cache because of using hlists. - Simplify dcache-rcu code. With NULL end markers in the hlists is_bucket is not needed anymore. Also the list walking code generates better code on x86 now because it doesn't need to dedicate a register for the list head. - Reorganize struct dentry to be more cache friendly. All the state accessed for the hash walk is in one chunk now together with the inline name (all at the end) - Add prefetching for all the list walks. Old hash lookup code didn't use it. - Some other minor cleanup. Fix up sunrpc for the dentry hash list changes. [PATCH] More IEEE1394 updates - Cleanup Makefile. - Fix potentional crash in dv1394 module unload. - Why does ARM's memcpy not return void*? Oh well, work around it in eth1394 by not expecting standard behavior. Linux 2.5.64