Summary of changes from v2.6.5-rc2 to v2.6.5-rc3 ============================================ [SPARC32]: Down with our cpu_offset. Use regular per_cpu instead. The only users of this were udelay/ndelay. These now look more like sparc64, except ours are too weird and too big to inline. [ACPI] check "maxcpus=N" early -- same as NR_CPUS check. http://bugzilla.kernel.org/show_bug.cgi?id=2317 When the BIOS enumerates physical processors before logical, maxcpus=N/2 will now effectively disable HT. This can be verified by boot messages warning that HT is off: eg. "maxcpus=2" on a 2xHT system: Total of 2 processors activated (11141.12 BogoMIPS). WARNING: No sibling found for CPU 0. WARNING: No sibling found for CPU 1. [PATCH] ia64: init IO port space, IO accessors earlier This is a minor patch to get things setup so consoles can work earlier. (No change to consoles here, I just split this out to make the diff easier to read.) (io_port_init): New function, same old code to setup ia64_iobase and legacy IO port space. (setup_arch): Call io_port_init() and machvec_init() as early as possible so consoles can work earlier. [PATCH] ia64: kill unused ACPI configgery The config ACPI helptext isn't used because the option is never presented to the user. ACPI_KERNEL_CONFIG is unused. ACPI_INTERPRETER is now set in drivers/acpi/Kconfig. [PATCH] ia64: force all kernel sections into one and the same segment Older versions of the linker do not handle cross-segment segment-relative relocations properly. This becomes a real problem when the linker decides to put .text and .text.init into different segments (for whatever reasons) because in that case, broken linkers will produce a broken unwind section, which can cause nasty Heisenbugs, where, for example, unwinding may or may not work depending on the exact value of the IP in a function. [ALPHA] Fix build in alpha_ksyms.c. [TRIVIAL] Miata url update. From: "Petri T. Koistinen" [TRIVIAL] Remove x86 instructions on alpha. From . ia64: GCC v3.5 fixes. GCC v3.5 doesn't like it when a function gets cast to a function-pointer with a different signature. In fact, it exterts extreme prejudice in this case and replaces the call-site with a call to __builtin_trap()! Fix this by providing appropriately typed dummy-functions for the macvec operations as needed. While at it, also clean up some machvec handlers which weren't used anywhere. ia64: Small cleanup in __kernel_sigtramp(). [PATCH] ia64: make level sensitive interrupt emulation default on SN2 SN2 doesn't fully support level triggered interrupts. As a workaround, we need this patch to force another interrupt if the line is still high after a handler completes. [ACPI] numa.c build fix (Luming Yu) http://bugzilla.kernel.org/show_bug.cgi?id=2131 [ALPHA] Streamline opDEC_check and the actual fixup bits in do_entIF. [AGPGART] Fix URL. [AGPGART] Silence serverworks CNB20HE printks. These chipsets don't seem to have a full AGP GART, (and in at least two reports I've had, are used in systems that don't even have an AGP slot). Print something more informative than.. agpgart: unable to determine aperture size. agpgart: agp_backend_initialize() failed. agpgart-serverworks: probe of 0000:00:00.0 failed with error -22 agpgart: Maximum main memory to use for agp memory: 941M agpgart: unable to determine aperture size. agpgart: agp_backend_initialize() failed. agpgart-serverworks: probe of 0000:00:00.1 failed with error -22 agpgart: Unsupported Serverworks chipset (device id: 0006) agpgart: Unsupported Serverworks chipset (device id: 0006) [AGPGART] Recognise B3 stepping 8151 in amd64 GART driver. [AGPGART] Add SIS 648/746 work around. These chipsets hang for no apparent reason unless we pause for a while after changing mode. No explanation from SiS, so this ugly hack is the best we can hope for. [AGPGART] Give IA32E its own GART driver. This way we can lose all the legacy junk that comes along with intel-agp Start by just getting a bare bones driver supporting the more recent AGP chipsets. [AGPGART] Move HP ZX1 registers out of agp.h [AGPGART] Move other chipset vendors registers into vendor specific files. Cleaning up agp.h [AGPGART] More agp.h cleanups Grouping stuff, and bumping copyright date. [AGPGART] agp.h indentation fixes. [AGPGART] AGPv3 generic support. If a chipset doesn't need anything funky, then it can use these routines. [TRIVIAL] Tighten sanity in time_init to 250 ppm. From: "Bailey, Scott" [AGPGART] Clean up SiS648 workaround by giving it its own driver. This uses the generic agp v3 support routines previously added. It confines the 'pause after switching mode' hack to the sis driver. Fixes http://bugme.osdl.org/show_bug.cgi?id=2327 [PATCH] ia64: Interim pal_halt_light patch While the sysctl variable is being worked out in the general kernel, here is an interim patch which allows boot-time/dynamic control over the use of PAL_HALT_LIGHT in the idle-loop. [PNP] Resource Conflict Cleanup This patch simplifies the ranged resource checking logic. [PARPORT] Update PC Parport Detection Code This patch updates the parport_pc driver's probing code to better detect PnP devices. It also removes an extra MODULE_AUTHOR. [ISAPNP] Fix Device Detection Issue Some isapnp devices were not getting detected as a result of a bug in the isapnp driver. It was not following the specifications and calculating a checksum when it was not reliable. This problem was originally discovered by Paul L. Rogers . He made an initial patch. This release has some small modifications, including a check to see if we run out of CSNs. [XFRM] remove duplicated lines; fl->fl4_{src,dst} is already filled in xfrm_lookup(). [XFRM] remove unused argument for (*find_bundle)(). [Bluetooth] Add missing compat ioctl's for CMTP This patch adds the missing compat ioctl's for the CAPI Message Transport Protocol. [Bluetooth] Add support for AVM BlueFRITZ! USB v2.0 This patch adds the vendor and product id for the AVM BlueFRITZ! USB v2.0 dongle which don't uses the USB Bluetooth class id. [Bluetooth] Fix display for class of device The class of device is displayed in wrong byte order. This patch swaps it and now the inquiry_cache attribute shows the same as the userspace tools. [PATCH] Fix SCSI + st regressions problem remove dependency on kobj.name. [PATCH] SCSI: Fix Oops in sg with lots of SG_IO activity Attached is a patch to fix an oops in sg_cmd_done. Please apply. [ISAPNP] MEM Config Fix This patch fixes a bug in the resource configuration function. If there are more than one memory ranges, the isapnp driver will write into the incorrect configuration register. [PNP] remove __init from system.c // Linux 2.6.4-rc2 // These 2 functions shouldn't be __init for general PNP use [ISAPNP] Remove uneeded MOD_INC/DEC_USE_COUNT isapnp_cfg_begin and isapnp_cfg_end are exported symbols, so if any module using them is loaded isapnp.o can't be unloaded anyway [PATCH] therm_adt7467 update From: "Colin Leroy" The fan driver I wrote for adt746x looks like it only handles the adt7467 chip found in iBooks G4; but it also handles the adt7460 chip found in the Powerbook G4 Alu. Here's a patch that updates therm_adt7467.c, Kconfig and Makefile. Rename therm_adt7467.c to match the new reality. [PATCH] critical x86-64 merge There were some nasty bugs in the x86-64 code, including one race that could cause random reboots, especially on Intel machines, with the NMI watchdog. This patch fixes them and also includes some harmless cleanups. Main fixes were for some buglets in the IOMMU code and the plugging of a race in the exception stack handling. Also disables an broken MCE on K8 explicitely. Also finally the preempt compile issues are fixed. - Declare hpet interrupt separately in drivers/char/rtc.c - Fix rtc.h/hpet.h to not depend on interrupt.h - Finally include smp_lock.h in hardirq.h - Update defconfig - Export bad_dma_address - Merge with 2.6.5rc2 - Never schedule on interrupt stacks. - Add option to force software iotlb (iommu=soft) - Add ifdefs to gsi patch to match i386 (Bjorn Helgaas) - Fix K8 GART TLB MCE workaround to actually work - Fix dwarf2 unwind table in SAVE_ARGS (Jim Houston) - Disable APIC on VIA/NVidia even with acpi=off (Gwenole Beauchesne) - Fix parsing bug in "apic" option (Gwenole Beauchesne) - Fix dma mask handling in pci_alloc_consistent - Make pci_alloc_consistent more robust in low memory situations. - Print version number in oopses (from i386) - ACPI GSI cleanup (Bjorn Helgaas) - Disable K8 GART TLB walk error MCE explicitely - Add support to disable individual MCEs in the various banks. [PATCH] fix console oops/race Finally nailed this sucker. con_close() checks the tty->count and then sleeps in acquire_console_sem(). But another process can come in and grab a ref against the tty while con_close() dropped the BKL. But con_close() then proceeds to deallocate the tty->driver_data anyway, even though the tty now has ->count == 2. Fix that by moving the check for ->tty_count inside console_sem. [PNP] Add some more modem IDs This patch allows the serial driver to bind to three additional modems. [PATCH] fix scsi_transport_spi.c compile with gcc 2.95 Fix token pasting to work with older gcc versions. We need a space before the "," that may get pasted away. [ISAPNP] Unmark experimental status ISAPnP support has been stable with the new pnp layer for a while. This patch removes the experimental dependency. [ALPHA] Update defconfig. [PATCH] Fix missing part of x86-64 update Three quarters of the update from Andi was uncommitted due to a bad patch date and a bug in "bk import -temail".. Here are the missing parts.. [PATCH] Fix missing part of x86-64 update, part 2 One more missing doc-file update [PATCH] keywest bugfix This fixes a deadlock in I2C probing. - keywest holds the pmac_low_i2c_lock while registering the i2c adapter. - i2c_add_adapter() notifies registered drivers by calling driver->attach_adapter(). - a driver might access the i2c bus from attach_adapter() which deadlocks since all xfer routines take the lock. [PATCH] pmac: Improved G4 "windtunnel" fan controller This is an improved version of the G4 "windtunnel" fan controller. It depends on the keywest bugfix... [ACPI] create disable_acpi() [PATCH] clean up ACPI GSI/IRQ conversions (i386 part) Add "acpi_gsi_to_irq()" as a generic replacement for "acpi_irq_to_vector()". This converts from an ACPI global system interrupt number to a Linux IRQ. Also, convert i386-specific terminology to use GSI when appropriate. [WATCHDOG] v2.6.5-rc2 wdt.c-patch Version 0.10 of wdt.c - Changes that were made are: * Extract the start code in a seperate function (wdt_start) * Extract the stop code in a seperate function (wdt_stop) * Convert wdt_ping so that it return an int value (0=succes). * Extract the get_temperature code in a seperate function (wdt_get_temperature) * Make /dev/watchdog and /dev/temperature to different misc devices with their own fops. * Reorganize init and exit functions * Make heartbeat (the emulated heartbeat) a module parameter * Rewrite status flag code so that we could add a new tachometer module parameter * Small clean-up's [WATCHDOG] v2.6.5-rc2 wdt_pci.c-patch Version 0.10 of wdt_pci.c - Changes that were made are: * Extract the start code in a seperate function (wdtpci_start) * Extract the stop code in a seperate function (wdtpci_stop) * Convert wdtpci_ping so that it return an int value (0=succes). * Extract the get_temperature code in a seperate function (wdtpci_get_temperature) * Make /dev/watchdog and /dev/temperature to different misc devices with their own fops. * Reorganize init and exit functions * Make heartbeat (the emulated heartbeat) a module parameter * Rewrite status flag code so that we could add a new tachometer module parameter + make clear distinction between PCI-WDT500 and PCI-WDT501. * Small clean-up's [WATCHDOG] v2.6.5-rc2 wd501p.h-patch Cleanup header file after changes to wdt.c and wdt_pci.c [WATCHDOG] v2.6.5-rc2 softdog.c-patch Version 0.07 of softdog.c - Changes that were made are: * Extract the start/keepalive code in a seperate function (softdog_keepalive) * Extract the stop code in a seperate function (softdog_stop) * Add notifier support * Extract softdog_set_heartbeat code to seperate subroutine * Small clean-up's [AGPGART] Make some more Intel/ia32e functions static to fix build when both compiled in. [PATCH] Hack mptfusion to work on >4GB machines fusion needs several separately allocated coherent regions and requires that they all be in the same 4GB segment. Obviously this may fail. The hack is to force the coherent_dma_mask to 0xffffffff thus ensuring that all the allocations occur within the first 4GB. This hack breaks Altix entirely. [PATCH] start_cpu_timer() cannot be __init It's now called from the CPU hot-add notifier. [PATCH] kbuild ordering fix From: Sam Ravnborg In the i386 case we need to generate asm-offset.h, before starting building the kernel tree. Building asm-offset.h causes us to use one of the shorthands in the top-level makefile, namely the one for .s files. The one that allows us to do: make some/dir/file.s And this shorthand happens to have a dependency to scripts, therefore I did not see this problem on i386. But David hit it with sparc64, because there is no asm-offset.h file. No parallel stuff involved here, just an ordinary error. [PATCH] Fix error value for opening block devices From: Ulrich Drepper Opening a non-existing block device currently yields an ENXIO error. Doing the same for char devices produces the correct error ENODEV. [PATCH] Add missing uacccess checks for sysctl.c From: Marc-Christian Petersen Kernel 2.6 lacks two -EFAULT returns in get_user() in kernel/sysctl.c. [PATCH] make inflate use less stack space with gcc3.5 From: Matt Mackall Quick fix to work around gcc3.5's automatic inline and broken stack requirements calculation. Without this, I see stack overflows at boot with 4k stacks. [PATCH] mprotect return value fix From: Marc-Christian Petersen 2.4 patch from Adrian Bunk. ERRORS The mprotect() function shall fail if: ... [ENOMEM] Addresses in the range [addr,addr+len) are invalid for the address space of a process, or specify one or more pages which are not mapped. [PATCH] ISDN Eicon driver: restructured capi list and lock handling Restructered the CAPI code of list handling and lock. Removed obsolete code. [PATCH] ISDN Eicon driver: move workqueue to tasklet for divas dpc Use tasklet instead of workqueue for the divas main dpc. [WATCHDOG] v2.6.5-rc2 pcwd.c-patch1 Version 1.14 of pcwd.c - Changes that were made are: * Extract the start code in a seperate function (pcwd_start) * Extract the stop code in a seperate function (pcwd_stop) * Extract the get_temperature code in a seperate function (pcwd_get_temperature) * Make /dev/watchdog and /dev/temperature to different misc devices with their own fops * Small clean-up's Tested on pcwd card with temperature option. Set PCI DMA masks in old-OSS via82cxxx audio driver. [SPARC32]: Support memory starting at physical address other than 0 From: Stefan Holst Allow physical memory to start at almost arbitrary addresses. LEON needs it, so do SPARCstation 10/20 without slot 0 populated. Although Sun do not support this configuration, at least some such systems can boot with this patch. Physical memory starting at or above 0xF4000000 is not supported. [SPARC32]: Restore a.out binary format capability This depended on CONFIG_SPARC, which is obsolete. Use SPARC32 instead. [PATCH] Revert UDF inode semaphore locking For some reason I don't understand, the last UDF filesystem update makes the UDF deadlock when I write a bunch of mp3 files to a CDRW using the packet writing patch. Both "cp" and pdflush get stuck in __down. Reverting the semaphore changes makes the problem go away. Use the kernel lock again, until whatever recursive offender gets fixed. (The offensive recursion seems to be: write() takes the inode semaphore, causes memory pressure, and then trying to write back the inode or dirty data to disk tries to get the semaphore again and deadlocks.) [SPARC32]: Clean up secondary System.map From: Stefan Holst The clean target is never called, so instead add this to CLEAN_FILES. [ACPI] fix interrupts behind yenta cardbus bridge (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=1564 [PATCH] Two more x86-64 fixes - Fix CONFIG_DEBUG_INFO build again - Fix user exploitable oops in ia32 ioctl emulation [PATCH] Fix missing "noinline" on x86-64 The gcc-3.5 patch broke building on x86_64 and possibly others, because inflate.c does not pull in the definition for noinline. Remove stale legacy ISDN files. From Armin Schindler : "These files were added in the first place for the compat driver to the legacy isdn4linux module. Since the Eicon driver now uses CAPI only, these files are obsolete." [CRYPTO]: Add setkey operation for digests. From Jouni Malinen Added support for using keyed digest with an optional dit_setkey handler. This does not change the behavior of the existing digest algorithms, but allows new ones to add setkey handler that can be used to initialize the algorithm with a key or seed. setkey is to be called after init, but before any of the update call(s). [CRYPTO]: Add Michael MIC algorithm. From Jouni Malinen Added Michael MIC keyed digest for TKIP (IEEE 802.11i/WPA). This algorithm is quite weak due to the requirements for compatibility with old legacy wireless LAN hardware that does not have much CPU power. Consequently, this should not really be used with anything else than TKIP. Michael MIC is calculated over the payload of the IEEE 802.11 header which makes it easier to add TKIP support for old wireless LAN cards. An additional authenticated data area is used (but not send separately) to authenticate source and destination addresses. [CRYPTO]: Remove confusing TODO comment in arc4.c [NET_SCHED]: HTB scheduler updates. Fixes: * Fix to htb_requeue routine. * Debug mode related oops fixes. [WATCHDOG] v2.6.5-rc2 Kconfig-patch Update Kconfig info to reflect the changes in wdt.c and wdt_pci.c [ACPI] ACPI SCI shall be level/low unless explicit over-ride http://bugzilla.kernel.org/show_bug.cgi?id=1622 add "acpi_sci=edge" and "acpi_sci=high" manual over-ride [ACPI] delete POWER_OF_TWO array (Pavel Machek) [NETFILTER]: ipv4 Kconfig URL updates. [NETFILTER]: Fix typo in ip_fw_compat_masq.c [NETFILTER]: Add MODULE_AUTHOR to ipchains_core.c [PATCH] ISDN Eicon driver: linked-list handling by kernel api list.h Removed own implementations for linked-list handling, use Linus kernel API of list.h instead. [PATCH] ISDN Eicon driver: fix compilation with non __exit function Function divacapi_remove_cards() is now used for __init as well, so it may not be marked __exit. Revert the input layer change that assumes the i8042 controller is always in XLATE mode. That's not true on at least some ppc64 boxes, and we shouldn't break those just because apparently some IBM PS/2 model 70 has something strange here. Cset exclude: vojtech@suse.cz|ChangeSet|20040303141401|00802 [PATCH] PPC64 iSeries kernel messages cleanup This patch cleans up and makes more consistent the messages produced by some of the iSeries virtual device drivers. It also make them less verbose. [PATCH] ppc64: remove duplicate FBIOBLANK ioctl translation From: Anton Blanchard Linus just added it to the generic compat layer, we can remove this (commented out) version. [PATCH] ppc64: Add eeh calls to hotplug driver From: Anton Blanchard The ppc64 hotplug code must register and deregister devices with the extended error handling (EEH) subsystem. [PATCH] ppc64: Fix log_rtas_error From: Anton Blanchard From: Santiago Leon Fix log_rtas_error bug where the results from the call that resulted in an error where lost due the attempt to log the error. [PATCH] ppc64: Remove some stale iseries code From: Anton Blanchard While scanning for the last few users of udbg, I found this. Its old code that we dont use, so remove it. [PATCH] ppc64: fix timebase bugs From: Anton Blanchard - Consolidate printing of timebase and cpuinfo in /proc/cpuinfo, there were many trivial differences between pseries/iseries/pmac. - Remove ppc_md.setup_residual, no longer needed - Fix for processors over 2.147GHz, from Jake Moilanen. We were using a signed int to parse the OF property. - Set some sane defaults for timebase and processor frequency if we fail to get the correct values from OF. [PATCH] ppc64: implement iommu=off for pseries From: Anton Blanchard Implement iommu=off for pseries. We limit memory to 2GB as pmac does, however the default for < 2GB remains iommu=on unlike pmac. [PATCH] pmac_zilog: sleep fix From: Benjamin Herrenschmidt This patch fix a problem with semaphore usage on wakeup from sleep in pmac_zilog (crashing some laptops on wakeup). [PATCH] ppc64: clean up boot messaegs From: Anton Blanchard Clean up early boot messages. [PATCH] ppc64: implement pci_dma_error From: Anton Blanchard Implement pci_dma_error. Create PCI_DMA_ERROR_CODE like sparc64, it will allow us to find and fix out of tree drivers using NO_TCE directly. ibmveth needs some surgery, fix it temporarily until the guys come up with a decent fix. [PATCH] fix device open return values The recent conversion of the open-of-a-nonexistent-blockdev return value from ENXO to ENODEV was wrong. We should have converted the chardev code to return -ENXIO too. [IPVS] Fix connection rehashing with new cport Update ppc64 G5-config to something more uptodate. (And more sane. Turn off ECN by default, add netfilter, and make sure we always support msdos partitions for external drives). [B44]: Restore PCI state in b44_resume(). [ACPI] toshiba_acpi 0.18 from John Belmonte add missing copyin [ACPI] share i386/kernel/acpi/boot.c with x86_64 [PATCH] ppc32: fix build with CONFIG_MODVERSIONS From: Paul Mackerras Olaf Hering This adds __kcrctab to the discard list for the link script for the boot wrapper, and is needed if you compile with CONFIG_MODVERSIONS. With this patch applied, we need to update makefile dependencies. Otherwise the bootfiles will remain untouched because they do not depend on the changed linker script. [PATCH] ppc64: iSeries virtual cd fix From: Stephen Rothwell This patch stops an oops caused by certain ioctls being performed on the virtual cdrom. In particular, the eject and tray close operations were affected. [PATCH] ppc64: iSeries virtual console cleanup (part 1) From: Stephen Rothwell This patch starts cleaing up (and paring down) the virtual console driver. It does: - viocons is NOT a serial driver - remove unneeded empty methods - change the console name [PATCH] sh: update defconfigs From: Paul Mundt This patch updates the sh defconfigs to use the board_defconfig format instead of the defconfig-board format that sh was using before. Since Sam Ravnborg already added the automated archhelp stuff that sh was using to the top-level Makefile, the sh version can be killed off. [PATCH] sh: port sh-sci driver to the new API From: Paul Mundt This ports the sh-sci driver to the new API. sh and h8 both use this. The intention is to leave the drivers/char sh-sci in place for a short period of time until all the h8 people are on the new driver (sh no longer uses the drivers/char version). [PATCH] sh: DAC ODD driver From: Paul Mundt SuperH DAC OSS driver. [PATCH] sh: DMA Mapping API From: Paul Mundt This implements the DMA mapping API for sh, as well as cleaning up some sh-specific DMA drivers. [PATCH] sh: hugetlb support From: Paul Mundt This implements hugetlb support for SH-4. SH-4 supports 1k/4k/64k/1MB pages, since we're only interested in the 64k/1MB sizes, this is what we support. The sh hugetlbpage code borrows heavily off of the sparc64 port, which works fine for these cases at this point in time. [PATCH] sh: sh-specific framebuffer updates From: Paul Mundt This includes sh-specific framebuffer updates, including updates to hitfb and pvr2fb, as well as adding sh to the pgprot_writecombine() users in fb_mmap(). [PATCH] sh: various fixes From: Paul Mundt This is the rest of the sh update, which includes everything else sh-specific, general cleanups, bugfixes, etc. Nothing really eventful. [PATCH] Work around compiler error in proc_misc.c From: Alan Stern A change which was recently applied to fs/proc/proc_misc.c included a comment about splitting a seq_printf into two pieces to work around a bug in gcc-2.95.3. Unfortunately gcc-2.96 still chokes on the statements. The patch below makes it work better and tidies the code up a bit. [PATCH] fbcon font cloning fix From: Petr Baudis This patch fixes a bug which I hit when migrating from 2.4. Basically, when I do setfont during the system boot, the then-spawned ttys do not retain the new font but fall back to the default one. I've tracked that down to a clearly bogus test in fbcon_set_display(), because vc->vc_font.width is not set at that time yet (no font has been loaded for the new vc). But even if it would (or this was meant to test against tmp->vc_font.width), it would mean only *HUGE* fonts would be retained. And even if there were *two* bugs there and it was supposed to be less-than there, I couldn't make a sense of the test. [PATCH] i386 Kconfig typo fix From: Armin Schindler just a small patch to fix a typo. [PATCH] tgafb: missing include This is a temporary fix, pending fuller TGA updates. From: Christian Vogel: drivers/video/tgafb.c is missing a include, complaining about color_table[] and others not being defined. [PATCH] rename dma_error() We're getting namespace collisions from the new dma_error(), and it wasn't a well-chosen identifier. Rename it to dma_mapping_error(). [SCTP] Don't do any ppid byte-order conversions as it is opaque to SCTP. [SCTP] Avoid the use of hackish CONFIG_IPV6_SCTP__ option. [PATCH] ia64: add dma_mapping_error() support ia64: Manual merge of Andrew/Alex/Bjorn's dma_mapping_error() changes. [PATCH] ia64: SN2 salinfo oemdata race fix sn_oemdata_* variables must only be used under the sn_oemdata_mutex. [PATCH] ia64: quiet sn_serial driver Bjorn pointed out that the sn console driver will spew printks if compiled in even if no hardware is present. In addition to fixing that, I took the opportunity to cleanup/correct a few other printks in that driver. [PATCH] ia64: lost sx1000 naming in sba_iommu Mainly cosmetic, but Bjorn noticed I got a little over zealous in cleaning out the sx1000 specific init routines in sba_iommu. This adds back in the ID->name mapping so it doesn't show up as "Unknown". [PATCH] ia64: deprecate SN2 linkstatd This patch against 2.6.5-rc2 affects the SGI/SN platform only. It deprecates a kernel daemon for our interconnect traffic statistics which has been replaced by a userland tool. [PATCH] More pmac-zilog sleep fix In the long story of "BenH can't get a simple fix right the first time", please add this one to pmac_zilog, and now people should enjoy really working sleep again on pmac laptops ... If the serial port was closed, we could use an uninitialized "pwr_delay" and pass that to schedule_timeout(). [PATCH] Cosmetic fix of BMAC boot messages This fixes the display of the boot messages on the BMAC driver (pmac only). It used to be messed up in 2.6 [PATCH] ia64: Fix SAL 3.2 detection This important fix checks the SAl *revision* rather than the *version*. I carefully documented which was which, then used the wrong one. [SPARC64]: Handle NULL type arg properly in sys32_mount(). [PATCH] Threaded core dumps for PPC32 At the moment, ppc32 kernels will oops if a threaded program tries to dump core. We call dump_fpu with a NULL regs pointer, which it tries to dereference. This fixes the issue by implementing the hooks used in doing threaded core dumps properly. [PATCH] fix ppc32 sys_swapcontext This fixes a bug in the swapcontext system call on ppc32. On ppc32, the system call entry only saves the volatile registers, except in the case of a few system calls (e.g. fork) which need all the registers saved. Swapcontext needs all the registers but we weren't saving them all. So fixes that. [AGPGART] Mass ia32e renaming. Andi pointed out that Intel changed their nomenclature for this monster to EM64T instead. Updated the text to mention the actual AGP chipset this driver supports rather than the CPU architecture, which is irrelevant. Change various function names accordingly. [AGPGART] Remove more unneeded routines from the new Intel driver. JFS: Prevent hang in __lock_metapage Remove the hold_metapage call from txLog to prevent a hang. While investigating this one, I audited all functions that held metapage locks and found several error paths that did not release them correctly. These are fixed as well. [SPARC64]: Provide d_type in sys32_getdents(). [SPARC64]: Do not use cast exprs as lvalues. JFS: don't use global lock in lmLogSync when local lock is sufficient I stupidly used the global jfs_log_sem to protect log->sb_list when implementing the shared journal stuff. Since we already hold LOG_LOCK, it makes more sense to use that to protect log->sb_list. This caused horrible serialization when running on lots of jfs volumes. [IPV4]: Zap CONFIG_INET_ECN, just always off by default. [IPVS]: Fix to hold the lock before updating a service Brett E. noticed the missing service lock for editing dest. Julian Anastasov provided the patch. [NET_SCHED]: Fix class reporting in TBF qdisc. The patch below fixes issue with 'tc class show dev ' not showing any classes when TBF qdisc is present in the chain. PLease consider for inclusion. [NET_SCHED]: Trailing whitespace cleanup in TBF qdisc. [PATCH] ia64: fix name conflict with handle_exception() I tried to build usb/gadget/file_storage.c (CONFIG_USB_FILE_STORAGE=y), but it uses "handle_exception()" for its own purposes, which conflicts with the ia64 definition. ia64 only uses handle_exception() within arch code, so it seems like we ought to rename it to be ia64-specific. done_with_exception() looks similar, so I renamed it as well, although there's no actual conflict. [IPV6]: Error is option length increases amidst corking. [IPSEC]: Missing family settings in af_key and xfrm_user. [PATCH] ppc64: fix mount compat translation bug From Dave Miller: We weren't handling a NULL 'type' argument to mount() properly, f.e. this happens legitimately when changing the options of an existing mount. [ARM] arch_arm_mach-sa1100_Kconfig URL update Patch from: Rusty Russell From: Petri Koistinen URL updates. [ARM] arch/arm/boot/Makefile: s/quite_cmd_mknote/quiet_cmd_mknote/ Patch from: Arthur Othieno This fixes a typo in arch/arm/boot/Makefile. [PCMCIA] attack of the clones Patch from: Daniel Ritz This patch adds the TI clones from ENE to the override list in yenta_socket.c. [PATCH] ppc64: getdents patch for 32 -> 64 converter From: Anton Blanchard From: Marcus Meissner With 2.6.4 we now have the glorious hidden d_type passing in getdents. glibc CVS expects this to be passed if we have a kernel version after 2.6.4, so we have to also handle it in the 32bit syscall converter. [PATCH] ppc64: SMT snooze fix in idle loop From: Olof Johansson A smt_snooze_delay of 0 is supposed to mean "disabled", but current idle loop logic doesn't take that into account and snoozes immediately instead. Below patch fixes the logic in the idle loop, as well as cleans up the test a bit. An idling processor might no longer see a snooze change immediately, but that's not needed anyway. [PATCH] null-terminate sb->s_id strncpy() may not null-terminate the destination. [PATCH] ext2&3: use the right i_flags in find_group_orlov() Spotted by Jorn Engel : both the generic and fs-specific parts of the inode have an i_flags. find_group_orlov() is using the wrong one. [PATCH] Broken CDROMs default to writeable From: Jens Axboe If the drive doesn't support GPCMD_READ_DISC_INFO at all, permit writeable opens. [PATCH] don't show cdroms in /proc/partitions From: Jens Axboe Currently SCSI cdroms show up in /proc/partitions in 2.6, they didn't in 2.4. And ATAPI cdroms don't show up either. Mark both as genhd removable for now, when they are partionable this can be updated. [PATCH] ia64: don't prompt for the floppy driver From: David Mosberger From: Bjorn Helgaas We can't build floppy.o on ia64, so why bother asking? [SPARC32]: Use correct atomic initializer for semaphore counters Semaphores use 24-bit atomics, not 32. Using the wrong initializer causes immediate deadlock under SMP, and incorrect results under UP. [PATCH] forgotten pci_dma_mapping_error on x86-64 x86-64 needs this (obvious) patch, due to the rename. [ARM] Add support for dev->coherent_dma_mask This adds AMBA and SA11xx support for dev->coherent_dma_mask. [ARM] Remove Anakin machine support. Anakin has not been maintained since it was (partially) merged, and the maintainers appear to ignore mail about it. No one appears willing to maintain it either. However, some unrelated kernel maintainers have been updating various files while they've been working in the area - which is wasted work for something which isn't maintained. Therefore, this cset removes Anakin completely from the kernel. [PATCH] con_close() deadlock fix I'd assumed that vcs_remove_devfs() could not possibly take console_sem(). Seems I was wrong. [PATCH] SATA: fix and enable sata-sil sata_sil: it's a widely deployed chipset. Now that we've fixed it, let users use it. sata_via: Disk detection via SATA phy registers appear problematic. Until that problem is identified and fixed, used the old PATA detection code -- that was used in 2.6.4 -- instead. [ARM] Add dma_mapping_error() definition. ia64: Improve layout of cpuinfo_ia64 Stephane made some measurements on the access-pattern of the cpuinfo_ia64 members and based on those results, this patch reorganizes the structure for better cache-line sharing. ia64: Minor formatting fix for two earlier patches. ia64: Correct value for PREFETCH_STRIDE. [SPARC64]: Update defconfig. [ACPI] PCI interrupt link routing (Luming Yu) use _PRS to determine resource type for _SRS fixes HP Proliant servers http://bugzilla.kernel.org/show_bug.cgi?id=1590 [ATM]: [lec] lec_push() races with vcc->proto_data [ATM]: [nicstar] use kernel min/max (by Randy.Dunlap ) [IGMP]: Do nothing in ip_mc_down() if ip_mc_up() was not called previously. ia64: Fix typo in unwinder which could cause NULL-pointer dereferences. [PATCH] ia64: update sn2_defconfig [PATCH] ia64: fix kernel NULL-pointer message Add missing newline to kernel version of NULL-pointer message and also print the address while we're at it. [PATCH] ppc32: Fix racy access to TI_FLAGS The ppc32 syscall entry code could access the thread info flags in a racy way, thus potentially losing bits sets there at interrupt time or by another CPU, like NEED_RESCHED or SIGPENDING (ouch !). This fixes it by moving the potentially racy bit to a different field (I preferred that rather than turning the access into an atomic operation for performances reasons). [PATCH] adbhid preempt/smp races This fixes a few races in the LED code of the adbhid driver that would affect SMP or preempt. [PATCH] powerbook via-pmu races This fixes some racy code in the management of asynchronous brightness and battery requests in the via-pmu driver used on powerbooks. This should fix some preempt related problems (there is no SMP powerbook yet :) [PATCH] dmasound close timeout The dmasound driver occasionally hangs a process on exit. Apparently there is a possible case where the sound HW stops draining output samples and the driver waits forever in its release() callback. It should check for signals(), but it seems signal_pending() never returns 1 when the process is beeing killed (implicit release() of files on exit). This patch adds a safety timeout to the release() function to make sure we can at least close the driver. I'll try to find the reason we aren't driving samples later, but it is better to have a safety just incase the sound clock goes berserk for some reason. [PATCH] ppc32: arch code preempt fixes I figured the best way to stop beeing bothered by users trying to run preempt was to fix it ;) Here's a first batch that close some races we had when testing regs->msr for altivec or FPU enable, then doing the giveup_* function. A preempt in between those would have caused us to save a stale altivec or FPU context. [PATCH] ide-cd capacity fix Only allow get_last_written() to override get_capacity(), if it is bigger. [WATCHDOG] v2.6.5-rc2 pcwd.c-patch2 * Extracted the get_status code to a seperate function (pcwd_get_status) * Re-used the pcwd_get_status code for the initial/boot status Tested on pcwd card with temperature option [SPARC64]: Do not lvalue cast in pgd/pmd macros. [SPARC64]: Fix lvalue casting in signal32.c [SPARC64]: Fix lvalue casting in sys_sunos32.c [SPARC64]: Fix svr4_stack_t typing in svr4.h [ACPI] proposed fix for non-identity-mapped SCI override http://bugme.osdl.org/show_bug.cgi?id=2366 [SPARC64]: Fix lvalue casting in sys_sparc32.c [ACPI] ACPICA 20040326 from Bob Moore Implemented support for "wake" GPEs via interaction between GPEs and the _PRW methods. Every GPE that is pointed to by one or more _PRWs is identified as a WAKE GPE and by default will no longer be enabled at runtime. Previously, we were blindly enabling all GPEs with a corresponding _Lxx or _Exx method - but most of these turn out to be WAKE GPEs anyway. We believe this has been the cause of thousands of "spurious" GPEs on some systems. This new GPE behavior is can be reverted to the original behavior (enable ALL GPEs at runtime) via a runtime flag. Fixed a problem where aliased control methods could not access objects properly. The proper scope within the namespace was not initialized (transferred to the target of the aliased method) before executing the target method. Fixed a potential race condition on internal object deletion on the return object in AcpiEvaluateObject. Integrated a fix for resource descriptors where both _MEM and _MTP were being extracted instead of just _MEM. (i.e. bitmask was incorrectly too wide, 0x0F instead of 0x03.) Added a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName, preventing a fault in some cases. Updated Notify() values for debug statements in evmisc.c Return proper status from AcpiUtMutexInitialize, not just simply AE_OK. [ACPI] Linux specific updates from ACPICA 20040326 "acpi_wake_gpes_always_on" boot flag for old GPE behaviour [ARM] Don't conditionally include the sound configuration [WATCHDOG] v2.6.5-rc2 pcwd.c-patch3 Version 0.15 of pcwd.c - Changes that were made are: * Rewrote code for exchanging commands with the ISA-PC Watchdog card * Restructured + rewrote the init and exit code * Added option_switches info * Use the option_switches info to find out what the cards heartbeat is * Added notifier support Tested on pcwd card with temperature option [WATCHDOG] v2.6.5-rc2 pcwd.c-patch4 Version 0.16 of pcwd.c - Changes that were made are: * Changed the driver so that it uses an internal timer to do the actual watchdog pinging. This way the watchdog's emulated 'heartbeat' is usuable as a module parameter. The watchdog's heartbeat can now vary from 2 till 7200 seconds Tested on pcwd card with temperature option [PATCH] Fix x86-64 32bit getdents for new glibc The newest CVS glibc assumes that Linux >=2.6.4 always passes d_type. This patch adds this to the 32bit getdents on x86-64 too Patch originally from Marcus Meissner [PATCH] Don't register disabled nodes Don't register disabled nodes. Hits on x86-64 when there is a node with no memory. X86-64 shares this code with i386. [PATCH] Emulate deviceless bridge ioctls This helps vmware users running vmware on x86-64 - vmnet tries to set up a bridge. Emulate these ioctls. The bridge has more ioctls on its bridge device, but these don't seem to be needed here. [PATCH] Fix cyclades async driver timeout miscalculation This fixes a problem where cy_wait_until_sent() miscalculates (calculate -1 on a unsigned long) the "char_time" parameter passed to schedule_timeout(). Fix that by making it a signed long, and checking for negative value. [PATCH] write_kmem() fix copy_from_user() returns non-zero on faults.. [PATCH] ipc locking fix From: badari I ran into an ipc hang while trying to shutdown a database. The problem is due to missing sem_unlock() in find_undo(). [PATCH] s390: core fixes. From: Martin Schwidefsky s390 core changes: - Fix return type of some system call functions (long vs. int). - Fix prototypes for compat system call handlers. - Correct some bugs in the compat system call wrappers. - Fix broken pointer arithmetic which causes problems with gcc 3.4 and -march=z990 - Remove unnecessary #ifndef & optimize inline assemblies in spinlock.h. - Improve handling of deferred condition code 1. - New default configuration. [PATCH] s390: dasd driver. From: Martin Schwidefsky dasd device driver changes: - After a state change interrupt restart all running i/o on queue and reset device timer. - Improve some debug messages. - Lower timeout of reserve/release/steal_lock to 2 seconds. - Fix BIODASDPSRD ioctl. - Replace ro_flag, use_diag_flag and disconnect_error_flag words by bits. - Use BLKPG_DEL_PARTITION ioctl instead of a call to delete_partition because delete_partition is not an exported function. Since dasd_destroy_partitions can't do blkdev_get because dasd_open would fail, keep the block device open as long as partitions exist. This in turn requires a different approach to the open vs. offline race. [PATCH] s390: z/VM monitor stream. From: Martin Schwidefsky z/VM monitor stream changes: - Correct sysctl vs. module ref-counting. [PATCH] s390: network driver. From: Martin Schwidefsky s390 network driver changes: - ctc/lcs/qeth: prevent a ccw-device to be grouped multiple times. - icuv: clear correct field in iucv_register_program if no userid is specified. - lcs: fix online/offline cycle again. - lcs: fix ungrouping of lcs group device. The channels of the lcs card should be offline afterwards. - lcs: don't do netif_stop_queue if no tx buffer is available, just return -EBUSY and drop the packets. [PATCH] s390: tape driver. From: Martin Schwidefsky s390 tape driver changes: - Prevent offline while device is in use. - Do not use bus_id string in debug feature messages. - Check for IS_ERR(irb) error conditions in interrupt handler. - Fix removing tape discipline modules. [PATCH] s390: system call speedup part 1. From: Martin Schwidefsky The purpose of this is to speed up system calls on s390. I managed to squeeze about 65 cycles from each system call. This improved e.g. getpid() from 232 to 157 cycles. As a nice side-effect it simplified the uaccess functions considerably. [PATCH] s390: system call speedup part 2. From: Martin Schwidefsky System call speedup part 2. [PATCH] adjuct cpu_khz in response to cpufreq changes From: john stultz This patch ensures that cpu_khz is adjusted on cpufreq notifications even when the tsc timesource is not in use. It fixes the mostly cosmetic issue when using the ACPI PM timesource of /proc/cpuinfo not being properly updated when cpu frequency was lowered. [PATCH] selinux: check return value for receive node permission From: James Morris This patch fixes a bug where the return value for a permission call is not checked. The bug was introduced when I added some code in the following changeset: Code was added after this line: err = avc_has_perm(isec->sid, node_sid, SECCLASS_NODE, node_perm, NULL, &ad); without adding an explicit check of 'err', which was previously returned from the function rather than being checked. i.e. it would drop through to: out: return err; } With the new code added, err can (and typically would) be overwritten with a successful value, causing the permission check to not deny permission if needed. The intended denial would have been logged. The patch below fixes this problem. [PATCH] Fix uninitialized data in EFI RTC /proc interface From: Bjorn Helgaas The problem is that we don't clear out the efi_time_t buffer before asking EFI to fill it in. EFI doesn't always write the entire buffer (in particular, the alarm time only supports one second resolution, so the nanosecond field is often untouched). The effect is that 'cat /proc/driver/efirtc' shows garbage in the nanoseconds part of the alarm time, and sometimes artifacts like bogus alarm date and junk after the actual end of the text. [PATCH] Remove from cmdlinepart.c From: Bjorn Helgaas Remove include of from cmdlinepart.c. This is not be needed for i386 (it builds fine with this patch), and ia64 doesn't supply a setup.h. asm/setup.h contains a hodge-podge of stuff with no real consistency between architectures. It appears to be included mainly by arch-specific drivers: acsi (Atari disks) amiflop (Amiga floppy) z2ram (ZorroII ram disk) amiserial (Amiga serial) ... and under arch-specific #ifdefs: fbcon (under __mc68000__ or CONFIG_APUS) fonts (ditto) logo (CONFIG_M68K) ... [PATCH] consolidate compat_sys_mount This replaces six duplicated implementations of various quality of sys32_mount with a shiny new compat_sys_mount(). It's been tested on parisc64 and sparc64 and fixes a bug exposed by the latest revision of Debian's initscripts. Thanks to Arnd Bergmann and Dave Miller for their suggestions, fixes and testing. Please apply. [PATCH] [PPC64] make compat filldir/getdents check for errors filldir and getdents should check return values of put_user etc. The generic code has been fixed but the ppc64 compat versions have not. [PATCH] ide.c: remove unused code for hwif->mmio == 1 [PATCH] remove unused CONFIG_BLK_DEV_TIVO TiVo IDE support was never merged only this option was (in 2.4.0-test2), sigh. [PATCH] remove unused CONFIG_DMA_NONPCI It has been dead since kernel 2.5.18. [PATCH] remove unused ide_hwif_t->pnp_dev [SPARC64]: Fix one last cast-as-lvalue, present in uniprocessor builds. [PATCH] USB: Eliminate wait following interface unregistration This patch from Alan Stern fixes a bug in the current USB code that causes khubd to hang when a device is removed from the system, thereby preventing any future USB device changes (like adding or removing other devices) from happening. Both Andrew and I can easily duplicate this bug against the current -bk tree. It's not a perfect fix, but it works for now, and I will spend the next week working on restructuring the code so this is handled properly. [PATCH] ppc64: Fix thinko in iommu allocator This fixes a bug in the iommu allocator that causes it to behave strangely when a fair size of the table is allocated. Thanks to Andrew Gallatin for finding this. [PATCH] ppc64: Use full DART table on G5 This increases the DART table to use the full size. We allocate a full 16MB page anyway, so there's no difference in memory consumption. Thanks to Ben for spotting this, it was left over from debugging... [PATCH] Fix bugs introduced by recent improvements to readdir_plus - make sure cd->buffer is always inside a page - previously if an entry fit perfectly in the remainder of a page, cd->buffer would end up pointing past the end of that page. - make sure num_entry_words is always correct, even on the error path. [ARM] Remove vm_region_dump() debugging. [ARM] Move kmalloc() and spinlocks into vm_region_alloc() [ARM] Extend DMA API on ARM for DMA-able writecombining memory. This is mainly for ARM framebuffer drivers, some of which are presently either open-coding this functionality, or using some internal ARM architecture function to get what they want. [AGPGART] Minor CodingStyle fixups. [PATCH] add missing A few asm/types.h test a config variable without including first, which can e.g. cause different sector_t definitions. HFS fell victim to that and broke on ppc with CONFIG_LBD enabled. I scanned all asm/types.h and added as necessary. [PATCH] ppc32: More preempt fixes This patch fixes more cases of possible preempt issue when testing MSR for FP or VEC bits and then doing giveup_fpu or giveup_altivec that I missed in my previous round of fixes (bk get helps before grepping ;) I also change the single step and program check exceptions to not re-enable interrupts right away on C code entry, it was useless and would cause interesting issues with preempt & xmon [PATCH] Add BINFMT_MISC docs for Mono .NET-based binaries Just as there is documentation for BINFMT_MISC and Java bytecodes support, I thought it could be interesting to add documentation on how to add BINFMT_MISC support for directly running .NET ".exe" binaries using the Mono CLR. [PATCH] ppc64: syscall error test incorrect for 64 bits results The syscall return path on ppc64 checks if the error is between -LAST_ERRNO and 0, if it is, does the usual inversion along with setting a CR bit indicating to glibc that an error occured. However, we had an interesting bug where we used a 32 bits logica (unsigned) comparison, thus possibly doing false positives for valid 64 bits unsigned values whose low 32 bits happen to be in the error range. Fix that. [PATCH] ISDN CAPI: fix capiminor_alloc() to assign lowest free minor From: Frank A. Uepping This fixes capiminor_alloc() to assign the lowest free minor for a new capi_tty. Thanks to Frank A. Uepping and Tim Woods. [PATCH] fix oops at pmac_zilog rmmod'ing From: Colin Leroy rmmod'ing pmac_zilog currently oopses because uart_unregister_driver(), which nullifies drv->tty_driver, is called before uart_remove_one_port(), which uses said drv->tty_driver. The comment at top of uart_unregister_driver() specifically says we have to have removed all our ports via uart_remove_one_port() before. [PATCH] email address update [ARM] Convert ARM video drivers to use (ARM extended) DMA API. [ARM] Remove consistent_alloc/consistent_free Since we've eliminated users of these functions, we can unexport them. Instead, drivers should use the DMA API interfaces. [ARM] Clean up coherent DMA allocator from previous changes. - Since the coherent DMA allocator is not currently compatible with HUGETLB, ensure that we fail at compile time should this option be selected. - Move struct device/dma mask handling into consistent_alloc(). - Complain if someone tries to allocate coherent memory larger than their DMA mask will permit. - Rename consistent_alloc() to __dma_alloc() to ensure that there is no confusion that consistent_alloc() has gone. - Ensure warnings and errors report the correct function name. [ARM] Fix Acorn RTC year handling. Acorn decided to use an esoteric method for handling the year. Update RTC implementation to follow this method. [PATCH] arch/x86_64/ia32/sys_ia32.c needs vmalloc.h [PATCH] md: Convert a number or "unsigned long"s to "sector_t"s From: NeilBrown This helps raid5 work on at least 1 very large array.. Thanks to Evan Felix [PATCH] Fix posix scheduling violation for !SCHED_OTHER From: Joe Korty The following fixes a problem where a SCHED_FIFO task would on occasion be moved to the end of its runqueue when returned to from a preemption. Cause was due to some SCHED_OTHER code in schedule() which was being run for tasks of every policy. [PATCH] Fix slab creation/destruction vs. CPU Hotplug From: Rusty Russell From: Srivatsa Vaddagiri Hit a couple of (cpu hotplug) races in slab allocator during my tests. Mostly it was because of continuous loading/unloading fs/minix/minix.ko while simultaneously doing offline/online of CPUs. As part of its init and exit routines, minix.ko create/destroys caches, which lead to several oopses. 1. kmem_cache_create In brief, kmem_cache_create does: a) calls enable_cpucache to create per-cpu cache for all online CPUs. b) adds the cache to the global list of caches These two are not done atomically and thats what causes problems. For ex: lets say that at the time of step a) CPU1 is not online. Hence no per-cpu cache is created for CPU1 (cachep->array[1] is NULL). However CPU1 is not completely dead in the sense that CPU_DEAD processing for it is not yet over. By the time CPU_DEAD processing starts for CPU1, step b) is complete. So cpuup_callback finds this cache and tries freeing it's per-cpu cache associated with CPU1. In the process it dereferences a NULL pointer and dies. 2. kmem_cache_destroy In brief, kmem_cache_destroy does: a) deletes the cache from the global list of caches b) Drain per-cpu cache (drain_cpu_caches), which basically uses smp_call_function to run do_drain on all online CPUs. One possible race is let's say that CPU1 is coming up. By the time CPU_UP_PREPARE is processed for CPU1, step a) is complete. Hence cpuup_callback does not allocate any per-cpu cache for the cache that is being destroyed. However by the time step b) is run, CPU1 is completely online (taking interrupts). It receives the IPI and tries draining it per-cpu cache (which is NULL) and dies there. I think we need to serialize kmem_cache_create/destroy against CPU hotplug to prevent these problems. Patch below does that by taking CPU Hotplug sem (which is OK since kmem_cache_create/destroy are not very frequently used?). [PATCH] cmpci warning fixes From: Luiz Fernando Capitulino sound/oss/cmpci.c: In function `cm_release_mixdev': sound/oss/cmpci.c:1465: warning: unused variable `s' [PATCH] Pass correct task to get_user_pages in ptrace From: Andi Kleen ptrace/access_process_vm was passing current to get_user_pages as task, but it should have been clearly the child task instead. This fixes the fault accounting in ptrace and the vsyscall debugging on x86-64 (it needs the correct task_struct to map the vsyscall pages) [PATCH] fix a warning in sound/oss/opl3sa2.c. From: Luiz Fernando Capitulino sound/oss/opl3sa2.c:163: warning: `opl3sa2_lock' defined but not used [PATCH] cciss: support MSA30 storage enclosures From: This change is required to support the new MSA30 storage enclosure. If you do a SCSI inquiry to a SATA disk bad things happen. This patch prevents the inquiry from going to SATA disks. [PATCH] cciss: return -ENXIO on no-device-present From: mike.miller@hp.com If no device is attached we now return -ENXIO instead of some bogus numbers. Prevents applications from trying to access non-existent disks. Also adds HDIO_GETGEO_BIG IOCTL that fdisk uses. [PATCH] Kill IDE debug messages during suspend From: Pavel Machek Suspend/resume support in ide seems to work okay these days, so this should be applied. [PATCH] update i386 defconfig From: Jeff Garzik I pretty much said 'no' to everything "(NEW)", so any "=y" you see are the result of Kconfig rules, not me. [PATCH] Fix /proc/swaps output alignment From: Hugh Dickins There's an irritating extra space upsetting alignment in the 2.6 /proc/swaps, which already arranges a space to separate the fields. [PATCH] don't display viocd partitions in /proc/paritions From: Olaf Hering Further to the recent removal of CDROMs from /proc/partitions. [PATCH] Disable debugging in parport daisy From: Andi Kleen We are in production now. No more debugging needed. [PATCH] inode dirtying timestamp fix It's a bit late in 2.6.5-rc for this, but it does fix a significant bug: for the first five minutes after boot, prior to the jiffy wrap, /bin/sync doesn't write all of the dirty data. We currently record an inode's time-of-first-dirtying in the address_space. This causes a few problems with dirty block special inodes: when the device node for /dev/hda1 needs to be written back we bogusly inspect the timestamp for the address_space, which belongs to a different inode. So move the inode's dirtying time up into the inode itself. This means that for block-special inodes, inode->dirtied_when represents the time at which the inode itself was dirtied. For regular files it represents the time at which the inode or its pages were dirtied. For blockdevs, the time-of-first-dirtying is recorded in the kernel-internal blockdev inode. Only I_DIRTY_PAGES makes sense on these inodes. The reason all this works is that when dirtying a page we always run __mark_inode_dirty(page->mapping->host); which refers to the kernel-internal blockdev inode. [PATCH] fix SATA simulation of 6-byte read/write Here's one for -rc... either this bit is assumed on most modern drives, or nobody uses the 6-byte commands for read/write (which is very likely). Either way it definitely wants fixing. Since we use the modern "LBA" method of addressing sectors, this bit must be present in the Device register when issuing a read or write. There are three code paths that need this bit, and only two of them actually set it. This patch fixes the third (and apparently never used) code path. [PATCH] asm-sparc{64}/ide.h cleanup (there are no standard ports) Acked by David Miller. [PATCH] asm-parisc/ide.h cleanup (there are no standard ports) Acked by Grant Grundler and Matthew Wilcox. Linux 2.6.5-rc3