Summary of changes from v2.6.11-rc4 to v2.6.11-rc5 ============================================ [libata sata_via] minor cleanups Preparation for addition of VT6421 support. Mostly moving bits of code into discrete functions. [libata sata_via] add support for VT6421 SATA [PATCH] dscc4: use of uncompletely initialized struct dscc4_set_quartz() is issued with an argument in an unitialized state and the kernel does not like it. Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] dscc4: code factorisation Small code factorization. Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] dscc4: error status checking and pci janitoring Error status checking and PCI janitoring - propagation of the error code; - pci_request_region use in dscc4_init_one; - missing pci_disable_device() added to the error path; Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] dscc4: removal of unneeded casts Removal of unneeded casts. Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] dscc4: removal of unneeded variable Removal of unneeded variable and more spaces for my eyes. Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [XFS] Reinstate missing frozen check on write, fixes snapshots and xfs_freeze. SGI-PV: 925910 SGI-Modid: xfs-linux-melb:xfs-kern:21407a Signed-off-by: Nathan Scott [XFS] Prevent releasepage from releasing pages early, while they still have delayed allocate buffers. Affects filesystem blocksizes smaller than the pagesize only. SGI-PV: 929309 SGI-Modid: xfs-linux-melb:xfs-kern:21409a Signed-off-by: Nathan Scott [XFS] Fix problems with synchronous writes returning EAGAIN incorrectly for pinned inodes. SGI-PV: 930364 SGI-Modid: xfs-linux-melb:xfs-kern:21460a Signed-off-by: Nathan Scott [PATCH] de214x.c uses uninitialized pci_dev->irq Don't use pci_dev->irq until after pci_enable_device(). Andy Esten reported that his NIC stopped working in 2.6.10 because of this problem. Signed-off-by: Bjorn Helgaas Signed-off-by: Jeff Garzik [PATCH] memset argument order misuses A simple 'grep memset.*\<0);' shows argument order errors in several uses of memset. This grep was inspired by Al Viro's recent patch, megaraid_mbox fix, which fixed this problem in the megaraid driver. [PATCH] radeonfb: typos fixes The dynamic clock code in radeonfb comes almost as-is from X.org (where it was contributed by ATI). It has a few typos (wrong register access macros) that this patch fixes. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] r8169: endianness fixes Endianness fixes - rtl8169_rx_csum() forgot to convert the descriptor to cpu order, - same thing for rtl8169_rx_vlan_skb() but this one is more tricky as the layout of the (u32) word in the 8169 descriptor calls for a second level of swap at the vlan tag level (u16). The old code only did the second part (in an endian-dependant way, how fun). - rtl8169_tx_vlan_tag(): this time the (u32 descriptor level) cpu_to_le32 is issued in rtl8169_start_xmit but the (u16 vlan tag level) cpu_to_be16 is not right any more. Summary: avoid even calls to cpu_to_{b/l}eXX on a given piece of data. The change has no effect on x86. Now sparc64 talks to x86. Pinpointed-by: Jon Mason Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] r8169: merge of Realtek's code Merge of Realtek's code - code dedicated to a new phy (spotted by Richard Dawe); - C+ register fiddling seems required for both RTL_GIGA_MAC_VER_{D/E}; - apart from being reserved, register at address 0xe2 is named 'IntrMitigate'; - bump version number. A bunch of people do not use the vanilla kernel module simply because Realtek's driver has a higher revision number. This is not an issue per se but their driver is buggy due to some partial merge of in-kernel code. Signed-off-by: Francois Romieu Signed-off-by: Richard Dawe Signed-off-by: Jeff Garzik [PATCH] r8169: typo in debugging code Typo in debugging code. Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] r8169: screaming irq when the device is closed Close the race for a screaming irq when the device is closed. - rtl8169_interrupt() try to properly IRQ_HANDLE an interrupt even when the network device is going down. As a benefit, rtl8169_poll() does not need to care about the close race any more; - factor code with rtl8169_irq_mask_and_ack(); - rtl8169_init_board(): mitigate some really unexpected events. Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] r8169: synchronization and balancing when the device is closed rtl8169_close synchronization and balancing - use synchronize_kernel() to sync with the xmit thread (kindly suggested by davem); - balance the netif_poll_disable issued in rtl8169_down. Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] emac: fix jumbo frame support Fixes a bug in RX buffer allocation so that jumbo size skbs are allocated when the MTU size is changed. Also removes the deprecated restore_flags() call. Please apply. Signed-off-by: Matt Porter Signed-off-by: Jeff Garzik [PATCH] emac: fix mdio delay Fixes MDIO delay. Please apply. Signed-off-by: Ralph Siemsen Signed-off-by: Matt Porter Signed-off-by: Jeff Garzik [PATCH] Allow heap to be marked executable too This makes it possible to mark binaries to have both an executable stack and heap, allowing for a NX system to disable NX on a per-binary level. Signed-off-by: Arjan van de Ven Signed-off-by: Linus Torvalds Eicon driver: remove ^M for real this time. Really. [ARM PATCH] 2474/1: Fix compile for badge4 Patch from Thomas Gleixner Trivial build fix for badge4 platform Signed-off-by: Thomas Gleixner Signed-off-by: Russell King [ARM PATCH] 2476/1: Fix compile for shannon Patch from Thomas Gleixner Trivial build fix for shannon platform Signed-off-by: Thomas Gleixner Signed-off-by: Russell King [ARM PATCH] 2478/1: Remove NULL initializers Patch from Thomas Gleixner Remove NULL initializers of static variables. Signed-off-by: Thomas Gleixner Signed-off-by: Russell King [libata] do not call pci_disable_device() for certain errors If PCI request regions fails, then someone else is using the hardware we wish to use. For that one case, calling pci_disable_device() is rather rude. [ARM PATCH] 2480/1: IXP4XX - cleanup resource for i2c controller Patch from Ben Dooks Fix the following: arch/arm/mach-ixp4xx/common.c:305: warning: initialization from incompatible pointer type Signed-off-by: Ben Dooks Signed-off-by: Russell King [ARM PATCH] 2481/1: IXP2000 - replace sti/cli with local_irq{save,restore} Patch from Ben Dooks Fix the following: arch/arm/mach-ixp2000/pci.c:148: warning: `cli' is deprecated (declared at include/linux/interrupt.h:65) arch/arm/mach-ixp2000/pci.c:161: warning: `sti' is deprecated (declared at include/linux/interrupt.h:69) arch/arm/mach-ixp2000/pci.c:178: warning: `cli' is deprecated (declared at include/linux/interrupt.h:65) arch/arm/mach-ixp2000/pci.c:191: warning: `sti' is deprecated (declared at include/linux/interrupt.h:69) By replacing cli() wht local_irq_save() and sti() with local_irq_restore(). This patch has not been tested. Signed-off-by: Ben Dooks Signed-off-by: Russell King [ARM] Add missing __user annotations to sys_clone() Signed-off-by: Russell King [ARM] Fix SA1111 and PXA iomem sparse warnings. This adds some missing annotations found by making the raw IO operations check their pointer type. Signed-off-by: Russell King [ARM] Fix sparse warnings for Integrator builds. Add some missing __iomem annotations for Integrator machines. Signed-off-by: Russell King [PATCH] ISDN locking fix isdn_net_get_locked_lp is doing a local_bh_enable with hard IRQs disabled. This is not allowed. The following patch fixes the problem by removing the unnecessary local_bh_enable while the hard IRQs are disabled. Signed-off-by: Herbert Xu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove extra whitespace before preprocessor token unifdef complains about the space before #ifndef. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IPMI: Fix LAN bridging The size of LAN bridged messages was not being returned properly from the function that calculated address sizes. Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] block new writers on frozen filesystems When the lockfs patches went in an important bit got lost, the call in generic_file_write to put newly incoming writers to sleep when a filesystem is frozen. Nathan added back the call in the now separate XFS write patch, and the patch for the generic code is below: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make ACPI_BLACKLIST_YEAR depend on ACPI_INTERPRETER this oneliner fixes the situation that I can enter a year to blacklist ACPI devices even if ACPI is completely disabled. Signed-off-by: Rolf Eike Beer Signed-off-by: Linus Torvalds [COMPAT]: TUNSETIFF needs to copy back data after ioctl. It is defined as a _IOW() which is erroneous, it should have been defined as _IORW() but that cannot be changed now without breaking all existing applications using this ioctl. Signed-off-by: David S. Miller [SPARC]: Fix cg3 fb blanking. cg3_blank() needs to clear the video enable register bit to blank the screen, not set it. Signed-off-by: David S. Miller [SPARC]: Fix video mode probing in atyfb driver. On Sparc, if the user does not specify a mode option, we should use the PROM probed values in default_var always. Signed-off-by: David S. Miller [TG3]: Always check tg3_readphy() return value. Signed-off-by: David S. Miller [TG3]: Update driver version and reldate. Signed-off-by: David S. Miller [SPARC32]: Need to clear PSR_EF in psr of childregs on fork() on SMP. Signed-off-by: David S. Miller [NETROM/ROSE]: Use netdev_priv() Signed-off-by: David S. Miller [SPARC]:Check prom_getproperty() return value in prom_nodematch(). Signed-off-by: David S. Miller [NET]: Fix socket.h comment typo. Signed-off-by: Olaf Hering Signed-off-by: David S. Miller Limit tty IO chunking to 2kB The NTTY code can get confused by 4kB chunks, apparently because n_tty_receive_room() will claim to have more room than n_tty_receive_buf() can actually accept. Until somebody figures out what the real n_tty_receive_room() logic should be, let's just limit it to a safe 2kB. Thanks go to Andreas Schwab for finding a test-case. Fix bogus opost buffer size check Noted while going through the n_tty code: that buffer check used to check against the size of the temporary kernel buffer, but since the tty layer was changed to use kernel buffers though-out, the kernel buffer array became just a pointer, and the check was limiting the opost blocksize to the size of a pointer, which makes no sense. Just remove it, since now the whole buffer is always in kernel space. Input: fix ALPS protocol validation rules We checked the wrong byte, causing the touchpad to lose sync if an absolute packet is received after a relative packet with negative Y displacement. Signed-off-by: Dmitry Torokhov Signed-off-by: Linus Torvalds [IPSEC]: Move dst->child loop from dst_ifdown to xfrm_dst_ifdown. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: Add netdev argument to dst ifdown. This patch adds a net_device argument to ifdown. After all, it's a bit silly to notify someone of an ifdown event without telling them what which device it was for :) Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6]: Fix IPV6_PKTINFO et al. handling in udpv6_recvmsg(). CMSG reception needs to occur even if msg_name is not set. Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [PATCH] radeonfb: Fix hang on boot with some laptops It appears that access to the PLL registers of the radeon chip is unreliable while the card is in "legacy VGA" text mode. I don't have a good explanation yet, it might be the BIOS mucking around behind my back. This fixes the lockup by moving the code that enables/disables the dynamic power management to after the mode is set. I'm still waiting for a proper explanation from ATI... Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [SPARC]: Check prom_getproperty return value. Errors should not be ignored, so add __must_check tag to this function as well. Signed-off-by: David S. Miller [ACPI] ACPICA 20050211 from Bob Moore Implemented ACPI 3.0 support for implicit conversion within the Match() operator. match_obj can now be of type integer, buffer, or string instead of just type integer. Package elements are implicitly converted to the type of the match_obj. This change aligns the behavior of Match() with the behavior of the other logical operators (LLess(), etc.) It also requires an errata change to the ACPI specification as this support was intended for ACPI 3.0, but was inadvertently omitted. Fixed a problem with the internal implicit "to buffer" conversion. Strings that are converted to buffers will cause buffer truncation if the string is smaller than the target buffer. Integers that are converted to buffers will not cause buffer truncation, only zero extension (both as per the ACPI spec.) The problem was introduced when code was added to truncate the buffer, but this should not be performed in all cases, only the string case. Fixed a problem with the Buffer and Package operators where the interpreter would get confused if two such operators were used as operands to an ASL operator (such as LLess(Buffer(1){0},Buffer(1){1}). The internal result stack was not being popped after the execution of these operators, resulting in an AE_NO_RETURN_VALUE exception. Fixed a problem with constructs of the form Store(Index(...),...). The reference object returned from Index was inadvertently resolved to an actual value. This problem was introduced in version 20050114 when the behavior of Store() was modified to restrict the object types that can be used as the source operand (to match the ACPI specification.) Reduced stack use in acpi_get_object_info(). [PKTGEN]: Bug fixes, bump to version 2.56. - Fix printing of running list, do not stop at first not-running device, instead scan them all. - Do not free SKB before final access via show_results() Signed-off-by: David S. Miller [PATCH] fbdev: Fix gcc 4.0 compile failure From: Art Haas The current GCC cvs code does not like the include/linux/fb.h file: In file included from drivers/video/aty/atyfb_base.c:63: include/linux/fb.h:865: error: array type has incomplete element type This error is due to recent changes in GCC. A thread discussing this change can be found by following the link below: http://gcc.gnu.org/ml/gcc/2005-02/msg00053.html The patch moves the array declaration after the definition of the fb_modelist structure, and with this small change GCC is happy once again. Signed-off-by: Antonino Daplas Signed-off-by: Linus Torvalds [SPARC64]: auxio_register is pointer not integer. Signed-off-by: David S. Miller [PATCH] USB: ehci patch for NF4 port miscounting Turns out that a workaround for a different EHCI chip trips up at least one NForce4 board. Neither controller can multiply right. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB Hub driver: Add reset recovery-time delay This patch is clearly needed for us to be in compliance with the USB spec. It adds the mandated recovery-time delay following a port reset. Regardless of anything else we do to alter the device initialization sequence, this is necessary. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ehci requeue revisit This gets rid of a bug found in some IRQ handling logic, after tripping a debug assertion. Basically, a recent patch called the wrong routine to unlink a QH. Net result, it wasn't allowing for the case that some other QH was already being unlinked. This patch uses the correct routine; the names are confusingly similar, and the effect is often identical. The consequence of using the wrong routine was that the driver could lose one of the pending unlinks (probably wedging some activity) and treat the other one as completed before it was safe to do so (which probably wouldn't oops, but could cause other nasty corruption). From: Brian Murphy Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] kthread_bind new worker threads when onlining cpu We weren't binding new worker threads to their cpu when onlining. Using preempt and the debug version of smp_processor_id found this. Signed-off-by: Nathan Lynch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fixup of previous PCI9 patch Previous PCI9 patch had a #endif placed wrong for some unknown reason (was correct in local tree) This fixes it. Signed-off-by: Rune Torgersen Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [SPARC64]: Put PROM trampolines into asm file. No need for these enormous inline asm statements. Signed-off-by: David S. Miller [SPARC64]: Fix access_ok() and friends warnings. The implementation is a nop on sparc64, we always return true, but we have to add at least a (void) reference to the arguments to avoid compiler/checker warnings. Signed-off-by: David S. Miller [PATCH] sata_qstor: new basic driver for Pacific Digital This is a new basic libata SATA driver for the Pacific Digital QStor SATA/RAID card. It features ordinary per-drive SATA with single-request DMA for R/W commands, and PIO for everything else. It currently does not implement any of the hardware RAID support, nor hot-plug, nor the tagged/native command-queuing features. On the other hand, it is small and simple as a result. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik [PATCH] Fix possible race with 4level-fixup.h When using 4level-fixup.h, a PMD page may end up beeing freed before the matching PGD entry is cleared due to the way the compatibility macros work. This can cause nasty races on some architectures. This patch fixes it by defining pud_clear() to be pgd_clear(). That means we'll actually write 0 twice, a small price to pay here, especially seeing how easy it is to convert to the new headers anyway (hint hint, ppc & ppc64 patches as soon as 2.6.11 is out). Signed-off-by: Nick Piggin Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [ARM PATCH] 2485/1: fix enp2611 coexistence with other machine types Patch from Lennert Buytenhek If enp2611 support is compiled in, the kernel will unconditionally perform enp2611-style PCI initialisation. Conditionalise this on machine_is_enp2611(). Signed-off-by: Lennert Buytenhek Signed-off-by: Russell King [PATCH] Check for wraps in copy_page_range While browsing the 4 level page table changes (looking for a bug), I noticed that copy_page_range, unlike others, do not check for wraparound, which I suppose could be a problem with 4G/4G architectures or that sort of thing. This patch fixes it. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] Fix buf in zeromap_pud_range() losing virtual address This patch fixes a nasty bug that took us almost a week to track down on ppc64, introduced by the 4L page table changes, and resulting in random memory corruption. All archs that rely on a PTE page's struct page to contain the mm & address (in mapping/index) will be affected. zeromap_pud_range() is one of these page tables walking functions that split the address into a base and an offset. It forgets to add back the "base" when calling the lower level zeromap_pmd_range(), thus passing a bogus virtual address. Most archs won't care, unless they do the above, since the lower level can allocate a PTE page. Kudo's to Michael Ellerman too who spent that week running tests after tests to track it down, since the only way we managed to get it to show up was after about 1 to 2h of LTP runs ... (Note: We are in _urgent_ need to consolidate all those page table walking functions, they all do things in a subtely different way, with different checks (sometimes redudant) and inconsitent with each other, even within a given set of them. Hopefully, Nick has some work in progress there). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] optimise copy page range Suggested by Linus: optimise a condition in the clear_p?d_range functions. Results in one less conditional branch on i386 with gcc-3.4.4 Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds [ARM PATCH] 2486/1: fix incorrect comment in arch/arm/kernel/debug.S Patch from Lennert Buytenhek arch/arm/kernel/debug.S has a comment at the top stating that the file is called debug-armv.S, which is clearly not so. Signed-off-by: Lennert Buytenhek Signed-off-by: Russell King [ARM PATCH] 2487/1: minor IRQ routing tweaks for ENP-2611 Patch from Lennert Buytenhek - The PCI2050B bridge is not wired to any interrupt pin. - The SPI-3 option board slot is wired to PCI_B. - Don't printk every time enp2611_map_pci_irq is called. - Complain loudly if we encounter an unknown device. Signed-off-by: Lennert Buytenhek Signed-off-by: Russell King [SPARC64]: Fix access_ok() args in sys_sparc32.c:get_tv32(). Signed-off-by: David S. Miller [PATCH] m32r: build fix for SMP kernel Here is a patch to fix compile errors of 2.6.11-rc4 for the m32r SMP kernel. * include/asm-m32r/spinlock.h: - Add read_can_lock() and write_can_lock() to fix build errors for SMP. - Rename 'lock' to 'slock'. (cf. Changesets 1.1966.85.1) * arch/m32r/kernel/smp.c: - Rename 'lock' to 'slock'. (cf. Changesets 1.1966.85.1) Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: fix sys_clone() This patch is required to fix sys_clone() for m32r. * arch/m32r/kernel/process.c: - Fix sys_clone; add arguments, parent_tidptr and child_tidptr. - Cosmetics: Change indentation of function parameters for sys_clone(), sys_vfork(). Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: defconfig updates Here is a patchset to update defconfig files for m32r. The m32r kernel's API/ABI has been changed since 2.6.11-rc1. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sis: fix sparse warnings drivers/video/sis/sis_main.c:2204:2: warning: undefined identifier 'lock_kernel' drivers/video/sis/sis_main.c:2206:2: warning: undefined identifier 'unlock_kernel' drivers/video/sis/sis_main.c:2204: warning: implicit declaration of function `lock_kernel' drivers/video/sis/sis_main.c:2206: warning: implicit declaration of function `unlock_kernel' Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] USB: Add ioctls to ub This patch adds support for ioctls to ub, with the help of scsi_ioctl_cmd(). Now ub can eject CDs. But do not try to burn CDs yet, it's not tested. Original patch from Peter Jones (aka deviant-). Signed-off-by: Pete Zaitcev Signed-off-by: Greg Kroah-Hartman [PATCH] ub: fix Add ioctls to ub patch I am awfully sorry, but that patch contained a bug. The code dereferenced cmd->back as if it were a pointer to a request even when it wasn't. It worked by accident, because rq->flags overlapped with a zeroed memory in other case. Here is a corrective patch. Signed-off-by: Pete Zaitcev Signed-off-by: Greg Kroah-Hartman [libata] add ->bmdma_{stop,status} hooks The timeout/error handling path was assuming that the hardware in question was PCI IDE BMDMA-like, which is incorrect in a few cases. Turn direct function calls into two new hooks. [SPARC64]: Use common sys_ipc() compat code. No need to duplicate it locally. This also fixes several arg sign extension bugs and the subsequent ltp testsuite failures. Signed-off-by: David S. Miller [SPARC64]: BUG on rediculious memcpy lengths. Anything larger than MAX_INT is suspect. Do this for user copies too. Signed-off-by: David S. Miller [PATCH] libata: fix command queue leak when xlat_func fails ata_scsi_translate allocates from the libata command queue by calling ata_scsi_qc_new. If xlat_func returns non-zero, control jumps to err_out which fails to free the allocated command. Fix is to add a new API to free unused commands. Signed-off-by: John W. Linville Signed-off-by: Jeff Garzik [ARM PATCH] 2493/1: put IXP2000 slowport in 8-bit mode after boot Patch from Lennert Buytenhek This is an old patch from 2.6.9-rc3-ds2 that never made it upstream. The IXP2000 slowport has two modes of operation, 8-bit and 32-bit. The slowport itself is a byte-wide bus, and in 8-bit mode, it does the more-or-less obvious thing: every word read causes four byte reads, and those bytes are then combined into a word according to the xscale core's current endian setting. So, what value you get depends on what endianity your IXP2000 is running in. In 32-bit mode, however, it is the slowport itself which combines bytes into words, and for this it unconditionally uses little endian mode. In this mode, word reads from the slowport will return the same value no matter whether the xscale core is running in big or little endian mode. This can be a plus in some cases. Byte (and halfword) accesses in 32-bit mode have rather useless semantics due to this, though. The usefulness of 32-bit mode is limited to the initial boot. When the IXP2000 resets, the slowport is always in 32-bit mode, so if you flash the bootloader into flash (which is connected to the slowport) using little-endian byte ordering, the xscale will always read the instruction stream correctly, no matter whether it's running in big or little endian mode. After booting it makes no sense to use 32-bit mode anymore. Especially since the slowport's word ordering in 32-bit mode is little endian, and the IXP2000 is conventionally run in big endian, which gives all kinds of fun issues when trying to access peripherals connected to the slowport. In fact, the current MTD map driver for IXP2000 already sets the slowport to 8-bit mode because it cannot access the flash otherwise. However, this means that if the MTD map driver is not compiled in for some reason, the slowport will stay in 32-bit mode after the initial boot, which will cause peripheral accesses to unexpectedly break! Signed-off-by: Lennert Buytenhek Signed-off-by: Russell King [ARM PATCH] 2494/1: fix 'CONFGI_' -> 'CONFIG_' in mach-ixp2000/ixdp2x00.c Patch from Lennert Buytenhek Fix a misspelled config symbol name in the ixp2000 code. Signed-off-by: Lennert Buytenhek Signed-off-by: Russell King [ARM] Take account of vm_pgoff for DMA mmap The DMA mmap code was ignoring vm_pgoff which prevented a partial mmap() of a DMA buffer. Signed-off-by: Russell King [Bluetooth] The new Microsoft dongle needs HCI_Reset For the new Microsoft Wireless Transceiver for Bluetooth 2.0 it is necessary to send the HCI_Reset on every device initialization. Signed-off-by: Marcel Holtmann [ide] fix ide_get_error_location() for LBA28 Higher bits (16-23) of the address were ignored. Signed-off-by: Bartlomiej Zolnierkiewicz [PATCH] mca resource layout fix Greg's tree changes the layout of struct resource, so mca.c blows up. Preemptively fix it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] end_buffer_async_read printk ratelimiting ratelimit the disk I/O error reporting in end_buffer_async_read(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: warning fix /project/m32r-linux/kernel/linux-2.6.11-rc4-bk4/b/include/linux/nodemask.h: In function `__first_unset_node': /project/m32r-linux/kernel/linux-2.6.11-rc4-bk4/b/include/linux/nodemask.h:246: warning: passing arg 1 of `find_next_zero_bit' discards qualifiers from pointer target type Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] radeonfb: Workaround memory corruption accel problem A conflict between X and radeonfb can cause system memory corruption when switching console from X (note that this is not realted to the recent radeonfb patches, the problem has been there forever as far as I can tell). This patch works around it in radeonfb by making sure the "offsets" register that driver the memory mapping of the accel engine are always properly set before every accel op. A better fix should be done in fbcon ultimately. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] PCI: support PCI_PM_CAP version 1 A check for the PM_CAP version was recently added but i breaks devices with version 1. if they're in power-save mode they never get out of it. Change it to also support v1. Signed-off-by: Daniel Ritz Signed-off-by: Linus Torvalds [ide] small compile fix to ide.c with !CONFIG_PCI Small patch to fix following warning with CONFIG_IDE && !CONFIG_PCI: CC drivers/ide/ide.o drivers/ide/ide.c: In function 'ide_system_bus_speed': drivers/ide/ide.c:338: warning: unused variable 'pci_default' I decided to save some bytes by #ifdef:ing the struct in question. CC:ing Hanna because she did the change (and just to say hi ;-). Signed-off-by: Mika Kukkonen Signed-off-by: Bartlomiej Zolnierkiewicz [ide] Kconfig for VR1000 machine driver selection Fix the use of CONFIG_MACH_VR1000, which was missing an trailing zero from the configuration variable, so never being shown if only the VR1000 was selected Signed-off-by: Ben Dooks Signed-off-by: Bartlomiej Zolnierkiewicz Use e820 memory map to determine PCI allocation area. Don't use the VM numbers (max_low_pfn and friends), since they depend on the partial kernel linear mapping and only partially on the actual physical memory layout. Be more careful about looking for gaps in the e820 table. We really don't care about anything beyond the 4GB mark, so make the tests for that explicit (and add a comment), and use regular "unsigned long" for the gap information. x86: when choosing PCI starting address, print out gap information This makes for better messages on what is going on. It also allows us (if we want to), to pick the PCI starting address somewhere else in the gap. That may be a good idea (ie do a pci_mem_start = (gapstart + (gapsize >> 3) + 0xfffff) & ~0xfffff; or similar. [PATCH] strip.c build fix Someone added a new dev_set_mac_address() to netdevice.h Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik [PATCH] S2io: Multicast fix Attached is the patch to address the incorrect programming of individual multicast address into the NIC. Signed-off-by: Ravinandan Arakali Signed-off-by: Jeff Garzik [PATCH] natsemi long cable fix This is a minor modification to the previous patch submission that does not assume the default contents of the DSPCFG register are zero. When used with Revision D of the DP83815, the "Recommended Registers Configuration" from page 78 of the DP83815 data sheet is not entirely compatible with the driver's "short cable patch". When the DSPCFG register is written with the value suggested in the document, then do_cable_magic() can't read the DSP coefficient and determines that all cables attached to the DP83815D are 'short', regardless of actual length. Short cables (< 30m) cause do_cable_magic to enable additional attenuation to reduce CRC and idle errors. If the extra attenuation is unintentionally enabled for long cables (> 50m?), they will not operate properly. The National Semiconductor driver, 'dp83815.c' from http://www.national.com/appinfo/networks/files/linux_2_4.tar.gz was used as a basis for this modification. Signed-off-by: Jeff Garzik [PATCH] ppc32: fix ptep_test_and_clear_young ppc32's implementation of ptep_test_and_clear_young() has a logic error which makes it fail to flush the hash table. Thus PAGE_ACCESSED is almost never set again after beeing cleared (unless something else cause that hash entry to be flushed). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] libata kfree fix Fixes double-kfree that caused slab corruption. Signed-off-by: Jeff Garzik Signed-off-by: Linus Torvalds [TCP]: Fix BIC max_cwnd calculation error. The BIC TCP cwnd problem as identified by Yee-Ting Li and Doug Leith is that the computation is recalc_ssthresh is incorrect and BICTCP_1_OVER_BETA/2 should be BICTCP_1_OVER_BETA*2. My fix is to implement the code from BIC TCP 1.1 which uses a sysctl to set the beta. There are a few variable name changes from the 1.1 code, and made the scaling factor a #define instead of hardcoded. I validated this using netem and kprobes, for more details see http://developer.osdl.org/shemminger/bic-beta-patch.pdf Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [PATCH] alpha: struct resource fix Used named initialisers in this declaration before Greg's tree's struct resource layout changes come in and break it. (Probably "dma page reg" shouldn't have spaces in the name - be friendly to /proc/ioports parsers?) Cc: Richard Henderson Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: resource layout fixes Use named initialisers. Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc64 rusage build fix Some patch in -mm causes the sparc64 build to explode because `struct rusage' isn't defined or declared in compat.h. So forward-declare it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc64 usb build fix We need asm/irq.h for __irq_itoa() on sparc[64]. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] au1100: fix io_remap_page_range() arg. list Fix io_remap_page_range() call to pass a missing arg. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64: resource layout fix Greg's tree changes the order of fields in struct reasource, causing x86_64 to explode nastily. Fix. Cc: Greg KH Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix 32bit largepage issue The paca holds a shadow of the context struct, used for the real mode SLB handler. When we open up a new segment we have to sync up the paca copy otherwise we will instantiate small page SLB entries until the next context switch (at which point we resync the paca copy). Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Build failure with !CONFIG_PCI and with CONFIG_ISAPNP=y && CONFIG_PNPBIOS=y Trying to build latest BK-kernel with !CONFIG_PCI and with CONFIG_ISAPNP=y and CONFIG_PNPBIOS=y I got the following build error: LD vmlinux drivers/built-in.o(.text+0x5486): In function 'pnpbios_parse_allocated_irqresource': : undefined reference to 'pcibios_penalize_isa_irq' Clearly pcibios_penalize_isa_irq() is meant to be called only with CONFIG_PCI=y. Signed-off-by: Mika Kukkonen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [TCP]: Fix excessive stack usage resulting in OOPS with 4KSTACKS. Various routines were putting a full struct tcp_sock on the local stack. What they really wanted was a subset of this information when doing TCP options processing when we only have a mini-socket (for example in SYN-RECVD and TIME_WAIT states). Therefore pull out the needed information into a sub-struct and use that in the TCP options processing routines. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [PATCH] Re-order includes to fix userland breakage The following moves all includes (except and down to below the existing __KERNEL__ test. None of these includes are needed by the user-visible portions of the header, and in some cases can cause userland apps to break. For example, LTP and sash with an empty will fail thusly: cc -Wall -I../../include -g -Wall -I../../../../include -Wall setrlimit02.c -L../../../../lib -lltp -o setrlimit02 In file included from /usr/include/asm/atomic.h:6, from /usr/include/linux/fs.h:20, from setrlimit02.c:46: /usr/include/asm/processor.h:68: error: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function) /usr/include/asm/processor.h:68: error: requested alignment is not a constant Build/run tested with a glibc rebuild as well. Signed-off-by: Tom Rini Signed-off-by: Linus Torvalds [PATCH] Fix NR_OPEN header order dependency Move back up in , to get the right ordering for the NR_OPEN dual define (ugh). Signed-off-by: Tom Rini Signed-off-by: Linus Torvalds [PATCH] r8169: fix rx skb allocation error logging Fix rx skb allocation error logging Signed arithmetic is not required as rtl8169_rx_fill() return belongs to the [0; NUM_RX_DESC] interval. Signed-off-by: Jon Mason Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] r8169: skb alignment nitpicking Nail an overrun in skb alignment and remove the relevant magic variable. Signed-off-by: Jon Mason Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] r8169: removal of unused #define Removal of unused #define Signed-off-by: Jon Mason Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] r8169: uniformize comments Uniformize comments Signed-off-by: Jon Mason Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] ppc32: kernel mapping breakage Christoph Lameter's patch that change page allocators to use GFP_ZERO broke ppc32 in a subtle way. Our allocator is designed to work before mem_init_done, in which cases it uses a ppc specific early_get_page() which doesn't return zeroed pages. However, he removed the call to clear_page() unconditionally, thus causing the kernel initial page tables to have random data in them. They are initialized with set_pte, which means it's _mostly_ harmless, except that set_pte on ppc32 preserves the _PAGE_HASHPTE bit, thus we end up with random bits there, which can cause issues with further manipulation of the kernel page tables and will slow down all hash faults to them causing unnecessary searches. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] NFS: Further fixes for the -onolock case. Duh... GETLK returns F_UNLCK if and only if the lock could be placed. Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds [PATCH] ppc32: Wrong vaddr in flush_hash_one_pte() Reworking the ppc32 mm helps me find interesting bugs in the existing bug, well, brown paper bag for me, I made this one a while ago. The routine flush_hash_one_pte() used by ptep_test_and_clear_young() wasn't properly recaclulating the vaddr from the pte pointer & page->index. The result is that we probably never flushed things from the hash, so that's at least the _second_ bug affecting ptep_test_and_clear_young(), swap on ppc32 must have been really broken :( This fixes it. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ppc64: fix compilation for Maple board A patch that I sent in earlier to allow the use of the data address breakpoint on machines with a hypervisor happened to break things for those configs, such as for the Maple board, where we don't compile in the routines for calling the hypervisor. This patch fixes it. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ALPS: do not activate on unsupported models It feels like 2.6.11 is right around the corner. I would like to disable ALPS suport for some devices we don't know how to handle properly yet to cut down on number of complaints that we broke mouse support. Input: ALPS - do not activate native mode for devices whose data we can not handle yet. Signed-off-by: Dmitry Torokhov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] device-mapper: dm-raid1 deadlock fix Fix a dm-raid1 deadlock: nested spinlocks with _irq. Signed-Off-By: Alasdair G Kergon From: Tim Burgess Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds agp: aper_base is unsigned Not that anybody cares about the sign, but the signed type does the wrong thing for right shifts. Which we had. [libata] Add missing hooks, to avoid oops in advanced SATA drivers Advanced SATA drivers should not (and cannot) use the basic PCI IDE hooks for checking the Status and Error registers, as these registers are either in non-standard locations, or simply don't exist. In the error handling path, libata was unconditionally calling some PCI IDE hardware bitbanging functions, which would cause an oops in the AHCI driver and any other advanced libata driver. [PATCH] Fix possible futex mmap_sem deadlock Some futex functions do get_user calls while holding mmap_sem for reading. If get_user() faults, and another thread happens to be in mmap (or somewhere else holding waiting on down_write for the same semaphore), then do_page_fault will deadlock. Most architectures seem to be exposed to this. To avoid it, make sure the page is available. If not, release the semaphore, fault it in and retry. I also found another exposure by inspection, moving some of the code around avoids the possible deadlock there. Signed-off-by: Olof Johansson Signed-off-by: Linus Torvalds [PATCH] r8169: IRQ races during change of mtu IRQ races during change of mtu - NAPI poll must be enabled prior to IRQ activation or the IRQ handler will not know what to do with an incoming packet; - rtl8169_down() needs to try twice to sync with the IRQ handler when it is not issued under !netif_running() protection. Both changes make it safe to request a change of mtu on a live device. Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik [PATCH] r8169: factor out some code. Factor out some code Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik Linux 2.6.11-rc5