Summary of changes from v2.6.4-rc1 to v2.6.4-rc2 ============================================ [PATCH] sys_device_[un]register() are not syscalls sys_xyz() names in Linux are all syscalls... except for sys_device_register() and sys_device_unregister(). This patch renames them so that the sys_ namespace is once again used only by syscalls. [PATCH] propogate errors from misc_register to caller The patch to check for / in class_device is not enough. The misc_register function needs to check return value of the things it calls! [PATCH] PCI: Report meaningful error for failed resource allocation pci_assign_resource reports odd messages when resource allocation fails. This is because res->end and res->start are modified by allocate_resource. For example: PCI: Failed to allocate resource 1(0-ffffffff) for 0000:00:01.0 The following patch reports whether it's an IO or memory resource, and includes the correct size. For consistency, we report it in a similar way to the failure message in pci_request_region(), even though res->start is unlikely to be useful. [PATCH] PCI: Don't report pci_request_regions() failure twice pci_request_regions() reports an error when pci_request_region() fails. However, since pci_request_region() already reports an error on failure, pci_request_regions() has some unwanted duplication. [PATCH] PCI: Introduce bus->bridge_ctl member GregKH mentioned confirmed that people have been waiting for this patch. Appologies, it had completely evaporated from my mind. This patch introduces the "bridge_ctl" member of pci_bus, which allows architectures to tweak the bridge control register (eg, for setting fast back to back modes etc) in pcibios_fixup_bus(). Please note, though, that the value is only written back if pci_setup_bridge() is called. This will be called if an architecture is using the generic PCI bus setup functionality in setup-bus.c. If an architecture doesn't, then it is the responsibility of the architecture to write this value to the bridge as appropriate. (That said, the bridge control register is only ever changed if an architecture is using setup-bus.c anyway, so there should be no overall functional change.) [PATCH] PCI Hotplug: fix rpaphp bugs The attached patch has a fix for the conflict between fakephp and rpaphp so that fakephp and rpaphp can't be built into the kernel at the same time and a couple of problems I missed in my previous patch. (Sorry about that). [PATCH] PCI Hotplug: Patch to get polling mode in SHPC hot-plug driver properly working Here is the patch to get polling mode in SHPC hot-plug properly working. PCI Hotplug: remove unneeded ACPI Makefile rules. PCI Hotplug: clean up the Makefile a bit more. Still need to fix up the pcie and shpc options to be saner for distros to use. [netdrvr r8169] fix TX descriptor overflow Please apply attached patch. Without patch, bogus descriptors are parsed as soon as tp->cur_tx%NUM_TX_DESC + (tp->cur_tx - tp->dirty_tx) > NUM_TX_DESC (assume for instance tp->dirty_tx = NUM_TX_DESC/2, tp->cur_tx = NUM_TX_DESC - 1 and watch entry go beyond NUM_TX_DESC). Missing stats update is fixed by the patch btw. JFS: Error path accessed uninitialized variables IEEE1394(r1165): Better pending packet handling, patch from Steve. [PATCH] fix x86_64 build for sys_device_register rename fix x86_64 build for sys_device_register rename [XFS] Use same string for identifying whether security namespace is enabled. SGI Modid: xfs-linux:xfs-kern:166409a [XFS] Add XFS_FS_GOINGDOWN interface to xfs. SGI Modid: xfs-linux:xfs-kern:166489a [XFS] Add I/O path tracing code, useful in diagnosing that last unwritten extent problem. SGI Modid: xfs-linux:xfs-kern:166497a [XFS] use generic XFS stats and sysctl infrastructure in pagebuf SGI Modid: xfs-linux:xfs-kern:166505a [XFS] Use a naming convention here thats more consistent with everything else. SGI Modid: xfs-linux:xfs-kern:166562a [XFS] Remove a superflous i_size_write SGI Modid: xfs-linux:xfs-kern:166629a [XFS] Fix up daemon names SGI Modid: xfs-linux:xfs-kern:166665a [XFS] Fix BUG in debug trace code, it was plain wrong for the unmapped page case. SGI Modid: xfs-linux:xfs-kern:166828a [XFS] Merge missing mount stripe-unit/width-alignment check. SGI Modid: xfs-linux:xfs-kern:166614a [XFS] Fix the by-handle attr list interface (used by xfsdump) for security attrs. SGI Modid: xfs-linux:xfs-kern:167038a [XFS] only lock pagecache pages SGI Modid: xfs-linux:xfs-kern:167054a [XFS] Implement mrlocks on top of rwsems, instead of using our own mrlock code. SGI Modid: xfs-linux:xfs-kern:167181a [XFS] Fix length of mount argument path strings, off by one. SGI Modid: xfs-linux:xfs-kern:167192a [XFS] Fix log recovery case when have v2 log with size >32K and we have a Log Record wrapping around the physical log end. Need to reset the pb size back to what we were using and NOT just 32K. SGI Modid: xfs-linux:xfs-kern:167196a IEEE1394(r1166): Move generic packet initialization to kmem_cache ctor. IEEE1394(r1167): Cleanup hostnum allocation to prevent race of double allocation. IEEE1394(1164): Added 1394 acknowledge codes. [PATCH] ia64: make hugetlbfs page size a boot-time option This patch makes it possible to select the hugetlbfs page size at boot-time, rather than at compile-time. We believe we have resolved all the remaining issues. All critical speed path has been taken care of, i.e., vhpt handler and context switch. There should be no performance penalty with this dynamic hugetlb page size feature. We would like to thank Jack Steiner for his initiative on this feature and his initial cool working patch. kobject: fix kobject hotplug debug message to show more needed info. kobject: clean up kobject_get() convoluted logic. [PATCH] Driver for IBM service processor - updated (1/2) Here is a device driver for the IBM xSeries RSA service processor. The ibmasm driver is mainly intended to be used in conjunction with a user space API and systems management applications that need to get in-band access to the service processor, such as sending commands or waiting for events. For the remote video feature the driver relays remote mouse and keyboard events to user space. By itself the driver also allows the OS to make use the UART on the service processor board as a regular serial line. The user interface to the driver is a custom file system. It does not use sysfs since the operations on the files are somewhat beyond the one file / one value rule for sysfs. Since it is not strictly a char driver I put it into the drivers/misc directory. The patch is fairly big, therefore I split it up into the file system part and the everything-else part. Here is the non-filesystem part: [PATCH] Driver for IBM service processor - updated (2/2) Here is the filesystem part for the IBM RSA service processor device driver [PATCH] hp100 -- isa probe fix Jeff, here is a cleaned up version of the 2.6.3 hp100 isa (non-modular) probing. It needs to check for the board being present before reading the signature. [MTD] Fix build errors in Lubbock MTD map driver. [ARM] Fix SA1111 OHCI IRQ handler return type. [MTD] Fix ARM Firmware Suite MTD partition detection. Tighten AFS partition checks: - check footer checksum. - check that the image name is NUL terminated. - return error from mtd->read intact. This prevents us finding bogus AFS partitions. [MTD] Update integrator-flash.c with MTD CVS. Allow command line partitioning for use with Integrator flash. [PATCH] ia64: move irq_entry()/irq_exit() to ia64_handle_irq() This patch fixes a bug which could cause do_softirq() to be called at the wrong time (from do_IRQ()) or without pre-emption protection. [PATCH] export locks_remove_posix kNFSd needs it. [PATCH] ppc64: Add iommu=on for enabling DART on small-mem machines This makes it possible for people like me with a small-mem G5 to enable the DART. I see two reasons for wanting to do so: 1. To debug/test DART/iommu code itself (small audience, including myself). 2. To debug drivers on small-mem machines, since bad pci_map*() usage will be punished (possibly larger audience). IEEE1394(r1168): Add on a mempool for packet allocation, in addition to the kmem_cache. IEEE1394(r1169): Trivial cleanups. IEEE1394: Revision sync ia64: Fix IDE block-layer BUG_ON() reported by Darren Williams. The problem was that IDE-disks on machines with IDE harddisks, memory above 4GB and no hardware I/O TLB would go BUG_ON() in blk_queue_bounce_limit() because the IDE-controller could only address 4GB of memory and that was much less than BLK_BOUNCE_ISA (which is equal to ISA_DMA_THRESHOLD). Note that the problem does NOT trigger with CD-ROMs, which always uses the software I/O TLB (and hence bounce-buffers) on such machines. The best fix seems to be to simply lower ISA_DMA_THRESHOLD to 4GB-1 since that will ensure that the IDE block layer allocates memory with GFP_DMA, which will minimize bounce buffering. [PATCH] ia64: perfmon update - fix bug in pfm_unload(), not allowed when not on correct CPU for system-wide - some perf/cleanup in overflow handler - fix reset_pmds to be on a per PMD basis on counter overflow rather than global - remove timing debug code on messages - no kernel info leak on PFM_END_MSG - remove double-store on reg_flags for pfm_write_pmcs, pfm_write_pmds - on restart reset_pmds is 0 by default - cleanup useless macros - cleanup some debug prints - added ability to remove debug code - streamlined sys_perfmonctl(), pfm_read_pmds(), pfm_write_*() - added current->tgid to default format sample header by using one reserved field [PATCH] ia64: greatly speed-up I/O-SAPIC irq_enable()/irq_disable() This patch changes the I/O SAPIC code to cache the low 32 bits of the mask word in kernel memory. This greatly speeds up mask_irq() and unmask_irq(). Normally, these operations are not on the speed-critical path of the kernel but with certain devices drivers (including users-level device- drivers) they can become performance-critical. ia64: Fix pdflush-triggered stack-overflow due to long thread-creation chains. The pdflush kernel threads can lead to an unbounded chain of thread-creations which can overflow the kernel stacks because we didn't uses to reset the stack on kernel thread-creation. We do now. Reported by Andreas Schwab, tracked down with help from Keith Owens. [ARM] Update ICS IDE driver. Update ICS IDE driver with ide-dma and bio changes. IEEE1394/SBP2(r1170): Unblock scsi requests specifically in the update callback. IEEE1394/Video1394(r1171): Fix bug with cdev_add usage from a previous change. [PATCH] ppc64: Use iommu=force instead of iommu=on for commonality with x86_64 [PATCH] oprofile needs smp_num_siblings on x86-64 P4 oprofile needs cpu_sibling_map and smp_num_siblings, the later was not exported [PATCH] move rme96xx to Documentation/sound/oss/ From Hans Ulrich Niedermann All sound documentation with the exception of the OSS rme96xx documentation is under Documentation/sound/{alsa,oss}. Move the rme966xx docs, and fix the Kconfig comments [PATCH] oops on HPFS filesystem file rename Maurice van der Stee noted that he got an oops on a HPFS filesystem when saving an edited file.. This fixes it. That, BTW, means that *nobody* had ever tried to use hpfs r/w since 2.5.3-pre3. [ARM] Always return IRQ_HANDLED for USB interrupts The SA1111 appears to re-trigger an interrupt immediately following a successful interrupt, despite no interrupt actually pending. [TCP]: Restart tw bucket scan when lock is dropped, noticed by Olof Johansson. IEEE1394(r1172): Generalize the default config rom entries for new hosts. [libata] Use scsi_finish_command as completion function, in our error handling thread callback. This also exports scsi_finish_command in the SCSI layer. Thanks much to James Bottomley and his patience, as this solution was figured out. IEEE1394(r1173): Small change to csr1212 prevent possible kernel panics from improper directory parsing. [ATM]: Gcc-3.5 fix for net/atm/lec.c [Bluetooth] Use BT_ERR wherever possible This patch neatens the code by using BT_ERR and so using the function name in the macro to save code and rom space. Patch from Joe Perches [NET]: Propagate dev_mc_{add,delete}() error to SIOC{ADD,DEL}MULTI. Noticed by Randy Dunlap. [AF_UNIX]: Add SOCK_SEQPACKET support. [AF_UNIX]: Mark unix_*_ops as static. IEEE1394(r1174): Fixed a problem parsing directories with null entries. [SPARC64]: Add support for CONFIG_DEBUG_STACK_USAGE. IEEE1394/eth1394(r1175): Added MODULE_DEVICE_TABLE(). IEEE1394: Revision sync. IEEE1394(r1176): Remove mempool and ctor stuff. IEEE1394/dv(r1177): Fix dv1394 devfs cleanup. [PATCH] lost Amiga Hydra Ethernet patch On Fri, 27 Feb 2004, Linus Torvalds wrote: > Ok, as usual, there was a lot of stuff for the -rc1, but as seems to be > more and more true it is mainly in the "periphery". > > Andrew Morton: > o m68k: Amiga Hydra Ethernet new driver model This part of the patch seems to have been lost (root_hydra_dev is no more): [PATCH] Update via-rhine Kconfig entry Previous Kconfig change was incorrect, this is a better one. IEEE1394/ohci(r1179): Remove ohci->id. It was just the same as host->id anyway. [BR_NETFILTER]: Fix vlan-encapsulated fragmented IP traffic. When vlan-tagged fragmented IP traffic passes the bridging firewall and ip_conntrack is loaded and iptables sees this IP traffic, an oops can occur when trying to fragment the defragmented packets. This only happens in the slow_path of ip_fragment(). The problem was reported, diagnosed and fixed by Adam Osuchowski and Tomasz Dubinski. When ip_fragment() is fragmenting an IP packet that's encapsulated, it has to make sure there is enough head room for the encapsulating header. The patch below fixes it. I saw no other way than to add some code to ip_fragment(), but this extra code is located in the slow_path so it's hardly ever executed. SPARC/m68k: Remove sun_setup_serial references, which is already gone. [PATCH] fix CDROM_SEND_PACKET 32 -> 64-bit translation Here's a much better version. The real bug was of course that the get_user/put_user for data_direction were transposed. This patch also fixes the translation of "quiet" and "timeout" to be safer and clearer (instead of memcpying them as two ints and knowing that "quiet" is first and assuming that "compat_int_t" is always the same as the native "int", the code now handles them explicitly). We should use "access_ok()" and __get_user/__put_user to generate better code for this, but it's not performance-critical, so we don't care. Some other day, perhaps. [PATCH] PCI Hotplug: Patch to get cpqphp working with IOAPIC On Fri, Feb 13 2004, Sy, Dely L wrote: > Since filling out the INTERRUPT_LINE is needed for systems running > with legacy irqs and not needed for systems running with IO-APIC. The > possible > solutions: > 1) Best is there is a run-time check (a flag or an API call) that tells > whether the system is running on legacy mode or IO-APIC mode. Is there > such check that you know of? Dan suggested that we look at what IRQ the hotplug controller has been assigned in the MPS table. If its < 0x10 we're in legacy/mapped mode. That would probaly work > > > > > > Do those servers work on 2.6.2 without my patch? > > > > > > Yes > > They work but they get dev->irq = 9 or 11 in the APIC enabled mode. > Correct? > Yes. All hot-added adapters get legacy IRQs like IRQ5 in the example below where eth2 was added after bootup: linux:~ # cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 831113 0 0 0 IO-APIC-edge timer 1: 255 0 0 0 IO-APIC-edge i8042 2: 0 0 0 0 XT-PIC cascade 5: 0 0 0 0 XT-PIC eth2 8: 2 0 0 0 IO-APIC-edge rtc 12: 92 0 0 0 IO-APIC-edge i8042 14: 29 0 0 0 IO-APIC-edge ide0 20: 0 0 0 0 IO-APIC-level cciss0 21: 0 0 0 0 IO-APIC-level cciss1 29: 107 0 0 0 IO-APIC-level eth0 30: 7702 0 0 0 IO-APIC-level aic7xxx 31: 30 0 0 0 IO-APIC-level aic7xxx 34: 336 0 0 0 IO-APIC-level cpqphp.o, cpqphp.o NMI: 0 0 0 0 LOC: 830760 830893 830892 830891 ERR: 0 MIS: 0 I attached a patch that does the legacy mode check that Dan suggested and IRQs for hot-added adapters seems to be given out in the APIC range. [PATCH] Re: 2.6.4-rc1 + hp100 EISA, not working >>>>> "Pawel" == Pawe writes: Pawel> On 2.6.3 it just Oopsed and didn't work. On 2.6.4-rc1 it does Pawel> not oops but it doesn't work (neither as module nor as build in kernel). Note that hp100 in 2.6.4-rc1 is still broken wrt EISA probing, since it lacks the terminating entry in the EISA ID list. This one-liner should take care of random crashes that are often reported to LKML : ===== drivers/net/hp100.c 1.24 vs edited ===== [PATCH] Wireless pcmcia netdev patches On Mon, Nov 17, 2003 at 02:57:44PM -0800, Jean Tourrilhes wrote: > On Sun, Nov 16, 2003 at 11:33:01PM +0000, Russell King wrote: > > Jean, > > > > Could you please arrange for this patch to be tested? It covers all > > the PCMCIA wireless drivers in 2.6.0-test9; I haven't been able to > > test. > > Dual P500, kernel 2.6.0-test9 + your patch. > ------------------------------------------------- >... > Few comments : > o Yanked the cards out of the socket, cardmgr did ifconfig > down and removal of module automatically. > o I did not see any patch for the Orinoco driver, but I did > not check if it needs one. Did not look at HostAP either... > o wl3501_cs : ask Arnaldo. > o With 2.6.0-test9, I had instances of "can't read CIS". I > actually had to reboot to perform the test. > o The kobject Oops is something I think I saw before. I never > remove my Aironet card because I don't want to reboot :-( This time, > it seems to have survived better, so I see that as progress ;-) This patch seems to have been forgotten about, so here it is again, this time against 2.6.4-rc1. This really needs to be send upstream, though I don't know where we got to with this one. Maybe we should put it in akpm's tree for a while? It's essentially more of the "don't deadlock if you pull out a PCMCIA network card and it's currently configured up" patch which went in recently for PCMCIA NIC cards. [PATCH] Fix USB printer transfers From Barry K. Nathan This fixes the ulblp transfer length code, which would otherwise skip the final iteration and lead to incomplete printer output (and us waiting forever for the transfer to complete) [PATCH] ppc64: make "viodev->unit_address" 32-bit vio_dev->unit_address only holds 32 bits of information anyways, so no need for 64-bit field. [PATCH] ppc64: export vio_find_node() To hotplug-remove virtual devices, we need vio_find_node() so we have a pointer to pass to vio_unregister_device(). [PATCH] broken PowerPC Virtual Ethernet This fixes the PowerPC Virtual Ethernet driver that got broken by the recent ppc64 iommu patch... [PATCH] rename sys_bus_init() rename sys_bus_init() to system_bus_init() so that it doesn't appear to be a syscall; PCI Hotplug: fix stupid directory name of "pci_hotplug_slots" to be just "slots" IEEE1394(r1180): Fix pdrv update call to use ud class list. Fixes an oops. IEEE1394(r1179): Fix nodemgr_get_max_rom() to work properly on little endian machines. [XFS] plug race in pagebuf freeing SGI Modid: xfs-linux:xfs-kern:167222a [XFS] kill some dead constants from pagebuf SGI Modid: xfs-linux:xfs-kern:167273a [XFS] Remove some dead debug code SGI Modid: xfs-linux:xfs-kern:167279a [XFS] release i_sem before going into dmapi queues SGI Modid: xfs-linux:xfs-kern:166619a [XFS] Remove PBF_SYNC buffer flag, unused for some time now. SGI Modid: xfs-linux:xfs-kern:167442a [XFS] DMAPI deadlock prevention when interacting with the IO path. SGI Modid: xfs-linux:xfs-kern:167547a [XFS] Version 2 log fixes - remove l_stripemask and add v2 log stripe padding to ic_roundoff to cater for pad in reservation cursor updates. SGI Modid: xfs-linux:xfs-kern:167580a [XFS] fix up some debug log code for when XFS_LOUD_RECOVERY is turned on. SGI Modid: xfs-linux:xfs-kern:167581a [PATCH] fix umount dataloss problem address_spaces have a `dirtied_when' jiffies field which records the time at which the mapping was first dirtied. This is used for the periodic writeback (kupdate) function. It is also used to prevent livelocks in the writeback code: don't try to write back objects which were dirtied after sync_sb_inodes() was called. It used to be the case that dirtied_when == 0 had magical properties, so there is code in there which avoids accidentally setting dirtied_when to zero at jiffy wrap time. We just set it to jiffies|1. Unfortunately, jiffies|1 is in the future. So under some rare timing circumstances (inode dirtied within one jiffy of umount) the livelock avoidance code in sync_sb_inodes() can accidentally trigger and we fail to write an inode out, resulting in filesytem corruption on ext2-style filesystems. Normally, nobody dirties a file within a millisecond of umount, so it was not noticed. It is no longer the case that (address_space.dirtied_when == 0) has special meaning, so we can just remove all that code and fix the bug. [PATCH] ppc64: fix a bug in iSeries MMU hash management From: Benjamin Herrenschmidt iSeries HyperVisor is doing some evilery when inserting PTEs that I didn't properly account for when rewriting that code, causing iSeries box to blow up regulary. [PATCH] ppc64: iSeries virtual disk update From: Stephen Rothwell This patch (hopefully) addresses concerns Christoph Hellwig had with the virtual disk probing code. [PATCH] Add missing numa EXPORT_SYMBOLs From: Anton Blanchard Add some missing EXPORT_SYMBOLs. [PATCH] ppc64: Update G5 defconfig, remove DISCONTIGMEM From: Benjamin Herrenschmidt This patch updates the g5_defconfig on ppc64, running it through oldconfig and removing CONFIG_DISTCONTIGMEM. I don't use the discontigmem stuff at all, even on machines with +2Gb of RAM, so it's just bloat. [PATCH] s390: core s390 update From: Martin Schwidefsky s390 bug fixes: - Add missing i/o controls to compat ioctl translation table. - Fix some gcc 3.4 warnings. - Export _sb_findmap. - Export smp_call_function_on only if CONFIG_SMP=y. - Add safe-guard to diag10. - Add type definition for compat_timer_t. - Fix first argument of signal_processor_ps. [PATCH] s390: common i/o layer. From: Martin Schwidefsky Common i/o layer fixes: - Remove documentation entry for non-existent cio_notoper_msg parameter. - Add documentation for availability attritube. - Replace function of the steal_lock attribute by "echo force" to the online attribute. - Trigger device sensing in the online function for unknown devices. - Always try to get devices online even if they are marked reserved. Someone could have released the device while it was offline. - Add try_module_get/module_put pairs to the online function of ccw devices and ccwgroup devices. - Add owner field to ccwgroup driver structure. Set owner field in ctc, lcs and qeth. - Fix alignment problems in channel measurement block interface. [PATCH] s390: sclp console From: Martin Schwidefsky sclp console fixes: - Add signal-quiesce bug-fix from 2.4. - Add irq_enter/irq_exit to sclp_sync_wait to prevent the softirqs from processing after the external interrupt. [PATCH] s390: tape class for s390 tapes From: Martin Schwidefsky s390 tape device driver changes: - Add private tape class to support udev configuration. [PATCH] s390: xpram driver From: Martin Schwidefsky xpram fix: Replace old style module parameter definition with new style. [PATCH] Doc/00-index additions From: "Randy.Dunlap" From: Alexey Dobriyan Mostly added descriptions of files in Documentation/ that were not listed in Documentation/00-INDEX. [PATCH] sysrq-o atomicity fix sysrq-o is supposed to power off the machine. But if it calls into ACPI (at least) it does lots of sleepy things, so we best not do this from interrupt context. [PATCH] fix small highmem bio bounce bvec handling glitch From: Christophe Saout __end_that_request_first might modify the bv_offset and bv_len if the segment was partially completed. The bio-read-bounce-back code should use the unmodified bv_offset when copying the segment data: [PATCH] move scatterwalk functions to own file From: Christophe Saout I've cleaned up the latest patches and adjusted the header files. This patch moves the scatterwalk functions from cipher.c to scatterwalk.c and adds a header file. [PATCH] fix in-place de/encryption bug with highmem From: Christophe Saout This patch fixes the bug where in-place encryption was not detected when the same highmem pages is mapped twice to different virtual addresses. This adds a parameter to xxx_process to indicate whether this is an in-place encryption and moves the responsability to the caller using a helper function scatterwalk.h. [PATCH] dm-crypt cleanups From: Christophe Saout These are some dm-crypt cleanups. Use a #define PFX "crypt: " for all the places where something gets logged as suggested by Jeff Garzik. It also adds a small additional security check and fixed header includes. [PATCH] dm-crypt end_io bv_offset fix From: Christophe Saout We should copy the bvec array for read requests so that we still have the unmodified bvec array to decrypt the data afterwards. (as discussed earlier this day for highmem bounces) [PATCH] revert the /proc thread visibility fix It appears that gdb, perfmon and perhaps other applications are already opening /proc/ even though it does not appear in /proc readdir output and is available under its group leader's directory anyway. Apparently ascertaining the group leader is hard for gdb and thsi trick always worked for LinuxThreads apps. So revert this change. [PATCH] zr36067 driver update From: "Ronald S. Bultje" Fix the zoran driver (zr36067) for the fact that we did not handle bitrate-conversion at all in the zr36050 MJPEG codec (on DC30 cards), with the result being that at high-resolution, we'd overload the PCI bus and drop half of our video capture data into /dev/null'ishness. Also update Ronald's email address in MAINTAINERS. [PATCH] C99 initializers for drivers/usb/serial/keyspan.h From: "Art Haas" Here's a small patch changing the GNU-style initializers to C99 initializers. [PATCH] C99 initiailzers for drivers/isdn/hisax/hisax_fcpcipnp.c From: "Art Haas" Here is a small patch changing the GNU-style initializers to C99 initializers. [PATCH] raid1: fix oops in bio_put() From: Neil Brown Fix an off-by-one in the r1buf_pool_alloc() ENOMEM error recovery path. [PATCH] linux/README update From: Zwane Mwaikambo Patch to resolve http://bugzilla.kernel.org/show_bug.cgi?id=1644 The bug reporter pointed out a bit of outdated information in the README file. Test booted on a 32x NUMAQ with 10,000 disks [PATCH] DCSSBLK depends on CONFIG_S390 From: Dave Jones This is probably useless on x86 for eg.. (Everything else in this file is dependant on some other s390 feature, so only this one shows up). Too bad the drivers/s390/block stuff gets source'd at all on !s390. [PATCH] NFS SUNRPC fix From: James Morris The patch below fixes a bug in the error handling code of xprt_create_socket(). If sock_create() fails, we should not try and release the non existent socket. This fix is by James Carter . [PATCH] Fix tty drivers which dont set tty_driver->devfs_name From: Marcelo Tosatti The following patches fixes tty drivers which dont set devfs_name. Not doing so will cause the tty layer to create "/dev/x" entries when devfs is being used. I used "drivername/" in isicom and pcxe because the letter used to identify them are already used by other drivers. [PATCH] Fix VT mode change vs. fbcon From: Benjamin Herrenschmidt This patch implements what we discussed earlier to fix the switch bewteen KD_GRAPHICS and KD_TEXT. It has been tested for a few days now and appear to resolve the problem for affected users. James: I know you have some objections, I don't fully agree with them, and I want that in asap now, that bug has been plaguing fbdev since the very beginning and it's time to get rid of that and my corresponding todolist entry. You are welcome to propose a patch on top of this one if you feel you can make things cleaner. The approach of adding a parameter to con_blank() is Linus idea btw :) I didn't add a separate function as that would have made the butchering of drivers/char/vt beyond what I want to deal with in 2.6. [PATCH] sys_alarm() return value fix From: Kurt Garloff when calling alarm(1); alarm(0); the second alarm can wrongly return 2. This makes an LSB test fail. It happens due to rounding errors in the timeval to jiffie conversion and back. On i386 with HZ =3D=3D 1000, there would not need to be rounding error IMVHO, but they even occur there. On HZ=3D1024 platforms, they may even be unavoidable. Attached patch fixes the return value of alarm(). [PATCH] Fix network hashtable sizing The new networking hashtable sizing is all bollixed up. The logic is wrong and tcp is setting it to the logarithm of what was intended. Heaven knows. Fix it up so that the sizing is the same as it used to be in 2.6, with a boot-time override. Which was what was intended. [PATCH] buslogic initsection fix From: Bob Doyle BusLogic_UnregisterHostAdapter() is referenced from __exit code, so it cannot be __init. [PATCH] remove a few remaining "make dep" references From: Adrian Bunk The patch below is an updated version of the patch that removes some remaining mentions of "make dep". [PATCH] clarify CONFIG_SWAP Kconfig help From: Adrian Bunk "swap" is more known than "Support for paging of anonymous memory". The patch below adds "(swap)" to the prompt of CONFIG_SWAP. [PATCH] Make powernow-k8 cpufreq control work again From: Pavel Machek We curretly have an off-by-factor-of-1000: cat /proc/cpufreq minimum CPU frequency - maximum CPU frequency - policy CPU 0 2000 kHz (100 %) - 2000 kHz (100 %) - powersave I do not have explanation why it is 2MHz - 2MHz. On my system I removed bug which prevented my system from being reported as 0.8MHz - 1.8MHz. (And modulo cosmetic uglyness, it worked). This fixes cosmetic uglyness, adds proper copyrights, removes warning "untested on PREEMPT" (someone tested it, and makes it easier to override PST by user (eMachine users will need that one). [PATCH] x86-64 fixes for 2.6.4rc1 From: Andi Kleen Fix a few issues on x86-64 for 2.6.4rc1. The 32bit emulation used 4GB/3 for the mmap break. This actually gave programs less sbrk space than with a standard 32bit kernel. Move the 32bit mmap break to 0xc5000000. Uses the correct gcc option to optimize for Prescott now (requires a very new mainline gcc) Also merge the i386 sched_clock(). I hope this will fix some interactivity problems with the scheduler. - Change initializer to new style (Arnd Bergmann) - Remove 2 sibling limit in HT support (from i386) - Always log RIP in MCE records even when not exact - Move 32bit program task break up to 0xc5000000 by default - Use -march=prescott for Prescott optimized kernel if possible - Don't divide by zero with report_lost_ticks on and HPET off - Merge preempt/smp/debug_pagealloc oops printing from i386 - Add pfn_to_nid() - Merge more accurate sched_clock from i386 - Remove traces of debugging code in mce.c - Update defconfig [PATCH] watchdog updates From: Wim Van Sebroeck (04/02/29 1.1628) [WATCHDOG] v2.6.3 pcwd_usb-watchdog Add the Berkshire Products USB-PC Watchdog driver (04/02/29 1.1629) [WATCHDOG] v2.6.3 MODULE_*-patch Add MODULE_* info (04/02/29 1.1630) [WATCHDOG/SPARC64] v2.6.3 Kconfig-WATCHDOG_CP1XXX/WATCHDOG_RIO-patch Move WATCHDOG_CP1XXX and WATCHDOG_RIO for SPARC64 architecture from arch/sparc64/Kconfig to drivers/char/watchdog/Kconfig and made them dependant of WATCHDOG also [PATCH] convert pdflush to kthread From: Keith Owens New pdflush threads are launched on-demand by pdflush. It turns out that on some architectures (eg, ia64) a kernel thread inherits its parent's stack utilisation. So after the thread-launches-a-thread cycle has progressed sufficiently far we run out of stack space and crash. Simple fix: convert pdflush to use kthreads. All kthreads are parented by keventd so there is no stack windup as a result of pdflush launching pdflush. [PATCH] firmware loader: pin firmware module From: Dmitry Torokhov We need to pin the firmware loader module until the last reference to the firmware class device is dropped and the class device is destroyed. [PATCH] firmware loader: delay firmware hotplug event From: Dmitry Torokhov Do not call hotplug until firmware class device is completely instantiated. [PATCH] swsusp: fix error handling in "not enough swap space" From: Pavel Machek Without this, if there's not enough swapspace, suspend fails, but leaves devices suspended, leading to dead machine. [PATCH] m68k interrupt handling fix From: Geert Uytterhoeven The syscalls.h change broke the m68k interrupt management code, since sys_{request,free}_irq() are not syscalls, but routines to manage system (CPU) interrupts. [PATCH] scripts/modpost warning From: Geert Uytterhoeven I need the following patch to kill a warning (__endian() may be unused) when cross-compiling m68k kernels on an ia32 box. [PATCH] oprofile: fix P4 HT msr sharing From: Philippe Elie When I debugged P4 ht oprofile a few month ago I noticed that but though it wasn't a problem... The fix I propose is not completely clean. With P4 HT we split msr in two subset, one for each logical processor. The msrs subset used in op_model_p4.c at save and setup point of view are distinct (*), it means we must serialize setup and save operation else a logical processor can save some msr value already setup by the other thread then when oprofile shutdown we restore wrong msrs values. Nobody noticed the problem because after restoring the msrs we call enable_lapic_nmi_watchdog() -> setup_p4_watchdog() wich clear all the msrs but it's a bit fragile. If nmi watchdog is not enabled nothing bad occurs because the LVTPC remains disabled. (*) this is done in this way because it allows a lot of simplification in op_model_p4.c, yes it isn't clean but it's not fixable w/o rewriting 75% of op_model_p4.c and I think the code will be bigger and more complex. Update x86 defconfig [PATCH] Avoid writing the APIC ID register A small birdie tells us that in the long run it may not be a good idea to write the APIC ID register. It might be read-only in some hypothetical situation down the road. [PATCH] ISDN strpbrk fix Here is a small ISDN fix for the current tree. There is a compiler inlining/optimation problem with strpbrk, if it has only a one character search string. This results in a missing strchr because the compiler internally replace strpbrk with strchr in this case, but did so after inline handling stage. Make IBMASM driver depend on X86 as that is the only valid platform for it. PCI Hotplug: fix up the permission settings on a few of the sysfs files. Thanks to Linda Xie for pointing this out. [PATCH] ppc32: Fix crash on load in DACA sound driver The DACA sound driver (early iBook models) doesn't clear the i2c_client structure. That cause the embedded struct device (and thus kobject) to contain garbage in the "k_name" field, which kobject_set_name will later try to kfree... Also remove references to unused struct data_data. [PATCH] OHCI urb unlink fixes Fix two OHCI unlink issues. * All EDs now get a 1 msec delay before re-linking, even those which were seemingly "clean" unlink cases. This gets rid of some list corruption issues ("bad entry") by getting rid of a fast-path carried over from 2.4 usb-ohci. * In case of unlink-during-submit, we must giveback() right away. This is a reasonably rare case. There have been recent reports of problems here. The "bad entry" showed up with usbtest tests #11 and #12, or "stir4200", and maybe in other cases. The unlink-during-submit shows up in usbtest. Driver core: add CONFIG_DEBUG_DRIVER to help track down driver core bugs easier. [PATCH] PCI Hotplug: fixes for shpc and pcie hot-plug drivers This patch contains the following: 1. Fix up the pcie and shpc options to make it easier for distros to use as what we have discussed; 2. Fix bug encountered when installing the drivers on non-hotplug systems; 3. Put PCI_CAP_ID_SHPC in include/linux/pci.h PCI Hotplug: clean up the Makefile a bit more. [XFS] Sort out some minor differences between trees. [libata ata_piix] Fix transposed ICH6 PCI id [PATCH] Alpha: switch semaphores to PPC scheme Which is a lot simpler than the two-way counter implementation. [libata ata_piix] Add yet another Intel ICH6 PCI id [PATCH] parport: move exports to where they are defined Exports moved from parport/init.c to files where functions are actually defined. [PATCH] parport: use module_init() Init of low-level drivers (except parport_pc) turned into module_init(). [PATCH] parport: sysctl registration Registration of sysctls turned into module_init(). [PATCH] parport: option parsing cleanup parport_pc options parsing moved to parport_pc.c; parport/init.c is gone. Warning fixes from -mm added. [PATCH] parport: fix probe leaks parport_pc_probe_port() sanitized; leaks fixed. [PATCH] parport: slave port cleanups references to slave ports of mux added to struct parport. parport_daisy_init() doesn't go through parport_announce_port() for mux slaves anymore; parport_annouce_port() deals with found ones itself. Error handling sanitized, races on unregistration fixed. [PATCH] parport: fix parport_unregister_port parport_unregister_port() is split; parport_remove_port() does what parport_unregister_port() used to do sans the final parport_put_port() call. Callers updated; many of them needed only parport_put_port() (failure exit paths where we never had the port announced to drivers). Fixed multiple races on port removal by shifting parport_remove_port() in front of the code that releases irq/io ports/etc. [PATCH] parport: clean up parport_announce_port and friends parport_announce_port() was always called right after parport_proc_register(). Call shifted into parport_announce_port(). Similar for parport_remove_port() and parport_proc_unregister(). [PATCH] parport: keep track of parport_pc ports parport_pc switched to keeping track of the ports it had created; in module_exit it uses the private list instead of messing with parport_enumerate(). Added compile fix for configs that have CONFIG_PARPORT_PC_FIFO turned off (from -mm). [PATCH] parport: keep track of parport_sunbpp ports parport_sunbpp switched to keeping track of the ports it had created; in module_exit it uses the private list instead of messing with parport_enumerate(). Added check for sbus_ioremap() failure in port initialization. [PATCH] parport: get rid of parport_enumerate parport_enumerate() is gone. The last caller was under ifdef that never had been true. Function itself is removed, port list handling cleaned up (now we can do that, since drivers don't mess with the list directly), tons of racy crap removed from parport/share.c [PATCH] parport: list cleanups parport driver list turned into list.h one; parport/share.c code that works with that list got cleaned up. [PATCH] update for pdc202xx_old driver - fix bug introduced by my recent fixes (do not try to disable 66MHz clock on PDC20246) - cleanup cable verification code a bit - remove unused macros (leftovers from driver split-up) and duplicated define from pdc202xx_old.h [PATCH] ppc64: More IOMMU cleanups * Tidy up some of the arguments to iommu_*() * Comment cleanup * Don't bump the hint to the next block for large allocs, to avoid fragmentation. * Simplify vmerge logic during SG allocations * Move the memory barriers from the bus-specific parts into the common code. Some changes are mine, some are from Ben Herrenschmidt. JFS: Support sharing of journal by multiple volumes [PATCH] New Permedia2 framebuffer driver. This fixes the permedia2 framebuffer driver to the new API. [ Currently it doesn't even compile. This only touches the current permedia driver. ] [PATCH] radeonfb: some more PLL problems I've had reports of flicker that appear with large (23") flat panels and radeonfb. From experiments, it appears that forbiding the "odd" PLL divider values fix it (like it fixes the blur problem on TMDS2). There should not be anything special with TMDS1 and "odd" PLL values though, so the problem may be subtly different (a bandwidth problem), but until I have proper bandwidth calculation and access to this monitor, the following patch is an acceptable workaround (Odd PLL values aren't that useful anyway) [PATCH] /proc/cpuinfo fixes for G5 This adds a "timbase" entry in /proc/cpuinfo like p/iSeries that provides the CPU timebase frequency. It is using by a all sort of performance analysis tools we are hacking in house. It also remove a useless bit about the l2 cache that was copied over from ppc32. Fix typo in radeon pll update It was missing an "s" from "uses_dvo" Linux 2.6.4-rc2