Summary of changes from v2.5.41 to v2.5.42 ============================================ <bcrl@toomuch.toronto.redhat.com> v2.5.31-aio-nohighmem.diff - cleanup aio highmem handling, make it faster <aia21@cantab.net> Add functions for searching for an inode in icache and getting a reference to it if present - fs/inode.c::ilookup() and ilookup5(), mirroring the iget_locked() and iget5_locked() function pair. Also add two internal helpers ifind_fast() and ifind() respectively which will later be used by iget_locked() and iget5_locked() to do the search, too. <aia21@cantab.net> Cleanup: Convert fs/inode.c::iget_locked() and iget5_locked() to use the new ifind_fast() and ifind() helpers, respectively. <bcrl@toomuch.toronto.redhat.com> correct return value from aio_complete on sync iocbs <bcrl@toomuch.toronto.redhat.com> update ns83820.c to v0.19 <agrover@groveronline.com> ACPI: Replace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT (Dominik Brodowski) <rz@linux-m68k.org> Move beeping and sysrq to input layer on m68k. Add an m68k beeper input module. <vojtech@suse.cz> Remove several files no longer used on m68k. Input layer now handles those devices. <bcrl@toomuch.toronto.redhat.com> sync iocbs need to actually wake_up_process the waiter (as spotted by Suparna). <jdike@uml.karaya.com> A number of bug fixes from UML 2.4.19-6 - Fixed the net crash seen when slab debugging is enabled Fixed PROT_NONE Fixed the 'tracing myself' bug seen on umlcoop. This was caused by a number of SIGALRM handlers nesting on the idle thread stack because the system was busy enough that UML couldn't clear one before the next arrived. <jdike@uml.karaya.com> Removed from user_util.h the declarations that are now in time_user.h. <bhards@bigpond.net.au> Better naming for USB input devices that omit the manufacturer name. <vojtech@suse.cz> Add support for PS/2 Active Multiplexing Spec, updates for PS/2 mouse and keyboard handling - proper cleanup on reboot, allow USB-emulated AT keyboards, option to restrict PS/2 mouse to generic mode. <khaho@koti.soon.fi> Make Logitech Desktop Pro (wireless keyboard & mouse) work with all buttons and wheel. <vojtech@suse.cz> Update Wacom driver to 2.4 changes and changes from Ping Cheng of Wacom. <bcrl@toomuch.toronto.redhat.com> several updates for testing aio_{read,write} support for file descriptors with only async ops in vfs_{read,write} <vojtech@suse.cz> Convert gameport.[ch] to use lists.h for its linked lists. <vojtech@suse.cz> Convert serio.[ch] to use list.h lists. <vojtech@suse.cz> Cleanups and fixes for the Wacom USB driver. <vojtech@suse.cz> Add #include <list.h> to input.h <vojtech@suse.cz> Use list_for_each_entry() in input.c. <vojtech@suse.cz> Convert more of input to list.h usage. <vojtech@suse.cz> Fixes/cleanups after converting drivers to list.h lists. <bcrl@toomuch.toronto.redhat.com> several minor bugfixes for the aio core <agrover@groveronline.com> ACPI: Fix reversed logic in blacklist code (Sergio Monteiro Basto) <agrover@groveronline.com> ACPI: IA64 fixes (David Mosberger) <agrover@groveronline.com> ACPI: Fix /proc/acpi/sleep (P. Christeas) <agrover@groveronline.com> ACPI: Fix thermal management and make trip points R/W (Pavel Machek) <agrover@groveronline.com> ACPI: Allow handling negative celsius values (Kochi Takayoshi) <vojtech@suse.cz> Accept 0xfa as an "OK" result code for AUX TEST cmd in i8042.c. This makes mouse work on certain notebooks. <bcrl@toomuch.toronto.redhat.com> create support for iocb kicking, where a retry operation gets triggered in the mm context of the submitter to allow the use of copy_*_user. <agrover@groveronline.com> ACPI: Add another cast to Bjoern's MADT walking fix to silence warning <agrover@groveronline.com> ACPI: Initialize thermal driver's timer before it is used (Knut Neumann) <jdike@uml.karaya.com> Small changes to bring UML up to date with 2.5.40. <jdike@uml.karaya.com> A set of small bug fixes brought over from 2.4.19-8. <jdike@uml.karaya.com> A bunch of network updates from 2.4.19. Added the pcap transport, which makes a pcap packet stream look like a network interface inside UML. Lifted the limit on the number of network interfaces. Cleaned up and simplified the transport interface. <jdike@uml.karaya.com> A small network bug fix from 2.4.19-7. <jdike@uml.karaya.com> Updated defconfig with CONFIG_UML_NET_PCAP. <jdike@uml.karaya.com> Back out a piece of the last merge which didn't apply in 2.5. <jdike@uml.karaya.com> Fixed a bit of the last merge which I messed up. <agrover@groveronline.com> ACPI: Interpreter update to 200201002 - Fix problem where a store/copy of a string did not set string length properly. - Fix ToString operator - Fix CopyObject not updating internal node type - Fix a memory leak during implicit operand source conversion - Enhanced error messages for namespace lookup problems - Revamped Alias support <jdike@uml.karaya.com> Fixed a build bug with CONFIG_UML_NET_PCAP. <jdike@uml.karaya.com> Changed my mind about having CONFIG_UML_NET_PCAP enabled by default in defconfig. This would cause the default config to break on any system without libpcap, so disabling it by default is better. <jdike@jdike.wstearns.org> xor.h was created as asm-um/xor.h rather than include/asm-um/xor.h. Fixed. <bcrl@toomuch.toronto.redhat.com> queue descriptor io errors instead of returning them from io_submit <paulus@samba.org> PPC32: Reorganize the files for the IBM 4xx embedded PPC processors. This moves the 4xx platform-specific files into a new directory, arch/ppc/platforms/4xx. <vojtech@suse.cz> Add japanese Set 3 scancodes to atkbd.c <bcrl@toomuch.toronto.redhat.com> adapt aio kick changes to ingo's work queues <bcrl@toomuch.toronto.redhat.com> buildbug.diff <jdike@uml.karaya.com> I forgot to add include/asm-um/topology to the repo. <paulus@samba.org> PPC32: Move a couple of 4xx-related files around. <paulus@samba.org> PPC32: Rename sigcontext_struct to sigcontext, and use sig->siglock. <paulus@samba.org> PPC32: Use prepare target to make the assembler offsets header file. This also puts the file in include/asm-ppc/offsets.h rather than arch/ppc/kernel/asm-offsets.h. This changes PPC to do things similarly to other ports, and makes make -j work reliably. <paulus@samba.org> PPC32: Add the kallsyms section to arch/ppc/vmlinux.lds.S. <geert@linux-m68k.org> Please apply this small clean up, too: - Kill unused variable and end-of-line whitespace. - s/M68K/M68k/ <paulus@samba.org> PPC32: fix in_atomic; PREEMPT_ACTIVE set doesn't mean atomic. <aderesch@fs.tum.de> Increase the resync timeout for serial mice, and fix MZ wheel direction. <paulus@samba.org> PPC32: put the _right_ asm-offsets.c in. <paulus@samba.org> PPC32: fix the last sigcontext_struct, missed previously. <vojtech@suse.cz> Fix LAlt-RAlt combination on AT keyboards (generated "unknown scancode" message). <vojtech@suse.cz> Make NR_KEYS be (KEY_MAX+1) so that keybindings can be set for keys over 128. <vojtech@suse.cz> psmouse.c: ignore the sync bit to make slightly non-conforming devices work. <bcrl@toomuch.toronto.redhat.com> fix missing list initialization in aio context creation <yoshfuji@linux-ipv6.org> net/ipv6/addrconf.c: Use prefix of 64 for link-local addresses. <marcel@holtmann.org> [PATCH] Make it possible to compile in the Bluetooth subsystem ..and minor() cleanups <kai@tp1.ruhr-uni-bochum.de> kbuild: Call scripts explicitly via sh Instead of recurring problems with non-executable permissions on files in scripts/, just call them as "sh <script>". <kai@tp1.ruhr-uni-bochum.de> kbuild: Fix drivers/scsi/aacraid/Makefile (by Sam Ravnborg) <paulus@samba.org> PPC32: Add kallsyms support in stack tracing functions. <paulus@samba.org> PPC32: fix arch-level tid handling. This makes sure we clear the user_tid in copy_thread, and that we don't pass a bogus tid parameter in sys_clone when the CLONE_SETTID and CLONE_CLEARTID flags are clear. <paulus@samba.org> PPC32: Add might_sleep() calls to down and down_interruptible. <paulus@samba.org> PPC32: change the pmd macros to allow us to support large TLB entries. <johannes@erdfelt.com> [PATCH] USB: Trivial MAINTAINERS update <david-b@pacbell.net> [PATCH] usbtest: mo'betta devices, control tests This updates the usbtest driver: - Supports more devices for the basic i/o tests, using full speed ez-usb firmware (and usbtest tweaks!) provided by Martin Diehl. - Adds another test case, which issues control messages to devices. There will be further updates in this area (control queueing, and likely improving usbcore api coverage). - Adds a "generic device" mode where vendor (and optionally product) ids can be given as module parameters. Those devices can be used for testing control traffic. <greg@kroah.com> [PATCH] USB: fix ctsrts handling in pl2303 driver. Thanks to the prolific engineers for pointing this out to me. <jdike@uml.karaya.com> Updated initializers in the block driver. Fixed a process exit bug. <jdike@uml.karaya.com> Updates to make UML build as 2.5.41. Applied Oleg Drokin's task --> work patch. Fixed the Makefiles to accomodate the fact the kbuild doesn't cd into subdirectories any more. Got rid of some compile warnings. <acme@conectiva.com.br> o Appletalk: convert some spinlocks to rwlocks - Remove uneeded #ifdef CONFIG_SYSCTL - Make __init strings __initdata, saving some more bytes after init. <acme@conectiva.com.br> o IPX: fix permission bogosity in create_proc_entry usage <acme@conectiva.com.br> o LLC: fix permission bogosity in create_proc_entry usage <jdike@uml.karaya.com> Added a missing directory to the arch/um/kernel Makefile. <acme@conectiva.com.br> o Appletalk: convert aarp_lock from spinlock to rwlock - CodingStyle cleanups - make aarp_cleanup_module always present, as needed by DDP. <rddunlap@osdl.org> [PATCH] build cpia video driver This patch enables the cpia driver to build on 2.5.41. <vojtech@suse.cz> Change PC-keyboard mappings to follow MS Keyboards - a de facto standard for extended keys. <vojtech@suse.cz> Initialize struct input_dev in input drivers before it's passed to input_event(). input_register_device() usually does that, but some drivers will call input_event() before registering to pre-load the absolute values in struct input_dev in an easy way. <vojtech@suse.cz> Add german keyboard \ to the default table of atkbd.c <vojtech@suse.cz> Make i8042.c even less picky about detecting an AUX port because of broken chipsets that don't support the LOOP command or report failure on the TEST command. Hopefully this won't screw any old 386/486 systems without the AUX port. <davej@codemonkey.org.uk> [PATCH] document extra option in isapnp <davej@codemonkey.org.uk> [PATCH] updated comments. Files moved, so the comments should be updated to reflect their new locations. <davej@codemonkey.org.uk> [PATCH] bad userspace dereferencing <davej@codemonkey.org.uk> [PATCH] handle bogus zero IO-APIC addresses From 2.4 <davej@codemonkey.org.uk> [PATCH] JBD documentation From 2.4 <davej@codemonkey.org.uk> [PATCH] oss compile fix (missing spinlock) <davej@codemonkey.org.uk> [PATCH] kernel parameters update. - Standardise usage on IA-32 instead of a mix of IA32 and ix86. - Add some missing options. - Fix up some options. <davej@codemonkey.org.uk> [PATCH] increase PCI namespace buffer. Straightforward diff to allow longer names for PCI devices <davej@codemonkey.org.uk> [PATCH] move apic_timer_irqs to irqstat This patch from Ravikiran G Thirumalai removes cacheline bouncing of apic_timer_irqs <davej@codemonkey.org.uk> [PATCH] Missing/Unneeded includes <davej@codemonkey.org.uk> [PATCH] mountable futexfs Missing kill_sb member meant that futexfs died a death when someone tried to mount it. <davej@codemonkey.org.uk> [PATCH] missing files in mrproper make mrproper misses some files.. <davej@codemonkey.org.uk> [PATCH] P4 SPIV FOCUS bit From Zwane Mwaikambo, this diff makes sure we don't poke reserved bits on the P4. <davej@codemonkey.org.uk> [PATCH] APM SMP fixes. From 2.4 with some 2.5 mangling from Robert Love. <davej@codemonkey.org.uk> [PATCH] fix leak in pcf8583 <davej@codemonkey.org.uk> [PATCH] missing sanity check in ppdev <davej@codemonkey.org.uk> [PATCH] parport docs typo <davej@codemonkey.org.uk> [PATCH] Updated proc docs from 2.4 <davej@codemonkey.org.uk> [PATCH] Updated submitting drivers docs <davej@codemonkey.org.uk> [PATCH] Document randconfig <davej@codemonkey.org.uk> [PATCH] various typo fixes <davej@codemonkey.org.uk> [PATCH] major showstopper diff. From John Levon. This corrects the comment to match the real quotation. Patch splitting/bombing is a very boring job, if it wasn't for light relief like this, it'd be even moreso 8-) <davej@codemonkey.org.uk> [PATCH] Updated DMA-mapping docs <davej@codemonkey.org.uk> [PATCH] fix broken syntax in video config.in <davej@codemonkey.org.uk> [PATCH] Document VIA C3 <davej@codemonkey.org.uk> [PATCH] vmalloc corner case. get_vm_area() doesn't play too well when passed malformed arguments due to a missing check. Originally by davem, munged by me. <davej@codemonkey.org.uk> [PATCH] only allow IGMP to multicast addresses Old patch by Krishna Ramachandran <davej@codemonkey.org.uk> [PATCH] KT266x latency fix. From 2.4, see comment in diff. <davej@codemonkey.org.uk> [PATCH] intel cache parsing update. - Recognise and decode trace cache - Add several missing elements to descriptor table - Xeon errata workaround - updated names for P4's <davej@codemonkey.org.uk> [PATCH] DMI updates. - moves functions around to match where they are in 2.4 (makes syncing easier) - Adds some extra entries <vojtech@suse.cz> Add japanese bar key mapping to the default table in atkbd.c <davej@codemonkey.org.uk> [PATCH] vm86 updates. Numerous updates from 2.4 (see changelog) <davej@codemonkey.org.uk> [PATCH] IRQ router updates. Several new boards, and fix a forward reference by moving a function around. <davej@codemonkey.org.uk> [PATCH] Misc reboot.c bits - remove unneeded includes (lots of) - Some Dell folks noted that the switch to realmode needs to be a wbinvd instead of an invd on some boxes. This has been in -dj for eons, and has had no ill effect. <davej@codemonkey.org.uk> [PATCH] numerous __FUNCTION__ pasting fixes <davej@codemonkey.org.uk> [PATCH] unify slab namespace. Other slabs have '_' to separate words instead of ' '. Same patch went into 2.4 <davej@codemonkey.org.uk> [PATCH] Don't prefetch io space. memcpy_to/fromio shouldn't be using memcpy, as this could equate to the versions that prefetch, which could upset some devices. <davej@codemonkey.org.uk> [PATCH] use cpu_has macros Code cleanup.. <davej@codemonkey.org.uk> [PATCH] tlbflush cleanups - Align comments - Remove hardcoded value (Use proper alignment on systems with 64byte cachelines) <davej@codemonkey.org.uk> [PATCH] indentation fixes. As per CodingStyle <davej@codemonkey.org.uk> [PATCH] death of v86mode Nothing uses v86mode any more, so this removes it, and its space in the thread_struct. <davej@codemonkey.org.uk> [PATCH] named initialisers for dcache (Also a printk level addition) <davej@codemonkey.org.uk> [PATCH] ifdef noise cleanup As the comment suggests - this is harmless on non mq systems, so we may as well have cleaner code. <davej@codemonkey.org.uk> [PATCH] io.h unobfuscation. This patch attempts to clean up the horrible macro's in io.h, and was done some time ago by Dave McCracken iirc. <davej@codemonkey.org.uk> [PATCH] ISAPNP updates. From 2.4, these diffs.. - Make use of dma channel 0 configurable - request region cleanup - fix list initialisation bug - fix escd /proc security hole - add opl3sax quirk <davej@codemonkey.org.uk> [PATCH] bluesmoke fixes. - Makes UP preempt safe. - Avoids double call of mce_checkregs on SMP <dsteklof@us.ibm.com> driver core: add generic logging macros for devices. <kai@tp1.ruhr-uni-bochum.de> kbuild: Remove now unnecessary usages of $(TOPDIR) Since we now always have $(TOPDIR) = `pwd`, some usages of $(TOPDIR) can go away. <kai@tp1.ruhr-uni-bochum.de> kbuild: Buglet in Documentation/DocBook/Makefile 'make mrproper' incorrectly deletes *~-style editor backup files from the top-level directory. This bug was introduced in 2.5.29 when the top-level Makefile was changed to remain in the top-level directory when invoking DocBook's Makefile: <kai@tp1.ruhr-uni-bochum.de> kbuild: typos by Nicolas Pitre <davej@codemonkey.org.uk> [PATCH] arch fixes for make rpm Not all arch's behave the same way as x86 during the build process, so this makes make rpm adjust for non-x86 <davej@codemonkey.org.uk> [PATCH] jiffy wrap fixes <davej@codemonkey.org.uk> [PATCH] x86 math-emu update From 2.4, mostly just things like quietening compiler warnings. <davej@codemonkey.org.uk> [PATCH] Add ALI 1671 support to AGPGART <davej@codemonkey.org.uk> [PATCH] CONFIG_NR_CPUS By Robert Love, this patch sets the maximum number of CPUs a kernel can support (From 2-32 on IA32) The reasoning behind this is a space saving of 8KB per CPU. <davej@codemonkey.org.uk> [PATCH] avoid trigraphs in generated pci ids <davej@codemonkey.org.uk> [PATCH] Escape quotes in menuconfig Allows usage of quotes in menu options. <davej@codemonkey.org.uk> [PATCH] increase list_del_init usage. <davej@codemonkey.org.uk> [PATCH] named struct initialisers. <ahaas@neosoft.com> [PATCH] named initializers for net/bluetooth/rfcomm/sock.c <ahaas@neosoft.com> [PATCH] named initializers fix for net/sctp/sm_statetable.c <ahaas@neosoft.com> [PATCH] named initializers for fs/msdos <ahaas@neosoft.com> [PATCH] named initializers for fs/hfs <ahaas@neosoft.com> [PATCH] named initializers for fs/proc/proc_misc.c <ahaas@neosoft.com> [PATCH] named initializers for fs/autofs <ahaas@neosoft.com> [PATCH] named initializers for net/atm/lec.c <ahaas@neosoft.com> [PATCH] named initializers for fs/vfat <ahaas@neosoft.com> [PATCH] named initializers for fs/autofs4 <ahaas@neosoft.com> [PATCH] named initializers for fs/hpfs <ahaas@neosoft.com> [PATCH] named initializers for fs/sysv <ahaas@neosoft.com> [PATCH] named initializers patch for net/decnet/dn_route.c <ahaas@neosoft.com> [PATCH] named initializers for fs/udf <ahaas@neosoft.com> [PATCH] named initializers for drivers/ide <viro@math.psu.edu> [PATCH] compile fixes cpqarray uses disk_alloc instead of alloc_disk. Same typo is in cciss, rd.c sets ->first_minor to 0 for all units and HD_IRQ definition is needed if CONFIG_BLK_DEV_HD is defined. <akropel1@rochester.rr.com> [PATCH] cpqarray compile fixes <davej@codemonkey.org.uk> [PATCH] cpqarray reads ->irq before pci_enable_device() <davej@codemonkey.org.uk> [PATCH] pci_enable_device before accessing ->irq for wdt_pci <davej@codemonkey.org.uk> [PATCH] i845 AGPGART power management Just reconfigure on resume.. <davej@codemonkey.org.uk> [PATCH] Remove code duplication in power.c As per the FIXME. Work done by Eric Blade <davej@codemonkey.org.uk> [PATCH] missing checks in acorn drivers Adds missing return values checking of misc_register(), scsi_register(), request_region() and does some code cleanup in the process.. <davej@codmonkey.org.uk> [PATCH] Various drivers using longs instead of ulongs for flags. <plars@linuxtestproject.org> [PATCH] ips.c remove tqueue.h <markh@osdl.org> [PATCH] aacraid Makefile error in 2.5.41 I tried building the aacraid driver in 2.5.41 and got an error saying that O_TARGET usage was obsolete. The following change to the Makefile allows me to build. <anton@samba.org> [PATCH] one of these things is not like the others... Or in this case two. This makes the migration and ksoftirq threads match the naming convention of the workqueue threads. Apply it and marvel at how neater a ps looks. <mbligh@aracnet.com> [PATCH] NUMA-Q fixes This patch basically just renames usages of CONFIG_MULTIQUAD to CONFIG_X86_NUMAQ. The original multiquad option covered a variety of sins, and just made a mess (my fault). After extensive community discussion, this is the naming scheme everyone agreed to - the CONFIG_X86_NUMAQ option already exists, we're just renaming usages of MULTIQUAD to it, and removing the MULTIQUAD option. Stuff that's really to do with clustered APIC mode is put under CONFIG_CLUSTERED_APIC instead, as it's not specific to the NUMA-Q. Note that the definitions of clustered_apic_mode are still duplicated, so the changes appear twice. I'm not making it worse, just haven't fixed this one yet, will do that next. Patch was written by Matt Dobson. <akpm@digeo.com> [PATCH] fix READA in ll_rw_block() - Don't convert READA into READ in ll_rw_block(). <akpm@digeo.com> [PATCH] discontigmem compilation fix A discontigmem compilation fix From Bill Irwin <akpm@digeo.com> [PATCH] discontigmem fixes and cleanups From Martin Bligh This patch fixes a nasty bug that wli found in buffer.c which cause an oops - we were using contig_page_data on a discontigmem machine. It's a slightly modified version of the fix wli suggested, tested on NUMA-Q. I've also added code to not define contig_page_data for discontigmem systems, to stop this from happening again. I wrapped a couple of bootmem functions that were using it in #ifndef CONFIG_DISCONTIGMEM. I suppose it's possible (though unlikely) that some other discontig arch might need to wrap a couple of functions in their tree similarly, but any borkage will just give a simple clear compiler error telling them exactly where the problem is. <akpm@digeo.com> [PATCH] node-local mem_map for ia32 discontigmem From Martin Bligh. This patch remaps the lmem_map (struct page) arrays for each node onto their own nodes. This is non-trivial, since all of ZONE_NORMAL, and hence permanently mapped KVA resides on node 0. Very early in the boot sequence, it calculates the size of the lmem_map arrays (rounding up to the nearest large page size), and reserves a suitable amount of permanent KVA by shifting down max_low_pfn to create a gap between max_low_pfn and highstart_pfn (both of which are normally about 896Mb). It then uses the new set_pmd_pfn function to set up the pmds correctly so that the large pages point at the physical addresses reserved from the remote nodes. Tested on NUMA-Q and some ratty old i386 PC kicking around under my desk (on 2.5.36-mm1). Was good for a 20% improvement in system time on kernel compile when I initially benchmarked it against 2.5.32 or something - due to a reduction in inter-node traffic, better interconnect cache usage and locality. Should have no effect on any system other than i386 NUMA systems. <akpm@digeo.com> [PATCH] remove get_free_page() This used to be a macro wrapper around get_zeroed_page(). It was a dreadful choice of name, because it hid the fact that this function memsets the page. Probably, lots of the callers didn't actually want to do that but this patch does not make such optimisations. At least now, people may spot a `get_zeroed_page' in there and realise that the page doesn't actually need to be initialised. The patch also changes get_zeroed_page() to go BUG if called with __GFP_HIGHMEM. It returns the address of the page's memory and hence can only be used for direct-mapped pages (wli). <akpm@digeo.com> [PATCH] numa: alloc_pages_node cleanup Patch from Christoph Hellwig It turns alloc_pages_node into a static inline, in the same fashion as alloc_pages. There is no need for #ifdef CONFIG_NUMA in the patch, as the numa node identification functions are sensible enough to do the right thing for non-NUMA systems. Moves alloc_pages_node from numa.c to gfp.h, and removes the EXPORT_SYMBOL which is no longer needed as this is now an inline. <akpm@digeo.com> [PATCH] free_area_init cleanup From Christoph Hellwig. If we always pass &contig_page_data into free_area_init_node for the non-distcontig case we can merge both versions of that function into one. Move that one to page_alloc.c and thus kill numa.c which was totally misnamed, btw. <akpm@digeo.com> [PATCH] move library functions from ramfs into libfs From Bill Irwin The simple_link(), simple_unlink(), simple_rename(), simple_sync_file(), simple_rmdir(), and simple_empty() functions are easy to duplicate. Basically, I duplicated them in an fs patch of mine, and Linus told me to put them in libfs.c Pat Mochel has acked the changes for driverfs (in that he'll convert the stuff over when they're available from libfs), and my hugetlbfs implementation was the thing that spurred the whole incident. <akpm@digeo.com> [PATCH] ext3 indexed directory support Daniel Phillips' indexed directory support. Ported from ext2 by Christopher Li. Contributions from Andreas Dilger, Stephen Tweedie, lots from Ted. It requires e2fsprogs-1.29; I've updated the Changes file to reflect that. <davej@codemonkey.org.uk> [PATCH] sun3 ncr scsi driver update Sammy changed address, and lets BUG() instead of locking up the machine. <davej@codemonkey.org.uk> [PATCH] more devexit fixes <davej@codemonkey.org.uk> [PATCH] More list_del_init usage increases <davej@codemonkey.org.uk> [PATCH] Make work throttling actually work, From Pavel Machek. Without these two lines, the throttling limits are never reached, and a machine will happily cook itself. <davej@codemonkey.org.uk> [PATCH] Remove useless mdelay wrapper in pcxx.c <davej@codemonkey.org.uk> [PATCH] CONFIG_ISA optional on x86 Hide ISA only drivers during configuration.. <davej@codemonkey.org.uk> [PATCH] zoran named initialisers <davej@codemonkey.org.uk> [PATCH] TTY_DO_WRITE_WAKEUP As per comment.. <davej@codemonkey.org.uk> [PATCH] Missing kmalloc check in iphase driver <davej@codemonkey.org.uk> [PATCH] random fixes for random.c Make things static, and remove hardcoded value <davej@codemonkey.org.uk> [PATCH] module fixes for qtronix.c <davej@codemonkey.org.uk> [PATCH] sanitise proc usage in zoran driver <davej@codemonkey.org.uk> [PATCH] radio-zoltrix typo <axboe@suse.de> [PATCH] make bio->bi_max contain max vec entries This changes the way we do pool lookups when freeing a bio. Right now we use bi_max as a handle into bvec_array[], to find the pool where it came from. This used to be just fine, because if you had a private bio, you could specify your own destructor. But now we have bio_add_page() which also needs to know where the bio came from, or more precisely, it needs to know how many entries the bio can hold. So I've changed bi_max to bi_max_vecs, it now contains the number of vec entries in the bio. Privately allocated bio's (or on stack) can now just set bio->bi_max_vecs to reflect the max size. The pool index for the default destructor is stored in the top bits of bi_flags. <axboe@suse.de> [PATCH] ide tagged command queueing support This enables tagged command queueing support in the ide layer again and marks it as an experimental feature. <bcrl@toomuch.toronto.redhat.com> fix a bug in kick_iocb that caused it to fail for async iocbs. <davem@nuts.ninka.net> net/ipv6/addrconf.c: Need __constant_XXX for case statements. <tcallawa@redhat.com> arch/sparc64/solaris/misc.c: Add MODULE_LICENSE. <davem@nuts.ninka.net> [ESP/QLOGICPTI]: Only set highmem_io on sparc64. <sds@tislabs.com> [PATCH] Base set of LSM hooks for SysV IPC The patch below adds the base set of LSM hooks for System V IPC to the 2.5.41 kernel. These hooks permit a security module to label semaphore sets, message queues, and shared memory segments and to perform security checks on these objects that parallel the existing IPC access checks. Additional LSM hooks for labeling and controlling individual messages sent on a single message queue and for providing fine-grained distinctions among IPC operations will be submitted separately after this base set of LSM IPC hooks has been accepted. <jgarzik@mandrakesoft.com> Revert incorrect s/__exit/__devexit/ change to tmspci tokenring drvr <torvalds@home.transmeta.com> Fix missing printk end-of-line <dledford@redhat.com> [PATCH] make SCSI queue depth adjustable Linus, this has been tested by some people in the field to not break things, and it's the start of some other changes I'm making, so please put this in your tree so I'm not merging huge patches but instead am merging a little as I go. <vojtech@suse.cz> Fix the Shift-PgUp problem again, and hopefully for good. <greg@kroah.com> LSM: added lsm documentation to the tree. <chris@wirex.com> [PATCH] LSM: move the inode_alloc_security hook. This moves the inode_alloc_security() hook so that we have all of the inode information at the moment of the hook. <greg@kroah.com> driver core: rename DEVICE to DEVPATH for /sbin/hotplug call to prevent conflict with USB <greg@kroah.com> USB: add device speed driverfs file. <alan@lxorguk.ukuu.org.uk> [PATCH] fix cut and paste error in amd768rng help <alan@lxorguk.ukuu.org.uk> [PATCH] fix all the isdn compile mess This doesnt fix all the isdn code but it sorts out the tqueue stuff so we are no worse than before <alan@lxorguk.ukuu.org.uk> [PATCH] cadet needless globals <alan@lxorguk.ukuu.org.uk> [PATCH] mpt fusion - remove donothing code <alan@lxorguk.ukuu.org.uk> [PATCH] un-tqueue aironet <alan@lxorguk.ukuu.org.uk> [PATCH] bring I2O roughly back into line There are some bits left to do but this folds in all the main stuff from 2.4 and 2.5 including Al's recent change <alan@lxorguk.ukuu.org.uk> [PATCH] 2.5 clean up of DE600 <alan@lxorguk.ukuu.org.uk> [PATCH] fix ibmtr mapping bug <alan@lxorguk.ukuu.org.uk> [PATCH] 2.5 cleanup + 2.4 merge of depca Yes this is big but 2.4 has been indented, updated and there wasnt a sane way to deal with it <alan@lxorguk.ukuu.org.uk> [PATCH] (forwarded) Olympic fixes Looks like they escaped your notice <alan@lxorguk.ukuu.org.uk> [PATCH] fix orinoco build <alan@lxorguk.ukuu.org.uk> [PATCH] Suppose we unload with the timer function live ? <alan@lxorguk.ukuu.org.uk> [PATCH] fix aha152x <alan@lxorguk.ukuu.org.uk> [PATCH] make dmx1391 work with new 5380 <alan@lxorguk.ukuu.org.uk> [PATCH] make tcic work again <greg@kroah.com> USB: removed unused DEVFS /sbin/hotplug attribute <alan@lxorguk.ukuu.org.uk> [PATCH] update fdomain scsi <alan@lxorguk.ukuu.org.uk> [PATCH] fix imm compile <alan@lxorguk.ukuu.org.uk> [PATCH] make pas16 work with new NCR5380 <alan@lxorguk.ukuu.org.uk> [PATCH] fix ppa <alan@lxorguk.ukuu.org.uk> [PATCH] fix t128 for new NCR5380 <alan@lxorguk.ukuu.org.uk> [PATCH] first pass at seagate st-02 for 2.5 <alan@lxorguk.ukuu.org.uk> [PATCH] wd7000 lock error Willy noticed <alan@lxorguk.ukuu.org.uk> [PATCH] fix telephony for tqueue <alan@lxorguk.ukuu.org.uk> [PATCH] fix gcc 3.1/2 warnings in USB <alan@lxorguk.ukuu.org.uk> [PATCH] Fix 2.5 signal handling in jffs/jffs2 Ingo chamged it again 8) <alan@lxorguk.ukuu.org.uk> [PATCH] tidy for the max_thread stuff from the kernel list <alan@lxorguk.ukuu.org.uk> [PATCH] trivial sound static/cast fixes <steve@gw.chygwyn.com> [DECNET]: New autoconfiguration code for 2.5 <torvalds@home.transmeta.com> Oops, removed one too many header includes.. <torvalds@home.transmeta.com> Don't declare pcibios_fixup_irqs, it's static inside irq.c <torvalds@home.transmeta.com> firestream compile fix <torvalds@home.transmeta.com> Get PageUp handling right <bcrl@toomuch.toronto.redhat.com> update ns83820 to 0.20 <davem@nuts.ninka.net> [DECNET]: Kill warnings. <bcrl@toomuch.toronto.redhat.com> fix typo in aio.c merge <ink@jurassic.park.msu.ru> [PATCH] alpha build fixes - Makefile updates; all targets should work now. - Don't export sys_sync. Ivan. <bcrl@toomuch.toronto.redhat.com> export do_sync_{read,write} for modules <davem@nuts.ninka.net> [IPV4/IPV6]: Cleanup inet{,6}_protocol. <bgerst@didntduck.org> [PATCH] struct super_block cleanup - final This last patch removes the union, replacing it with s_fs_info. <akropel1@rochester.rr.com> [PATCH] cpqarray SMP deadlock fix This fixes some critical bugs in cpqarray in 2.5. One of the fixes essentially backs out the block queue stop/start behavior that was added recently. This code as it stands is buggy and locks up under even light SMP workloads. Certainly we want the performance benefits of proper block queue plugging, but the driver needs some work before it will fit nicely. Some of these fixes do theoretically hurt performance, but when you consider that the driver is unusable under SMP as-is, I think it is right to get correctness first. Specifically, this patch does the following: * Adds locking to proc queue-walking code for debugging use. Note that the proc registration is still broken and I've left it that way since this stuff should probably migrate to driverfs anyway. * Moves interrupt enabling so queue lock is initialized before interrupts are enabled. Otherwise if we get a quick interrupt we oops the machine. * Removes unconditional IRQ enabling in do_ida_request(). The block layer takes the spinlock with irq_save so if we're going to play this trick then we need to irq_restore. For now, just eliminate the unlocked region. * Remove block queue stop/start logic since it can leave the queue stopped with no outstanding completions to start it again. Plugging logic can come back but it should go hand-in-hand with a cleanup of the driver's request handling algorithm. If nobody screams about this patch I'll go ahead and start making those improvments. <alan@lxorguk.ukuu.org.uk> [PATCH] fix warnings in fpu code <rmk@flint.arm.linux.org.uk> [SERIAL] Remove old pci_board cruft from serialP.h <mochel@osdl.org> driver model: and present field to struct device and implement device_unregister(). device_unregister() is intended to be the complement of device_register(), and assumes most of the functionality of the current put_device(). It should be called by the bus driver when a device is physically removed from the system. It should _not_ be called from a driver's remove() method, as that remove() method is called via device_detach() in device_unregister(). dev->present is used to flag the physical presence of the device. It is set when the device is registered, and cleared when unregistered. get_device() checks this flag, and returns a NULL pointer if cleared. This prevents anyone from obtaining a reference to a device that has been unregistered (removed), but not yet been freed (e.g. if someone else is holding a reference to it). put_device() BUG()s if dev->present is set. A device should be unregistered before it is freed. This will catch people doing it in the wrong order. <mochel@osdl.org> driver model: check return of get_device() when creating a driverfs file. <mochel@osdl.org> IDE: call device_unregister() instead of put_device() in ide-disk->cleanup(). <mochel@osdl.org> USB: call device_unregister() instead of put_device() when removing devices. <kuznet@ms2.inr.ac.ru> net/ipv4/igmp.c: Revert PACKET_MULTICAST check. - The media is allowed not to have any support for link-level multicasts, ppp is an example. <bcrl@redhat.com> [AIO]: First stage of AIO infrastructure for networking. - Change socket lock users to owner which is a pointer. - Add sock_owned_by_user <davem@nuts.ninka.net> include/net/sock.h: Kill __async_lock_sock extern for now. <rth@are.twiddle.net> Move syscall table out to new file. Prevent entSys constants from being out of sync with it. <rth@are.twiddle.net> Merge minor changes from entry_rewrite tree. <rth@are.twiddle.net> Make sysrq-b halt on SRM. <davem@nuts.ninka.net> drivers/scsi/scsi.h: Add back sync/wide members for host drivers. <davem@nuts.ninka.net> [CRIS/SPARC/SPARC64]: Init mem_map after free_area_init_node. <dledford@redhat.com> [PATCH] Updated scsi patch scsi_syms.c: Missing export drivers/scsi/aic7xxx_old.c: More updates for the slave_attach stuff drivers/scsi/scsi_scan.c: Make scsi_scan.c call hostt->slave_attach after we have set the sdev->tagged_supported variable <davem@nuts.ninka.net> drivers/net/pppoe.c: Use sock_owned_by_user. <davem@nuts.ninka.net> [SCTP]: Use sock_owned_by_user. <vojtech@suse.cz> Fix i8042 for Sun, recent updates broke it. <davem@nuts.ninka.net> arch/sparc64/kernel/ioctl32.c: Block ioctl handling fix. <vojtech@suse.cz> Fix oops when 'cat /dev/uinput' is done. Used wait_event_interruptible(). <vojtech@suse.cz> Don't try to enable extra keys on IBM/Chicony keyboards as this upsets several notebook keyboards. Until we find a better solution how to detect who are we talking to, we rely on the kernel command line. Use atkbd_set=4 to gain access to the extra keys. <vojtech@suse.cz> Fix a ; in atkbd.c that somehow got into the last cset. <mochel@osdl.org> [PATCH] IDE: only register devices that are present <akpm@digeo.com> [PATCH] 64-bit sector_t - various driver changes peter's code works for me, and the 40-odd people who download the -mm patches. Anton has tested it on ppc64 and I presume that Peter has tested it on ia64. I use gcc-2.91.66 and others use later compilers. I expect that any remaining problems will mainly be caught by the compiler. And compiler bugs can be detected by turning off the option in config and seeing if things get better. From Peter Chubb - do_request() function takes sector_t not unsigned long as the block number to operate on. - Various casts to long where the underlying device can never get big enough to warrant a 64-bit sector offset. - Cast sector_t to unsigned long long when printing. <akpm@digeo.com> [PATCH] 64-bit sector_t - printk changes and sector_t cleanup From Peter Chubb printk changes: A sector_t can be either 64 or 32 bits, so cast it to a printable type that is at least as large as 64-bits on all platforms (i.e., cast to unsigned long long and use a %llu format) Transition to 64-bit sector_t: fix isofs_get_blocks by converting the (possibly 64-bit) arg to a long. SCSI 64-bit sector_t cleanup: capacity now stored as sector_t; make sure that the READ_CAPACITY command doesn't sign-extend its returned value; avoid 64-bit division when printing size in MB. Still to do: - 16-byte SCSI commands - Individual scsi drivers. <akpm@digeo.com> [PATCH] 64-bit sector_t - driver changes From Peter Chubb Compaq Smart array sector_t cleanup: prepare for possible 64-bit sector_t Clean up loop device to allow huge backing files. MD transition to 64-bit sector_t. - Hold sizes and offsets as sector_t not int; - use 64-bit arithmetic if necessary to map block-in-raid to zone and block-in-zone <akpm@digeo.com> [PATCH] 64-bit sector_t - filesystems From Peter Chubb Filesystem migration to possibly 64-bit sector_t: - bmap() now takes and returns a sector_t to allow filesystems (e.g., JFS, XFS) that are 64-bit clean to deal with large files - buffer handling now 64-bit clean Enable 64-bit sector_t on IA32 and PPC. kiobufs takes sector_t array, not array of long. Fix blkmtd.c to deal in such an array. Miscellaneous fixes for 64-bit sector_t. - missed printk formats - ide_floppy_do_request had incorrect signature - in blkmtd.c there was a pointer used to manipulate an array to be used by kiobuf -- it was unsigned long, needed to be sector_t <akpm@digeo.com> [PATCH] 64-bit sector_t - md fixes From Peter Chubb (Yes I forgot something... Without this patch, trying to use RAID without CONFIG_LBD would fail.) Fix md operation without CONFIG_LBD --- don't try to include __udivdi3 etc. <akpm@digeo.com> [PATCH] 64-bit sector_t - remove udivdi3, use sector_div() From Peter Chubb Get rid of need for GCC _udivdi3 and _umoddi3 helper functions - use sector_div more aggressively. <akpm@digeo.com> [PATCH] Fix xxx_get_biosgeometry --- avoid useless 64-bit division. From Peter Chubb The bios geometry is almost useless, except for fdisk to try to write an MSDOS partition table that is vaguely compatible with one written by other operating systems. If the size of disc will overflow a ten-bit cylinder number, then all bets are off anyway. So fake it by casting the true disc capacity to a smaller type (than u64), so that we avoid 64-bit division on 32-bit platforms. If the disc is small enough that the number of cylinders is correct, then this has no effect; otherwise, the number-of-cylinders we report is bogus, but you can't use an MSDOS-format partition table on such a drive anyway --- use the EFI GPT or the LDM partitioning, which use 64-bit offsets internally. <akpm@digeo.com> [PATCH] Hardwire CONFIG_LBD to "on" for testing Make 64-bit sector_t compulsory. Accelerated testing... <axboe@suse.de> [PATCH] Scsi sense buffer thinko Noticed by Peter Chubb. SCpnt->sense_buffer[0] has to _equal_ 0xf0 for the sense to be valid, not vice versa. <hch@lst.de> [PATCH] initcalls for ATM Switch over ATM code to initcalls and reorder the makefile so that link order inside atm is the same. I've also cleaned up the makefile a bit while at it. I didn't fix the existing compilation problems in the drivers (cli & friends) and the broken le/be firmware selection for the fore200e cards (kbuild breakage) though. <schwidefsky@de.ibm.com> [PATCH] s390 update: compile fixes Switch to @$(generate-asm-offsets.h) method to create the asm-offsets.h file, fix signal dequeueing in the 31 bit emulation code and fix includes. <schwidefsky@de.ibm.com> [PATCH] s390 update: work queues Remove all tq_structs from s390 driver code. <schwidefsky@de.ibm.com> [PATCH] s390 update: tasklets Switch from work queues to tasklets in the 3215 and 3270 drivers. <schwidefsky@de.ibm.com> [PATCH] s390 update: linker script typo Correct typo in the vmlinux.lds.S files. <schwidefsky@de.ibm.com> [PATCH] s390 update: superfluous memset Remove a duplicate memset. That is already done in alloc_disk. <schwidefsky@de.ibm.com> [PATCH] s390 update: syscall tracing Pass the system call number in grp2 to strace instead of -ENOSYS. <schwidefsky@de.ibm.com> [PATCH] s390 update: 3270 console Fix 3270 console reboot loop. Recognize 3270 control unit type 3174. Fix tubfs kmallocs. Dynamically get 3270 input buffer. Get bootup colors right on 3270 console <mochel@osdl.org> IDE: add struct device to ide_drive_t and use that for IDE drives ... instead of the one in struct gendisk. <tmolina@cox.net> [PATCH] remove double "lock" in v_midi.h A second instance of lock had been inadvertently added to v_midi.h <tmolina@cox.net> [PATCH] missing exports the netfilter ipt owner module still needs the following to compile <mochel@osdl.org> IDE: register ide driver for all ide drives; not just for disk drives. This adds struct device_driver gen_driver; to ide_driver_t, which is filled in with necessary fields when an ide driver calls ide_register_driver(). That then registers the driver with the driver model core. As a result, this gives us the following output in driverfs: # tree -d /sys/bus/ide/drivers/ /sys/bus/ide/drivers/ |-- ide-cdrom `-- ide-disk The suspend/resume callbacks in ide-disk.c have been temporarily disabled until the ide core implements generic methods which forward the calls to the drive drivers. <mochel@osdl.org> IDE: Add generic remove() method for drives; remove reboot notifier. The remove() method is generic for all drives, and set in ide_driver_t::gen_driver. The call simply forwards the call to ide_driver_t::standby(). This obviates the need for IDE reboot notifier. The core iterates over all present devices in device_shutdown() and unregisters each one. <mochel@osdl.org> IDE: make ide_drive_remove() call driver's ->cleanup(). This was accidentally dropped before, but re-added now to completely mimic behavior of the reboot notifier IDE used to have. <alan@lxorguk.ukuu.org.uk> [PATCH] first pass over the in2000 - new locking - new_eh - use ->page/->offset <alan@lxorguk.ukuu.org.uk> [PATCH] 3c501 for 2.5 Not much here, just some tidying/checking. This driver can't alas use NAPI in 2.5. Note however it has no panics or BUG()s so appears to meet the carrier grade guidelines ;) - Clarified authors so I get the mail not Donald - Added missing MODULE_ bits - Moved junk into 3c501.h <rml@tech9.net> [PATCH] fix preempt_count overflow with brlocks Now that brlocks loop over NR_CPUS, on SMP every br_lock/br_unlock results in the acquire/release of 32 locks. This incs/decs the preempt_count by 32. Since we only have 7 bits now for actually storing the lock depth, we cannot nest but 3 locks deep. I doubt we ever acquire three brlocks concurrently, but it is still a concern. Attached patch disables/enables preemption explicitly once and only once for each lock/unlock. This is also an optimization as it removes 31 incs, decs, and conditionals. :) Problem reported by Andrew Morton. <rml@tech9.net> [PATCH] getpid() comment typo Comment above getpid() is wrong. This patch fixes it, and expands the comment to explain why on earth we have getpid() returning ->tgid and not ->pid. <dledford@redhat.com> [PATCH] compile fix for cpqfc driver <torvalds@penguin.transmeta.com> wd7000 indent pass, no code changes indent -kr -i8 -bri0 -l255 wd7000.{c,h} <David_Jeffery@adaptec.com> [PATCH] ips driver 1/6 This removes several unused header includes and allows the driver to compile by no longer trying to include <linux/tqueue.h> . You may have already gotten a patch to remove tqueue.h from someone else. This patch also corrects the spelling of my last name in the MAINTAINERS file. You'd think I'd be used to seeing it spelled wrong by now. <David_Jeffery@adaptec.com> [PATCH] ips driver 2/6 This patch is some simple code consolidation. A new function ips_abort_init() is created and consolidates some repeated code that is used if there is an error during initialization of the adapter. <David_Jeffery@adaptec.com> [PATCH] ips driver 3/6 This patch adds an Adaptec copyright, makes a few minor comment changes, and removes a few unneeded macros. <David_Jeffery@adaptec.com> [PATCH] ips driver 4/6 This is by far the biggest patch. It is a rewrite of the driver's horrid locking. In addition to the host_lock, the driver used to have 4 other locks per adapter! It had a redundant ha_lock and a lock for each of 3 queues. In a few places it also played with atomic bit setting. And almost all of it was useless as the host_lock was already held. This patch cleans up this locking nightmare. The driver now uses the host_lock exclusively. Only a few places needed to add calls to lock the host_lock. Most of this patch is deletion of useless extra locking. <David_Jeffery@adaptec.com> [PATCH] ips driver 5/6 2 minor bug fixes. The first section makes sure we limit the size of the sense_buffer copy to the target buffer's size so that we don't overflow the sence_buffer. The other sections remove some pointer arithmatic that is wrong on 64bit machines do to padding. Instead, just call the pci_map functions on the buffer. <David_Jeffery@adaptec.com> [PATCH] ips driver 6/6 2 bug fixes for scsi pass through When talking directly to scsi devices, the driver would sometimes get two things wrong. We could set too short of a timeout. Or, we could confuse the adapter by having non-zero values in certain fields which we shouldn't have been using. This patch corrects these problems. <bcrl@toomuch.toronto.redhat.com> fix compile glitch introduced by the addition of symbol exports <rth@dot.sfbay.redhat.com> Fix missed variable rename in stxncpy glibc conversion. <sfr@canb.auug.org.au> [PATCH] fix __SI_CODE This small patch is extracted from George Anzinger's High-res-timer patches. <acme@dhcp197.conectiva> o hid-input: fix find_next_zero_bit usage It was swapping the parameters, using the bitfield size for the offset and the offset for the bitfield size. With this the mouse buttons in my wireless USB keyboard finally works 8) 2.4 has the same problem. <mingo@elte.hu> [PATCH] timer cleanups This is my latest timer patchset, it makes del_timer_sync() a bit more robust wrt. code that re-adds timers from the timer handler. Other changes in the patch: - clean up cascading a bit. - do not save flags in __run_timer_list - we enter from an irqs-enabled tasklet. <akpm@digeo.com> [PATCH] mremap use-after-free bugfix I have invented a new software development methodology! You send an email to Hugh saying "I don't have the foggiest idea why this guy's kernel is oopsing" and next morning, you get a patch! I shall patent this. Since 2.5.3, move_vma() has been passing a freed vma into move_page_tables(). Fix it to move back to the previous vma in the list if we're about to delete this one. Thanks to Morten Helgesen for patient reporting, diagnosis and testing. <akpm@digeo.com> [PATCH] move_one_page atomicity fix The atomicicty fix for move_one_page() was not quite right. We only do the page_table_present() test if CONFIG_HIGHPTE=y. Which is fine, but even with CONFIG_HIGHPTE=n, the pte mapping functions still do an inc_preempt_count() due to their unconditional kmap_atomic(). So we get a might_sleep() warning. The warning is actually bogus, because those pte's are always in direct-mapped memory. So hm. Three fixes suggest themselves: 1: Run the page_table_present() test if CONFIG_HIGHMEM. Rejected: penalises non-pte_highmem setups 2: Make kmap_atomic() not do inc_preempt_count() is the page was direct mapped. Rejected: I don't think we want kmap_atomic side effects to be varying according to the page which was passed. 3: Change the pte mapping functions so they don't run kmap_atomic at all if CONFIG_HIGHPTE=n This is what I did. And guess what? For CONFIG_HIGHMEM=y, CONFIG_HIGHPTE=n this patch shrinks the kernel by 5 kbytes. Because kmap_atomic is inlined. The lesson: we do way too much damn inlining. <akpm@digeo.com> [PATCH] fix the raw driver Fix the raw driver by tricking it into performing O_DIRECT IO against the bound blockdev. - rewrite the i_mapping for /dev/raw/raw0 to point at the same thing as bdev->bd_inode->i_mapping. We've performed a bdget() against the blockdev, which should pin it for the correct lifetime. - set the O_DIRECT bit on the caller's file->flags. <akpm@digeo.com> [PATCH] remove radix_tree_reserve() From Hugh Dickins. radix_tree_reserve() exists solely for the tmpfs move_to_swap_cache() and move_from_swap_cache() functions, and yet they don't need it: there is no problem in the one page being simultaneously listed in two radix trees (while both locks are held). Use radix_tree_insert(), and remove radix_tree_reserve(); also removed a few blank lines. <akpm@digeo.com> [PATCH] remove the sched_yield from the ext3 fsync path The changed sched_yield() semantics have made ext3's transaction batching terribly slow. Apparently a schedule() fixes that, although it probably breaks transaction batching. This patch largely fixes my complaints about the new scheduler being extremely sluggish to interactive applications. Evidently those applications were calling fsync() and were spending extremely long periods in sched_yield(). <akpm@digeo.com> [PATCH] make readv/writev return 0 for 0 segments Should resolve an ongoing fiasco concerning what we should return to userspace if they do a readv or writev of zero segments. SuS is ambiguous, but implies EINVAL. We're currently returning EINVAL, but 2.4 returns zero. I think zero makes more sense, and it is what 2.4 does. <bcrl@redhat.com> fix symbol export in fs/read_write.c <johnstul@us.ibm.com> [PATCH] linux-2.5.41_timer-changes_A4 (1/3 - infrastructure) The i386 time.c code is turning into a mess. We've got multiple functions that do the same thing, only with different hardware, all surrounded #ifdefs and even more difficult to follow #ifndefs. George Anzinger is introducing a new ACPIpm time source, I'm going to attempt to add the cyclone counter as a time source, and in the future there will be HPET to deal with. These will not go in cleanly together as things are now. Inspired by suggestions from Alan, this collection of patches tries to clean up time.c by breaking out the PIT and TSC specific parts into their own files. Additionally the patch creates an abstract interface to use these existing time soruces, as well as make it easier to add future time sources. It introduces "struct timer_ops" which gives the time code a clear interface to use these different time sources. It also allows for clearer conditional compilation of these various time sources. This first patch (part 1 of 3) provides the infrastructure needed via the timer_ops structure, as well as the select_timer() function for choosing the best available timer. <johnstul@us.ibm.com> [PATCH] linux-2.5.41_timer-changes_A4 (2/3 - bulk move) This is part 2 of 3 of my timer-change patch. Part 2 is just a bulk move of code out of time.c and into timer_pit.c and timer_tsc.c. No code is changed, only moved. Please note, this code will not compile without the final third part of this patch collection. This was done for readability alone. <johnstul@us.ibm.com> [PATCH] linux-2.5.41_timer-changes_A4 (3/3 - integration) This is the final part 3 of 3 of my timer-change patch. Part 3 integrates the moved code (from part 2) into the new infrastructure (from part 1). <johnstul@us.ibm.com> [PATCH] linux-2.5.41_cyclone-timer_B2 In order to demonstrate how new time-sources are added to my timer-changes patch. Here is my current version of my cyclone-timer patch for 2.5.41. This uses the infrastructure set up in the timer-changes_A4 patch set to add the cyclone counter (found on IBM Summit Based hardware) as a time-source. The current code is not enabled as it also depends on James Cleverdon's 2.5 summit patch, however it illustrates how cleanly new time-sources can be added. <stevef@smfhome1.austin.rr.com> Initial check in of cifs filesystem version 0.54 for Linux 2.5 (to clean tree as one changeset) <jgarzik@mandrakesoft.com> [netdrvr] Use ADVERTISE_FULL in mii lib, to clean up duplex check <torvalds@penguin.transmeta.com> Clean up after timers - move the "timers" Makefile info into the proper subdirectory (kernel) where it is used. Drop unused variables. <axboe@suse.de> [PATCH] excessive stack usage in cdrom CD-ROM puts struct cdrom_changer_info on the stack in a few places, this is a bad idea since it's big (a bit over 1kb). This makes us allocate it instead. Noticed by Anton. <sam@ravnborg.org> [PATCH] drivers/scsi - Makefile fix Reference to .ver file incorrect after recent makefile changes. Grepped the kernel tree, and this is the only Makefile that uses $(MODVERDIR). <olaf.dietsche#list.linux-kernel@t-online.de> [PATCH] 2.5.40: fix chmod/chown on procfs This patch allows to change uid, gid and mode of files and directories located in procfs. Without this patch you can change uid, gid and mode as long as the file is open. As soon as you close the file, it reverts back to its default, which is root:root and readonly usually. <paulus@samba.org> [PATCH] add PCI device ID for Motorola MPC107 This patch adds the PCI device ID for the Motorola MPC107 host bridge. The entry is already in the list at pciids.sf.net but isn't in the kernel pci_ids.h file yet. Please apply this to your tree. <paulus@samba.org> [PATCH] adjust PPC sysctls This patch takes out the unused KERN_PPC_ZEROPAGED sysctl, and restricts the KERN_PPC_POWERSAVE_NAP and KERN_PPC_L2CR sysctls to be present only on those PPC processors where they are useful. This patch only affects PPC. <Andries.Brouwer@cwi.nl> [PATCH] isofs fix The patch below removes some dead code and nonsense code. The part that changes behaviour is - if (sbi->s_cruft == 'n' && - (volume_seq_no != 0) && (volume_seq_no != 1)) { - printk(KERN_WARNING "Warning: defective CD-ROM " - "(volume sequence number %d). " - "Enabling \"cruft\" mount option.\n", volume_seq_no); - sbi->s_cruft = 'y'; - } that has already bitten lots of people. Nothing is wrong with a volume sequence number different from 0 or 1. (Cf. Ecma-119.pdf, Sections 4.17, 4.18, 6.6.) <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x Instantiate a new file, include/linux/nfs4.h, which contains constants and typedef's for the NFSv4 protocol (by analogy with include/linux/nfs2.h and include/linux/nfs3.h). Also #include this file in a few places where it will be needed later. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x In a number of places in the NFS client, I had to change #ifdef CONFIG_NFS_V3 /* ... */ #endif to #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) /* ... */ #endif <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x This patch changes the interface of the ->readdir() nfs_rpc_op so that its first argument is a dentry instead of an inode. [Explanation: The dentry is required because in NFSv4, we need to make use of the _parent_ directory's inode. This is because NFSv4 servers no longer return an entry for ".." in the READDIR response, so the client kernel needs to fake this entry, inode number and all.] <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x This patch changes the interface of the ->setattr() nfs_rpc_op so that its first argument is a dentry instead of an inode. [Explanation: The dentry is required because in NFSv4, we may need to OPEN the file before doing the SETATTR. (This is required if the file size is changed as part of the setattr.) Opening the file requires making use of the containing directory's inode.] <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x In NFSv4, there is no hard limit on the length of symlink text. This patch changes the -ENAMETOOLONG test in nfs_symlink() accordingly. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x In NFSv4, an fsid is a 64-bit major number together with a 64-bit minor number. In previous versions, an fsid is a single number. This patch changes 'struct nfs_fattr' accordingly. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x This is a nontrivial change to the NFS client. NFSv4 defines a new file attribute, change_attr. This is a per-file opaque quantity returned by the server, whose value is required to change whenever the file is modified. If it exists, we want to use it for all cache consistency checks in nfs_refresh_inode(). Some operations also return a "pre-operation" value of the change_attr; we want to take this into account too. First, define flags NFS_ATTR_FATTR_V4 - indicates that the 'struct nfs_fattr' is an NFSv4 fattr, so the change_attr field is valid NFS_ATTR_PRE_CHANGE - indicates that the server returned a pre-operation change_attr, so the pre_change_attr field is valid Second, change nfs_refresh_inode() so that the caches are invalidated if there is a change_attr mismatch. Exception: If the pre_change_attr tells us that the mismatch was caused by our operation, then do not invalidate the caches. This patch should leave the logic in nfs_refresh_inode() unchanged if neither of the new flags are set. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x If the NFS_ATTR_FATTR_V4 flag is set, use the NFSv3 convention for the 'space_used' part of the fattr. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x This is a nontrivial change to the NFS client. Synchronous READ operations are currently done via the ->read() nfs_rpc_op. Therefore, the synchronous READ path can easily be adapted for NFSv4. On the other hand, the asynchronous READ path contains several NFSv3-specific features, which make it difficult to adapt for NFSv4. In this patch and the next, we modify the async READ path to be version-agnostic. This patch just changes the 'struct nfs_read_data' so that the v2- and v3-specific parts are moved into a private area, with room for a v4-specific part in parallel. None of the logic is changed. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x This is a nontrivial change to the NFS client. In this patch, we finish modifying the async READ path so that it is version-agnostic. We define a new nfs_rpc_op ->setup_read(), and move the v2- and v3-specific code in nfs_read_rpcsetup() there. We also have to change nfs_readpage() result so that the 'count' of bytes read is a parameter. The extra parameter means that it can no longer be ->tk_exit(). Instead, it is called from a version-specific ->tk_exit() routine which is set in ->read_setup(). The upshot of all this is that the version-specific part of the async READ path has been encapsulated in a new nfs_rpc_op ->read_setup(), and NFSv4 can share the logic for asynchronous READ's with NFSv2 and v3. <trond.myklebust@fys.uio.no> [PATCH] Fix NFS locking over TCP The 2.5.x RPC code is currently broken in that it demands that all tasks that call xprt_create_proto() in order to open a TCP socket must have CAP_NET_BIND_SERVICE capabilities, and must bind to a privileged port. This breaks the NLM locking code and its use of the call_bind() RPC portmapper lookup feature. This patch allows the built-in portmapper client to use unbound TCP sockets if the user does not have the necessary capabilities. <greg@kroah.com> [PATCH] minor i386 timer changes for 2.5.41 Here's an additional patch that contains the cleanups I did to John's timer patches. It does the following: - uses C99 initializers - makes the timer list static - adds better documentation to the timer function structure - makes the timer init function return 0 on success - NULL terminates the list of timers to make further patches easier. <dledford@redhat.com> [PATCH] atp870 driver This is a minimal patch to allow me to load/use the atp module so I can do further testing work on it. <zwane@linuxpower.ca> Add ethtool media support to 3c509 net driver <jgarzik@mandrakesoft.com> Support multiple cards in ewrk3 net driver (contributed by Adam Kropelin) <maxk@qualcomm.com> Initialize Bluetooth core using subsys_initcall(). <maxk@qualcomm.com> RFCOMM core API extensions. Improved /proc/bluetooth/rfcomm format. RFCOMM socket locking fixes. Fix typo in rfcomm_pi() macro, no more oopses on socket destruction. <kai@tp1.ruhr-uni-bochum.de> ISDN: race-free incoming call handling Move the incoming call handling from isdn_net.c to isdn_net_lib.c. We use a spinlock protected list for finding a matching device on incoming calls, making sure that a concurrent net_device::close() cannot corrupt the list under us or destroy the isdn_net_dev before its ref count hits zero. Also, remove superfluous #ifdefs from isdn_concap.c <rth@dot.sfbay.redhat.com> Avoid oops on systems that set atkbd_reset. <kai@tp1.ruhr-uni-bochum.de> ISDN: Accept incoming calls and do callback in the state machine Moving as much as possible into the state machine, which should eventually simplify things. <kai@tp1.ruhr-uni-bochum.de> ISDN: Move generic bits from isdn_net_lib to isdn_common o When accepting an incoming call, leave it to the common code to set usage, numbers etc. o Make USAGE_EXCLUSIVE just another flag when getting / accepting a channel, getting rid of some special case code. o No need to pass the current usage when freeing a channel <kai@tp1.ruhr-uni-bochum.de> ISDN: Move binding the interface into state machine Again, let's do as much as possible inside the state machine.. <kai@tp1.ruhr-uni-bochum.de> ISDN: ref counting for isdn_net_local / isdn_net_dev Make sure that we elevate the ref count for isdn_net_dev's in states other than ST_NULL, so only after we get back to ST_NULL, our net_device may be closed (only afterwards, the isdn_net_dev's could be deleted). <mac@melware.de> ISDN: Add new Eicon driver Armin Schindler: - Divas driver V2 for Eicon Networks DIVA-Server ISDN PCI cards, consists of 5 modules: internal link-module, main driver, capi-interpreter module, user interface module and maint-driver for debugging and logging. <vojtech@suse.cz> Fixes in i8042.c Active Multiplexing support. <zw@superlucidity.net> Several fixes in the uinput.c userspace input driver. Size of fifo, handling of flag bits, etc. <Andries.Brouwer@cwi.nl> Since 2.5.32 the keyboard repeat code was broken. The reason Vojtech broke it was the stupid name of a field in struct kbd_repeat, namely "rate". Every sane person expects that a rate has dimension [1/sec], but here the "rate" is a time period measured in msec. So, the patch below first of all fixes the code, and secondly changes the name. Since Vojtech used PERIOD as index, I also used period as field name in the struct. Half of the stuff below is actually from Alan Stern. Andries <rmk@flint.arm.linux.org.uk> [SERIAL] Fix uart_type compilation error when CONFIG_PROC_FS=n <rmk@flint.arm.linux.org.uk> [SERIAL] Fix oops when removing some PCI serial boards Patch from William Lee Irwin II. <rmk@flint.arm.linux.org.uk> [SERIAL] Fix serial.h/serialP.h ordering nightmare. Don't release NULL resources. <anton@samba.org> [PATCH] fix NLS config.in Quick fix for CONFIG_NLS, add a missing space. <jeb.j.cramer@intel.com> e1000 net driver minor fixes/cleanups: * don't read PCI bus for values stored in struct pci_dev * remove silly BUG() in e1000_sw_init, and * return error from e1000_sw_init <fubar@us.ibm.com> Prevent EFAULT errors when checking link status, in bonding net driver. Also some minor cleanups as well. [This patch qualifies for the cavemen ugh-lympics, because the driver does some really nasty things in interrupt context and this patch does not correct that. However, the patch is an incremental improvement over the current code so it's still worth applying. I'll fix it further if IBM does not fix it first. -jgarzik] <mingo@elte.hu> [PATCH] sched-2.5.41-A0 This fixes the scheduler's migration code to not disable preemption. It also fixes the bug that was hidden by the broken disable-preempt change: the migration thread did not kick idle CPUs if a task is migrated to them, which causes a hung boot when ksoftirqds are started. It was pure luck it worked until now, it was broken pretty much from day 1 on. <zwane@linuxpower.ca> Add ethtool media support to smc91c92_cs net driver. Also fixes a bug when UTP port is unplugged. <jt@hpl.hp.com> irda update 1/6, big vlsi_ir driver update: <Following patch from Martin Diehl> * merge+sync with changes from recent kernels: pci_[sg]et_drvdata, __devexit_p, netdev->last_rx, irda header cleanup * add netdev tx_timeout which re-initializes the whole thing * add power management support consistent with pci driver api * major rework of the ring descriptor operations * make correct usage of consistent and streaming pci dma api * nuke last virt_to_bus() and friends * support MIR/FIR highspeed interaction pulse (SIP) * review all paths for packet-size issues (rx and tx) * fix an old issue requiring hw powercycle caused by a race between IrLAP and hardware when switching _back_ to default speed at LAP disconnect. This was opened by the complete async behaviour of netdev->xmit but didn't happen before your latency improvements went into the stack. * add driver status readout under /proc/driver/vlsi_ir/irda% For 2.5, this will probably go into driverfs once things have stabilized. * fix potential deadlock in speed changing code * make identical driver working for both 2.4 and 2.5 * add __attribute__((packed)) to hardware-exposed struct * add suggested pci_dma_prep_single() to flush cpu cache before streaming dma buffer gets reused for busmastering <jt@hpl.hp.com> irda update 2/6: <Following patch from Martin Lucina & Christian Gennerat> o [FEATURE] Rewrite of the toshoboe driver using documentation o [FEATURE] Support Donau oboe chipsets. o [FEATURE] FIR support o [CORRECT] Probe chip before opening o [FEATURE] suspend/resume support o [FEATURE] Numerous other improvements/cleanups o [CORRECT] (me) Remove save_flags()/cli() for spinlock <Currently, we keep the old toshoboe driver around> o [FEATURE] Config.help for ma600 driver (unrelated ;-) <jt@hpl.hp.com> irda update 3/6: o [FEATURE] Export CRC16 helper so that drivers can use it <jt@hpl.hp.com> irda update 4/6: o [FEATURE] Fix spelling UNITIALISED => UNINITIALISED o [CORRECT] Accept data from TTY before link initialisation This seems necessary to avoid chat (via pppd) dropping chars o [CRITICA] Remember allocated skb size to avoid to over-write it o [FEATURE] Remove LM-IAS object once connected o [CORRECT] Avoid declaring link ready when it's not true <jt@hpl.hp.com> irda update 5/6: o [FEATURE] Fix some comments o [FEATURE] printk warning when we detect buggy QoS from peer o [CORRECT] Workaround NULL QoS bitfields o [CORRECT] Workaround oversized QoS bitfields o [FEATURE] Add sysctl "max_tx_window" to limit IrLAP Tx Window <jt@hpl.hp.com> irda update 6/6: o [CORRECT] Start timer before sending event to fix race condition o [FEATURE] Improve the IrLMP event debugging messages. <dledford@redhat.com> [PATCH] redo of scsi.h changes Start removing items from scsi.h that are driver specific and provide a patch to NCR53C9x.? that switches to driver private storage instead as an example of how drivers should do private struct storage <dledford@redhat.com> [PATCH] Updates for the scsi.h removal of device specific data from struct scsi_device <dledford@redhat.com> [PATCH] tcq fixes for the issue on linux-kernel This does 4 things. Fixes the oversight James found about cmd_per_lun. Makes scsi_adjust_queue_depth() implement the usage of tagged that I described in my email to linux-scsi. Updates some comments to highlight things that are going to go away shortly. Removes the call to host->select_queue_depths() entirely since drivers that implement this will try to set SDptr->queue_depth to the desired depth, which in reality will do nothing but confuse the mid layer since that is now the actual allocated command counter, so it won't make the mid layer allocate more commands, it will make the mid layer think more commands have been allocated. <dledford@redhat.com> [PATCH] aic7xxx_old update and a compile warning fix in scsi.c Rework lots of cruft in the aic7xxx_old driver so that it can be more easily read and understood by other people and so it starts on the road to giving a clearer picture of how to interact with the scsi mid layer. <dledford@redhat.com> [PATCH] Make the rest of the world happy with ips again <akpm@digeo.com> [PATCH] x86 uniproc compile fix Fix uniprocessor compilation. do_timer.h needs asm/mpspec.h for the declaration of `using_apic_timer' <trond.myklebust@fys.uio.no> [PATCH] Remove unbalanced kunmap() in NFS readdir code The following seems to have survived the purge .. <trond.myklebust@fys.uio.no> [PATCH] Disable Nagle algorithm for RPC over TCP. The Nagle algorithm gets in the way when sending short RPC messages to the server. The following patch from Chuck does the equivalent of setting TCP_NODELAY on the socket. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x This is a nontrivial change to the NFS client. This patch does for the async WRITE and COMMIT paths what patch 14 did for the async READ path, by changing 'struct nfs_write_data' so that the v2- and v3-specific parts are moved into a private area, with room for a v4-specific part in parallel. None of the logic is changed. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x This is a nontrivial change to the NFS client. This patch does for the async WRITE and COMMIT paths what patch 15 did for the async READ path, by defining new nfs_rpc_ops ->setup_write() and ->setup_commit(). <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x In NFSv3, an RPC is retried if the special error NFSERR_JUKEBOX is received. This generic bit of postprocessing happens invisibly for synchronous RPC's, but in the async case, the ->tk_exit callback must call nfs_async_handle_jukebox() by hand. In NFSv4, we also need generic postprocessing of async RPC's, but the details are different. Therefore, we don't want to call nfs_async_handle_jukebox(); we want to call a different, NFSv4-specific routine. Therefore, we want to move calls to nfs_async_handle_jukebox() out of the "generic" NFS code and into NFSv3-specific routines. This has already been done for async READ and WRITE in the preceding patches, but there is still one outstanding case: the async REMOVE in sillyrename. This patch removes nfs_async_handle_jukebox() from the async sillyrename path, and puts in the NFSv3 ->unlink_done() rpc_op. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x Now that all calls to nfs_async_handle_jukebox() have been moved to fs/nfs/nfs3proc.c, we clean up by moving the nfs_async_jukebox() routine itself there. We also rename it nfs3_async_handle_jukebox(), to be consistent with the naming conventions of that file. <trond.myklebust@fys.uio.no> [PATCH] A basic NFSv4 client for 2.5.x A trivial loose end: add a 'lease_time' field to 'struct nfs_fsinfo'. <kronos@kronoz.cjb.net> [PATCH] C99 designated initializer for fs/coda <kronos@kronoz.cjb.net> [PATCH] C99 designated initializer for fs/jffs <kronos@kronoz.cjb.net> [PATCH] C99 designated initializer for fs/affs <kronos@kronoz.cjb.net> [PATCH] C99 designated initializer for drivers/ide/pci <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Remove the nfs-devel list from MAINTAINERS It only gets spam these days... <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Use correct value for max size for readlink response. Symlinks in NFSv3 can be upto 1024 bytes, not 256 like nfsv2. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: A couple of possible incorrect calls to dput.... Thanks to Hirokazu Takahashi <taka@valinux.co.jp> <neilb@cse.unsw.edu.au> [PATCH] kNFSd: pre-zero response for lockd _msg requests. All the lockd *_msg requests are implemented by calling the equivalent non- *_msg request and sending off the response as a new message (*_res). For the non- *_msg requests, the response buffer is pre-zeroed by the RPC layer, but the *_msg handlers weren't pre-zeroing the buffer, would could in some circumstances lead to an Oops. Now we pre-zero them all. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: header file for NFSv4 XDR Instantiate a new file include/linux/nfsd/xdr4.h (server-side XDR for NFSv4). <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Expand nfsd filehandle to 128 bytes. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: new routine fh_dup2() Define fh_dup2(), which copies a _verified_ filehandle, taking care of refcounts accordingly. (This will be used by RESTOREFH/SAVEFH and a few other places.) <neilb@cse.unsw.edu.au> [PATCH] kNFSd: New routine exp_pseudoroot() to find 'root' filehandle for nfsv4 NFSv4 has a concept of a 'root' filehandle (from which all other can be found via LOOKUP, so no need for mountd). This patch defines exp_pseudoroot(), which is used to set the filehandle for the root of the pseudofs. The root is defined to be the export point with fsid == 0. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: ensure XDR buffer is large enough for NFSv4 This patch changes the 'xdrsize' parameter to svc_create(), to be NFS4_SVC_XDRSIZE if v4 is defined else NFS3_SVC_XDRSIZE if v3 is defined else NFS2_SVC_XDRSIZE (formerly NFSSVC_XDRSIZE) This always works, since NFS4_SVC_XDRSIZE >= NFS3_SVC_XDRSIZE >= NFS2_SVC_XDRSIZE. The value of NFSD_BUFSIZE has also been moved to const.h, since we need the definition available in nfs4proc.c <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Stub support for name lookup NFSv4 need to be able to make from user/group name to user/group id. This include file contains some simple stubs to do this. They will be replaced with something that really works later. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Giant patch importing NFSv4 server functionality Now that all the hooks are in place, this large patch imports all of the new code for the NFSv4 server. This patch makes almost no changes to the existing nfsd codebase (these have been taken care of by the preceding patches). One aspect of the NFSv4 code deserves comment. The most natural scheme for processing a COMPOUND request would seem to be: 1a. XDR decode phase, decode args of all operations 2a. processing phase, process all operations 3a. XDR encode phase, encode results of all operations However, we use a scheme which works as follows: 1b. XDR decode phase, decode args of all operations 2b. For each operation, process the operation encode the result To see what is wrong with the first scheme, consider a COMPOUND of the form READ REMOVE. Since the last bit of processing for the READ request occurs in XDR encode, we might discover in step 3a that the READ request should return an error. Therefore, the REMOVE request should not be processed at all. This is a fatal problem, since the REMOVE was already been done in step 2a! Another type of problem would occur in a COMPOUND of the form READ WRITE. Assume that both operations succeed. Under scheme (a), the WRITE is actually performed _before_ the READ (since the "real" READ is really done during XDR encode). This is certainly incorrect if the READ and WRITE ranges overlap. These examples might seem a little artificial, but nevertheless it does seem that in order to process a COMPOUND correctly in all cases, we need to use scheme (b) instead of scheme (a). (To construct less artificial examples, just substitute GETATTR for READ in the examples above. This works because the "real" GETATTR is done during XDR encode: one would really have to bend over backwards in order to arrange things otherwise.) <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Enable selection of NFSv4 server in configurator and Makefile <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Tidy up the rpc authentication interface. Define auth_ops that contains a method for authenticating a request and a method for authorising a reply. Call both methods as appropriate. Also discard rq_verfed and cr_flavour, neither ever used. And discard rq_auth as it isn't needed. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Initialial caching infrastructure for RPC authentication caches This patch provides a "virtual class" for defining caches that make user-space information available in the kernel It is intended for RPC services or clients that need user-space support for authentication. As yet, support for userspace interaction isn't included as I want that to be able to have separate review. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Use new cache infrastructure for auth_unix specific lookups. This patch introduces two caches using the new infrastucture, and the concept of a 'domain'. A 'domain' refers to a collection of clients that all have the same view of the nfs server, and all have the same access rights (modulo different users on the clients). For AUTH_UNIX (and AUTH_NULL), the domain is determined from the IP address. For other authentication styles, the domain might be determined directly from the credentials. Each auth flavour knows how to allocate and free it's domain-specific infomation. auth_domain_cache maps a name to a domain which is owned by an auth flavour. ip_map_cache is a cache specific to AUTH_UNIX which maps IP address to domain. With this patch, svcauth_unix.c is created to store all auth_unix related code. The IP address lookup code is removed from nfsd/exports.c sunrpc module initilisation is moved out of stats.c into sunrpc_syms which seemed to be the most central .c file. It now registers these two caches. Now that the caches are being used, nfsd needs to call cache_clean periodically. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Move auth domain lookup into svcauth Instead of doing the lookup from ipaddr to domain inside the nfs server, (and also when lockd calls into nfsd) it is now done at the rpc authentication level which is a more sensible place for it. Note that both AUTH_UNIX and AUTH_NULL do the same lookup. So that the rpc layer knows that nfsd and lockd both uses the name space of domains (while other hypothetical services may not) we introduce a 'class' for each service which svc_auth combines with the IP address when doing a lookup. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: exp_getclient, now just a small wrapper, goes in favour of auth_unix_lookup <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Open code exp_get and exp_get_fsid in the one place they are called. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Convert export-table to use new cache code This introduces two caches, svc_export_cache (nfsd.exports) and svc_expkey_cache (nfsd.fh). nfsd.exports maps client+directory -> export options. nfsd.fh maps client + filehandle-fragment -> directory. A major part of this change is that export entries are now reference counted, so we have to be careful to keep those counts correct. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Don't over-write rpc request with response. We are going to want rpc request to be immutable so that we can take a copy and put it aside to be processed later. Currently the tcp code writes the response into the same buffer as the request, thus corrupting the request. With this patch, the response goes after the request. There should always be enough room as large reqeusts (Write) has small responses, and large responses (read) are for small requests. buflen is changed for requests to record the length of the request. It already gets reset for each new request. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: decode symlink inplace to avoid modifying request Rather than possibly modifying a request (as xdr_decode_string can) we use xdr_decode_string_inplace to symlink contents. This string may not be nul terminated (though it often is) so in the 'unlikely' event that is isn't nul terminated, we copy it into a kmalloced space first. It might be nice if vfs_symlink took a length, but then every filesystem would have to as well.... <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Provide support for request deferral and revisit. cache.c gets code to allow a 'request' to be referred pending an update of a cache item, and revisited when the item is updates. svcsock.c gets code to store the relevant part of a request on deferral, and to re-queue it when the cache item that caused the deferral is filled in. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Create files: /proc/net/rpc/$CACHENAME/channel for communicating cache updates with kernel Each cache gets it's own 'channel' at /proc/net/rpc/$CACHENAME/channel Reads from the file will return all pending requests, one at a time. select will block when at end of file. writes will pass full lines in to be processed. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Provide generic code for making an upcall. This code enhances 'cache_check' to try to initiate an up-call if the cache entry is not up-to-date, and also defines add_word and add_hex for formating up-call requests. See rpc-cache.txt for more detail. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Implement ip_map_request for upcalls This is the first upcall to actually be coded. A request will look like: nfsd 127.0.0.1 <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Implement get_word to help in parsing cache updates get_word understands both \x and \012 quoting styles. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: get_int and get_expiry to help in parsing. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: Impletement ip_map_parse to allow filling auth.unix.ip cache a message should be: nfsd 10.0.1.1 {Expirydate} domainname if domainname is empty, then this is a NEGATIVE entry: that IP address will be deined access. {Expirydate} is seconds since unix epoch. e.g. 1036105199 for midnight, halloween. <neilb@cse.unsw.edu.au> [PATCH] kNFSd: upcall/update for export tables Add _request and _parse methods for nfsd.fh and nfsd.exports tables. nfsd.fh maps a filehandle-fragment to a path for a client, and nfsd.exports maps a path to export options for a client. <eike@bilbo.math.uni-mannheim.de> [PATCH] improve NCR53c710 SCSI driver <peter@chubb.wattle.id.au> [PATCH] fix crash in yenta_bh() on card insertion/removal In the current kernels, when a PCMCIA card is inserted into or removed from a socket, the kernel oopses because yenta_bh() tries to dereference a NULL pointer. The attached patch initialises the argument to yenta_bh() so that this doesn't happen. <johnstul@us.ibm.com> [PATCH] linux-2.5.41_cyclone-fixes_A1 This syncs up the cyclone-timer code w/ Greg's changes from this morning. <akpm@digeo.com> [PATCH] various fixes - Fix some printk warnings in 3c59x.c (inl() now returns a long). - ext3 warning fix from Stephen Hemminger: "__FUNCTION__ is a constant and gcc warns about passing it as a mutuable string." - Fix a return-with-BKL-held in isofs_readdir() - paride 64-bit sector_t fix (Bill Irwin) <jaharkes@cs.cmu.edu> [PATCH] Coda FS update Most of these changes have been tested and used in the 2.4 tree, so this is mostly a forward port of 2.4 bugfixes. * C99 initializers * Added specific initializations instead of assuming that the private part of the inode is already initialized. * Remove unused code. * Moved container file to the struct file private data, this is to * correct the session semantics model when file updates are fetched from * the server (old 'sessions' shouldn't see the new container yet). * Fixed consistency (and occasional oopes) when mmap-ing Coda files. * Fixing up inode numbers in readdir, old libc5 getcwd was broken. * Nuked upcall_stats, all of this can easily be maintained in userspace, and the existing code suffers from overflows in the fixed point calculations. <ak@muc.de> [PATCH] Efficient bswab64 for i386 Due to some bugs in byteorder/generic.h linux would always use C handcoded swab64 for 64bit ntohq or cpu_to_be64. The C version is very inefficient and expands to 30+ instructions of horrible code. This hurts on filesystems that use on disk big endian data structures with 64bit data types. This patch adds an assembly optimized swab64 to fix it. Now bswab64 is 4 instructions when your CPU supports bswap and 9 when it doesn't. Tests were done with gcc 3.2, may be different on older gcc. This is good for ~600 bytes code size reduction in XFS (gcc 3.2): Before: 503199 3296 1682 508177 7c111 fs/xfs/xfs.o After: 502543 3296 1682 507521 7be81 fs/xfs/xfs.o Also should be faster. Also some minor cleanups in the file. <torvalds@home.transmeta.com> Declare set_change_info() only if CONFIG_NFSD_V3 is enabled. It uses fields that do not exist otherwise. <torvalds@home.transmeta.com> Linux v2.5.42