Summary of changes from v2.5.67 to v2.5.68 ============================================ Aic79XX Driver Update - Disable CIO bus stretch of MDFFSTAT so that PCI-X errors can be handled even while the sequencer is reading this register Aic79xx Driver Update o On RevA Silicon, modify firmware so that the chip does not violate the P1 setup to datavalid setup time specification. Aic79xx Driver Update o Add driver strings for the 39320A adapter. Aic79xx Driver Update to version 1.3.2 o Fix data corruption issue with Rev A hardware on IBM and Fujitsu U320 Drives. o Fix bug in ahd_pause_and_flushwork() that could prevent recovery actions from being effective. o Correct hang condition caused by attempts by the mid-layer to probe the controller's own ID. Update aicasm/Makefile so that link specifications are specified after all object files. This seems to be required in order to link correctly in some cases. Update Aic7xxx driver to version 6.2.29 o Add bus attachment specific hooks for chip-init, suspend and resume. This is a precursor to better suspend and resume support. o Fix a bug that could cause unnecessary renegotiations after selection timeouts. o Fix a hang that occurred if the mid-layer attempted to probe devices at the controller's own ID. o Add some delays to the termination detection logic for 785X chips. This might resolve some termination problems on very early controllers. Update Aic79xx Driver o Fix async negotiation bug when the initial bus reset is disabled if the target device rejects our WDTR of 0. o Fix driver initialization hang if the PCI cacheline size is 0. o Fix typos. o Fix printf arguments to work in both C99 and C89 environments. Update aic7xxx driver o Fix async negotiation bug when the initial bus reset is disabled if the target device rejects our WDTR of 0. o Fix typos. o Fix printf formats to work in both C99 and C89 environments. Update aic79xx Driver to 1.3.4 o Fix stray PCI target abort interrupt on startup due to accessing a register prior to pausing the controller. o Add cfg4icmd implementation. o Fix PCI-X issues on rev A hardware due to improper accesses to scb ram. o Correct a race condition in the error recovery path. Update Aic7xxx Driver to 6.2.30 o Fix initial DV scan to scan more than just the first target. o Fix compilation on SuSE 2.4.16 kernels. Complete Aic7xxx and Aic79xx driver merge with Linux 2.5.X mainline. Fix Aic7xxx and Aic79xx Driver builds for 2.4.X. ia64: Drop unused NEW_LOCK spinlock code and clean up unneeded test in kernel unwinder. [PATCH] ia64: CPE & CMC polling for 2.5 Here's another feature I'd like to add to MCA support; the ability to detect a flood of CMCs and switch to polling mode for retrieving CMC logs. Once no more CMC logs are found, return to and interrupt driven handler. If the flood threshold is never reached, the CMC handler simply behaves as it does today. It's useful to get the CMC logs to know that something isn't quite right, but if you end up with some bad memory it's too easy for them to interfere with useful work. I've tested this on an HP rx2600, with a known bad DIMM. This DIMM acts like it has a completely dead DRAM on it. With the current CMC handler, once I hit that range of memory addresses, the system essentially dies, constantly handling CMC errors. With this patch, the system hits the threshold quickly, but remains functional with no performance degredation once in polling mode. This patch applies against linux-2.4.20-ia64-021210 and includes: - Switching CMCs to polling mode at predeterimined threshold - If polling for CPEs, poll on all processors - Fix timestamp on log output [PATCH] ia64: declare test_bit() arg as "const" While you're fixing bitops.h, making test_bit take a const qualified arg will kill some warnings in reiserfs... ia64: Remove ia64_spinlock_contention(). ia64: Rename __put_task_struct() to free_task_struct(). Based on patch by Peter Chubb. [PATCH] ia64: clone2/clone argument order fixes do_fork is declared as: struct task_struct *do_fork(unsigned long clone_flags, unsigned long stack_start, struct pt_regs *regs, unsigned long stack_size, int *parent_tidptr, int *child_tidptr) ie. parent_tidptr is out4 and child_tidptr is out5, but the comments in clone2 were suggesting otherwise. So, we either need a patch which will codify current order of clone arguments (ie. ptid, ctid, tls; attached below - has the advantage that clone2 stays with the same ABI as in 2.5.[56]x), or the arguments of clone2 and clone should be reordered to match the IA-32 order (which is ptid, tls, ctid). ia64: Fix settimeofday(). Based on patch by Eric Piel. [PATCH] ia64: POSIX timer fixes Here is a patch to have the POSIX timer interface completly integrated in ia64 (2.5.64). The programs in userland can now access the siginfo structure. With that patch the test programs of the high resolution timers pass without error but one which seems to also be triggered on ix86: nanosleeps too short. ia64: Fix sys_clone() to take 5 input arguments. [PATCH] ia64: unwind.c - allow unw_access_gr(r0) The patch allows unw_access_gr() to read from r0, to support unwind directives such as .save ar.pfs,r0 and .save rp,r0. [SERIAL] Remove USR 56K voice modem specific PCI table entry. Jordan Breeding confirms that our serial PCI detection algorithms now correctly determine this device, and doesn't require a specific entry. ia64: Patch by Andreas Schwab: The read_lock and read_unlock macros should not use such innocent variable names like tmp because they have a high probability to clash with (part of) the argument. [PATCH] ia64: remove stale mmiob function The consensus on lkml was that devices should do reads from safe registers to ensure PIO write ordering, which means we no longer need mmiob. This patch removes the mmiob entries from the machine vector headers and io.h and updates the documentation about PIO ordering. [AGPGART] Remove unneeded inline. [PATCH] ia64: print ISR for FPSWA faults Here is a simple patch to also print isr during the handling of a floating point assist fault. [PATCH] ia64: SN makefile update take David, here's an updated patch that doesn't mess with arch/ia64/Makefile in case you hadn't applied the last one yet [PATCH] ia64: Use PAL_HALT_LIGHT in cpu_idle Here's patches for 2.4 & 2.5 to use PAL_HALT_LIGHT in cpu_idle. This helps to reduce CPU temp a little on boxes with firmware that takes advantage of this lower power state. I've tried this on a rx2600 (2x900MHz McKinley) and an i2000 (fw 117) and it shows some benefit. On McKinley systems, only the very latest PAL from Intel actually reduces power consumption in the halt_light state. For HP rx2600/zx6000/zx2000, this means you need to be running firmware 1.82. Rohit Seth, at Intel, has run some benchmarks with this kind of modification and found the effects of enabling halt_light to fall within the noise of mosts tests. I replaced pal_halt(1) in safe_halt with pal_halt_light() since halt_light is required to be implemented, but pal_halt(1) is an optional halt state. I'd be interested to hear of any measurements anyone does using this, where it works/fails, and if any benchmarks/applications are impacted. [PATCH] ia64: improve show_trace_task() portability Trying to port some patches from i386 to ia64 I've found that show_trace_task is the only portable way to show tasks' call traces(perhaps because it is called from ./kernel/sched.c:)). But its ia64 implementation can't work with running task. Attached patch fixes this issue. As I understand show_trace and show_stack are platform dependent or have different sense/args. ia64: Minor Makefile cleanup. First draft at making modules work again (loosely based on Rusty's original and thoroughly broken ia64 patch). Not all relocs are supported yet and the reloc code needs to be cleaned up, but simply stuff like loading the palinfo module works. Also, linkage-stubs are optimized with brl for McKinley or better. [AGPGART] Kill agp_generic_agp_3_0_enable, fold into agp_generic_agp_enable() [AGPGART] namespace cleanup agp_generic_agp_enable -> agp_generic_enable [AGPGART] other part of the namespace cleanup patch that got lost. [AGPGART] If agp 3.0 setup fails, fall back to agp 2.0 setup [AGPGART] bump copyright dates [AGPGART] Enable extra VIA GART IDs. Now that the generic enable routine can handle agp2 and agp3 setups, it should be safe to enable all these. [PATCH] ia64: mca rendezvous fix We are not setting the 'always rendezvous for mca' flag. kdb needs it set to get decent mca debugging on all cpus but I do not want kdb to change sal behaviour. Since we do not recover from mca without a debugger, I see no reason why this flag should not be on for all kernels. The rendezvous timeout was set to 100 * HZ, but SAL expects the timeout to be in milliseconds, HZ may not be 1 millisecond. The patch makes the timeout an explicit 20 seconds, semi-arbitrary value. ia64: Manual merge of Keith Owen's patch to avoid deadlock on ia64_sal_mc_rendez(). Also prefix local-variables in SAL macros to avoid name collisions. [PATCH] ia64: Cross-compile fix the attached patch (against bk-current) fixes a cross compilation problem by using the target specific objdump tool instead of the host specific one. [AGPGART] New PCI idents for new VIA GARTs [ALPHA] Remove parameter list from cond_syscall decl. [RAGE 128/CONTROL/PLATNIUM FBDEV] PPC updates. [RADEON FBDEV] PLL fix for specific type of card. [FBCON] Could be called outside of a process context. This fixes that. [PATCH] 1/7 starved changes - use a list_head for starved queue's Use a list_head per scsi_host to store a list of scsi request queues that were "starved" (they were not able to send IO because of per host limitations). [PATCH] 2/7 add missing scsi_queue_next_request calls Add missing scsi_queue_next_request calls. Add missing scsi_put_command and scsi_get_command exports. [PATCH] 3/7 consolidate single_lun code Consolidate scsi single_lun code. [PATCH] 4/7 cleanup/consolidate code in scsi_request_fn Cleanup and consolidate scsi_device and scsi_host checks in scsi_request_fn. [PATCH] 5/7 alloc a request_queue on each scsi_alloc_sdev call Call scsi_alloc_queue each time we call scsi_alloc_sdev; call scsi_free_queue each time we do not find backing LUN. This code is less optimal, but leads to cleaner code, and the lock split-up patch needs this change. [PATCH] 6/7 add and use a per-scsi_device queue_lock Add and use a per scsi_device queue_lock. [PATCH] 7/7 fix single_lun code for per-scsi_device queue_lock Fix single_lun code for per-scsi_device queue_lock [FBCON] Now we use workqueues so framebuffer code can always work in a process context. [GENERIC CURSOR] Safety check in case kmalloc failes AICLIB Update o Add aic_parse_brace_option() which handles command line options of the format ":{...{..{}}". This is used to factor out recurring code in both the aic7xxx and aic79xx drivers. Aic79XX Driver Update [Rev 1.3.5] o Clean up driver locking by making the locking semantics between 2.4.X and 2.5.X almost identical. Take advantage of SCSI_HAS_HOST_LOCK in certain RedHat kernels. o Clean up command line parsing. o Fix module unload/reload issues stemming from DV thread teardown and a missing deregistration of our reboot notifier (lost during PCI hot plug integration). o Correct precompensation value used for U320 transfers on rev A4 hardware. o Extract VPD information from the seeprom for potential use in sorting controller probes to match boot order. o Make LED activity more visible on Rev A4 hardware. Update Aic7xxx driver [Rev 6.2.31] o Clean up driver locking by making the locking semantics between 2.4.X and 2.5.X almost identical. Take advantage of SCSI_HAS_HOST_LOCK in certain RedHat kernels. o Clean up command line parsing. o Fix module unload/reload issues stemming from DV thread teardown and a missing deregistration of our reboot notifier (lost during PCI hot plug integration). [FBDEV] The image color depth of zero hack has been killed. ia64: Rewrite the relocator in the kernel module loader. Fix some bugs and simplify the handling of loader-created sections. [AGPGART] Make i7x05 compilable again. Noticed and partially fixed by Stefan Neuwirth ia64: Add ia64-specific LDFLAGS_MODULE and export unwind API to modules. ia64: Fix typo in sys_clone(). ia64: Add module.lds. ia64: Minor fixes. [I810 FBDEV] Driver updates. [FBCON] Reversed some of my cursor changes. ia64: Fix module loader by setting sh_type of place-holder sesctions to SHT_NOBITS. ia64: More module-loader fixing. [PATCH] ia64: fix settimeofday() not synchronised with gettimeofday() Eric Piel wrote: > However, now, it still gives negative difference: > # ./a.out > requested: 1047572128s 2564ns > new: 1047572128s 1588ns > diff is -0.000976000sec > > That's better but there is still something... > Can anyone reproduce this bug? Any idea about what may cause this > shifted results? > > I don't understand what does the line in settimeofday(): > nsec -= (jiffies - wall_jiffies ) * (1000000000 / HZ); Finally I read the code to do the same thing for i386 (get and settimeofday()). This explains the meaning of this line, in the i386 it's associated with the equivalent line in do_gettimeofday()! On ia64 everything is done inside of gettimeoffset(). Therefore I'm now confident that suppressing this line is a Good Thing ;-) The patch doing it wrt the bk tree is attached. The test case confirms that it works: requested: 1048681051s 194873ns new: 1048681051s 194874ns diff is 0.000001000sec That's the same result than on a 2.4.19 . This also solved an error on the high resolution timers test suite. [PATCH] ia64: fix unwinder bug in unw_access_gr() I've found this by inspecting the code: pt_regs_off returns an offset into struct pt_regs. Relative to latest bk, 2.5 has the same bug. [ARM PATCH] 1363/1: memcpy with preload support and other optimisations Patch from Nicolas Pitre This improves on what I did with patch #1362/1 by adding preloads for architectures that support it. On an XScale PXA255 this provides a 20% performance gain. Tested with all combinations of sizes and alignments. [ARM PATCH] 1441/2: add preload to the XScale copy_user_page function Patch from Nicolas Pitre This should replace patch #1441/1. This is about 20% faster than the original code, and a few percent faster than previous patch. Tried to add plds to the clear_user_page but it was of no benefit. [ARM PATCH] 1442/1: add preload support to page_copy for ARM architectures that support it Patch from Nicolas Pitre This requires the definition of PLD added to assembler.h in patch #1363/1. [ARM PATCH] 1447/1: preload support to uaccess.S Patch from Nicolas Pitre [ARM PATCH] 1445/1: [PATCH] removes CONFIG_CPU_{26,32} from arch/arm/kernel Patch from Ian Molton see subject. [FBDEV] Documentation on the device numbers of /dev/fb being mulitples of 32 is no longer true. Removed that info. [FBDEV] Logo fixes. Now we can display different color logos on screens of different color depths. [VGA16 FBDEV] Small compile error. Fixed it now. ia64: Two small MCA fixes. [PATCH] ia64: update email address My e-mail address changed and I'd like to update it in arch/ia64/kernel/acpi.c. [PATCH] ia64: don't try to synchronize ITCs on ITC_DRIFT platforms A small patch for 2.4 that stops the kernel from trying to syncrhonize ITC clocks between CPUs if we know that the ITC isn't synchronized across the backplane. [PATCH] ia64: Fix request_module from ia32 process When an ia32 process triggers request_module the kernel cannot execute modprobe because the kernel thread still has the ia32 address limits in force. I think a kernel thread should always have the ia64 address limits, similar to what sys32_execve is doing. ia64: Patch by Andreas Schwab to fix sys32_ptrace(). ia64: Change struct ia64_fpreg so it will get 16-byte alignment with all ia64 compilers, not just GCC. [PATCH] scsi-locking-2.5 rename scsi_check_sdev and James - Patch against linux-scsi.bkbits.net/scsi-locking-2.5, per linux-scsi discussion. Rename scsi_check_sdev and scsi_check_shost to scsi_dev_queue_ready and scsi_host_queue_ready, and change their return values. ===== drivers/scsi/scsi_lib.c 1.81 vs edited ===== [PATCH] USB: input class hookup to existing support Results in this tree /sys/class/input with a combined keyboard/mouse USB device: [root@w-hlinder2 input]# tree /sys/class/input /sys/class/input |-- devices | |-- 0 -> ../../../devices/pci0/00:0f.2/usb1/1-1/1-1.1/1-1.1:0 | |-- 1 -> ../../../devices/pci0/00:0f.2/usb1/1-1/1-1.1/1-1.1:1 | `-- 2 -> ../../../devices/pci0/00:0f.2/usb1/1-1/1-1.2/1-1.2:0 |-- drivers | `-- usb:hid -> ../../../bus/usb/drivers/hid `-- mouse [PATCH] USB speedtouch: handle failure of usb_set_interface. [PATCH] USB: leave usage counts during probe/remove to driver core driver core protects us with semaphores during probe/disconnect. We can stop messing with the module usage counts. [PATCH] USB: ehci-hcd, minor hardware tweaks This tweaks the hardware in two minor ways, being more forgiving of what are either hardware bugs or hard-to-see driver bugs. - Some silicon seems to mis-handle dummy qtds on occasion, writing them into the qh and thus stopping progress unless something times it out and cancels it (scsi-eh etc). This initializes such qtds slightly differently, so some such cases will make the driver automatically recover, and so all such errors will fail in the same way. - In case of dodgy behavior with respect to unlinking, don't modify a field. Silicon that's (wrongly) reading this will have a chance to read the old value while it's still valid. Also minor diagnostic tweaks for better uniformity/usability. [PATCH] USB: ohci-hcd, pci posting paranoia Flushes some posted PCI writes in case of trouble. Lack of these hasn't been seen to be a problem; the update mostly affects run-once init paths. Thanks to Arjan for the code-review comments. [AGPGART] Remove unneeded test. Spotted by ISHIKAWA Mutsumi [FBDEV] Massive cleanups of the cursor api. [PATCH] ia64: machine vectors for readX routines We need readX() to be machine vectors since some platforms don't provide DMA coherence via PIO reads (PCI drivers and the spec imply that this is a good idea). Writes are ok though for all existing ia64 platforms (and hopefully it'll stay that way). [PATCH] ia64: replace cpu_is_online with cpu_online Consolidate the uses of cpu_is_online() to use the (relatively) new cpu_online() macro. ia64: Fix IA64_FETCHADD() macro. [FBDEV] Final cursor code cleanups. Now the burden of handling the cursor code lies on the driver side. The reason for this is that a invalid cursor might come from userland. [FBDEV SOFT CURSOR] Test to see if kmalloc failed. [FBCON] Test to see if the user priovides there own work queue. [FBDEV] Use C99 style. [PATCH] ia64: fix missing symbol exports 3) with CONFIG_NUMA set, there are undefined symbols building modules: scripts/modpost vmlinux drivers/md/dm-mod.o drivers/net/e1000/e1000.o drivers/net/eepro100.o drivers/md/md.o drivers/net/mii.o fs/xfs/xfs.o *** Warning: cpu_info__per_cpu [fs/xfs/xfs.ko] undefined! *** Warning: cpu_info__per_cpu [drivers/md/md.ko] undefined! *** Warning: cpu_to_node_map [drivers/md/md.ko] undefined! exporting them in ia64_ksyms.c fixes the problem. ia64: Checkin support files for vendor-specific ACPI extensions. Fix spelling of Hewlett-Packard. [PATCH] ia64: generic build fix trivial build fix for the generic kernel target [PATCH] ia64: remove platform_pci_dma_addres This removes platform_pci_dma_address. Since the scatterlist in 2.5 has a dma_address, seems like we can expect a certain usage of it. SGI folks may want to verify this doesn't break their DMA engines. ia64: Trivial stack-size correction in mca.c. Patch by Keith Owens. [PATCH] ia64: update PCI segment support Update to the PCI segment support that Bjorn posted around 2.5.19ish. [FBDEV] Killed off shutting down IRQs. We need them for some types of hardware. [FBDEV] Cleanup with FB_CUR_SETCUR and the enable field. Fix to set the cursor shape when we change the size of the cursor. [I810 FBDEV] Updates to the new cursor code. [FBDEV GENERIC CURSOR] A memcpy optimization. Also only allocate a new mask field when the size of the cursor changes. [PATCH] USB: locking reset/probe - mutual exclusion between reset() and probe() [PATCH] USB: removing unnecessary calls to usb_set_configuration - remove unnecessary calls to usb_set_configuration [PATCH] USB: small fix to pegasus.c Using cpu_to_le16p on a __u8 variable is wrong, and gives a compile warning on PPC. It's better to use cpu_to_le16 in this case. Here is a patch to fix it. Please apply. [PATCH] USB: C99 initializers for drivers/usb files Here are two patches that convert the files to use C99 initializers. The patches are against current BK. [PATCH] USB: pegasus link status fix fixed up the link status detection [PATCH] USB usbnet: dynamic config, cdc-ether, net1080 This patch: - Makes "usbnet" pay attention to device descriptors in the most common cases; there's less need to embed device hardware details. This lets it work with high speed devices, and should help interop with the newer ARM/PXA kernels "usb-eth" (same vid/pid, but different endpoints). - Adds some new CDC Ethernet support, which is partly enabled: the Zaurus SL-5500 code uses it, with the current FRAMING_Z flag overriding normal CDC framing on-the-wire. (Most of the other "minidrivers" use CDC framing, except Net1080 and GeneSys.) - Merges a patch from Johannes to recover from some net1080 framing errors by flushing the fifos ... the chip gets into a wierd mode, this makes the link more robust. (Thanks!) - Gets rid of a family of cpu/logfile saturating loops that could show up in early stages of disconnect processing, while we're getting rx/tx errors continuously since khubd hasn't tried to disconnect() us yet. (Pathological case, with lots of logging enabled: khubd never gets scheduled!) - Uses deeper queues at high speed, so the host controllers can stay busy transferring packets even when IRQs get held off for several milliseconds. That pipelining gives better throughput too -- 4x more with one device, says TTCP. With the possible exception of multicast support, this code should be a fine replacement to "cdc-ether" ... certainly its faster for high speed devices. Some later patch should likely do a switch-over. (Which would also resolve a Zaurus hotplugging bug: "cdc-ether" doesn't blacklist it.) [PATCH] USB: kerneldoc for usbfs So far as I know, "usbfs" was never documented ... so here's a patch with some text I've had sitting around, merging it into the other USB kerneldoc. It should be accurate, down to the warnings about why not to use several of the calls, though cross-review with the code would be good too. A notable omission is any details on the async APIs. [PATCH] USB: set_configuration() missed some state I noticed that the usb_set_configuration() code was leaving endpoints halted ... likely not a problem just now since that routine can't be used safely except during enumeration, but better to fix this than not. [PATCH] USB: remove redundant checks for NULL when it can never happen. kobject: cause /sbin/hotplug to be called when kobjects are added and removed This only happens if a kobject belongs to a subsystem that has specified a set of hotplug operations. Based on work done by Kevin Fleming Kobject: add NULL to decl_subsys() due to addition of hotplug operations driver core: move the hotplug support for /sys/devices to use the kobject logic. We can't switch /sys/class or /sys/bus to use this because they are not creating new kobjects, only linking to the kobjects in /sys/devices. block: add /sbin/hotplug support for when block devices are created and destroyed. Kobject: add NULL to decl_subsys() due to addition of hotplug operations Oops, forgot the drivers/hotplug/pci_hotplug_core.c use of this... [IPSEC]: Move xfrm type destructor out of spinlock. [sparc]: BUglet in copy_thread [sparc] Force type in __put_user [sparc]: pte_file & friends [sparc] Add #include [sparc] Update system.h (gcc-3 & misc) o linux/net.h: prune the include dependency tree, remove include socket.h Use struct forward declaration and fix irda.h and netlink.h to include what uses (only sa_family_t). [ARM PATCH] 1489/1: SA-1111: usb_dev needs non-zero dev.dma_mask for usb core to work properly Patch from Christopher Hoover [ARM PATCH] 1490/1: [BADGE4] Enable second serial port when needed Patch from Christopher Hoover This patch enables the second serial port on the BadgePAD 4, when the port is opened. [ARM PATCH] 1492/1: [BADGE4] Make PCMCIA work in 2.5.65-rmk1 fro BadgePAD 4 Patch from Christopher Hoover [AGPGART] Remove flawed 'follow secondary PCI bus' logic. This isn't as nice as the previous code, but it gets things working on all boxes tried. The old code only worked correctly on the Intel E7x05 bridges. [ARM PATCH] 1493/1: [BADGE4] Allow larger flash parts and partition for kernel in jffs2 Patch from Christopher Hoover This patch allows for larger flash parts (and keeps the kernel from crashing on these) and changes the partitioning on BadgePAD 4. [ARM PATCH] 1494/1: [mtd] Make code compile without CONFIG_MTD_CONCAT Patch from Christopher Hoover Make code compile/link/work without CONFIG_MTD_CONCAT. [ARM PATCH] 1473/1: Add Russell's porting information to Documentation Patch from Eli Carter # Tue Apr 1 11:50:11 CST 2003 # Grab a copy of Russell's information on important porting information and # stick it in the Documentation/arm directory where people will find it before # posting to the lists. # # Patch is against 2.5.65-rmk1 # # Documentation/arm/Porting | 135 ++++++++++++++++++++++++++++++++++++++++++++++ # 1 files changed, 135 insertions(+) # [ARM PATCH] 1472/1: Rename *-iop310 directories to *-iop3xx Patch from Eli Carter # Mon Mar 31 15:53:24 CST 2003 # Rename the *-iop310 directories to *-iop3xx, and fix up filenames in # comments. # Modify the default config to build for me. # # This patch may be applied by hand, or may be executed as a shell script. # Patch is against 2.5.65-rmk1 # # arch/arm/Kconfig | 2 # arch/arm/Makefile | 2 # arch/arm/def-configs/iq80310 | 634 +++++++++++++++------------------- # arch/arm/mach-iop3xx/arch.c | 2 # arch/arm/mach-iop3xx/iop310-irq.c | 2 # arch/arm/mach-iop3xx/iop310-pci.c | 2 # arch/arm/mach-iop3xx/iq80310-irq.c | 2 # arch/arm/mach-iop3xx/iq80310-pci.c | 2 # arch/arm/mach-iop3xx/iq80310-time.c | 2 # arch/arm/mach-iop3xx/mm.c | 2 # arch/arm/mach-iop3xx/xs80200-irq.c | 2 # include/asm-arm/arch-iop3xx/ide.h | 2 # include/asm-arm/arch-iop3xx/io.h | 2 # include/asm-arm/arch-iop3xx/iop310.h | 2 # include/asm-arm/arch-iop3xx/irqs.h | 2 # include/asm-arm/arch-iop3xx/serial.h | 2 # include/asm-arm/arch-iop3xx/vmalloc.h | 2 # 17 files changed, 301 insertions(+), 365 deletions(-) # [ARM PATCH] 1472/1: Rename *-iop310 directories to *-iop3xx Patch from Eli Carter # Mon Mar 31 15:53:24 CST 2003 # Rename the *-iop310 directories to *-iop3xx, and fix up filenames in # comments. # Modify the default config to build for me. # # This patch may be applied by hand, or may be executed as a shell script. # Patch is against 2.5.65-rmk1 # # arch/arm/Kconfig | 2 # arch/arm/Makefile | 2 # arch/arm/def-configs/iq80310 | 634 +++++++++++++++------------------- # arch/arm/mach-iop3xx/arch.c | 2 # arch/arm/mach-iop3xx/iop310-irq.c | 2 # arch/arm/mach-iop3xx/iop310-pci.c | 2 # arch/arm/mach-iop3xx/iq80310-irq.c | 2 # arch/arm/mach-iop3xx/iq80310-pci.c | 2 # arch/arm/mach-iop3xx/iq80310-time.c | 2 # arch/arm/mach-iop3xx/mm.c | 2 # arch/arm/mach-iop3xx/xs80200-irq.c | 2 # include/asm-arm/arch-iop3xx/ide.h | 2 # include/asm-arm/arch-iop3xx/io.h | 2 # include/asm-arm/arch-iop3xx/iop310.h | 2 # include/asm-arm/arch-iop3xx/irqs.h | 2 # include/asm-arm/arch-iop3xx/serial.h | 2 # include/asm-arm/arch-iop3xx/vmalloc.h | 2 # 17 files changed, 301 insertions(+), 365 deletions(-) # [ARM PATCH] 1474/1: fix iq80310 default config Patch from Eli Carter # Tue Apr 1 12:29:20 CST 2003 # Fix the default config for the iq80310 board so it does not panic on boot, # and enables ksymoops. # # Patch against 2.5.65 + 1472 # # arch/arm/def-configs/iq80310 | 8 ++------ # 1 files changed, 2 insertions(+), 6 deletions(-) Cset exclude: davej@codemonkey.org.uk|ChangeSet|20030328161219|08037 [NET]: skb_headlen() cleanup. i2c: fix up CONFIG_I2C_SENSOR configuration logic. Thanks to Ardrian Bunk for help with this. [PATCH] i2c: convert via686a i2c driver to sysfs i2c: fix up via686a.c driver based on previous i2c api changes. [XFS] remove busy inode check in the umount path - Linux checked it for us before calling into the filesystem. We're beyond the point of no return for umount anyway SGI Modid: 2.5.x-xfs:slinx:142731a [PATCH] usb-storage: fix CB/CBI When we fixed the error handling, we accidentally made a mistake. A STALL on a control endpoint isn't necessarily a fatal thing -- it can be used to indicate a command failure. This fixes bugzilla bug #510. - A control endpoint stall when sending the command to a CB/CBI device is legal. Our error handling was just a little too agressive. [PATCH] usb-storage: variable renames This patch changes the struct us_data 'ss' to 'us' to be consistent with the rest of the code. The old name was a legacy artifact. There are no functional changes here. [PATCH] usb-storage: remove BUG/BUG_ON This patch changes BUG and BUG_ON to print error messages. It is done to be (a) a little more robust, and (b) complies with Linus' idea of no BUGs unless absolutely necessary. [PATCH] usb-storage: add info to /proc interface This patch adds some information about the quirks of the device to the /proc interface. [XFS] Fix definition of setresblks - nothing uses it yet, but DMF will (so fix now). SGI Modid: 2.5.x-xfs:slinx:142797a [XFS] Fix a pagebuf leak with the pagebufs used to coordinate IO completion for unwritten extent writes. SGI Modid: 2.5.x-xfs:slinx:143052a [XFS] Fix up some minor namespace pollution problems. SGI Modid: 2.5.x-xfs:slinx:143053a [XFS] remove atomicIncWithWrap SGI Modid: 2.5.x-xfs:slinx:143647a [PATCH] USB: patch for oops in io_edgeport.c I tracked down a problem that caused an oops in io_edgeport.c. The oops is reliably reproduced by using an EdgePort USB serial port in dosemu and then exiting dosemu. When dosemu closed the port the oops would occur. (Tested in RH 7.3 2.4.18-10.) The problem was that a USB cmd callback would come in after the close with the tty struct freed, and the edge_bulk_out_cmd_callback function would do a wakeup on the tty->write_wait queue. The tty struct was gone (I checked that tty->magic was bad) and the wakeup would oops. As you did in other places in io_edgeport.c, I added a check that edge_port->open was true before using the edge_port->port->tty struct. I added a similar check in edge_bulk_out_data_callback, though I never actually saw the problem here. I notice that in 2.4.20 a check has been added to be sure that edge_port->port->tty is not null--however, this is not enough because the tty pointer is not set to null when the port is closed. An alternate solution in 2.4.20 would be to set the usb_serial_port->tty pointer to null in usbserial.c serial_close(). This seems like a good thing to do in general, since the tty struct should not be used after a close which frees it. If you would like I investigate this a bit more--it could affect other usb serial drivers and reveal some hidden bugs. [XFS] merge over some lost changes from the XFS tree USB: set port->tty to NULL after we have closed the port This lets any of the many checks for this contition actually have a chance of working :) ia64: Fix inconsistency in sys32_execve(). Reported by Chandra Kapate). Fix a series of NFS read/readdir/readlink errors. Tightens consistency checks on the process of reading the reply skb in the SunRPC client. Reject a reply if we didn't succeed in reading the entire skb. Remove bogus check on the size of NFSv4 'readdir' cookies. Prepare for the introduction of NFSv4 state code. Split out the open() method for regular files from that of directories. Implement stateful open() for NFSv4 as per RFC3010-bis. The resulting state is saved in the NFS-specific part of the struct inode. Initially we just start with 3 possible states: - open for read - open for write - open for read/write Setup code to tear down the NFSv4 state once we're done with a file. Make NFSv4 'setattr()' method use the cached stateid if the file is already open. Make NFSv4 'read' code use the cached stateid if it exists. Make the NFSv4 write code use the stateid if it exists. Add support for mapping NFSv4 remote user/group names into local unix-style uid/gids. Note that this makes use of the RPC client upcall mechanism (rpc_pipefs) to notify a userland daemon that does the actual mapping. The results are then cached in the kernel. The userland daemon can be downloaded from the CITI NFSv4 page at http://www.citi.umich.edu/projects/nfsv4/ Add hooks into the NFSv4 XDR code to make use of the new uid/gid mapper upcall mechanism. i2c: fix up compile error in scx200_i2c driver. [SPARC64]: syscalls returning long [SPARC]: Fix sys_ipc to return ENOSYS instead of EINVAL as appropriate. [PATCH] SET_MODULE_OWNER for tulip_core Tested with a pcmcia tulip [PATCH] Unreachable code in drivers_net_fc_iph5526.c From: Scott Russell - Rearranged unreachable printk code reported at kbugs.org [PATCH] Remove naked GFP_DMA from drivers_net_macmace.c From: Matthew Wilcox Can use GFP_KERNEL since this is a netdevice ->open routine. [PATCH] Clear up GFP confusion in rcpci45.c [ Jeff, Pete: looks correct. Please check. --RR ] From: Matthew Wilcox - Move PCI ID definitions to pci_ids.h - The GFP_DMA in rcpci45_init_one should be GFP_KERNEL because it's a pci_driver ->probe method, so it can sleep. - The GFP_DMA in RC_allocate_and_post_buffers should be GFP_ATOMIC because it's called from a timer function, so it must not sleep. [PATCH] [PATCH 2.5.63] net_wan_sdla_chdlc tty_driver add .owner field remove MOD_INC_DEC_USE_COUNT From: Hanna Linder [PATCH] [PATCH 2.5.63] net_wan_pc300_tty tty_driver add .owner field remove MOD_INC_DEC_USE_COUNT From: Hanna Linder [PATCH] [2.5 patch] fix the compilation of drivers_net_tokenring_tms380tr.c [ Guys, assume this is OK? ] From: Adrian Bunk Since 2.5.61 compilation of drivers/net/tokenring/tms380tr.c fails with the following error: <-- snip --> ... gcc -Wp,-MD,drivers/net/tokenring/.tms380tr.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=tms380tr -DKBUILD_MODNAME=tms380tr -c -o drivers/net/tokenring/tms380tr.o drivers/net/tokenring/tms380tr.c drivers/net/tokenring/tms380tr.c: In function `tms380tr_open': drivers/net/tokenring/tms380tr.c:260: invalid type argument of `->' drivers/net/tokenring/tms380tr.c:260: invalid type argument of `->' drivers/net/tokenring/tms380tr.c:260: invalid type argument of `->' drivers/net/tokenring/tms380tr.c:260: invalid type argument of `->' drivers/net/tokenring/tms380tr.c:260: invalid type argument of `->' drivers/net/tokenring/tms380tr.c:260: invalid type argument of `->' drivers/net/tokenring/tms380tr.c: In function `tms380tr_init_adapter': drivers/net/tokenring/tms380tr.c:1461: warning: long unsigned int format, different type arg (arg3) make[3]: *** [drivers/net/tokenring/tms380tr.o] Error 1 <-- snip --> The following patch by Jochen Friedrich fixes both the compile error and the warning: [E1000] Revert NAPI back to interrupt disable/enable mode * Undo botched attempt to run NAPI without disabling/enabling interrupts. [Robert.Olssen@data.slu.se] [PATCH] [PATCH 2.5.63] epca tty_driver add .owner field remove MOD_INC_DEC_USE_COUNT [ Arjan: you touched it last AFAICT. Seems trivial. --RR ] From: Hanna Linder [E1000] Fixed syntax error for C99 initializers * Fixed syntax error for C99 initializers [IPSEC]: AH/ESP forget to free private structs. [TCP]: Missing SNMP stats. [IPSEC]: Really move type destructor out of spinlock. Avoid using pointers to anonymous structure initializers. It's a gcc'ism, and even gcc can apparently get confused by it. [PATCH] no blk_queue_empty The single missing bit, please add that as well. Was missed because this driver actually used elv_queue_empty, not blk_queue_empty. [PATCH] move q->queuedata assign after queue init I want to make blk_init_queue() zero the queue, so we don't get anymore nasty bugs with uninitialized variables. IDE is setting queuedata before init though. Make it more explicit that jiffies are "unsigned long", but that we for the initial value ctually want to check only wrap-around in an "unsigned int". [PATCH] alpha typos part 1 (Steven Cole) [PATCH] alpha typos part 2 [PATCH] fix the mode for bios call in x86-32 as well as -64 (Andi Kleen) [PATCH] Config.in typos (Steve Cole and co) [PATCH] read extended cpu revision data (Dave Jones) [PATCH] fix i387 fxsr conversion [PATCH] parisc - syscalls return long purity ... [PATCH] ppc64 syscalls return long purity [PATCH] v850 updates (Miles Bader) [PATCH] compatmac not needed [PATCH] compatmac not needed uaccess.h is Fixes unknown symbol copy_.. in some builds [PATCH] PC9800 floppy driver (Osamu Tomita) [PATCH] config for PC98xx floppy [PATCH] MOD_* can go for floppy (Bob Miller) [PATCH] makefile for pc9800 [PATCH] unversion.h and compatmac applicom.c [PATCH] update char Kconfig for PC9800 [PATCH] exterminate compatmac in sx (compatmac cleanup is all Adrian Bunk) [PATCH] error handling for upd4990a (Stephan Maciej) [PATCH] clean up pci interrupt line whacking [PATCH] fix our handling of BIOS forced PIO serverworks OSB4 (Robert Hentosh & me) [PATCH] fix up capslock on pc9800 [PATCH] add drivers/media/common for mixed dvb/analog device stuff (Martin Hunold) [PATCH] update the dvb core [PATCH] update the dvb front end chips (Again all DVB is Martin Hunold) [PATCH] kill off a load of stuff now in common dvb (These changes are big because they are the result of Martin Hunold resolving a *huge* long term fork in the DVB code base). We now have one DVB codebase so the changes while big are very good news [PATCH] fix radio-cadet build [PATCH] bring core media/video up to date with dvb changes [PATCH] remaining dvb bits [PATCH] fix error in cops port to 2.5 [PATCH] port ltpc to 2.5 [PATCH] fix arcnet locking for 2.5 [PATCH] first cut at scc.c for 2.5 locking [PATCH] fix up yam for 2.5 locking [PATCH] Update lp486e for 2.5 [PATCH] fix macmace get_free_pages parameters (Matthew Wilcox) [PATCH] first cut at 3c574_cs for SMP safety etc The old code was totally hosed for SMP, the windowing makes this stuff tricky so it may need more work [PATCH] update slip to new tty module locks [PATCH] fix cosa verify_area [PATCH] first pass at fixing strip for 2.5 [PATCH] junk header removal [PATCH] compatmac is not needed [PATCH] compatmac is not needed [PATCH] asm-alpha typo fixe (Steven Cole) [PATCH] add but do not yet use mach specific definitions for ports etc on PC [PATCH] add the same mach specific headers for pc9800 [PATCH] and visws [PATCH] and voyager [PATCH] header for pc9800 type detection [PATCH] x86-64 typo fixes (Steven Cole) [PATCH] goodbye compatmac.h [PATCH] update dvb headers [PATCH] possible way to clean up fdreg.h [PATCH] hdreg.h typo fix [PATCH] continued compatmac exterminations [PATCH] lock for scc drivers [PATCH] shared multimedia includes for saa71xx [PATCH] remove version crap [PATCH] wireless uses __init [PATCH] irda typo fixes [PATCH] remove version.h's [PATCH] small pc98xx fix for sound [PATCH] more audiov ersion scrubbing [PATCH] cs4232 should be devexit [PATCH] C99 for sound [PATCH] lots more version and C99 for audio [PATCH] fix modular gus shared lock [PATCH] another C99 and version casd [PATCH] ics2101 needs to match the gus_lock name too [PATCH] fix ; in mad16 [PATCH] ite C99 and version/h [PATCH] yet more sound version/c99 [PATCH] sync opl3sa2 with 2.4 [PATCH] last batch of audio C99 [PATCH] suspend doesnt need compatmac either [PATCH] use mach io_ports definitions in io_apic Allows for the non standard cascade [PATCH] make vm86 machine independant using new headers [PATCH] make APM machine independant using mach headers Fix up merge with Alan. More left-over fixups from the merge with Alan. ia64: Sync sys32_ipc() with x86 counter-part. [PATCH] paride fix: make timeouts unsigned long [PATCH] krxtimod.c fix: make timeouts unsigned long [PATCH] kafstimod.c fix: make timeouts unsigned long [PATCH] tty_io.c: make redirect static [PATCH] On the v850/nb85e, acknowledge interrupts immediately after handling them Previously, it was done automatically by the `reti' isntruction upon returning from the kernel, but that doesn't do the correct thing in various cases, for instance if there's a context switch, or a softirq. [PATCH] Fix futexes in hugetlb pages There is a stunning bug. Fix mtdblock.c compile. From Adrian Bunk. [PATCH] ia64: compat_sys_fcntl{,64} Here is the ia64 part of the patch. Pleas apply after Linus has applied the generic part. [PATCH] ia64: compat_uptr_t and compat_ptr Here is the ia64 part of the patch. It depends on my previous COMPAT patches. This is safe to apply even before Linus applies the generic part. [IPSEC]: Support for optional policies on input got lost. [VLAN]: Update to new module semantics, use synchronize_net. Add __user/__kernel address space modifiers. When not checking, these end up being no-ops, but they get enabled by the type checker as special address_space attributes. Add the proper sprinkling of __user attributes to the user space access functions. This allows the type checker to check proper usage. Add __user attributes to user pointers in kernel/signal.c. This was the first file tested with my type checker with the anal pointer attribute checking turned on. Make __SI_MASK explicitly unsigned, instead of depending on magic C promotion to silently do so for us. [IPSEC]: Avoid using SET_MODULE_OWNER. Annotate scheduler system calls as taking user pointers. Annotate i386/signal.c with address space type annotations. Add user pointer attributes to kernel/module.c Annotate fs/exec.c with user pointer annotations. Annotate fs/namei.c with user pointer annotations. Annotate x87 user space access functions with proper type attributes. [PATCH] i2c: add i2c_clientname() This patch just adds a #define and a inline function to hide the "i2c_client->name" => "i2c_client->dev.name" move introduced by the recent i2c updates. That makes it easier to build i2c drivers on both 2.4 and 2.5 kernels. [PATCH] i2c: Fix w83781d sensor to use Milli-Volt for in_* in sysfs I did the w83781d sysfs update as per the old spec, which was not milli-volt. This patch should fix it. [PATCH] i2c: remove compiler warning in w83781d sensor driver On Wed, 2003-04-09 at 00:04, Greg KH wrote: > Oh, I'm getting the following warning when building the driver, want to > look into this? > > drivers/i2c/chips/w83781d.c: In function `store_fan_div_reg': > drivers/i2c/chips/w83781d.c:715: warning: `old3' might be used uninitialized in this function > It is because old3 is only referenced if: ((data->type != w83781d) && data->type != as99127f) as those two chips don't have extended divisor bits ... It is however set in the first occurrence: /* w83781d and as99127f don't have extended divisor bits */ if ((data->type != w83781d) && data->type != as99127f) { old3 = w83781d_read_value(client, W83781D_REG_VBAT); } and thus is rather gcc being brain dead for not being able to figure old3 is only used within a if block like that. I was not sure about style policy in a case like this, so I left it as is, it should however be possible to 'fix' it with: [PATCH] ia64: Fix up "extern inline" Here is a trivial patch to processor.h to change "extern" to "static". [PATCH] i2c: fix compilation error for various i2c-devices Changed the i2c_adapter name definition to match the current interface. User pointers are not just in another address space, they also must never be dereferenced directly. Make that clear in the attribute. Add user pointer attributes to kernel/sys.c [PATCH] fix wait_on_buffer() debug code The wait_on_buffer() debug code is generating false warnings when called from __block_prepare_write(). It is legal to wait on a zero-ref buffer when its page is locked. The page lock keeps try_to_free_buffers() away. This debug code hasn't found any bugs yet. [PATCH] Enforce gcc-2.95 as the minimum compiler requirement Now that sparc64 is using gcc-3.x we can disallow gcc-2.91, etc. Documentation/Changes already says 2.95.3, which is working fine for me. With this change, we no longer require that per-cpu data definitions be initialised. That was a workaround for a bug in older gccs. So remove the build infrastructure which was checking for that. Also, mention that nfs-utils-1.0.3 is required. It isn't required yet, but will be once we enable larger dev_t: there is an interface for exportfs which passes dev_t's into the kernel which breaks with larger dev_t. That interface is old, deprecated and is not used in nfs-utils-1.0.3. [PATCH] null-terminate the kmalloc tables From: David Mosberger The cache_sizes array needs to be NULL terminated, otherwise an oversized kmalloc request runs off the end of the table. [PATCH] remove nr_reverse_maps VM accounting Maintaining the `nr_reverse_maps' provides makes a small but measurable decrease in page_add_rmap() overhead. I don't think it's a very useful metric, and it can be sort-of inferred from slabinfo. [PATCH] speed up rmap searching several functions in rmap.c are searching the ptes[] array fo find the first non-null entry. Despite the fact tha the whole lot is in L1 cache, it is expensive, especially on 128-byte cacheline machines. We can encode the index of the first non-null pte entry inside the pte_chain's `next' field and remove those searches altogether. This reduces the rmap CPU tax by about 25% on a P4. For a total runtime reduction of around 5% in the bash-script intensive test which I use. [PATCH] misc rmap speedups Even a BUG_ON() makes a measurable difference. So remove some gratuitous ones which will just trigger a null pointer deref anyway. Also remove some debug code which isn't really being maintained any more. Also replace (effectively): test_bit(N, foo); set_bit(N, foo); with set_bit(N, foo); test_bit(N, foo); In the first case we'll go onto the bus twice: once for the cache miss and once to get exclusive write access. In the second case we only go on the bus once. I think. Certainly this trick chaved 40% off the cost of shrink_list() when I did it there... This patch is worth 1% or so on the bash script testing. [PATCH] Replace the radix-tree rwlock with a spinlock Spinlocks don't have a buslocked unlock and are faster. On a P4, time to write a 4M file with 4M one-byte-write()s: Before: 0.72s user 5.47s system 99% cpu 6.227 total 0.76s user 5.40s system 100% cpu 6.154 total 0.77s user 5.38s system 100% cpu 6.146 total After: 1.09s user 4.92s system 99% cpu 6.014 total 0.74s user 5.28s system 99% cpu 6.023 total 1.03s user 4.97s system 100% cpu 5.991 total [PATCH] rmap comments From: Hugh Dickins Update a few locking comments in rmap.c. [PATCH] fix unuse_pmd fixme From: Hugh Dickins try_to_unuse drop mmlist_lock across unuse_process (with pretty dance of atomic_incs and mmputs of various mmlist markers, and a polite new cond_resched there), so unuse_process can pte_chain_alloc(GFP_KERNEL) and pass that down and down and down and down to unuse_pte: which cannot succeed more than once on a given mm (make that explicit by returning back up once succeeded). Preliminary checks moved up from unuse_pte to unuse_pmd, and done more efficiently (avoid that extra pte_file test added recently), swapoff spends far too long in here. Updated locking comments and references to try_to_swap_out. [PATCH] JBD pasting warning fix From: "Hua Zhong" Fix a token-pasting warning from recent gcc's [PATCH] task_vsize() speedup From: William Lee Irwin III task_vsize() mysteriously appeared on my profiles. This should remove it from them by using the already in-use elsewhere for rlimit checks mm->total_vm for the benefit of O(1) cachelines touched. [PATCH] Allow panics and reboots at oops time. From: Russell Miller A BUG or an oops will often leave a machine in a useless state. There is no way to remotely recover the machine from that state. The patch adds a /proc/sys/kernel/panic_on_oops sysctl which, when set, will cause the x86 kernel to call panic() at the end of the oops handler. If the user has also set /proc/sys/kernel/panic then a reboot will occur. The implementation will try to sleep for a while before panicing so the oops info has a chance of hitting the logs. The implementation is designed so that other architectures can easily do this in their oops handlers. [PATCH] epoll cross-thread deletion fix From: Davide Libenzi This fixes a bug that might happen having a thread doing epoll_wait() with another thread doing epoll_ctl(EPOLL_CTL_DEL) and close(). The fast check inside eventpoll_release() is good to not effect performace of code not using epoll, but it requires get_file() to be called ( that can be avoided by dropping the fast check ). I opted to keep the fast check and to have epoll to call get_file() before the event send loop. I tested it on UP and 2SMP with a bug-exploiting program provided by @pivia.com ( thx to them ) and it looks fine. I also update the 2.4.20 epoll patch with this fix : [PATCH] Missing brelse() in ext2/ext3 extended attribute code From: Andreas Gruenbacher Missing brelse() in ext2/ext3 extended attribute code The ext2 and ext3 EA implementations fail to release a buffer_head if the inode that is being accessed is sharing EAs with another inode, and an attribute is set to the same value that it has already, like so: $ touch f g $ setfattr -n user.test -v test f g # (Now, both f and g refer to the same EA block.) $ setfattr -n user.test -v test f With the bug, an "invalidate: busy buffer" or "invalidate: dirty buffer" message will be logged when the file system is unmounted. This patch fixes the problem. At the implementation level: The code was assuming that ext3_xattr_cache_find cannot return the same block the inode already is associated with, so testing for (old_bh != new_bh) would determine whether the old block is resued or an additional bh is held. This is wrong if the EA block is used by multiple inodes (in which case it stays in the cache), and the block isn't actually modified. Instead of testing for (old_bh != new_bh), the code now does a get_bh() in the branch that keeps the old block, which assures that new_bh now is either NULL or a handle that must be released at the end of ext3_xattr_set_handle2(). [PATCH] Make msync(MS_ASYNC) no longer start the I/O MS_ASYNC will currently wait on previously-submitted I/O, then start new I/O and not wait on it. This can cause undesirable blocking if msync is called rapidly against the same memory. So instead, change msync(MS_ASYNC) to not start any IO at all. Just flush the pte dirty bits into the pageframe and leave it at that. The IO _will_ happen within a kupdate period. And the application can use fsync() or fadvise(FADV_DONTNEED) if it actually wants to schedule the IO immediately. (This has triggered an ext3 bug - the page's buffers get dirtied so fast that kjournald keeps writing the buffers over and over for 10-20 seconds before deciding to give up for some reason) [PATCH] struct address_space comments From: "Martin J. Bligh" Fix the commentary around the address_space fields. [PATCH] task_lock commentary fixes From: Manfred Spraul Update and clarify the incorrect commentary around task_lock() [PATCH] 3c59x EISA tidyup From: Marc Zyngier The included patch helps 3c59x to display the correct identification string (3c592 and 3c597 were displayed as 3c590). It also gets rid of the EISA_bus reference, which is not needed anymore since the driver has been ported to the EISA probing API. [PATCH] fix file leak in fadvise() It can miss an fput() if passed the fd of a file which has no ->mapping. Tag more user-supplied path strings as being user pointers for type evaluation. This tags the system call interfaces in fs/open.c, fs/dcache.c and mm/swapfile.c - and tags the path walking helper functions. ia64: Initial sync with 2.5.67. i2c: clean up i2c-dev.c's formatting, DEBUG, and ioctl mess [SPARC]: Cleanup uaccess headers and add __user attributes. [SPARC]: Make SA_ signal mask values explicitly unsigned. [SPARC64]: Fix copy_in_user args in process.c [SPARC64]: Use __user in ioctl32.c [PATCH] USB: fix uss720 driver to work properly with recent parport changes. [AGPGART] Fold Intel i7x05 GART into intel-agp driver. Also includes various other fixes from Matt Tolentino [AGPGART] ia64 related AGP fixes from David Mosberger. [AGPGART] Missing C99 struct initialiser for x86-64 GART [PATCH] USB speedtouch Kconfig fix; CREDITS entry out of order Follow the style of other entries in Kconfig. CREDITS | 8 ++++---- drivers/usb/misc/Kconfig | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) [PATCH] USB: New USB serial device ID: Asus A600 PDA cradle Just managed to get usb-serial connection up and running with my Asus PDA, great work ! If you want to integrate the patches into the kernel tree, please do so. [PATCH] USB: remove unnecessary setting of configuration from audio audio should not mess with configurations. [PATCH] USB: Add support for Pentax Still Camera to linux kernel. [PATCH] USB speedtouch: don't open a connection if no firmware How about this one instead. MOD_INC_USE_COUNT is placed before I call any functions that can sleep. Let's just hope that the call to me doesn't come after some sleeping in the higher layers... [AGPGART] Kconfig cleanups. (Remove no longer needed E7x05 entries) [AGPGART] Remove CONFIG_AGP3. This optioned saved just a handful of bytes, and uglied up the code quite a lot. Saving less than a page of memory is not as important as maintainable code. [PATCH] i2c: Add driver for powermac keywest i2c interface Here is a patch that adds an i2c bus driver for the i2c interface found in the "KeyWest" and later combo-I/O chips used in powermacs. The patch is against Linus' current BK tree. [VLAN]: More device registry error handling fixes. [IPV{4,6}]: Convert from MOD_{INC,DEC}_USE_COUNT. [AGPGART] x86-64 Kconfig fixes. Offering the K7 GARTs on 64bit kernels causes sillyness, like reports of "unrecognised device, try unsupported". We don't want people to even try that, so don't offer it in the first place. There's really no good reason for offering any of the IA32 era GARTs on a x86-64 64bit kernel. If Intel (or whoever) ever do an x86-64 clone, a new gart driver will be started anyways, as has been done for amd-k8-agp. [AGPGART] Print banner on detecting AMD64 GART. All the other GART drivers display what they've found, so make this one follow suit. [AGPGART] update stale comment in x86-64 GART driver. Annotate sysct with user pointer annotations Annotate kernel/time.c with user pointer annotations Annotate uid16 with user pointer annotations. Annotate kernel/ptrace.c with user pointer information [SPARC]: __user tagging in sys_sparc.c Annotate kernel/printk.c with user pointer annotations. Fix bad prototypes in kernel/softirq.c Fix kernel/posix-timers.c: - bad preprocessor test always tested true, even when it shouldn't. - annotate user pointers with proper annotations. Both found by my automatic type checker tool. Merge from DRI CVS: Use the list_entry() macro instead of depending on the list-head being at the top of the DRI data structures and using hard casts. [SPARC]: __user attributes in signal handling. [NETFILTER]: Push skb linearization deeper inside of implementation. Annotate fs/stat.c with user pointer annotations. Annotate kernel/futex.c with user pointer annotations. Annotate kernel/itimer.c with user pointer annotations. Annotate read/write paths with user pointer annotations [sparc]: Fix typo in uaccess.h [sparc]: Add missing const qualifiers to uaccess.h [sparc]: Make sure -m32 gets added to AFLAGS when needed. [SIGINFO]: asm-generic/siginfo.h needs linux/compiler.h [IPV4]: Do proper netdev module refcounting in tunnel drivers. [IPV6]: Apply ipv4 tunnel module fixes to SIT driver. [IPV6]: Typo, try_get_module --> try_module_get. [BRIDGE]: Fix several locking bugs, plus cleanups. ALSA update - documentation - control API - added multi-elements to reduce memory usage - improved preallocation of DMA buffers - CS46xx driver - added support for secondary codec - HDSP driver - big update - firmware is loaded with hdsptool now - pmac driver updates (fixed oops and beep stuff) - VIA82xx driver updated - ymfpci driver updated - drivers updated to new PnP layer - wavefront, ad1816a, cs423x, es18xx, interwave, opl3sa2, cmi8330 [AGPGART] Fix up AMD64 references. Spotted by Andi Kleen. AMD64 is the architecture, not the CPU. ALSA and PnP update - compilation fixes - enhanced linux/pnp.h: pnp_device_is_isapnp(dev) pnp_device_is_pnpbios(dev) isapnp_card_number(dev) isapnp_csn_number(dev) [FBDEV] Made the upper layer code always use the cursor mask of struct fb_cursor inside struct fb_info. This moved memory management of the mask and image data to the upper layers. [RADEON FBDEV] Updates for the Radeon 9100. [FBDEV] Made the upper layer code always use the cursor mask of struct fb_cursor inside struct fb_info. This moved memory management of the mask and image data to the upper layers. Clean up types and remove unnecessary casts from fs/readdir.c. Add user pointer annotations. Add user pointer annotations to fs/seq_file.c Add user pointer annotations to fs/super.c [AGPGART] Remove unnecessary AGP printk's in DRM. If we build >1 DRM driver into the kernel, we get this lovely output.. [drm] Initialized tdfx 1.0.0 20010216 on minor 0 [drm] AGP 0.100 aperture @ 0xe0000000 64MB [drm] Initialized r128 2.3.0 20021029 on minor 1 [drm] AGP 0.100 aperture @ 0xe0000000 64MB [drm] Initialized radeon 1.8.0 20020828 on minor 2 [drm] AGP 0.100 aperture @ 0xe0000000 64MB [drm] Initialized mga 3.1.0 20021029 on minor 3 [drm] AGP 0.100 aperture @ 0xe0000000 64MB [drm] Initialized i810 1.2.1 20020211 on minor 4 [drm] AGP 0.100 aperture @ 0xe0000000 64MB [drm] Initialized i830 1.3.2 20021108 on minor 5 agpgart already outputs the info about the aperture address & size before drm initialises, so its just repetition for no purpose. [FBDEV] EDID support from OpenFirmware on PPC platoforms and from the BIOS on intel platforms. [RADEON FBDEV] Detect 8 Megs of RAM not 8 Kilobytes. Add user pointer annotations to fs/select.c Add a user pointer annotation to sysinfo() [RADEON FBDEV] Compile fixes. Isn't sd_major() broken ? I am little confused about the correctness of sd_major() in drivers/scsi/sd.c. static int sd_major(int major_idx) { switch (major_idx) { case 0: return SCSI_DISK0_MAJOR; case 1 ... 7: return SCSI_DISK1_MAJOR + major_idx - 1; case 8 ... 15: return SCSI_DISK8_MAJOR + major_idx; default: BUG(); return 0; /* shut up gcc */ } } So, if major_idx = 8, It returns 143. But according to major.h, scsi has 128-135 reserved majors. But it is registering 136 - 143 as its majors. #define SCSI_DISK8_MAJOR 128 #define SCSI_DISK9_MAJOR 129 #define SCSI_DISK10_MAJOR 130 #define SCSI_DISK11_MAJOR 131 #define SCSI_DISK12_MAJOR 132 #define SCSI_DISK13_MAJOR 133 #define SCSI_DISK14_MAJOR 134 #define SCSI_DISK15_MAJOR 135 [NETFILTER]: Fix modify-after-free bug in ip_conntrack. [ALSA]: Recent merge undid all of my build fixes, put them back in. [SCHED]: Some schedulers forget to flush filter list at destroy. [IPSEC]: Check xfrm state expiration on input after replay check. [IPSEC]: Add initial IPCOMP support. [SPARC]: Export phys_base on sparc32. [IPV4]: IGMPv3 support, with help from Vinay Kulkarni [IPV6]: Allow protocol to percolate up into rt6 routing operations. [IPV4]: Fix IGMP build with CONFIG_IP_MULTICAST disabled. [PKTSCHED]: Fix double-define of __inline__ et al. Make sure to kunmap() the right address in fs/nfs/dir.c. Found by Rik van Riel: "There's a serious bug in the handling of the pointer returned by kmap_atomic() in nfs/dir.c. The pointer (part of desc) is passed into find_dirent_name and from there into dir_decode, which modifies the pointer. That means you end up passing a wrong address to kunmap_atomic()." [PATCH] USB: remove configuration change from rtl8150 there's no reason this driver should mess with configurations. [PATCH] USB: remove configuration change from pegasus.c the driver should not mess with configurations here. [ARM] Make sys_ipc return ENOSYS for unrecognised IPC calls. [PATCH] i2c: Add i2c-viapro.c driver [PATCH] IEEE-1394/Firewire updates - Convert nodemgr to new driver model. - Convert to new module_param() calls. - Merged fixes for devfs mkdir and some sleep-in-atomic fixes from mainline 2.5-bk - Fix possible memory corruption on highlevel local read/write. - Fix bitmap usage for some bitops. - Fix bug in closing ISO stream. - Fixes for nodemgr probing in the event of a reset storm. - Workaround for nForce2 firewire chipset. This is preliminary. - Conversion of SBP-2 to use new driver model in nodemgr, including providing a driver for firewire unit directories and registering proper callbacks. [PATCH] too much timer simplification... Noted by David Mosberger: "If someone happens to arm a periodic timer at exactly 256 jiffies (as ohci happens to do on platforms with HZ=1024), then you end up getting an endless loop of timer activations, causing a machine hang. The problem is that __run_timers updates base->timer_jiffies _before_ running the callback routines. If a callback re-arms the timer at exactly 256 jiffies, add_timers() will reinsert the timer into the list that we're currently processing, which of course will cause the timer to expire immediately again, etc., etc., ad naseum... " The answer here is to move the whole expired list to a local header and to not look back. Annotate sys_uselib() with user pointer annotation [IPV4]: Fix bootup lockup when !CONFIG_IP_MULTICAST. [BRIDGE]: Kill excessive stack usage in br_ioctl. [EBTABLES]: Get rid of brlock in ebtable_broute. [sparc]: Fix uninitialized spinlock in SRMMU code. [sparc]: Attempt mul/div emulation handling on all cpus. [RIVA FBDEV] Cursor fixes. Almost done. At least it looks normal most of the time. [IPSEC]: Add ipv4 tunnel transformer. [IGMP]: Dont dork with igmp timers on device down if not CONFIG_IP_MULTICAST. [PATCH] 1/5 scsi-locking-2.5 single_lun store scsi_device pointer Change single_lun code to use a struct scsi_device *, so that we do not need an sdev (or queue_lock) while checking if a single_lun target is in use by a particular scsi_device. [PATCH] 2/5 scsi-locking-2.5 remove lock hierarchy Get rid of the lock hierarchy for queue_lock and host_lock (even for the single_lun case). [PATCH] 3/5 scsi-locking-2.5 prevent looping when processing Ensure that we cannot loop forever (however unlikely) when processing the starved queues. [PATCH] 4/5 scsi-locking-2.5 list_del starved_entry plus use list_del the starved_entry when sdev goes away. Use GFP_ATOMIC when allocating starget, since we hold a lock. [PATCH] 5/5 scsi-locking-2.5 remove extra sdev2, remove extra Remove unneeded sdev2 variable. Remove extra log message. [PATCH] Fix module param decleration in pcilynx [PKTSCHED]: Kill redefinition of IPPROTO_ESP in sch_sfq.c [IPSEC]: Fix handling of uncompressable packets in tunnel mode. [SERIAL] Console initcalls return int, zero for success. [ARM] Fix exception table handling This fixes a build error caused by other changes in 2.5.67. [FBDEV] Improved speed performance. We copy many bytes of data instead of just one at a time. [IMSTT FBDEV] Fixed a bug that caused the hardware to lock up when scrolling. [ARM PATCH] 1497/1: Cleanup of head.S Patch from Dirk Behme Please see mail thread '[patch] Cleanup of head.S?' from 25 Feb 2003. Let us remove the third part now. The mapping set by this code is done already. The comment of rmk was 'I suspect we can kill (3) without hurting stuff that's merged into the -rmk tree, although I'm sure there's a reason it existed. I'll have to check my mail archives, but I think there was a machine that required, but it appears not to be merged.' So, let's try and see if somebody cries... [ARM PATCH] 1456/1: removes CONFIG_CPU_{26,32} from arch/arm/lib Patch from Ian Molton see summary [ARM PATCH] 1460/1: removes CONFIG_CPU_{26,32} from arch/arm/boot (Makefile) Patch from Ian Molton See summary [ARM PATCH] 1458/1: finish nwfpe CONFIG_CPUnn removal Patch from Ian Molton missed a bit. apply ontop of earlier patch. [PATCH] kobject hotplug fixes - allocated storage `envp' was being leaked on an error path - kmalloc() returns void*, no need to cast it - don't return 0 from a void-returning function Greg has acked this patch. [PATCH] radix_tree_delete API improvement radix_tree_delete() currently returns 0 on success, -ENOENT if there was nothing to delete. But it is more useful to return the address of the deleted item on success and NULL if there was no matching item. It can potentially save a lookup+delete operation. [PATCH] Fix gen_rtc compilation error From: Geert Uytterhoeven It updates include/asm-{generic,parisc}/rtc.h for the recent changes in drivers/char/genrtc.c and include/asm-{m68k,ppc}/rtc.h. get_rtc_time() now returns some RTC flags instead of a 0/-1 success/failure indicator. These flags include: - RTC_BATT_BAD: RTC battery is bad (can be detected on PA-RISC) - RTC_24H: Clock runs in 24 hour mode Most of these flags are the same as drivers/char/rtc.c, but RTC_BATT_BAD is a new one. [PATCH] remove the test for null waitqueue in __wake_up() I've had a warning in there for 4-5 months and it has never triggered. I think it's safe to remove this test. [PATCH] Remove flush_page_to_ram() From: Hugh Dickins This patch removes the long deprecated flush_page_to_ram. We have two different schemes for doing this cache flushing stuff, the old flush_page_to_ram way and the not so old flush_dcache_page etc. way: see DaveM's Documentation/cachetlb.txt. Keeping flush_page_to_ram around is confusing, and makes it harder to get this done right. All architectures are updated, but the only ones where it amounts to more than deleting a line or two are m68k, mips, mips64 and v850. I followed a prescription from DaveM (though not to the letter), that those arches with non-nop flush_page_to_ram need to do what it did in their clear_user_page and copy_user_page and flush_dcache_page. Dave is consterned that, in the v850 nb85e case, this patch leaves its flush_dcache_page as was, uses it in clear_user_page and copy_user_page, instead of making them all flush icache as well. That may be wrong: I'm just hesitant to add cruft blindly, changing a flush_dcache macro to flush icache too; and naively hope that the necessary flush_icache calls are already in place. Miles, please let us know which way is right for v850 nb85e - thanks. [PATCH] Fix deadlock with ext3+quota From: Jan Kara Fixes a deadlock-causing lock-ranking bug between dqio_sem and journal_start(). It sets up the needed infrastructure so that the quota code's sync_dquot() operation can call into ext3 and arrange for the transaction start to be nested outside the taking of dqio_sem. [PATCH] don't clear PG_uptodate on ENOSPC If get_block() returns -ENOSPC __block_write_full_page() is currently clearing PG_uptodate. Tht doesn't make any sense - failure to allocate space (or an IO error) does not make the page not uptodate. It will create pages which are dirty, mapped into pagetables and not uptodate, which is a nonsensical state. [PATCH] correct vm_page_prot on stack pages From: David Mosberger The patch below is needed to make it possible to map stack pages without execution permission (as we do on ia64). [PATCH] convert file_lock to a spinlock Time to write a 2M file, one byte at a time: Before: 1.09s user 4.92s system 99% cpu 6.014 total 0.74s user 5.28s system 99% cpu 6.023 total 1.03s user 4.97s system 100% cpu 5.991 total After: 0.79s user 5.17s system 99% cpu 5.993 total 0.79s user 5.17s system 100% cpu 5.957 total 0.84s user 5.11s system 100% cpu 5.942 total [PATCH] bootmem speedup from the IA64 tree From: Christoph Hellwig This patch is from the IA64 tree, with some minor cleanups by me. David described it as: This is a performance speed up and some minor indendation fixups. The problem is that the bootmem code is (a) hugely slow and (b) has execution that grow quadratically with the size of the bootmap bitmap. This causes noticable slowdowns, especially on machines with (relatively) large holes in the physical memory map. Issue (b) is addressed by maintaining the "last_success" cache, so that we start the next search from the place where we last found some memory (this part of the patch could stand additional reviewing/testing). Issue (a) is addressed by using find_next_zero_bit() instead of the slow bit-by-bit testing. [PATCH] architecture hooks for mem_map initialization From: Christoph Hellwig This patch is from the IA64 tree, with minor cleanups from me. Split out initialization of pgdat->node_mem_map into a separate function and allow architectures to override it. This is needed for HP IA64 machines that have a virtually mapped memory map to support big memory holes without having to use discontigmem. (memmap_init_zone is non-static to allow the IA64 code to use it - I did that instead of passing it's address into the arch hook as it is done currently in the IA64 tree) [PATCH] Fix kmalloc_sizes[] indexing From: Brian Gerst and David Mosberger The previous fix to the kmalloc_sizes[] array didn't null-terminate the correct array. Fix that up, and also avoid running ARRAY_SIZE() against an array which is really a null-terminated list. [PATCH] /proc/interrupts allocates too much memory From: David Mosberger interrupts_open() can easily try to kmalloc() more memory than supported by kmalloc. E.g., with 16KB page size and NR_CPUS==64, it would try to allocate 147456 bytes. The workaround below is to allocate 4KB per 8 CPUs. Not really a solution, but the fundamental problem is that /proc/interrupts shouldn't use a fixed buffer size in the first place. I suppose another solution would be to use vmalloc() instead. It all feels like bandaids though. [PATCH] vmalloc stats in /proc/meminfo From: Matt Porter There was a thread a while back on lkml where Dave Hansen proposed this simple vmalloc usage reporting patch. The thread pretty much died out as most people seemed focused on what VM loading type bugs it could solve. I had posted that this type of information was really valuable in debugging embedded Linux board ports. A common example is where people do arch specific setup that limits there vmalloc space and then they find modules won't load. ;) Having the Vmalloc* info readily available is real useful in helping folks to fix their kernel ports. [PATCH] /proc/meminfo documentation From: Dave Hansen Documents the information in /proc/meminfo [PATCH] percpu_counters: approximate but scalable counters Several places in ext2 and ext3 are using filesystem-wide counters which use global locking. Mainly for the orlov allocator's heuristics. To solve the contention which this causes we can trade off accuracy against speed. This patch introduces a "percpu_counter" library type in which the counts are per-cpu and are periodically spilled into a global counter. Readers only read the global counter. These objects are *large*. On a 32 CPU P4, they are 4 kbytes. On a 4 way p3, 128 bytes. [PATCH] blockgroup_lock: hashed spinlocks for ext2 and ext3 ext2 and ext3 per-blockgroup metadata needs locking. An fs-wide lock is expensive, and a per-blockgroup lock consumes too much storage (up to 32768 blockgroups per filesystem). We need something in-between. blockgroup_locks are very simple hashed spinlocks which provide this compromise. The size of the lock is scaled by NR_CPUS to implement an additional speed/space tradeoff. These locks are actually fairly generic. However I presented it as something which is specific to ext2 and ext3 so that people wouldn't go using them all over the place. They consume a lot of storage. [PATCH] use spinlocking in the ext2 block allocator From Alex Tomas and myself ext2 currently uses lock_super() to protect the filesystem's in-core block allocation bitmaps. On big SMP machines the contention on that semaphore is causing high context switch rates, large amounts of idle time and reduced throughput. The context switch rate can also worsen block allocation: if several tasks are trying to allocate blocks inside the same blockgroup for different files, madly rotating between those tasks will cause the files' blocks to be intermingled. On SDET and dbench-style worloads (lots of tasks doing lots of allocation) this patch (and a similar one for the inode allocator) improve throughout on an 8-way by ~15%. On 16-way NUMAQ the speedup is 150%. What wedo isto remove the lock altogether and just rely on the atomic semantics of test_and_set_bit(): if the allocator sees a block was free it runs test_and_set_bit(). If that fails, then we raced and the allocator will go and look for another block. Of course, we don't really use test_and_set_bit() because that isn'tendian-dependent. New atomic endian-independent functions are introduced: ext2_set_bit_atomic() and ext2_clear_bit_atomic(). We do not need ext2_test_bit_atomic(), since even if ext2_test_bit() returns the wrong result, that error will be detected and naturally handled in the subsequent ext2_set_bit_atomic(). For little-endian machines the new atomic ops map directly onto the test_and_set_bit(), etc. For big-endian machines we provide the architecture's impementation with the address of a spinlock whcih can be taken around the nonatomic ext2_set_bit(). The spinlocks are hashed, and the hash is scaled according to the machine size. Architectures are free to implement optimised versions of ext2_set_bit_atomic() and ext2_clear_bit_atomic(). [PATCH] use spinlocking in the ext2 inode allocator From Alex Tomas and myself It is identical in concept to the block allocator change. It uses the same hashed spinlock. [PATCH] Put all functions in kallsyms From: Rusty Russell Introduce _sinittext and _einittext (cf. _stext and _etext), so kallsyms includes __init functions. TODO: Use huffman name compression and 16-bit offsets (see IDE oopser patch) [PATCH] kNFSd: nfsd/export.c tidyup and add missing exp_put There was a missing exp_put in export.c so that after a client mounts an exported filesystem, the server would never be able to unmount, even after trying to unexport. This is fixed by the last chunk of this patch. Also assorted cleanups to the code found while hunting. [PATCH] kNFSd: Return correct result for ACCESS(READ) on eXecute-only file. Currently, an NFSv3 ACCESS check for READ permission on an eXecute-only file will succeed where it should fail. This is because nfsd_permission allows READ access to eXecute only files so that mode 711 executables can be loaded and run, and nfsd_access simply uses nfsd_permission. This patch changes nfsd_permission to only map eXecute permission to read permission of MAY_OWNER_OVERRIDE was set. This is only set when trying to read from a file, so ACCESS will no longer be tricked. This change will only affect callers of nfsd_permission that specify MAY_READ and not MAY_OWNER_OVERRIDE, and nfsd_access is the only routine that calls nfsd_permission (via fh_verify) that way. [PATCH] kNFSd: NFSD binary compatibility breakage The removal of "struct nfsctl_uidmap" from "nfsctl_fdparm" broke binary compatiblity on 64-bit platforms (strictly speaking: on all platforms with alignof(void *) > alignof(int)). The problem is that nfsctl_uidmap contained a "char *", which forced the alignment of the entire union to be 64 bits. With the removal of the uidmap, the required alignment drops to 32 bits. Since the first member is only 32 bits in size, this breaks compatibility with user-space. Patch below fixes the problem. [PATCH] kNFSd: First step to adding state management to NFSv4 server A new file "nfs4state.c", and nfs4_setclientid{,_confirm} are moved there, with lots of code. [PATCH] md: Fix raid1 oops From: Angus Sawyer When the last device in a raid1 array is failed (or missing) the r1bio structure can be released (especially on very fast devices) before make_request has finished using it. This patch gets and puts an extra reference to the r1_bio around the submission loop, and uses the status in r1_bio to maintain the request status if the last refernce is held by make_request. This is also more correct for write requests, as a write should succeed if any write succeeded, not only if the last write succceeded. lasi700 add missing dma-mapping.h #include compile fix for PA-RISC sym53c8xx driver v1: PA-RISC needs same PCI command fix as powerpc [ARM PATCH] 1453/1: fix clps711x framebuffer "use SRAM?" range Patch from cam mayor when setting up the framebuffer on the clps711x platform, the code checks to see if your allocated memory area is less than 38400 bytes. If it is, a comment is sent to the kernel output suggesting it could be placed into SRAM. This patch modifies the check so that it is suggested if the allocated memory area is less than OR EQUAL TO 38400 bytes. This value is important as 38400 bytes is exactly the size of a 320 x 240 x 4bpp screen. [IPV4]: xfrm4_tunnel and ipip need to privateize some symbols. [SPARC64]: Update defconfig. [SPARC64]: file_lock is now a spin lock. [sparc]: pte_file with constant number of bits. [TUN]: Convert from MOD_{INC,DEC}_USE_COUNT to netdev->owner. fix scsi queue plugging behaviour Following recent changes removing blk_queue_empty(), we were incorrectly plugging the queue some times (most often as part of the SCSI scan process). This was causing a non-deterministic panic in the scan code because a destroyed queue was sometimes being unplugged and run. [PATCH] remove __sk_filter. [PATCH] lapic_nmi_watchdog resume fix I managed to add a bug to the local APIC NMI watchdog's resume procedure in the driver model conversion for 2.5.67. The problem is that the resume procedure simply calls the enable procedure. If the NMI watchdog has been disabled by another driver (like oprofile or perfctr), then the NMI watchdog will incorrectly be re-enabled. I discovered this when updating the perfctr driver for 2.5.67 and seeing unexpected NMIs after a resume from apm --suspend. We can fix this by unregistering the NMI watchdog from the driver model when disabling it (like the code did before the driver model changes), or by remembering the previous state at suspend and checking it at resume. The patch below uses the second, simpler, approach. Tested, please apply. [PATCH] SCSI tape ILI and timeout fixes This contains the following changes: - ILI fixed to work with really old drives - message printed in case block larger than read() - long timeout used when creating a tape partition [PATCH] SCSI tape EOT write fixes This contains the following changes: - EOT detection fixed when writing in fixed block mode - asynchronous writes in fixed block mode and write threshold removed to enable the EOT fixes (the parameter accepted for compatibility) [PATCH] SCSI tape sysfs and module parameter additions This contains the following changes: - export some driver parameters in sysfs - use new module parameter definitions [PATCH] flush_cache_mm in zap_page_range unmap_vmas() eventually calls tlb_start_vma(), where most architectures flush caches as necessary. The flush here seems to make the flush_cache_range() in zap_page_range() redundant, and therefore can be removed. [PATCH] s390: base s390 fixes. s390 fixes: - Initialize timing related variables first and then enable the timer interrupt. - Normalize nano seconds to micro seconds in do_gettimeofday. - Add types for __kernel_timer_t and __kernel_clockid_t. - Fix ugly bug in switch_to: set prev to the return value of resume, otherwise prev still contains the previous process at the time resume was called and not the previous process at the time resume returned. They differ... - Add missing include to get the kernel compiled. - Get a closer match with the i386 termios.h file. - Cope with INITIAL_JIFFIES. - Define cpu_relax to do a cpu yield on VM and LPAR. - Don't reenable interrupts in program check handler. - Add pte_file definitions. - Fix PT_IEEE_IP special case in ptrace. - Use compare and swap to release the lock in _raw_spin_unlock. - Introduce invoke_softirq to switch to async. interrupt stack. [PATCH] s390: syscall numbers > 255. Add support for system calls with numbers > 255. [PATCH] s390: common i/o layer update. Common i/o layer fixes: - Fix for path no operational condition in cio_start. - Fix handling of user interruption parameter. - Add code to wait for devices in init_ccw_bus_type. - Move qdio states out of main cio state machine. - Reworked chsc data structures. - Add ccw_device_start_timeout. - Handle path verification required flag. [PATCH] s390: console changes. s390 console fixes for 3215 and sclp. [PATCH] s390: uni-processor builds. Fixes for s390 kernel configured with CONFIG_SMP=n. [PATCH] s390: dasd driver fixes. s390 dasd driver fixes: - Take request queue lock in dasd_end_request. - Make it work with CONFIG_DEVFS_FS=y. - Properly wait for the root device. - Cope with requests killed due to failed channel path. - Improve reference counting. - Remove devno from struct dasd_device. - Remove unnecessary bdget/bdput calls. [PATCH] s390: dasd driver coding style (1/2) s390 dasd driver: - Coding style adaptions. Removed almost all typedefs from the dasd driver. [PATCH] s390: dasd driver coding style (2/2) s390 dasd driver: - Coding style adaptions. Removed almost all typedefs from the dasd driver. [PATCH] s390/s390x unification (1/7) Merge s390x and s390 to one architecture. [PATCH] s390/s390x unification (2/7) Merge s390x and s390 to one architecture. [PATCH] s390/s390x unification (3/7) Merge s390x and s390 to one architecture. [IPV6]: Fixed multiple mistake extension header handling. - double free if sending Parameter Problem message in reassembly code. - (sometimes) broken checksum - HbH not producing unknown header; it is only allowed at the beginning of the exthdrs chain. - wrong pointer value in Parameter Problem message. [PATCH] s390/s390x unification (4/7) Merge s390x and s390 to one architecture. [PATCH] s390/s390x unification (5/7) Merge s390x and s390 to one architecture. [PATCH] s390/s390x unification (6/7) Merge s390x and s390 to one architecture. [PATCH] s390/s390x unification (7/7) Merge s390x and s390 to one architecture. Remove all of arch/s390x and include/asm-s390x, since the 390x architecture is now just a 64-bit configuration option of the basic s390 architecture. [NET]: Use time_before in dst_set_expires. Store EDID only when CONFIG_VIDEO_SELECT is set and edid function actually exists. [PATCH] Atari Atyfb fixes Atyfb fixes for Atari: - Add missing allocation of default_par - Kill warnings in assignments [PATCH] M68k module support M68k: Add module support (from Roman Zippel) [PATCH] M68k IDE irq IDE: Print IRQ number in decimal on m68k [PATCH] Amiga keyboard updates Amiga keyboard: fix default keyboard mappings: - Map the parentheses keys on the numeric keypad to KPLEFTPAREN and KPRIGHTPAREN (was: NUMLOCK and SCROLLLOCK) - Map the Help key to HELP (was: F11) - Map the Amiga keys to LEFTMETA and RIGHTMETA (was: RESERVED) [PATCH] Amiga Gayle IDE fixes Amiga Gayle IDE fixes: Set hwif->mmio to 2 to prevent the generic IDE core from messing with our resources [PATCH] add include uaccess.h to drivers/char/sx.c [PATCH] Fix nodemgr.c compile [PATCH] Input: change input_init() to be a subsys initcall This fixes oopses when it and the hid core are compiled into the kernel. [PKT_SCHED]: Remove ugly arch ifdefs from generic code. [NETFILTER IPV6]: Fix route leak in ip6_route_me_harder. [IPV6]: Catch up SCTP to inet6_protocol changes. Make the x86 flags save/restore code check the type of the macro argument, so that portability issues will be found in a timely manner. Fix incorrect 'flags' usage pointed out by stricter type checking. [PATCH] missing file_lock conversions A few places were missing the rwlock->spinlock conversion. [PATCH] Fix oprofile on hyperthreaded P4's From: Philippe Elie - oprofile is currently only profiling one sibling. Fix that with appropriate register settings. - fix an oops which could occur if the userspace driver were to request a non-existent resource. - in NMI handler counter_config[i].event is accessible from user space so user can change the event during profiling by echo xxx > /dev/oprofile/event - event mask was wrong, the bit field is 6 bits length not 5, events SSE_INPUT_ASSIST and X87_SIMD_MOVES_UOP was affected by masking high bit of event number. [PATCH] flush_work_queue() fixes The workqueue code currently has a notion of a per-cpu queue being "busy". flush_scheduled_work()'s responsibility is to wait for a queue to be not busy. Problem is, flush_scheduled_work() can easily hang up. - The workqueue is deemed "busy" when there are pending delayed (timer-based) works. But if someone repeatedly schedules new delayed work in the callback, the queue will never fall idle, and flush_scheduled_work() will not terminate. - If someone reschedules work (not delayed work) in the work function, that too will cause the queue to never go idle, and flush_scheduled_work() will not terminate. So what this patch does is: - Create a new "cancel_delayed_work()" which will try to kill off any timer-based delayed works. - Change flush_scheduled_work() so that it is immune to people re-adding work in the work callout handler. We can do this by recognising that the caller does *not* want to wait until the workqueue is "empty". The caller merely wants to wait until all works which were pending at the time flush_scheduled_work() was called have completed. The patch uses a couple of sequence numbers for that. So now, if someone wants to reliably remove delayed work they should do: /* * Make sure that my work-callback will no longer schedule new work */ my_driver_is_shutting_down = 1; /* * Kill off any pending delayed work */ cancel_delayed_work(&my_work); /* * OK, there will be no new works scheduled. But there may be one * currently queued or in progress. So wait for that to complete. */ flush_scheduled_work(); The patch also changes the flush_workqueue() sleep to be uninterruptible. We cannot legally bale out if a signal is delivered anyway. [PATCH] fix tty shutdown race use-after-free races have been seen due to the workqueue timer in the tty structure going off after the tty was freed. Fix that up by using cancel_scheduled_work() and flush_scheduled_work(). [PATCH] genrtc: jiffies type fix use `unsigned long' for a jiffies-holding type. [PATCH] export kernel_fpu_begin() to GPL modules drivers/md/xor.c needs kernel_fpu_begin() for the mmx checksumming functions. So export that to GPL modules. [PATCH] Posix timer hang fix From: george anzinger The MAJOR problem was a hang in the kernel if a user tried to delete a repeating timer that had a signal delivery pending. I was putting the task in a loop waiting for that same task to pick up the signal. OUCH! A minor issue relates to the need by the glibc folks, to specify a particular thread to get the signal. I had this code in all along, but somewhere in 2.5 the signal code was made POSIX compliant, i.e. deliver to the first thread that doesn't have it masked out. This now uses the code from the above mentioned clean up. Most signals go to the group delivery signal code, however, those specifying THREAD_ID (an extension to the POSIX standard) are sent to the specified thread. That thread MUST be in the same thread group as the thread that creates the timer. [PATCH] fix MCE startup ordering problems The MCE code is setting up a timer whose handler uses the workqueue code before workqueue is initialised. If you boot slowly it oopses. Convert the MCE code to use an initcall. [PATCH] Resource management for NFS... From: Trond Myklebust The patch fixes some problems with NFS under heavy writeout. NFS pages can be in a clean but unreclaimable state. They are unreclaimable because the server has not yet acked the write - we may need to "redirty" them if the server crashes. These are referred to as "unstable" pages. We need to count them alongside dirty and writeback pages when making flushing and throttling decisions. Otherwise the machine can be flooded with these pages and the VM has problems. [PATCH] USB: disconnect cleanup, new HCD callback Here's a streamlined version: doesn't require the unlink cleanup, and expects the *hci-hcd updates later. Smaller, and sanity checked against all three major HCDs. - reverts that unlink() patch: disconnect() callbacks can continue to act like they always have. - adds new "disable that endpoint" support, necessary for safely changing configurations or altsettings as well as physical disconnect (which is almost the same as setting config to zero, except for ep0). - NEW BEHAVIOUR: usbcore cleans up after drivers that return from disconnect() with urbs still linked, by using the new "disable that endpoint" support. Because it doesn't have any *hci-hcd updates, the hardware synch needed by EHCI and OHCI (not UHCI) still gets done through the bus->deallocate(dev) call ... not where we've ever needed it, but 2.3-compatible (and finally fixable). That gets rid of some problematic disconnect scenarios, and other fixes can be phased in over time: the *hci-hcd updates to relocate the hardware synch point so it always happens in a task context, and disabling endpoints before their configs change (invalidating all HC state). [PATCH] USB: fix up spin_unlock_irqrestore() issues in previous patch [PATCH] USB: add better check to prevent oops in hcd_unlink_urb() [PATCH] disconnect cleanup, new HCD callback Attached, find a patch that "ought to" teach OHCI how to do that cleanup, by implementing the new callback. (And the first half is the patch you applied, with that irqsave tweak -- so you should already have it.) [PATCH] USB: kl5kusb105 fix up errors found by smatch [PATCH] USB: kobil_sct fix up errors found by smatch [PATCH] USB: DocBook/usb.tmpl patch remove duplicated word, fix an unclear implication. [PATCH] USB scanner.c endpoint detection fix This patch fixes the endpoint numbers. They were numbered from 1 to n but that assumption is not correct in all cases. [PATCH] USB: EHCI disconnect cleanup So here's the EHCI implementation of that new callback, morphed/simplified from the old "free_config" one (which is now gone). It looks almost identical to the OHCI version, except the dummy TDs work a bit differently. Again, drivers that clean themselves up in disconnect() shouldn't notice this change. I didn't re-test this; I don't have devices with the other kind of driver. You should do so with one of yours (high speed hub and TT). There are still about half a dozen places in usbcore and the HCDs that would benefit from using this new callback, FWIW. I'd call them non-critical bugfixes that should wait a bit, while this batch shakes out. [PATCH] USB speedtouch: discard packets for non-existant vcc's I broke part of the udsl_decode_rawcell logic in a previous patch, leading to possible hangs on startup/shutdown. I've attached the 2.4 and 2.5 versions. Thanks to Subodh Srivastava and Ted Phelps for their bug reports. Here is the 2.5 patch included inline for reference: [PATCH] USB: io_edgeport: stop unlinking a urb that we don't need to unlink. [PATCH] USB: keyspan: fixed up might_sleep() problems on device close. [PATCH] {get,set}affinity unification This one gets rid of sys32_{get,set}affinity in favor of a unified compat implementation. [PATCH] alpha: execve() fix The 2.5 kernels may hang on execve(). Most easily this can be reproduced by submitting forms in mozilla, apparently because it does execve with very long argument strings. That's what happens in do_execve, I suppose: bprm.mm = mm_alloc(); ... init_new_context(current, bprm.mm); here we update current ptbr with new mm->pgd ... copy_strings; interrupt -> do_softirq -> switch to ksoftirqd ... switch back to do_execve; copy_strings - immediate page fault in copy_user that we can't handle because the new ptbr has been activated after context switch and current->mm is not valid anymore. The fix is to not update ptbr for current task in init_new_context(), as we do it later in activate_mm() anyway. With it my (UP) boxes look quite stable so far. Ivan. [PATCH] alpha: move_initrd fix (from Jeff Wiedemeier) While testing our upcoming kernel update for 7.2 alpha, I've encountered a problem with move_initrd. It allocates a page-aligned chunk to move the initrd into, but it doesn't allocate the entire last page. Subsequent bootmem allocations can then be filled from the last page used be the initrd. This then becomes a problem when the initrd memory is released. [PATCH] alpha: lynx support Forward port of Jay's 2.4 patch. Also I've cleaned up EISA configury - we only need it for systems with EISA. Ivan. [ALPHA] Include module.h for EXPORT_SYMBOL. Fix typo (and logic bug that the typo hid) in bit value testing. Found by 'sparse', my source parser tool. [PATCH] unwinding for vsyscall code Now that the kernel provides code user programs are executing directly (I mean the vsyscall code on x86) it is necessary to add unwind information for that code as well. The unwind information is used not only in C++ code. This patch adds a AT_SYSINFO_EH_FRAME ELF aux-table value that points to the unwinding block description for the sysinfo frame, and makes sure the AT_* value is passed to applications. It defines the static data for the unwind blocks (two, one for int80 and the other for sysenter), and finally adds code to copy the data in place. [ALPHA] Elide cabriolet_init_irq for CONFIG_ALPHA_PC164. [PATCH] Cleanups for posix timer hang fix Clean up "pendcount" locking (or rather - lack there-of) by making it a per-timer thing and thus automatically protected by the timer lock. Fix whitespace damage. [NETFILTER_IPV4]: De-linearization of IP Connection Tracking. This converts connection tracking and all the connection tracking modules to handle non-linear skbs. Enough interfaces have been broken in the process that old helpers won't compile. Interfaces which used to take a "void *data, int len" or "struct iphdr *iph, int len" now take the skb itself (and an offset to the data in the case of the first interface), which is not linearized in any way (although Alexey says after ip_rcv the IP header is always linear, so IPv4 netfilter hooks can always assume a linear IP hdr). Helpers which examine data (amanda, FTP, IRC) now copy it into a buffer and examine that. [PATCH] module symbol fix Fix for trivial typo. Without it, you can't insert anything on top of agpgart.ko because the agp_register_driver() will erroneously pick up the symbol version from agp_backend_acquire(). [PATCH] Fix coda/devfs oops The problem is caused by the devfs_mk_dir simplification that went in a couple of weeks ago that didn't update one of the coda call-sites. [IPV6]: Add MLDv2 support. [PATCH] s390 network driver fixes - lcs: Don't free net_device in lcs_stop_device. - lcs: Reset card after LGW initiaited stoplan. - lcs: Fix bug in lcs_tasklet - ctc: Get channel structure from private pointer. Remove __NO_VERSION__. - lcs,ctc,iucv: Remove MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT. Set dev->owner. [IPV6]: Set noblock to 1 in NDISC sock_alloc_send_skb calls. [NETFILTER IPV6]: Fix Makefile typo. [NET]: Use fl6_{src,dst} etc. [PATCH] fix fs->lock deadlock with emulated name lookup The patch below is needed to avoid a deadlock on fs->lock. Without the patch, if __emul_lookup_dentry() returns 0, we fail to reacquire current->fs->lock and then go ahead to read_unlock() it anyhow. Bad for your health. I believe the bug was introduced when the fast pathwalk was reverted in order to introduce the RCU lockless path walking. Annotate sys_nfsservctl() with user pointer annotations Fix user pointer annotations in more places, now that 'sparse' verifies declarations against definitions and checks argument types. Annotate namespace system calls (mount, umount, pivot_root etc) with user pointer annotations. Add more user pointer annotations. [SERIAL] Move make modem control signals accessible to line discplines We also parse modem control signals in the tty layer, and fail with EINVAL if the driver does not provide the methods. All tty drivers which require modem control support should be updated to provide the new tiocmset and tiocmget methods. [PATCH] getrlimit,setrlimit,getrusage,wait4 unification [ARM PATCH] 1501/1: fix a path name in comment Patch from Eli Carter Fixes the filename in the comment in include/asm-arm/arch/iop3xx/timex.h Applies cleanly to 2.5.67-rmk1 [ARM PATCH] 1502/1: rename IOP310 config vars to IOP3XX Patch from Eli Carter # Tue Apr 15 14:41:15 CDT 2003 ejc@rnd-linux-c84 # config-rename # # This patch renames the IOP310 config variables to IOP3XX in preparation for # IOP321 support. # # Diff'ed against 2.5.65-rmk1+1472-4 # Applies to 2.5.67-rmk1 with an offset. # # arch/arm/Kconfig | 14 +++++----- # arch/arm/Makefile | 2 - # arch/arm/def-configs/iq80310 | 15 +++++----- # arch/arm/kernel/debug.S | 2 - # arch/arm/mach-iop3xx/Kconfig | 49 ++++++++++++++++++++++------------- # arch/arm/mach-iop3xx/Makefile | 8 ++--- # include/asm-arm/arch-iop3xx/memory.h | 2 - # include/asm-arm/arch-iop3xx/timex.h | 2 - # 8 files changed, 54 insertions(+), 40 deletions(-) # [ARM PATCH] 1503/1: Adds basic support for the iq80321 board Patch from Eli Carter # Tue Apr 15 16:07:34 CDT 2003 ejc@rnd-linux-c84 # add-iq80321 # # Adds basic support for the iq80321 board. # # Diff'ed against 2.5.65-rmk1+1472-4+1502 # Applies to 2.5.67-rmk1+1502 with offsets # # arch/arm/boot/Makefile | 1 # arch/arm/boot/compressed/head-xscale.S | 6 # arch/arm/def-configs/iq80321 | 676 ++++++++++++++++++++++++++++++ # arch/arm/kernel/debug.S | 10 # arch/arm/kernel/entry-armv.S | 22 # arch/arm/mach-iop3xx/Kconfig | 12 # arch/arm/mach-iop3xx/Makefile | 16 # arch/arm/mach-iop3xx/arch.c | 26 + # arch/arm/mach-iop3xx/iop321-irq.c | 95 ++++ # arch/arm/mach-iop3xx/iop321-pci.c | 257 +++++++++++ # arch/arm/mach-iop3xx/iop321-time.c | 92 ++++ # arch/arm/mach-iop3xx/iq80321-pci.c | 98 ++++ # arch/arm/mach-iop3xx/mm-321.c | 64 ++ # arch/arm/mm/proc-xscale.S | 19 # include/asm-arm/arch-iop3xx/hardware.h | 17 # include/asm-arm/arch-iop3xx/iop321-irqs.h | 83 +++ # include/asm-arm/arch-iop3xx/iop321.h | 143 ++++++ # include/asm-arm/arch-iop3xx/iq80321.h | 17 # include/asm-arm/arch-iop3xx/irqs.h | 67 -- # include/asm-arm/arch-iop3xx/memory.h | 11 # include/asm-arm/arch-iop3xx/serial.h | 11 # include/asm-arm/arch-iop3xx/timex.h | 6 # include/asm-arm/arch-iop3xx/uncompress.h | 7 # include/asm-arm/mach/pci.h | 4 # 24 files changed, 1691 insertions(+), 69 deletions(-) Cset exclude: arndt@lin02384n012.mc.schoenewald.de|ChangeSet|20030415031138|37565 [PATCH] Use WARN_ON in local_bh_enable() This BUG_ON is triggering via ppp's line discipline flushing, due to brokenness in tty_io.c. We need to fix tty. Meanwhile, let's not gratuitously nuke people's boxes. [PATCH] Handle invalid pfns in page_add/remove_rmap My recent micro-optmisation to these functions broke the pfn_valid() checks. Revert it. [PATCH] Fix orlov allocator boundary case In the interests of SMP scalability the ext2 free blocks and free inodes counters are "approximate". But there is a piece of code in the Orlov allocator which fails due to boundary conditions on really small filesystems. Fix that up via a final allocation pass which simply uses first-fit for allocation of a directory inode. [PATCH] IEEE-1394/Firewire updates - Add driver registration for dv1394/video1394/raw1394. - Fix 3 sleep-while-atomic bugs in ohci1394 and ieee1394. - Cleanup some bus-reset handling in ohci1394. - Add empty config-rom handling. - Check and handle SBP-2 logins active/available for non-exclusive logins. - Fix bug in SBP-2 DMA cleanup. [PATCH] fix devfs support in i386 microcode driver register a /dev/cpu/microcode symlink instead of a regular file with the same name - regular file support is gone in devfs. [PATCH] bring devfs_register calls in dvb in shape Trying to always have a NULL first argument to simplify devfs code big time in mid-term. (Especially in preparation of Adam's smalldevfs). [PATCH] make devpts filesystem mandatory even for CONFIG_DEVFS This patch rips out handling of UNIX98 ptys from devfs. We already have a special small filesystem to handle it (devpts) that's always compiled in anyway. This allows to get rid of all DEVFS_FL* flags and some gunk in devfs. [PATCH] remove DEVFS_FL_* Okay, all flags are gone from devfs callers, time to remove the gunk handling it. devfs_register prototype will change later. [PATCH] dm devfs fix Don't pass DEVFS_FL_CURRENT_OWNER to devfs_register, the uid/gid of new nodes should always be 0. [ARM PATCH] 1506/1: Add iq80321 MTD mapping Patch from Eli Carter # Thu Apr 17 14:05:58 CDT 2003 ejc@rnd-linux-c84 # iq80321-mtd # # Add the MTD mapping for the flash chip on the iq80321 board. # The drivers/mtd/maps/iq80321.c file comes from 2.4.19-rmk4-ds2, and is # essentially a copy of the iq80310.c file in the same directory. # This version used C99 initializers # # Diff'ed against 2.5.65-rmk1+1472-4+1502-3 # Applies cleanly to linux-2.5.67-rmk1+1502-3 # # arch/arm/def-configs/iq80321 | 61 ++++++++++----- # drivers/mtd/maps/Kconfig | 8 ++ # drivers/mtd/maps/Makefile | 1 # drivers/mtd/maps/iq80321.c | 169 +++++++++++++++++++++++++++++++++++++++++++ # 4 files changed, 218 insertions(+), 21 deletions(-) # [ARM] Fix Kconfig breakage in arch/arm/mach-iop3xx/Kconfig When a "depends" statement against all configuration options of a choice, which causes all options of that choice to be disabled, it sends Kconfig into an infinite loop. Move the "depends" clause to the choice statement instead. [PATCH] USB: fix oops in usb_hotplug for root devices [PATCH] H8300 support [PATCH] another broken APM bios [PATCH] new summit ID [PATCH] update visws to use generic mask names [PATCH] use the mach resources we added before Now hw resources can be per mach- and we dont need a pile of ugly ifdefs for weird shite [PATCH] generalise mptable access [PATCH] use names for PIT access. Not all PIT is the same location [PATCH] Update proc.c for renamed fpu irq [PATCH] generalise PIC locations, PIT and FPU IRQ [PATCH] now we have the time logic in Mach_* use it [PATCH] generalise more PIT usage [PATCH] generalise PIT usage in tsc code, plus tsc sync [PATCH] generalise traps and nmi [PATCH] generalise pic mask names since the port varies [PATCH] generalise fpu_irq also add pc98 for x86 code The idea is to move more to if(pc98) so that we can attempt to get all the ports buildable as one "generic" port in time. I don't think its p possible for PC9800 but no need to dig holes [PATCH] more random C99 initializers [PATCH] more random C99 initializers [PATCH] fix a make kerneldoc glitch [PATCH] Fix z2ram [PATCH] small ipmi updates [PATCH] compile fix for rio_linux.c Missing [PATCH] compile fix for sx.c Missing [PATCH] input typo fixes [PATCH] first cut at 3c505 clean up [PATCH] update intermezzo contacts Don't allow rmap to touch reserved or out-of-range pages [PCMCIA] Fix non-PCI PCMCIA bridge oops Only call pci_remove_behind_bridge() if we have a PCI-based bridge controller. [ia32] use __builtin_memcpy compiler intrinsic for small memcpy's [NET]: Actually apply Yoshfuji's fl6_{src,dst} patch. [PATCH] Fix scsi build on !CONFIG_GENERIC_ISA_DMA This allows the SCSI subsystem to build on systems where CONFIG_GENERIC_ISA_DMA is not set. Cleanups: remove unused label and fix crappy counting code that didn't work. [PATCH] remove unnecessary FIXME Supporting PAGE_CACHE_SIZE != PAGE_SIZE is a "won't fix" for 2.6. (Bill Irwin) [PATCH] devfs: fix compilation As several people found out while I was asleep I sent you a bogus patch version and devfs didn't compile in your tree since then. Fix it. [PATCH] devfs: minor miscdev changes Make sure the first argument to devfs_register is zero. [PATCH] devfs: cleanup devfs use in ide Store the path of it's devfs directory in ide_drive_t. Use it in the devfs_register calls instead of the devfs_handle_t which will go away soon. [PATCH] devfs: cleanup devfs use in scsi Store the path of it's devfs directory in struct scsi_device. Use it in the devfs_register calls instead of the devfs_handle_t which will go away soon. [PATCH] devfs: sanitize devfs_register_tape prototype Pass in the path directly instead of getting it from a devfs_handle_t. [PATCH] devfs: cleanup partition handling interaction Always pass around the pathnames for the devfs entries / directories instead of the devfs_handle_ts. Cleanes up the code massivly. [PATCH] devfs: make devfs_generate_path static There's just one caller in fs/devfs/base.c left. [VLAN]: Cleaner module interface. [DECNET]: DECnet routing fixes etc. o As requested, macros in dn_fib.h changed to decnet specific names o Two bugs fixed (only in 2.5 decnet stack) relating to bind and connection states. o Numerous style changes: using C99 initialisers and inline rather than __inline__ o Use struct flowi as routing key (for forthcoming flow cache) o Add metrics to routing table o Many routing table bug fixes o New wait code to improve efficiency o We use real device MTUs now rather than saying "hmm... looks like ethernet must be 1500" as we used to (still one or two places to fix, but its mostly correct in this patch) o Tidy up in af_decnet.c:dn_sendmsg() in preparation for zerocopy o Updates to rtnetlink code to return more information o Removed ioctl() for decnet fib. It never did anything and rtnetlink is a far better interface anyway. o Converted /proc/decnet_neigh to seq_file (other /proc files to follow) o DECnet route cache now uses RCU like the ipv4 route cache o Misc bug fixes wherever I found them o SO_BINDTODEVICE works for outgoing connections [SPARC64]: Remove LVM ioctls. [SPARC64]: Missed rusage/rlimit/wait4 compat conversions. [BRIDGE]: Fix race in br_fdb_get_entries. [BRIDGE]: Ethernet bridge driver device mangling cleanup Second try at the bridge driver module handling cleanup... 1) Eliminate keeping a seperate bridge_list and use a bit on the priv_flags structure. This is equivalent to how the VLAN code works. Makes code cleaner and correctly handles cases like creating a bridge with the same name as an existing ether device etc. 2) Don't do own module ref counting that is inhernently racy. Instead set owner field and cleanup debris on unload. 3) Do last state cleanup in destructor 4) Change of bridge state (dev_open/stop) should use write_lock 5) Make sure timer is not running when cleared. 6) Use "const char *" where possible [PATCH] gconfig: bug #540 This replaces checkboxes by radiobuttons whereever necessary (menu choices). It partially fixes the #540 bug report. [PATCH] struct loop_info64 with __u64 (i) Replace in struct loop_info the dev_t field by __kernel_old_dev_t, where this type is defined in , so that problems with a differently sized dev_t in userspace are avoided. (ii) Introduce a new loop_info64, with __u64 device, inode and offset fields. [PATCH] fix slab corruption in namespace.c new_ns = kmalloc(sizeof(struct namespace *), GFP_KERNEL); thing wasn't a very good idea. The rest are whitespace cleanups. [PATCH] correct error message for failed clone ns If copy_namespace() returns -EPERM, copy_process() will return a confusing -ENOMEM. Fix it thus. [PATCH] s/to long/too long/ [PATCH] IEEE-1394/Firewire updates - Cleaned up hostinfo usage in all drivers and created a central API to handle them all. - Fixup some spinlock mis-usage. - Remove devfs_handle mis-usage. - Cleaned up some heavy handed spinlocking to use mutexes instead. - Add function to send PHY config packets and use to to settle IRM/cycle-master/root descrepancies. Linux 2.5.68