Linus Torvalds: Linux v2.6.12-rc3 Releasing this will also make "git" the official source control thing. Here's to hoping for the best. Herbert Xu: [IPSEC]: COW skb header in UDP decap The following patch just makes the header part of the skb writeable. This is needed since we modify the IP headers just a few lines below. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller Herbert Xu: [ATALK]: Add missing dev_hold() to atrtr_create(). Signed-off-by: Herbert Xu Signed-off-by: David S. Miller Arnaldo Carvalho de Melo: [SOCK]: on failure free the sock from the right place Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller Stephen Hemminger: [NET]: skbuff: remove old NET_CALLER macro Here is a revised alternative that uses BUG_ON/WARN_ON (as suggested by Herbert Xu) to eliminate NET_CALLER. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller David S. Miller: [RTNETLINK]: Add comma to final entry in link_rtnetlink_table Noticed by Herbert Xu. Signed-off-by: David S. Miller Thomas Graf: [RTNETLINK]: Protocol family wildcard dumping for routing rules Be kind to userspace and don't force them to hardcode protocol families just to have it changed again once we support routing rules for more than one protocol family. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller Herbert Xu: [IPV6]: Replace bogus instances of inet->recverr While looking at this problem I noticed that IPv6 was sometimes looking at inet->recverr which is bogus. Here is a patch to correct that and use np->recverr. Signed-off-by: Herbert Xu Acked-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller Herbert Xu: [IPV6]: IPV6_CHECKSUM socket option can corrupt kernel memory So here is a patch that introduces skb_store_bits -- the opposite of skb_copy_bits, and uses them to read/write the csum field in rawv6. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller YOSHIFUJI Hideaki: [IPV6]: Fix a branch prediction From: Tushar Gohad Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller Herbert Xu: [NET]: Shave sizeof(ptr) bytes off dst_entry Signed-off-by: Herbert Xu Signed-off-by: David S. Miller Hugh Dickins: [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 Replace misleading definition of FIRST_USER_PGD_NR 0 by definition of FIRST_USER_ADDRESS 0 in all the MMU architectures beyond arm and arm26. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: remove FIRST_USER_ADDRESS hack Once all the MMU architectures define FIRST_USER_ADDRESS, remove hack from mmap.c which derived it from FIRST_USER_PGD_NR. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: arm26 FIRST_USER_ADDRESS PAGE_SIZE ARM26 define FIRST_USER_ADDRESS as PAGE_SIZE (beyond the machine vectors when they are mapped low), and use that definition in place of locally defined MIN_MAP_ADDR. Previously, ARM26 permitted user mappings at 0 if the machine vectors were mapped high; but that's inconsistent with ARM, and FIRST_USER_ADDRESS would then have to be determined at runtime. Let's fix it at PAGE_SIZE throughout the architecture. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: arm FIRST_USER_ADDRESS PAGE_SIZE ARM define FIRST_USER_ADDRESS as PAGE_SIZE (beyond the machine vectors when they are mapped low), and use that definition in place of locally defined MIN_MAP_ADDR. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: sys_mincore ignore FIRST_USER_PGD_NR Remove use of FIRST_USER_PGD_NR from sys_mincore: it's inconsistent (no other syscall refers to it), unnecessary (sys_mincore loops over vmas further down) and incorrect (misses user addresses in ARM's first pgd). Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: free_pgtables from FIRST_USER_ADDRESS The patches to free_pgtables by vma left problems on any architectures which leave some user address page table entries unencapsulated by vma. Andi has fixed the 32-bit vDSO on x86_64 to use a vma. Now fix arm (and arm26), whose first PAGE_SIZE is reserved (perhaps) for machine vectors. Our calls to free_pgtables must not touch that area, and exit_mmap's BUG_ON(nr_ptes) must allow that arm's get_pgd_slow may (or may not) have allocated an extra page table, which its free_pgd_slow would free later. FIRST_USER_PGD_NR has misled me and others: until all the arches define FIRST_USER_ADDRESS instead, a hack in mmap.c to derive one from t'other. This patch fixes the bugs, the remaining patches just clean it up. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: mpnt to vma cleanup While dabbling here in mmap.c, clean up mysterious "mpnt"s to "vma"s. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: hugetlb area is clean Once we're strict about clearing away page tables, hugetlb_prefault can assume there are no page tables left within its range. Since the other arches continue if !pte_none here, let i386 do the same. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: remove arch pgd_addr_end ia64 and sparc64 hurriedly had to introduce their own variants of pgd_addr_end, to leapfrog over the holes in their virtual address spaces which the final clear_page_range suddenly presented when converted from pgd_index to pgd_addr_end. But now that free_pgtables respects the vma list, those holes are never presented, and the arch variants can go. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: hugetlb_free_pgd_range ia64 and ppc64 had hugetlb_free_pgtables functions which were no longer being called, and it wasn't obvious what to do about them. The ppc64 case turns out to be easy: the associated tables are noted elsewhere and freed later, safe to either skip its hugetlb areas or go through the motions of freeing nothing. Since ia64 does need a special case, restore to ppc64 the special case of skipping them. The ia64 hugetlb case has been broken since pgd_addr_end went in, though it probably appeared to work okay if you just had one such area; in fact it's been broken much longer if you consider a long munmap spanning from another region into the hugetlb region. In the ia64 hugetlb region, more virtual address bits are available than in the other regions, yet the page tables are structured the same way: the page at the bottom is larger. Here we need to scale down each addr before passing it to the standard free_pgd_range. Was about to write a hugely_scaled_down macro, but found htlbpage_to_page already exists for just this purpose. Fixed off-by-one in ia64 is_hugepage_only_range. Uninline free_pgd_range to make it available to ia64. Make sure the vma-gathering loop in free_pgtables cannot join a hugepage_only_range to any other (safe to join huges? probably but don't bother). Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: remove MM_VM_SIZE(mm) There's only one usage of MM_VM_SIZE(mm) left, and it's a troublesome macro because mm doesn't contain the (32-bit emulation?) info needed. But it too is only needed because we ignore the end from the vma list. We could make flush_pgtables return that end, or unmap_vmas. Choose the latter, since it's a natural fit with unmap_mapping_range_vma needing to know its restart addr. This does make more than minimal change, but if unmap_vmas had returned the end before, this is how we'd have done it, rather than storing the break_addr in zap_details. unmap_vmas used to return count of vmas scanned, but that's just debug which hasn't been useful in a while; and if we want the map_count 0 on exit check back, it can easily come from the final remove_vm_struct loop. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hugh Dickins: [PATCH] freepgt: free_pgtables use vma list Recent woes with some arches needing their own pgd_addr_end macro; and 4-level clear_page_range regression since 2.6.10's clear_page_tables; and its long-standing well-known inefficiency in searching throughout the higher-level page tables for those few entries to clear and free: all can be blamed on ignoring the list of vmas when we free page tables. Replace exit_mmap's clear_page_range of the total user address space by free_pgtables operating on the mm's vma list; unmap_region use it in the same way, giving floor and ceiling beyond which it may not free tables. This brings lmbench fork/exec/sh numbers back to 2.6.10 (unless preempt is enabled, in which case latency fixes spoil unmap_vmas throughput). Beware: the do_mmap_pgoff driver failure case must now use unmap_region instead of zap_page_range, since a page table might have been allocated, and can only be freed while it is touched by some vma. Move free_pgtables from mmap.c to memory.c, where its lower levels are adapted from the clear_page_range levels. (Most of free_pgtables' old code was actually for a non-existent case, prev not properly set up, dating from before hch gave us split_vma.) Pass mmu_gather** in the public interfaces, since we might want to add latency lockdrops later; but no attempt to do so yet, going by vma should itself reduce latency. But what if is_hugepage_only_range? Those ia64 and ppc64 cases need careful examination: put that off until a later patch of the series. What of x86_64's 32bit vdso page __map_syscall32 maps outside any vma? And the range to sparc64's flush_tlb_pgtables? It's less clear to me now that we need to do more than is done here - every PMD_SIZE ever occupied will be flushed, do we really have to flush every PGDIR_SIZE ever partially occupied? A shame to complicate it unnecessarily. Special thanks to David Miller for time spent repairing my ceilings. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Linus Torvalds: Merge with kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6.git/ for 13 driver core, sysfs, and debugfs fixes. Linus Torvalds: Merge with kernel.org:/pub/scm/linux/kernel/git/gregkh/aoe-2.6.git/ for 11 aoe bugfix patches. Linus Torvalds: Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6.git/ Linus Torvalds: Merge with Greg's USB tree at kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/ Yah, it does work to merge. Knock wood. ecashin@coraid.com: [PATCH] aoe 12/12: send outgoing packets in order I can't use list.h, since sk_buff doesn't have a list_head but instead has two struct sk_buff pointers, and I want to avoid any extra memory allocation. send outgoing packets in order Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman ecashin@coraid.com: [PATCH] aoe 11/12: add support for disk statistics add support for disk statistics Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman ecashin@coraid.com: [PATCH] aoe 9/12: add note about the need for deadlock-free sk_buff allocation add note about the need for deadlock-free sk_buff allocation Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman ecashin@coraid.com: [PATCH] aoe 8/12: document env var for specifying number document env var for specifying number of partitions per dev Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman ecashin@coraid.com: [PATCH] aoe 6/12: Alexey Dobriyan sparse cleanup Alexey Dobriyan sparse cleanup Signed-off-by: Alexey Dobriyan Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman ecashin@coraid.com: [PATCH] aoe 4/12: handle distros that have a udev rules handle distros that have a udev rules file instead of dir Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman ecashin@coraid.com: [PATCH] aoe 5/12: don't try to free null bufpool don't try to free null bufpool Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman ecashin@coraid.com: [PATCH] aoe 3/12: update driver version to 6 update driver version to 6 Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman ecashin@coraid.com: [PATCH] aoe 2/12: allow multiple aoe devices with same MAC allow multiple aoe devices with same MAC addr Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman ecashin@coraid.com: [PATCH] aoe 1/12: remove too-low cap on minor number remove too-low cap on minor number Signed-off-by: Ed L. Cashin Signed-off-by: Greg Kroah-Hartman kay.sievers@vrfy.org: [PATCH] kobject/hotplug split - net bridge kobject_add() and kobject_del() don't emit hotplug events anymore. We need to do it ourselves now. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman kay.sievers@vrfy.org: [PATCH] kobject/hotplug split - usb cris kobject_add() and kobject_del() don't emit hotplug events anymore. We need to do it ourselves now. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman kay.sievers@vrfy.org: [PATCH] kobject/hotplug split - devices core kobject_add() and kobject_del() don't emit hotplug events anymore. Do it ourselves if we are finished populating the device directory. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman kay.sievers@vrfy.org: [PATCH] kobject/hotplug split - block core kobject_add() and kobject_del() don't emit hotplug events anymore. Do it ourselves if we are finished populating the device directory. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman kay.sievers@vrfy.org: [PATCH] kobject/hotplug split - class core kobject_add() and kobject_del() don't emit hotplug events anymore. Do it ourselves if we are finished populating the device directory. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman Michal Ostrowski: [PATCH] debugfs: fix !debugfs prototypes - Fix prototypes for debugfs functions (in configurations where debugfs is disabled). Signed-off-by: Michal Ostrowski Signed-off-by: Greg Kroah-Hartman kay.sievers@vrfy.org: [PATCH] kobject/hotplug split - kobject add/remove kobject_add() and kobject_del() don't emit hotplug events anymore. The user should do it itself if it has finished populating the device directory. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman Roland Dreier: [PATCH] debugfs: Reduce dependencies The current include file is a little fragile in that it is not self-contained and hence may cause compile warnings or errors depending on the files included before it, the kernel config and the architecture. This patch makes things a little more robust by: - including to get definitions of u32, mode_t, and so on. - forward declaring struct file_operations. - including when CONFIG_DEBUG_FS is not set The last change is particularly useful, as a kernel developer is likely to build with debugfs always enabled and never see the build breakage cased if debugfs is disabled. Signed-off-by: Roland Dreier Signed-off-by: Greg Kroah-Hartman Steven Cole: [PATCH] 2.6.12-rc1-mm3 Fix ver_linux script for no udev utils. Without the attached patch, the ver_linux script gives the following if udev utils are not present. ./scripts/ver_linux: line 90: udevinfo: command not found The patch causes ver_linux to be silent in the case of no udevinfo command. Signed-off-by: Steven Cole Signed-off-by: Greg Kroah-Hartman Robert Schwebel: [PATCH] export platform_add_devices platform_add_devices can be used from within modules, so it should be exported. This can for example happen if you have hotpluggable firmware in an FPGA on a system on chip processor; in our case the FPGA is probed for devices and the FPGA base code registers the devices it has found with the kernel. (akpm: I think this is reasonable from a licensing POV: it's unlikely that anyone would be interested in merging such specialised modules into mainline, and it's a GPL export). Signed-off-by: Robert Schwebel Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman Kay Sievers: [PATCH] sysfs: add sysfs_chmod_file() sysfs: allow changing the permissions for already created attributes Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman kay.sievers@vrfy.org: [PATCH] add TIMEOUT to firmware_class hotplug event On Tue, 2005-03-15 at 09:25 +0100, Hannes Reinecke wrote: > The current implementation of the firmware class breaks a fundamental > assumption in udevd: that the physical device can be initialised fully > prior to executing the next event for that device. Here we add a TIMEOUT value to the hotplug environment of the firmware requesting event. I will adapt udevd not to wait for anything else, if it finds a TIMEOUT key. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman gregkh@suse.de: [PATCH] kref: add link to original documentation to the kref documentation. Signed-off-by: Greg Kroah-Hartman minyard@acm.org: [PATCH] kref: add documentation Add some documentation for krefs. Signed-off-by: Corey Minyard Signed-off-by: Greg Kroah-Hartman Jean Delvare: [PATCH] I2C: Fix incorrect sysfs file permissions in it87 and via686a drivers The it87 and via686a hardware monitoring drivers each create a sysfs file named "alarms" in R/W mode, while they should really create it in read-only mode. Since we don't provide a store function for these files, write attempts to these files will do something undefined (I guess) and bad (I am sure). My own try resulted in a locked terminal (where I attempted the write) and a 100% CPU load until next reboot. As a side note, wouldn't it make sense to check, when creating sysfs files, that readable files have a non-NULL show method, and writable files have a non-NULL store method? I know drivers are not supposed to do stupid things, but there is already a BUG_ON for several conditions in sysfs_create_file, so maybe we could add two more? Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman Jean Delvare: [PATCH] I2C: via686a cleanups Here comes a small cleanup patch for the via686a driver. I noticed the following two non-fatal problems: 1* The device parent is explicitely set, but it's not needed because the i2c core will do as the client is registered. 2* snprintf is used where strlcpy would suffice. Fixing them brings the via686a driver in line with what other similar drivers do. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman johnpol@2ka.mipt.ru: [PATCH] w1: real fix for big endian machines. Real fix for big endian machines - crc must be calculated using little endian byte order. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman johnpol@2ka.mipt.ru: [PATCH] w1_smem: w1 ID is only 8 bytes long. w1 ID is only 8 bytes long. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman James Bottomley: fully merge up to scsi-misc-2.6 Viktor A. Danilov: [PATCH] USB: fix AIPTEK input doesn`t register `device` & `driver` section in sysfs (/sys/class/input/event#) PROBLEM: aiptek input doesn`t register `device` & `driver` section in sysfs (/sys/class/input/event#) REASON: `dev` - field not filled... SOLUTION: in linux/drivers/usb/input/aiptek.c write aiptek->inputdev.dev = &intf->dev; before calling input_register_device(&aiptek->inputdev); From: "Viktor A. Danilov" <__die@mail.ru> Signed-off-by: Greg Kroah-Hartman Index: gregkh-2.6/drivers/usb/input/aiptek.c =================================================================== David Brownell: [PATCH] usb gadget: ethernet/rndis updates Updates to the Ethernet/RNDIS gadget driver (mostly for RNDIS): - Fix brown-paper bag goof with RNDIS packet TX ... the wrong length field got set, so Windows would ignore data packets it received. - More consistent handling of CDC output filters (but not yet hooking things up so RNDIS uses the mechanism). - Zerocopy RX for RNDIS packets too (saving CPU cycles). - Use the pre-allocated interrupt/status request and buffer, rather than allocating and freeing one of each every few seconds (which could fail). - Some more "sparse" tweaks, making both dual-speed and single-speed configurations happier. - RNDIS speeds are reported in units of 100bps, not bps. Plus two minor cleanups (whitespace, messaging). Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman Jesper Juhl: [PATCH] USB: kfree cleanup for drivers/usb/* - no need to check for NULL Get rid of a bunch of redundant NULL pointer checks in drivers/usb/*, there's no need to check a pointer for NULL before calling kfree() on it. Signed-off-by: Jesper Juhl Signed-off-by: Greg Kroah-Hartman Index: gregkh-2.6/drivers/usb/class/audio.c =================================================================== Jesper Juhl: [PATCH] usb: kfree() cleanups in drivers/usb/core/devio.c Checking for NULL before calling kfree() is redundant. This patch removes these redundant checks and also makes a few tiny whitespace changes. Signed-off-by: Jesper Juhl Signed-off-by: Greg Kroah-Hartman Peter Favrholdt: [PATCH] USB: pl2303 new vendor/model ids Please accept the attached patch which adds the vendorid 0x0745 and modelid 0x0001 (ID 0745:0001) "Syntech Information Co., Ltd." The device is an USB IR cradle for a barcode scanner (CPT-8001C) from Cipherlab. From: Peter Favrholdt Signed-off-by: Greg Kroah-Hartman diff -u kernel-source-2.6.11/drivers/usb/serial/pl2303.c ../kernel-source-2.6.11/drivers/usb/serial/pl2303.c Flavio Leitner: [PATCH] pl2303 - status line I'm attaching a patch to fix status when using Siemens X65 mobile. This mobile use first byte instead of normal UART_STATE byte. From: Flavio Leitner Signed-off-by: Greg Kroah-Hartman Index: gregkh-2.6/drivers/usb/serial/pl2303.c =================================================================== Flavio Leitner: [PATCH] pl2303 - unplug device. It's possible to unplug usb device and do tiocmset() and tiocmget() without valid interface in pl2303 module. The patch below check this and return -ENODEV if interface was removed. From: Flavio Leitner Signed-off-by: Greg Kroah-Hartman diff -purN linux-05-04-11/drivers/usb/serial/pl2303.c linux-05-04-11.usb/drivers/usb/serial/pl2303.c Alan Stern: [PATCH] USB: USB API documentation modification In response to complaints about excessive latency in the uhci-hcd driver I'm planning to convert it to a top-half/bottom-half design. It turns out that to do this, the USB API has to be modified slightly since the driver will not be able to meet one of the guarantees in the current API. This patch changes some kerneldoc, specifying the weaker guarantee. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman David Brownell: [PATCH] USB: OHCI on Compaq Aramada 7400 This adds a quirk to the OHCI driver that lets it work with an old Compaq implementation. It also removes some needless strings from the non-debug version of the driver. Signed-off-by: Chris Clayton Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman David Brownell: [PATCH] USB: usbnet and zaurus zl-5600 Hmm, another case of a Zaurus ROM not telling the expected conformance lie; this patch handles the lies told by the SL5600. From: bender647@gmail.com Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman felix@derklecks.de: [PATCH] USB Storage unusual_dev.h 07c4:a10b Datafab Systems, Inc. Signed-off-by: Phil Dibowitz Signed-off-by: Greg Kroah-Hartman Index: gregkh-2.6/drivers/usb/storage/unusual_devs.h =================================================================== Thomas Winischhofer: [PATCH] USB: new SIS device id the attached patch adds another USB device ID to the list. Seems the device is known under multiple IDs. Signed-off-by: Thomas Winischhofer Signed-off-by: Greg Kroah-Hartman Phil Dibowitz: [PATCH] Fix GO_SLOW delay This patch changes the delay for the US_FL_GO_SLOW patch from 110us to 125. Some delays need this extra delay includign Jan De Luyck's drive which spawned the original increase from 110 to 110us. 125 is a microframe, so this delay seems to make sense more than just be a random delay (thanks to David Brownell for pointing that out after my original patch). Signed-off-by: Phil Dibowitz Signed-off-by: Greg Kroah-Hartman Index: gregkh-2.6/drivers/usb/storage/transport.c =================================================================== Andrew Morton: [PATCH] USB: usbnet printk warning fix On ppc64: drivers/usb/net/usbnet.c: In function `skb_return': drivers/usb/net/usbnet.c:429: warning: int format, different type arg (arg 3) drivers/usb/net/usbnet.c:429: warning: int format, different type arg (arg 3) Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman diff -puN drivers/usb/net/usbnet.c~usbnet-printk-warning-fix drivers/usb/net/usbnet.c Christopher Li: [PATCH] USB: bug fix in usbdevfs I am sorry that the last patch about 32 bit compat ioctl on 64 bit kernel actually breaks the usbdevfs. That is on the current BK tree. I am retarded. Here is the patch to fix it. Tested with USB hard disk and webcam in both 32bit compatible mode and native 64bit mode. Again, sorry about that. From: Christopher Li Signed-off-by: Greg Kroah-Hartman David Brownell: [PATCH] USB: revert "fix" to usb_set_interface() This reverts a recent change to usb_set_interface(). The change worked around a quirk in certain devices, but doing this in usbcore creates needless regressions for other devices. More appropriate fixes won't put such handling in usbcore. Basically it's tricky to do a full software reset of USB device state, since the devices don't all act the same. This adds a note to the kerneldoc for the usb_reset_configuration() call to highlight the quirk this was working around: endpoint data toggles not being reset. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman Nishanth Aravamudan: [PATCH] USB: usb/digi_acceleport: correct wait-queue state First patch incorrectly changed state of the wait-queue usage to TASK_UNINTERRUPTIBLE. Reverted to TASK_INTERRUPTIBLE. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman Pavel Machek: [PATCH] USB: fix up remaining pm_message_t usages Signed-off-by: Greg Kroah-Hartman Greg KH: [PATCH] USB: fix up some sparse warnings about static functions that aren't static. Signed-off-by: Greg Kroah-Hartman Index: gregkh-2.6/drivers/usb/core/usb.h =================================================================== David Brownell: [PATCH] USB: hcd suspend uses pm_message_t This patch includes minor "sparse -Wbitwise" updates for the PCI based HCDs. Almost all of them involve just changing the second parameter of the suspend() method to a pm_message_t ... the others relate to how the EHCI code walks in-memory data structures. (There's a minor bug fixed there too ... affecting the big-endian sysfs async schedule dump.) Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman Index: gregkh-2.6/drivers/usb/core/hcd.h =================================================================== David Brownell: [PATCH] usb resume fixes This has a variety of updates to the shared suspend/resume code for PCI based USB host controllers. - Cope with pm_message_t replacing the target system state. This is actually a loss of functionality; PCI D1 and D2 states will no longer be used, and it's no longer knowable that D3cold is on the way so power will be lost. - Most importantly, some of the resume paths are reworked and cleaned up. They're now an exact mirror of suspend paths, and more care is taken to ensure the hardware is reactivated before the hardware re-enables interrupts. Plus comment and diagnostic cleanups; there are some nasty cases here especially combined with swsusp, now they're somewhat commented. Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman diff -puN drivers/usb/core/hcd-pci.c~usb-resume-fixes drivers/usb/core/hcd-pci.c David Brownell: [PATCH] usb suspend updates (interface suspend) This is the first of a few installments of PM API updates to match the recent switch to "pm_message_t". This installment primarily affects USB device drivers (for USB interfaces), and it changes the handful of drivers which currently implement suspend methods: - and usbcore, signature change - Some drivers only changed the signature, net effect this just shuts up "sparse -Wbitwise": * hid-core * stir4200 - Two network drivers did that, and also grew slightly more featureful suspend code ... they now properly shut down their activities. (As should stir4200...) * pegasus * usbnet Note that the Wake-On-Lan (WOL) support in pegasus doesn't yet work; looks to me like it's missing a request to turn it on, vs just configuring it. The ASIX code in usbnet also has WOL hooks that are ready to use; untested. Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman Index: gregkh-2.6/drivers/net/irda/stir4200.c =================================================================== Andrew Morton: [PATCH] USB: usb_cdc build fix With older gcc's: In file included from drivers/usb/class/cdc-acm.c:63: include/linux/usb_cdc.h:117: field `bDetailData' has incomplete type Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman diff -puN include/linux/usb_cdc.h~usb_cdc-build-fix include/linux/usb_cdc.h gregkh@suse.de: [PATCH] USB: add new visor id for Treo 650 Thanks to Jamieson Becker for the info Signed-off-by: Greg Kroah-Hartman diff -Naur -X dontdiff-osdl tmp/linux-2.6.12-rc2/drivers/usb/serial/visor.h linux-2.6/drivers/usb/serial/visor.h Larry Battraw: [PATCH] USB: visor Tapwave Zodiac support patch Here's a tiny patch to add support for the Tapwave Zodiac (for 2.6.11.6). I've been meaning to send it in for a while but kept upgrading my kernel and losing the changes :-) I own the device and it works fine with the latest pilot-link beta. From: Larry Battraw Signed-off-by: Greg Kroah-Hartman Linus Torvalds: Merge with master.kernel.org:/home/rmk/linux-2.6-rmk.git This adds the missing arch/arm/lib/bitops.h file. David S. Miller: [PATCH] sparc64: Fix stat Like Alpha, sparc64's struct stat was defined before we had the nanosecond et al. fields added. So like Alpha I have to cons up a struct stat64 to get this stuff. I'll work on the glibc bits soon. Also, we were forgetting to fill in the nanosecond fields in the sparc compat stat64 syscalls. Signed-off-by: David S. Miller Signed-off-by: Linus Torvalds Russell King: [PATCH] ARM: Add missing new file for bitops patch Signed-off-by: Russell King Linus Torvalds: Merge SCSI tree from James Bottomley. Done with "git-pull-script rsync://www.parisc-linux.org/~jejb/scsi-rc-fixes-2.6.git" together with an automated content merge. author Mon, 18 Apr 2005 04:03:20 -0500 aic7xxx: convert to SPI transport class Domain Validation Now that we export all the parameters, this is easy to do. It also means that we can dump about 2000 lines of code that were dedicated to doing this internally. Additionally, this removes all the aic7xxx driver abuse of SCSI timers which were embedded in the DV routines. Signed-off-by: James Bottomley author Mon, 18 Apr 2005 02:59:33 -0500 aic7xxx: add support for the SPI transport class This is just a simplistic patch to export all of the aic7xxx internal transport parameters via the SPI transport class. It doesn't actually alter the way the driver works at all. Signed-off-by: James Bottomley author Mon, 18 Apr 2005 02:32:42 -0500 qla2xxx: fix compiler warning in qla_attr.c CC [M] drivers/scsi/qla2xxx/qla_attr.o drivers/scsi/qla2xxx/qla_attr.c: In function `qla2x00_sysfs_write_fw_dump': drivers/scsi/qla2xxx/qla_attr.c:65: warning: implicit declaration of function `vfree' drivers/scsi/qla2xxx/qla_attr.c:83: warning: implicit declaration of function `vmalloc' drivers/scsi/qla2xxx/qla_attr.c:83: warning: cast to pointer from integer of different size Also remove spurious inclusion of linux/version.h Signed-off-by: James Bottomley author Mon, 18 Apr 2005 02:05:31 -0500 lpfc: add Emulex FC driver version 8.0.28 From: James.Smart@Emulex.Com Modified for kernel import and Signed-off-by: James Bottomley author Mon, 18 Apr 2005 01:28:39 -0500 [PATCH] drivers/scsi/gdth.c: cleanups This patch contains the following cleanups: - make some needlessly global functions static - remove one more kernel 2.2 #ifdef Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley author Mon, 18 Apr 2005 01:26:13 -0500 [PATCH] remove old scsi data direction macros these have been wrappers for the generic dma direction bits since 2.5.x. This patch converts the few remaining drivers and removes the macros. Arjan noticed there's some hunk in here that shouldn't. Updated patch below: Signed-off-by: James Bottomley author Mon, 18 Apr 2005 01:16:47 -0500 [PATCH] qla2xxx: update version to 8.00.02b5-k Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley author Mon, 18 Apr 2005 01:14:51 -0500 [PATCH] qla2xxx: remove sale revision notes file Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley author Mon, 18 Apr 2005 01:13:01 -0500 [PATCH] qla2xxx: remove /proc interface Remove /proc support. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley author Mon, 18 Apr 2005 01:10:41 -0500 [PATCH] qla2xxx: cleanup DMA mappings... Don't use cmd->request->nr_hw_segments as it may not be initialized (SG_IO in particular bypasses anything that initializes this and just uses scsi_do_req to insert a scsi_request directly on the head of the queue) and a bogus value here can trip up the checks to make sure that the number of segments will fit in the queue ring buffer, resulting in commands that are never completed. Fix up several issues with PCI DMA mapping and failure to check return values on the mappings. Make the check for space in the ring buffer happen after the DMA mapping is done since any checks done before the mapping has taken place are bogus. Doug Ledford . Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley author Mon, 18 Apr 2005 01:06:53 -0500 [PATCH] qla2xxx: remove lun discovery codes... Remove internal lun discovery routines and support structures. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley author Mon, 18 Apr 2005 01:04:54 -0500 [PATCH] qla2xxx: add remote port codes... Add initial support for FC remote port infrastructure. o Use fc_remote_port...() registration and block/unlock functions. o Consolidate 'attribute' (fc-remote/sysfs) helpers into new qla_attr.c file. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley author Mon, 18 Apr 2005 01:02:26 -0500 [PATCH] qla2xxx: remove internal queuing... Remove internal command queuing from the driver. As is, this driver cannot tolerate cable-pulls as I/Os will begin to fail by the upper layers. o Should be used in conjuction with the 11-fc_rport_adds_2.diff patch. o Removes qla_listops.h file -- no longer needed. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley James Bottomley: merge by hand (scsi_device.h) Ingo Molnar: [PATCH] sched: fix signed comparisons of long long Signed-off-by: Jesper Juhl Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds David Howells: [PATCH] Add 32-bit compatibility for NFSv4 mount This adds 32-bit compatibility for mounting an NFSv4 mount on a 64-bit kernel (such as happens with PPC64). The problem is that the mount data for the NFS4 mount process includes auxilliary data pointers, probably because the NFS4 mount data may conceivably exceed PAGE_SIZE in size - thus breaking against the hard limit imposed by sys_mount(). Signed-Off-By: David Howells Signed-off-by: Linus Torvalds Stephen Smalley: [PATCH] SELinux: fix deadlock on dcache lock This fixes a deadlock on the dcache lock detected during testing at IBM by moving the logging of the current executable information from the SELinux avc_audit function to audit_log_exit (via an audit_log_task_info helper) for processing upon syscall exit. For consistency, the patch also removes the logging of other task-related information from avc_audit, deferring handling to audit_log_exit instead. This allows simplification of the avc_audit code, allows the exe information to be obtained more reliably, always includes the comm information (useful for scripts), and avoids including bogus task information for checks performed from irq or softirq. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Linus Torvalds Geert Uytterhoeven: [PATCH] M68k: Update defconfigs for 2.6.12-rc2 Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds Geert Uytterhoeven: [PATCH] M68k: Update defconfigs for 2.6.11 Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds author Mon, 18 Apr 2005 01:00:23 -0500 [PATCH] scsi: scsi_send_eh_cmnd() cleanup This patch makes scsi_send_eh_cmnd() use sdev and shost instead of referencing them through scmd-> everytime. Signed-off-by: Tejun Heo Signed-off-by: James Bottomley author Mon, 18 Apr 2005 00:57:29 -0500 [PATCH] scsi: remove volatile from scsi data This patch removes volatile qualifier from scsi_device->device_busy, Scsi_Host->host_busy and ->host_failed as the volatile qualifiers don't serve any purpose now. While at it, convert those fields from unsigned short to unsigned int as suggested by Christoph. Signed-off-by: Tejun Heo Signed-off-by: James Bottomley author Wed, 13 Apr 2005 03:49:09 -0500 scsi: add DID_REQUEUE to the error handling We have a DID_IMM_RETRY to require a retry at once, but we could do with a DID_REQUEUE to instruct the mid-layer to treat this command in the same manner as QUEUE_FULL or BUSY (i.e. halt the submission until another command returns ... or the queue pressure builds if there are no outstanding commands). Signed-off-by: James Bottomley author Mon, 11 Apr 2005 09:04:28 -0500 zfcp: add point-2-point support From: Andreas Herrmann This patch mainly introduces support for point-2-point topology. From: Heiko Carstens From: Maxim Shchetynin From: Andreas Herrmann Signed-off-by: James Bottomley author Mon, 11 Apr 2005 08:29:42 -0500 [PATCH] Convert i2o to compat_ioctl Also broken design in its compat handlers - CONFIG_COMPAT doesn't mean that there should be no native ioctls. Signed-off-by: Andi Kleen Reworked with comments from Markus Lidel by: Christoph Hellwig Rejections fixed and Signed-off-by: James Bottomley author Mon, 11 Apr 2005 08:19:25 -0500 [PATCH] kill old EH constants Fix up two drivers that incorrectly were using the old return values for their new-style EH methods and kill off scsi_obsolete.h that defined the constants. The initio driver has all these constansts defined locally and uses them internally, I'll fix that up some time later. Signed-off-by: James Bottomley author Mon, 04 Apr 2005 00:59:11 -0500 [PATCH] scsi: remove meaningless scsi_cmnd->serial_number_at_timeout field scsi_cmnd->serial_number_at_timeout doesn't serve any purpose anymore. All serial_number == serial_number_at_timeout tests are always true in abort callbacks. Kill the field. Also, as ->pid always equals ->serial_number and ->serial_number doesn't have any special meaning anymore, update comments above ->serial_number accordingly. Once we remove all uses of this field from all lldd's, this field should go. Signed-off-by: Tejun Heo Signed-off-by: James Bottomley author Mon, 04 Apr 2005 00:55:06 -0500 [PATCH] scsi: remove unused scsi_cmnd->internal_timeout field scsi_cmnd->internal_timeout field doesn't have any meaning anymore. Kill the field. Signed-off-by: Tejun Heo Signed-off-by: James Bottomley author Mon, 04 Apr 2005 00:53:59 -0500 [PATCH] remove outdated print_* functions We have the scsi_print_* functions in the proper namespace for a long time now and there weren't a lot users left. Signed-off-by: James Bottomley author Mon, 04 Apr 2005 00:52:44 -0500 [PATCH] consolidate timeout defintions in scsi.h Adapted from a patch in SuSE's kernel SRPM. Signed-off-by: James Bottomley Chris Wedgwood: [PATCH] x86: fix acpi compile without CONFIG_ACPI_BUS The recent acpi boot patch breaks for me: acpi_fadt needs CONFIG_ACPI_BUS. Signed-off-By: Chris Wedgwood Acked-by: Andi Kleen Signed-off-by: Linus Torvalds Jurij Smakov: [PATCH] sparc64: Fix copy_sigingo_to_user32() The compat routine to copy over this data structure was not handling SI_POLL correctly, breaking various fcntl() variants in compat tasks. Signed-off-by: David S. Miller Signed-off-by: Linus Torvalds David S. Miller: [PATCH] sparc: Fix PTRACE_CONT bogosity SunOS aparently had this weird PTRACE_CONT semantic which we copied. If the addr argument is something other than 1, it sets the process program counter to whatever that value is. This is different from every other Linux architecture, which don't do anything with the addr and data args. This difference in particular breaks the Linux native GDB support for fork and vfork tracing on sparc and sparc64. There is no interest in running SunOS binaries using this weird PTRACE_CONT behavior, so just delete it so we behave like other platforms do. Signed-off-by: David S. Miller Signed-off-by: Linus Torvalds David S. Miller: [PATCH] sparc64: Reduce ptrace cache flushing We were flushing the D-cache excessively for ptrace() processing and this makes debugging threads so slow as to be totally unusable. All process page accesses via ptrace() go via access_process_vm(). This routine, for each process page, uses get_user_pages(). That in turn does a flush_dcache_page() on the child pages before we copy in/out the ptrace request data. Therefore, all we need to do after the data movement is: 1) Flush the D-cache pages if the kernel maps the page to a different color than userspace does. 2) If we wrote to the page, we need to flush the I-cache on older cpus. Previously we just flushed the entire cache at the end of a ptrace() request, and that was beyond stupid. Signed-off-by: David S. Miller Signed-off-by: Linus Torvalds David S. Miller: [PATCH] sparc64: use message queue compat syscalls A couple message queue system call entries for compat tasks were not using the necessary compat_sys_*() functions, causing some glibc test cases to fail. Signed-off-by: David S. Miller Signed-off-by: Linus Torvalds David S. Miller: [PATCH] sparc64: Do not flush dcache for ZERO_PAGE. This case actually can get exercised a lot during an ELF coredump of a process which contains a lot of non-COW'd anonymous pages. GDB has this test case which in partiaular creates near terabyte process full of ZERO_PAGEes. It takes forever to just walk through the page tables because of all of these spurious cache flushes on sparc64. With this change it takes only a second or so. Signed-off-by: David S. Miller Signed-off-by: Linus Torvalds Linus Torvalds: Merge with master.kernel.org:/home/rmk/linux-2.6-rmk.git - ARM changes First ever true git merge. Let's see if it actually works. Linus Torvalds: Fix up some file mode differences due to the new git world order. David Brownell: [PATCH] revert fs/char_dev.c CONFIG_BASE_FULL change This reverts a fs/char_dev.c patch that was merged into BK on March 3. The problem is that it breaks things ... __register_chrdev_region() has a block of code, commented "temporary" for over two years now, which fails rudely during PCMCIA initialization or other register_chrdev() calls, because it doesn't "degrade to linked list". This keeps whole subsystems from working. A real fix to that "temporary" code should be possible, using some better scheme to allocate major numbers, but it's not something I want to spend time on just now. Signed-off-by: David Brownell Acked-by: Matt Mackall Signed-off-by: Linus Torvalds Russell King: [PATCH] ARM: fix debug macros Fix debug EBSA285 and RiscPC debugging macros to detect whether the MMU is enabled. Signed-off-by: Russell King Russell King: [PATCH] ARM: bitops Convert ARM bitop assembly to a macro. All bitops follow the same format, so it's silly duplicating the code when only one or two instructions are different. Signed-off-by: Russell King Russell King: [PATCH] ARM: showregs Fix show_regs() to provide a backtrace. Provide a new __show_regs() function which implements the common subset of show_regs() and die(). Add prototypes to asm-arm/system.h Signed-off-by: Russell King Russell King: [PATCH] ARM: h3600_irda_set_speed arguments h3600_irda_set_speed() had the wrong type for the "speed" argument. Fix this. Signed-off-by: Russell King Russell King: [PATCH] ARM: footbridge rtc init The footbridge ISA RTC was being initialised before we had setup the kernel timer. This caused a divide by zero error when the current time of day is set. Resolve this by initialising the RTC after the kernel timer has been initialised. Signed-off-by: Russell King author Wed, 13 Apr 2005 03:49:09 -0500 scsi: add DID_REQUEUE to the error handling We have a DID_IMM_RETRY to require a retry at once, but we could do with a DID_REQUEUE to instruct the mid-layer to treat this command in the same manner as QUEUE_FULL or BUSY (i.e. halt the submission until another command returns ... or the queue pressure builds if there are no outstanding commands). Signed-off-by: James Bottomley author Mon, 11 Apr 2005 09:04:28 -0500 zfcp: add point-2-point support From: Andreas Herrmann This patch mainly introduces support for point-2-point topology. From: Heiko Carstens From: Maxim Shchetynin From: Andreas Herrmann Signed-off-by: James Bottomley author Mon, 11 Apr 2005 08:29:42 -0500 [PATCH] Convert i2o to compat_ioctl Also broken design in its compat handlers - CONFIG_COMPAT doesn't mean that there should be no native ioctls. Signed-off-by: Andi Kleen Reworked with comments from Markus Lidel by: Christoph Hellwig Rejections fixed and Signed-off-by: James Bottomley author Mon, 11 Apr 2005 08:19:25 -0500 [PATCH] kill old EH constants Fix up two drivers that incorrectly were using the old return values for their new-style EH methods and kill off scsi_obsolete.h that defined the constants. The initio driver has all these constansts defined locally and uses them internally, I'll fix that up some time later. Signed-off-by: James Bottomley author Mon, 04 Apr 2005 00:59:11 -0500 [PATCH] scsi: remove meaningless scsi_cmnd->serial_number_at_timeout field scsi_cmnd->serial_number_at_timeout doesn't serve any purpose anymore. All serial_number == serial_number_at_timeout tests are always true in abort callbacks. Kill the field. Also, as ->pid always equals ->serial_number and ->serial_number doesn't have any special meaning anymore, update comments above ->serial_number accordingly. Once we remove all uses of this field from all lldd's, this field should go. Signed-off-by: Tejun Heo Signed-off-by: James Bottomley author Mon, 04 Apr 2005 00:55:06 -0500 [PATCH] scsi: remove unused scsi_cmnd->internal_timeout field scsi_cmnd->internal_timeout field doesn't have any meaning anymore. Kill the field. Signed-off-by: Tejun Heo Signed-off-by: James Bottomley author Mon, 04 Apr 2005 00:53:59 -0500 [PATCH] remove outdated print_* functions We have the scsi_print_* functions in the proper namespace for a long time now and there weren't a lot users left. Signed-off-by: James Bottomley author Mon, 04 Apr 2005 00:52:44 -0500 [PATCH] consolidate timeout defintions in scsi.h Adapted from a patch in SuSE's kernel SRPM. Signed-off-by: James Bottomley author Wed, 13 Apr 2005 02:38:09 -0500 updates for CFQ oops fix - add a comment to the device structure that the device_busy field is now protected by the request_queue->queue_lock - null out sdev->request_queue after the queue is released to trap any (and there shouldn't be any) use after the queue is freed. Signed-off-by: James Bottomley author Wed, 13 Apr 2005 02:22:06 -0500 [PATCH] fix NMI lockup with CFQ scheduler The current problem seen is that the queue lock is actually in the SCSI device structure, so when that structure is freed on device release, we go boom if the queue tries to access the lock again. The fix here is to move the lock from the scsi_device to the queue. Signed-off-by: James Bottomley author Sun, 03 Apr 2005 15:57:48 -0600 [PATCH] finally fix 53c700 to use the generic iomem infrastructure This driver has had it's own different infrastructure for doing this for ages, but it's time it used the common one. Signed-off-by: James Bottomley author Sun, 03 Apr 2005 01:57:17 -0600 [PATCH] zfcp: convert to compat_ioctl Signed-off-by: Andreas Herrmann Signed-off-by: James Bottomley author Sun, 03 Apr 2005 01:51:23 -0600 [PATCH] sg.c: update The attachment combines the most recent patch from Yum Rayan (to reduce sg stack usage), Adrian Bunk (to fix check after use) and me (fix elapsed time calculation (duration) on ia64 machines). I have modified the patch from Yum Rayan so kmalloc() in sg_read() is only called for the (rare) code paths that need them. Changelog: - reduce stack usage in sg_ioctl() and sg_read() - fix check after use in sg_mmap() - hold duration internally in milliseconds and check current time later than held time Signed-off-by: Douglas Gilbert Signed-off-by: James Bottomley NeilBrown: [PATCH] md: remove a number of misleading calls to MD_BUG The conditions that cause these calls to MD_BUG are not kernel bugs, just oddities in what userspace is asking for. Also convert analyze_sbs to return void, and the value it returned was always 0. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds NeilBrown: [PATCH] md: close a small race in md thread deregistration There is a tiny race when de-registering an MD thread, in that the thread could disappear before it is set a SIGKILL, causing send_sig to have problems. This is most easily closed by holding tasklist_lock between enabling the thread to exit (setting ->run to NULL) and telling it to exit. (akpm: ick. Needs to use kthread API and stop using signals) Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] fbdev MAINTAINERS update This patch does the long overdue updates to MAINTAINERS file for aty128fb and radeonfb. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Russell King: [PATCH] serial: fix comments in 8250.c Fix the formatting of some comments in 8250.c, and add a note that the register_serial / unregister_serial shouldn't be used in new code. We do this here in preference to adding to linux/serial.h, since that is used by a number of non-8250 drivers which pretend to be 8250. It is not known whether it would be appropriate to do so. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds NeilBrown: [PATCH] nfsd4: callback create rpc client returns rpc_create_clnt and friends return errors, not NULL, on failure. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds NeilBrown: [PATCH] nfsd4: fix struct file leak We were failing to close on an error path, resulting in a leak of struct files which could take a v4 server down fairly quickly.... So call nfs4_close_delegation instead of just open-coding parts of it. Simplify the cleanup on delegation failure while we're at it. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds NeilBrown: [PATCH] nfsd: clear signals before exiting the nfsd() thread Fixes the error "RPC: failed to contact portmap (errno -512)." when the server later tries to unregister from the portmapper. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] jbd dirty buffer leak fix This fixes the lots-of-fsx-linux-instances-cause-a-slow-leak bug. It's been there since 2.6.6, caused by: ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.5/2.6.5-mm4/broken-out/jbd-move-locked-buffers.patch That patch moves under-writeout ordered-data buffers onto a separate journal list during commit. It took out the old code which was based on a single list. The old code (necessarily) had logic which would restart I/O against buffers which had been redirtied while they were on the committing transaction's t_sync_datalist list. The new code only writes buffers once, ignoring redirtyings by a later transaction, which is good. But over on the truncate side of things, in journal_unmap_buffer(), we're treating buffers on the t_locked_list as inviolable things which belong to the committing transaction, and we just leave them alone during concurrent truncate-vs-commit. The net effect is that when truncate tries to invalidate a page whose buffers are on t_locked_list and have been redirtied, journal_unmap_buffer() just leaves those buffers alone. truncate will remove the page from its mapping and we end up with an anonymous clean page with dirty buffers, which is an illegal state for a page. The JBD commit will not clean those buffers as they are removed from t_locked_list. The VM (try_to_free_buffers) cannot reclaim these pages. The patch teaches journal_unmap_buffer() about buffers which are on the committing transaction's t_locked_list. These buffers have been written and I/O has completed. We can take them off the transaction and undirty them within the context of journal_invalidatepage()->journal_unmap_buffer(). Acked-by: "Stephen C. Tweedie" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] drivers/infiniband/hw/mthca/mthca_main.c: remove an unused label Correct unwinding in error path of mthca_init_icm(). Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: add support for new MT25204 HCA Decouple table of HCA features from exact HCA device type. Add a current FW version field so we can warn when someone is using old FW. Add support for new MT25204 HCA. Remove the warning about mem-free support, since it should be pretty solid at this point. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: map context for RDMA responder in mem-free mode Fix RDMA in mem-free mode: we need to make sure that the RDMA context memory is mapped for the HCA. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: update receive queue initialization for new HCAs Update initialization of receive queue to match new documentation. This change is required to support new MT25204 HCA. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: encapsulate mem-free check into mthca_is_memfree() Clean up mem-free mode support by introducing mthca_is_memfree() function, which encapsulates the logic of deciding if a device is mem-free. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: tweaks to mthca_cmd.c Minor tweaks to firmware command handling: kill off an unused get of a value, and add a little more info to debug output. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Michael S. Tsirkin: [PATCH] IB/mthca: add fast memory region implementation Implement fast memory regions (FMRs), where the driver writes directly into the HCA's translation tables rather than requiring a firmware command. For Tavor, MTTs for FMR are separate from regular MTTs, and are reserved at driver initialization. This is done to limit the amount of virtual memory needed to map the MTTs. For Arbel, there's no such limitation, and all MTTs and MPTs may be used for FMR or for regular MR. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Michael S. Tsirkin: [PATCH] IB/mthca: split MR key munging routines Split Tavor and Arbel/mem-free index<->hw key munging routines, so that FMR implementation can call correct implementation without testing HCA type (which it already knows). Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Michael S. Tsirkin: [PATCH] IB/mthca: add mthca_table_find() function Add mthca_table_find() function, which returns the lowmem address of an entry in a mem-free HCA's context tables. This will be used by the FMR implementation. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Michael S. Tsirkin: [PATCH] IB/mthca: add SYNC_TPT firmware command Add code for SYNC_TPT firmware command, which will be used by FMR implementation. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Michael S. Tsirkin: [PATCH] IB/mthca: add mthca_write64_raw() for writing to MTT table directly Add mthca_write64_raw() function, which will be used to write FMR entries that are in ioremapped PCI memory. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Michael S. Tsirkin: [PATCH] IB/mthca: encapsulate MTT buddy allocator Encapsulate the buddy allocator used for MTT segments. This cleans up the code and also gets us ready to add FMR support. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: allow address handle creation in interrupt context Make address handle verbs usable from interrupt context. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Michael S. Tsirkin: [PATCH] IB/mthca: fill in opcode field for send completions Fill in missing fields in send completions. Signed-off-by: Itamar Rabenstein Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: fix MTT allocation in mem-free mode Fix bug in MTT allocation in mem-free mode. I misunderstood the MTT size value returned by the firmware -- it is really the size of a single MTT entry, since mem-free mode does not segment the MTT as the original firmware did. This meant that our MTT addresses ended up being off by a factor of 8. This meant that our MTT allocations might overlap, and so we could overwrite and corrupt earlier memory regions when writing new MTT entries. We fix this by always using our 64-byte MTT segment size. This allows some simplification of the code as well, since there's no reason to put the MTT segment size in a variable -- we can always use our enum value directly. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: implement RDMA/atomic operations for mem-free mode Add code to support RDMA and atomic send work requests in mem-free mode. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: fix format of CQ number for CQ events CQ numbers are only 24 bits, so only print 6 hex digits and mask off reserved part when reporting a CQ event. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: only free doorbell records in mem-free mode On error path, only free doorbell records if we're in mem-free mode. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: print assigned IRQ when interrupt test fails Print IRQ number when NOP command interrupt test fails to help debugging. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: release mutex on doorbell alloc error path Release mutex on error return path from mthca_alloc_db(). Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Michael S. Tsirkin: [PATCH] IB/mthca: fix MR allocation error path Fix error handling in MR allocation for mem-free mode: mthca_free must get an MR index, not a key. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: allocate correct number of doorbell pages Doorbell record pages are allocated in HCA page size chunks (always 4096 bytes), so we need to divide by 4096 and not PAGE_SIZE when figuring out how many pages we'll need space for. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: clean up mthca_dereg_mr() It's cleaner to kfree mthca_mr, and not rely on the fact that ib_mr is the first field in mthca_mr. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Michael S. Tsirkin: [PATCH] IB/mthca: allow unaligned memory regions The first buffer of a memory region is not required to be page-aligned, so don't return an error if it's not. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: fix posting sends with immediate data When posting a work request with immediate data, put the immediate data in the immediate data field of the hardware's work request (rather than overwriting the flags field). Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: fix calculation of RDB shift Fix calculation of rdb_shift by using original number of QPs, not their slot in profile[] (which will be rearranged when we sort it). Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: fill in more device query fields Implement more of the device_query method in mthca. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB/mthca: map MPT/MTT context in mem-free mode In mem-free mode, when allocating memory regions, make sure that the HCA has context memory mapped to cover the virtual space used for the MPT and MTTs being used. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hal Rosenstock: [PATCH] IB: Remove incorrect comments Eliminate unneeded and misleading comments Signed-off-by: Hal Rosenstock Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Libor Michalek: [PATCH] IB: Trivial FMR printk cleanup Add missing newline in printk. Signed-off-by: Libor Michalek Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB: Fix user MAD registrations with class 0 Fix handling of MAD agent registrations with mgmt_class == 0. In this case ib_umad should pass a NULL registration request to the MAD core rather than a request with mgmt_class set to 0. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IB: Fix FMR pool crash Mask bits correctly from jhash result in ib_fmr_hash() so that the computed bucket index is within our hash table. This fixes an SDP crash. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hal Rosenstock: [PATCH] IB: remove unneeded includes Eliminate no longer needed include files Signed-off-by: Hal Rosenstock Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Sean Hefty: [PATCH] IB: Keep MAD work completion valid Replace the *wc field in ib_mad_recv_wc from pointing to a structure on the stack to one allocated with the received MAD buffer. This allows a client to access the *wc field after their receive completion handler has returned. Signed-off-by: Sean Hefty Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IPoIB: document conversion to debugfs Update IPoIB documentation now that multicast debugging files have moved from ipoibdebugfs to debugfs. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IPoIB: convert to debugfs Convert IPoIB to use debugfs instead of its own custom debugging filesystem. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland Dreier: [PATCH] IPoIB: fix static rate calculation Correct and simplify calculation of static rate. We need to round up the quotient of (local_rate - path_rate) / path_rate. To round up we add (path_rate - 1) to the numerator, so the quotient simplifies to (local_rate - 1) / path_rate. No idea how I came up with the old formula. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Hal Rosenstock: [PATCH] IPoIB: set skb->mac.raw on receive Set skb->mac.raw on receive. This fixes crashes when this is dereferenced, for example by netfilter or when PF_PACKET is used. Signed-off-by: Hal Rosenstock Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Horms: [PATCH] Maintainers list update: linux-net -> netdev Use netdev as the mailing list contact instead of the mostly dead linux-net list. Signed-off-by: Horms Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Russell King: [PATCH] arm: fix floppy disk dependencies Both the RiscPC and (optionally) EBSA285 have floppy disk support. Allow this option to be selected on these ARM platforms again. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Coywolf Qi Hunt: [PATCH] reparent_to_init cleanup This patch hides reparent_to_init(). reparent_to_init() should only be called by daemonize(). Signed-off-by: Coywolf Qi Hunt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Adrian Bunk: [PATCH] MAINTAINERS: remove obsolete ACP/MWAVE MODEM entry Both maintainer email addresses are bouncing and the web address is no longer valid. Seems to be a good time to remove the entry. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benoit Boissinot: [PATCH] cpuset: remove function attribute const gcc-4 warns with include/linux/cpuset.h:21: warning: type qualifiers ignored on function return type cpuset_cpus_allowed is declared with const extern const cpumask_t cpuset_cpus_allowed(const struct task_struct *p); First const should be __attribute__((const)), but the gcc manual explains that: "Note that a function that has pointer arguments and examines the data pointed to must not be declared const. Likewise, a function that calls a non-const function usually must not be const. It does not make sense for a const function to return void." The following patch remove const from the function declaration. Signed-off-by: Benoit Boissinot Acked-by: Paul Jackson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Adrian Bunk: [PATCH] let SOUND_AD1889 depend on PCI Compiling SOUND_AD1889 with PCI=n results in the following compile error: sound/built-in.o(.text+0x24f0c): In function `ad1889_remove': : undefined reference to `pci_release_region' This patch adds the missing dependency on PCI. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Lennert Buytenhek: [PATCH] pci enumeration on ixp2000: overflow in kernel/resource.c IXP2000 (ARM-based) platforms use a separate 'struct resource' for PCI MEM space. Resource allocation for PCI BARs always fails because the 'root' resource (the IXP2000 PCI MEM resource) always has the entire address space (00000000-ffffffff) free, and find_resource() calculates the size of that range as ffffffff-00000000+1=0, so all allocations fail because it thinks there is no space. (akpm: pls. double-check) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Colin Leroy: [PATCH] CREDITS update Update Colin's credits entry. Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Matt Mackall: [PATCH] update maintainer for /dev/random Ted has agreed to let me take over as maintainer of /dev/random and friends. I've gone ahead and added a line to his entry in CREDITS. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Randy.Dunlap: [PATCH] Add dontdiff file Add a current 'dontdiff' file for use with 'diff -X dontdiff'. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Magnus Damm: [PATCH] opl3sa2: MODULE_PARM_DESC opl3sa2: Fix "irq"-parameter name typo for parameter description. Signed-off-by: Magnus Damm Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds James Bottomley: [PATCH] add Big Endian variants of ioread/iowrite In the new io infrastructure, all of our operators are expecting the underlying device to be little endian (because the PCI bus, their main consumer, is LE). However, there are a fair few devices and busses in the world that are actually Big Endian. There's even evidence that some of these BE bus and chip types are attached to LE systems. Thus, there's a need for a BE equivalent of our io{read,write}{16,32} operations. The attached patch adds this as io{read,write}{16,32}be. When it's in, I'll add the first consume (the 53c700 SCSI chip driver). Signed-off-by: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds maximilian attems: [PATCH] efi: eliminate bad section references Randy please double check especially this one. there may be a better solution. Fix efi section references: remove __initdata for struct efi efi_phys and struct efi_memory_map memmap Error: ./arch/i386/kernel/efi.o .text refers to 000000d3 R_386_32 .init.data Error: ./arch/i386/kernel/efi.o .text refers to 000000ff R_386_32 .init.data efi_memmap_walk (which is not __init nor static) accesses both efi_phys and memmap. Signed-off-by: maximilian attems Acked-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds maximilian attems: [PATCH] hd: eliminate bad section references Fix hd section references: make parse_hd_setup() __init Error: ./drivers/ide/legacy/hd.o .text refers to 00000943 R_386_PC32 .init.text Signed-off-by: maximilian attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds maximilian attems: [PATCH] pnpbios: eliminate bad section references one of the last buildcheck errors on i386, thanks Randy again for double checking. Fix pnpbios section references: make dmi_system_id pnpbios_dmi_table __initdata Error: ./drivers/pnp/pnpbios/core.o .data refers to 00000100 R_386_32 .init.text Error: ./drivers/pnp/pnpbios/core.o .data refers to 0000012c R_386_32 .init.text Signed-off-by: maximilian attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Paul E. McKenney: [PATCH] Fix comment in list.h that refers to nonexistent API The hlist_for_each_entry_rcu() comment block refers to a nonexistent hlist_add_rcu() API, needs to change to hlist_add_head_rcu(). Signed-off-by: Paul E. McKenney Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Daniel McNeil: [PATCH] Direct IO async short read fix The direct I/O code is mapping the read request to the file system block. If the file size was not on a block boundary, the result would show the the read reading past EOF. This was only happening for the AIO case. The non-AIO case truncates the result to match file size (in direct_io_worker). This patch does the same thing for the AIO case, it truncates the result to match the file size if the read reads past EOF. When I/O completes the result can be truncated to match the file size without using i_size_read(), thus the aio result now matches the number of bytes read to the end of file. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Dave Hansen: [PATCH] undo do_readv_writev() behavior change Bugme bug 4326: http://bugme.osdl.org/show_bug.cgi?id=4326 reports: executing the systemcall readv with Bad argument ->len == -1) it gives out error EFAULT instead of EINVAL Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Christoph Hellwig: [PATCH] officially deprecate register_ioctl32_conversion These have been deprecated since ->compat_ioctl when in, thus only a short deprecation period. There's four users left: i2o_config, s390/z90crypy, s390/dasd and s390/zfcp and for the first two patches are about to be submitted to get rid of it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Niu YaWei: [PATCH] quota: possible bug in quota format v2 support Don't put root block of quota tree to the free list (when quota file is completely empty). That should not actually happen anyway (somebody should get accounted for the filesystem root and so quota file should never be empty) but better prevent it here than solve magical quota file corruption. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Christoph Hellwig: [PATCH] kill #ifndef HAVE_ARCH_GET_SIGNAL_TO_DELIVER in signal.c Now that no architectures defines HAVE_ARCH_GET_SIGNAL_TO_DELIVER anymore this can go away. It was a transitional hack only. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jan Kara: [PATCH] quota: fix possible oops on quotaoff Remove dquot structures from quota file on quotaon - quota code does not expect them to be there. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Bernard Blackham: [PATCH] ext2 corruption - regression between 2.6.9 and 2.6.10 Whilst trying to stress test a Promise SX8 card, we stumbled across some nasty filesystem corruption in ext2. Our tests involved creating an ext2 partition, mounting, running several concurrent fsx's over it, umounting, and fsck'ing, all scripted[1]. The fsck would always return with errors. This regression was traced back to a change between 2.6.9 and 2.6.10, which moves the functionality of ext2_put_inode into ext2_clear_inode. The attached patch reverses this change, and eliminated the source of corruption. Mingming Cao said: I think his patch for ext2 is correct. The corruption on ext3 is not the same issue he saw on ext2. I believe that's the race between discard reservation and reservation in-use that we already fixed it in 2.6.12- rc1. For the problem related to ext2, at the time when we design reservation for ext3, we decide we only need to discard the reservation at the last file close, so we have ext3_discard_reservation on iput_final- >ext3_clear_inode. The ext2 handle discard preallocation differently at that time, it discard the preallocation at each iput(), not in input_final(), so we think it's unnecessary to thrash it so frequently, and the right thing to do, as we did for ext3 reservation, discard preallocation on last iput(). So we moved the ext2_discard_preallocation from ext2_put_inode(0 to ext2_clear_inode. Since ext2 preallocation is doing pre-allocation on disk, so it is possible that at the unmount time, someone is still hold the reference of the inode, so the preallocation for a file is not discard yet, so we still mark those blocks allocated on disk, while they are not actually in the inode's block map, so fsck will catch/fix that error later. This is not a issue for ext3, as ext3 reservation(pre-allocation) is done in memory. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Christoph Hellwig: [PATCH] fix up newly added jsm driver - plug various leaks and use after frees in the remove and initialization failure path (some still left) - remove useless global list of boards and use pci_set_drvdata instead - unobsfucate init path by merging functions together - kill various totally useless state variables - .. probably more I forgot Note that the tty part still generates lots of sparse warnings and there's still a totally useless layer of function pointer indirections, but maybe someone else will fix that bit up. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Ken Chen: [PATCH] use cheaper elv_queue_empty when unplug a device In function __generic_unplug_device(), kernel can use a cheaper function elv_queue_empty() instead of more expensive elv_next_request to find whether the queue is empty or not. blk_run_queue can also made conditional on whether queue's emptiness before calling request_fn(). Signed-off-by: Jens Axboe Signed-off-by: Ken Chen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Bert Wesarg: [PATCH] fix module_param_string() calls This patch fix 3 calls to module_param_string() in driver/media/video/tuner-core.c and drivers/media/video/tda9887.c. In all three places, the len and the perm parameter was switched. Signed-off-by: Bert Wesarg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Bert Wesarg: [PATCH] kernel/param.c: don't use .max when .num is NULL in param_array_set() there seems to be a bug, at least for me, in kernel/param.c for arrays with .num == NULL. If .num == NULL, the function param_array_set() uses &.max for the call to param_array(), wich alters the .max value to the number of arguments. The result is, you can't set more array arguments as the last time you set the parameter. example: # a module 'example' with # static int array[10] = { 0, }; # module_param_array(array, int, NULL, 0644); $ insmod example.ko array=1,2,3 $ cat /sys/module/example/parameters/array 1,2,3 $ echo "4,3,2,1" > /sys/module/example/parameters/array $ dmesg | tail -n 1 kernel: array: can take only 3 arguments Signed-off-by: Bert Wesarg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Bharath Ramesh: [PATCH] AYSNC IO using singals other than SIGIO A question on sigwaitinfo based IO mechanism in multithreaded applications. I am trying to use RT signals to notify me of IO events using RT signals instead of SIGIO in a multithreaded applications. I noticed that there was some discussion on lkml during november 1999 with the subject of the discussion as "Signal driven IO". In the thread I noticed that RT signals were being delivered to the worker thread. I am running 2.6.10 kernel and I am trying to use the very same mechanism and I find that only SIGIO being propogated to the worker threads and RT signals only being propogated to the main thread and not the worker threads where I actually want them to be propogated too. On further inspection I found that the following patch which I have attached solves the problem. I am not sure if this is a bug or feature in the kernel. Roland McGrath said: This relates only to fcntl F_SETSIG, which is a Linux extension. So there is no POSIX issue. When changing various things like the normal SIGIO signalling to do group signals, I was concerned strictly with the POSIX semantics and generally avoided touching things in the domain of Linux inventions. That's why I didn't change this when I changed the call right next to it. There is no reason I can see that F_SETSIG-requested signals shouldn't use a group signal like normal SIGIO does. I'm happy to ACK this patch, there is nothing wrong with its change to the semantics in my book. But neither POSIX nor I care a whit what F_SETSIG does. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jens Axboe: [PATCH] possible use-after-free of bio There is a possibility that a bio will be accessed after it has been freed on SCSI. It happens if you submit a bio with BIO_SYNC marked and the auto-unplugging kicks the request_fn, SCSI re-enables interrupts in-between so if the request completes between the add_request() in __make_request() and the bio_sync() call, we could be looking at a dead bio. It's a slim race, but it has been triggered in the Real World. So assign bio_sync() to a local variable instead. Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Paolo 'Blaisorblade' Giarrusso: [PATCH] uml: fix compilation for __CHOOSE_MODE addition I had added the __CHOOSE_MODE syntax to fix some warnings with newer GCC's in the uml-fix-cond-expr-as-lvalues-warning patch. Here is the update from the version I sent to make it work also when only one mode (TT or SKAS) is enabled. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Alexander Nyberg: [PATCH] swsusp: SMP fix Fix some smp_processor_id-in-preemptible warnings Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix few remaining u32 vs. pm_message_t problems This fixes remaining u32 vs. pm_message_t confusions in -rc2-mm3. [There are usb changes, too; they went to Greg on his request.] Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix u32 vs. pm_message_t in rest of the tree This fixes u32 vs. pm_message_t confusion in remaining places. Fortunately there's few of them. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix u32 vs. pm_message_t in driver/video This fixes u32 vs. pm_message_t confusion in drivers/video. Should change no code. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix u32 vs. pm_message_t in drivers/ -rc2-mm1 still contains few places where u32 and pm_message_t. This fixes drivers/serial [should change no code]. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] u32 vs. pm_message_t in ppc and radeon This fixes pm_message_t vs. u32 confusion in ppc and aty (I *hope* that's basically radeon code...). I was not able to test most of these, but I'm not really changing anything, so it should be okay. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] power/video.txt: update documentation with more systems This updates video.txt documentation with information about few more systems. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix u32 vs. pm_message_t in PCI, PCIE This fixes drivers/pci (mostly pcie stuff). Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix u32 vs. pm_message_t in drivers/macintosh I thought I'm done with fixing u32 vs. pm_message_t ... unfortunately that turned out not to be the case as Russel King pointed out. Here are fixes for drivers/macintosh. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] Fix u32 vs. pm_message_t in x86-64 I thought I'm done with fixing u32 vs. pm_message_t ... unfortunately that turned out not to be the case... Here are fixes x86-64. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix pm_message_t vs. u32 in alsa I thought I'm done with fixing u32 vs. pm_message_t ... unfortunately that turned out not to be the case as Russel King pointed out. This fixes last few bits in alsa. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix u32 vs. pm_message_t in drivers/mmc,mtd,scsi This fixes u32 vs. pm_message_t in drivers/mmc, drivers/mtd and drivers/scsi. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix u32 vs. pm_message_t in drivers/message This fixes u32 vs. pm_message_t in drivers/message. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix u32 vs. pm_message_t in drivers/media Here are fixes for drivers/media. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] fix u32 vs. pm_message_t in pcmcia This fixes u32 vs. pm_message_t in pcmcia. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] u32 vs. pm_message_t fixes for drivers/net This fixes remaining u32s in drivers/ net. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] Fix u32 vs. pm_message_t in drivers/char Here are fixes for drivers/char. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Pavel Machek: [PATCH] pm_message_t: more fixes in common and i386 I thought I'm done with fixing u32 vs. pm_message_t ... unfortunately that turned out not to be the case as Russel King pointed out. Here are fixes for Documentation and common code (mainly system devices). Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Yoshinori Sato: [PATCH] h8300 header update - page.h: fix build error - unistd.h: _syscall macro cleanup. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Siddha, Suresh B: [PATCH] x86, x86_64: dual core proc-cpuinfo and sibling-map fix - broken sibling_map setup in x86_64 - grouping all the core and HT related cpuinfo fields. We are reasonably sure that adding new cpuinfo fields after "siblings" field, will not cause any app failure. Thats because today's /proc/cpuinfo format is completely different on x86, x86_64 and we haven't heard of any x86 app breakage because of this issue. Grouping these fields will result in more or less common format on all architectures (ia64, x86 and x86_64) and will cause less confusion. Signed-off-by: Suresh Siddha Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Switch SMP bootup over to new CPU hotplug state machine This will allow hotplug CPU in the future and in general cleans up a lot of crufty code. It also should plug some races that the old hackish way introduces. Remove one old race workaround in NMI watchdog setup that is not needed anymore. I removed the old total sum of bogomips reporting code. The brag value of BogoMips has been greatly devalued in the last years on the open market. Real CPU hotplug will need some more work, but the infrastructure for it is there now. One drawback: the new TSC sync algorithm is less accurate than before. The old way of zeroing TSCs is too intrusive to do later. Instead the TSC of the BP is duplicated now, which is less accurate. akpm: - sync_tsc_bp_init seems to have the sense of `init' inverted. - SPIN_LOCK_UNLOCKED is deprecated - use DEFINE_SPINLOCK. Cc: Cc: Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Rename the extended cpuid level field It was confusingly named. Signed-off-by: Andi Kleen DESC x86_64: Switch SMP bootup over to new CPU hotplug state machine EDESC From: "Andi Kleen" This will allow hotplug CPU in the future and in general cleans up a lot of crufty code. It also should plug some races that the old hackish way introduces. Remove one old race workaround in NMI watchdog setup that is not needed anymore. I removed the old total sum of bogomips reporting code. The brag value of BogoMips has been greatly devalued in the last years on the open market. Real CPU hotplug will need some more work, but the infrastructure for it is there now. One drawback: the new TSC sync algorithm is less accurate than before. The old way of zeroing TSCs is too intrusive to do later. Instead the TSC of the BP is duplicated now, which is less accurate. Cc: Cc: Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Add acpi_skip_timer_override option Add acpi_skip_timer_override option. It was missing previously. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Rewrite exception stack backtracing Exceptions and hardware interrupts can, to a certain degree, nest, so when attempting to follow the sequence of stacks used in order to dump their contents this has to be accounted for. Also, IST stacks have their tops stored in the TSS, so there's no need to add the stack size to get to their ends. Minor changes from AK. Signed-off-by: Jan Beulich Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Final support for AMD dual core Clean up the code greatly. Now uses the infrastructure from the Intel dual core patch Should fix a final bug noticed by Tyan of not detecting the nodes correctly in some corner cases. Patch for x86-64 and i386 Signed-off-by: Andi Kleen Signed-off-by: Rafael J. Wysocki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: add support for Intel dual-core detection and displaying Appended patch adds the support for Intel dual-core detection and displaying the core related information in /proc/cpuinfo. It adds two new fields "core id" and "cpu cores" to x86 /proc/cpuinfo and the "core id" field for x86_64("cpu cores" field is already present in x86_64). Number of processor cores in a die is detected using cpuid(4) and this is documented in IA-32 Intel Architecture Software Developer's Manual (vol 2a) (http://developer.intel.com/design/pentium4/manuals/index_new.htm#sdm_vol2a) This patch also adds cpu_core_map similar to cpu_sibling_map. Slightly hacked by AK. Signed-off-by: Suresh Siddha Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Remove duplicated syscall entry. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Use the e820 hole to map the IOMMU/AGP aperture This might save memory on some Opteron systems without AGP bridge. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Keep only a single debug notifier chain Calling a notifier three times in the debug handler does not make much sense, because a debugger can figure out the various conditions by itself. Remove the additional calls to DIE_DEBUG and DIE_DEBUGSTEP completely. This matches what i386 does now. This also makes sure interrupts are always still disabled when calling a debugger, which prevents: BUG: using smp_processor_id() in preemptible [00000001] code: tpopf/1470 caller is post_kprobe_handler+0x9/0x70 Call Trace:{smp_processor_id+191} {post_kpro be_handler+9} {kprobe_exceptions_notify+58} {notifier_call_chain+32} {do_debug+335} {debug+127} on preemptible debug kernels with kprobes when single stepping in user space. This was probably a bug even on non preempt kernels, this function was supposed to be running with interrupts off according to a comment there. Note to third part debugger maintainers: please double check your debugger can still single step. Cc: Cc: Cc: Cc: Cc: Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Port over e820 gap detection from i386 Look for gaps in the e820 memory map to put PCI resources in. This hopefully fixes problems with the PCI code assigning 32bit BARs MMIO resources which are >32bit. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Siddha, Suresh B: [PATCH] x86_64-always-use-cpuid-80000008-to-figure-out-mtrr fix We need to use the size_and_mask in set_mtrr_var_ranges(which is called while programming MTRR's for AP's Signed-off-by: Suresh Siddha Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Remove excessive stack allocation in MCE code with large NR_CPUS Remove excessive stack allocation in MCE code with large NR_CPUS Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Always use CPUID 80000008 to figure out MTRR address space size It doesn't make sense to only do this only for AMD K8. This would support future CPUs with extended address spaces properly. For i386 and x86-64 Cc: Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Use the extended RIP MSR for machine check reporting if available. They are rumoured to be much more reliable than the RIP in the stack frame on P4s. This is a borderline case because the code is very simple. Please note there are no plans to add support for all the MCE register MSRs. Cc: Cc: Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Correct wrong comment in local.h local_t is actually a win over atomic_t because it does not need lock prefixes. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Don't assume future AMD CPUs have K8 compatible performance counters The NMI watchdog code did this incorrectly Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Make kernel math errors a die() now There were no reports about the previous warning for FPU exceptions in the kernel, so make it a die() now. Also improve the error messages slightly. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Remove unused macro in preempt support Remove unused macro in preempt support Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Support constantly ticking TSCs On Intel Noconas the TSC ticks with a constant frequency. Don't scale the factor used by udelay when cpufreq changes the frequency. This generalizes an earlier patch by Intel for this. Cc: Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Fix a small missing schedule race Could lead to a lost reschedule event when the process already rescheduled on exception exit, and needs it again while still being in the kernel. Unlikely case though. Also remove one redundant cli in another entry.S path. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Regularize exception stack handling This fixes various issues in the return path for "paranoid" handlers (= running on a private exception stack that act like NMIs). Generalize previous hack to switch back to process stack for scheduling/signal handling purposes. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Call do_notify_resume unconditionally in entry.S This removes some unnecessary code in the assembly files. Matches i386 behaviour. In addition don't clear the work check mask after work has been done. This fixes some theoretical signal/other event losses. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Minor microoptimization in syscall entry slow path Minor microoptimization in syscall entry slow path Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Fix interaction of single stepping with debuggers Ported from i386/Linus Fix another TF corner case. Need to do the special TF handling for all signals to make debuggers happy Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Dump stack and prevent recursion on early fault Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Use a common function to find code segment bases To avoid some code duplication. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Handle programs that set TF in user space using popf while single stepping Ported from i386/Linus Still won't handle other TF changing instructions like IRET or LAHF. Prefix handling must be double checked... Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Some fixes for single step handling Ported from i386/Linus Be more careful with TF handling to fix some copy protection codes in Wine Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Make IRDA devices are not really ISA devices not depend on CONFIG_ISA This allows to use them on x86-64 Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: clean up ptrace single-stepping Ported from i386 (originally from Linus) clean up ptrace single-stepping, make PT_DTRACE exact. (This makes the naming of "DTRACE" purely historical, since on x86 it now means "single step in progress"). Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: Use a VMA for the 32bit vsyscall Use a real VMA to map the 32bit vsyscall page This interacts better with Hugh's upcomming VMA walk optimization Also removes some ugly special cases. Code roughly modelled after the ppc64 vdso version from Ben Herrenschmidt. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] x86_64 show_stack(): call touch_nmi_watchdog I had strange NMI watchdog timeouts running sysrq-T across 9600-baud serial. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jason Davis: [PATCH] x86_64 genapic update x86_64 genapic mechanism should be aware of machines that use physical APIC mode regardless of how many clusters/processors are detected. ACPI 3.0 FADT makes this determination very simple by providing a feature flag "force_apic_physical_destination_mode" to state whether the machine unconditionally uses physical APIC mode. Unisys' next generation x86_64 ES7000 will need to utilize this FADT feature flag in order to boot the x86_64 kernel in the correct APIC mode. This patch has been tested on both x86_64 commodity and ES7000 boxes. Signed-off-by: Jason Davis Acked-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86_64: disable interrupts during SMP bogomips checking Port over a i386 kludge from rusty to x86-64 I don't think it is a full solution, but the upcomming smp bootup rewrite will solve it. This fixes BUGs at bootup on bigger x86-64 systems. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86-64: Fix BUG() Use the correct file name in BUG() Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andi Kleen: [PATCH] x86-64/i386: Revert cpuinfo siblings behaviour back to 2.6.10 Only display physical id/siblings when there are siblings or dual core. In 2.6.11 I accidentially broke it and it was always displaying these fields But for compatibility to all these /proc parsers around it is better to do it in the old way again. Noticed by Suresh Siddha Cc: Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland McGrath: [PATCH] x86-64: i386 vDSO: add PT_NOTE segment Use the i386 PT_NOTE segment in x86_64 as well. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland McGrath: [PATCH] i386 vDSO: add PT_NOTE segment This patch adds an ELF note to the vDSO giving the LINUX_VERSION_CODE value. Having this in the vDSO lets the dynamic linker avoid the `uname' syscall it now always does at startup to ascertain the kernel ABI available. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Roland McGrath: [PATCH] i386: Use loaddebug macro consistently This moves the macro loaddebug from asm-i386/suspend.h to asm-i386/processor.h, which is the place that makes sense for it to be defined, removes the extra copy of the same macro in arch/i386/kernel/process.c, and makes arch/i386/kernel/signal.c use the macro in place of its expansion. This is a purely cosmetic cleanup for the normal i386 kernel. However, it is handy for Xen to be able to just redefine the loaddebug macro once instead of also changing the signal.c code. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jason Gaston: [PATCH] i2c-i801: I2C patch for Intel ESB2 This patch adds the Intel ESB2 DID's to the i2c-i801.c and Kconfig files for I2C support. Signed-off-by:  Jason Gaston Cc: Greg KH Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jason Gaston: [PATCH] ahci: AHCI mode SATA patch for Intel ESB2 This patch adds the Intel ESB2 DID's to the ahci.c file for AHCI mode SATA support. Signed-off-by: Jason Gaston Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jason Gaston: [PATCH] ata_piix: IDE mode SATA patch for Intel ESB2 This patch adds the Intel ESB2 DID's to the ata_piix.c and quirks.c file for IDE mode SATA support. Signed-off-by: Jason Gaston Cc: Jeff Garzik Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jason Gaston: [PATCH] intel8x0: AC'97 audio patch for Intel ESB2 This patch adds the Intel ESB2 DID's to the intel8x0.c file for AC'97 audio support. Signed-off-by:  Jason Gaston Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jason Gaston: [PATCH] piix: IDE PATA patch for Intel ESB2 This patch adds the Intel ESB2 DID's to the piix.c file for IDE PATA support. Signed-off-by: Jason Gaston Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jason Gaston: [PATCH] irq and pci_ids: patch for Intel ESB2 This patch adds the Intel ESB2 DID's to the irq.c and pci_ids.h files. Signed-off-by: Jason Gaston Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Yoichi Yuasa: [PATCH] mips: remove #include two times This patch removes #include . Because it includes it two times. Signed-off-by: Yoichi Yuasa Cc: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Yoichi Yuasa: [PATCH] mips: update VR41xx CPU-PCI bridge support This patch updates NEC VR4100 series CPU-PCI bridge support. Signed-off-by: Yoichi Yuasa Cc: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Yoichi Yuasa: [PATCH] mips: remove obsolete VR41xx RTC function from vr41xx.h This patch had removed obsolete VR41xx RTC function from vr41xx.h . I forgot to put this change in "update VR41xx RTC support". Signed-off-by: Yoichi Yuasa Cc: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Olof Johansson: [PATCH] ppc64: no prefetch for NULL pointers For prefetches of NULL (as when walking a short linked list), PPC64 will in some cases take a performance hit. The hardware needs to do the TLB walk, and said walk will always miss, which means (up to) two L2 misses as penalty. This seems to hurt overall performance, so for NULL pointers skip the prefetch alltogether. Signed-off-by: Olof Johansson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Anton Blanchard: [PATCH] ppc64: remove -fno-omit-frame-pointer During some code inspection using gcc 4.0 I noticed a stack frame was being created for a number of functions that didnt require it. For example: c0000000000df944 <._spin_unlock>: c0000000000df944: fb e1 ff f0 std r31,-16(r1) c0000000000df948: f8 21 ff c1 stdu r1,-64(r1) c0000000000df94c: 7c 3f 0b 78 mr r31,r1 c0000000000df950: 7c 20 04 ac lwsync c0000000000df954: e8 21 00 00 ld r1,0(r1) c0000000000df958: 38 00 00 00 li r0,0 c0000000000df95c: 90 03 00 00 stw r0,0(r3) c0000000000df960: eb e1 ff f0 ld r31,-16(r1) c0000000000df964: 4e 80 00 20 blr It turns out we are adding -fno-omit-frame-pointer to ppc64 which is causing the above behaviour. Removing that flag results in much better code: c0000000000d5b30 <._spin_unlock>: c0000000000d5b30: 7c 20 04 ac lwsync c0000000000d5b34: 38 00 00 00 li r0,0 c0000000000d5b38: 90 03 00 00 stw r0,0(r3) c0000000000d5b3c: 4e 80 00 20 blr We dont require a frame pointer to debug on ppc64, so remove it. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] ppc64: remove bogus f50 hack in prom.c The code that parses the OF device tree contains an old bogus hack which was killed a long time ago on ppc32, but survived in ppc64. It was supposed to help with a problem on the f50 which is ... a 32 bits machine :) Additionally, that hack is causing problems, so let's just get rid of it. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] ppc64: Detect altivec via firmware on unknown CPUs This patch adds detection of the Altivec capability of the CPU via the firmware in addition to the cpu table. This allows newer CPUs that aren't in the table to still have working altivec support in the kernel. It also fixes a problem where if a CPU isn't recognized as having altivec features, and takes an altivec unavailable exception due to userland issuing altivec instructions, the kernel would happily enable it and context switch the registers ... but not all of them (it would basically forget vrsave). With this patch, the kernel will refuse to enable altivec when the feature isn't detected for the CPU (SIGILL). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] ppc64: Improve mapping of vDSO This patch reworks the way the ppc64 is mapped in user memory by the kernel to make it more robust against possible collisions with executable segments. Instead of just whacking a VMA at 1Mb, I now use get_unmapped_area() with a hint, and I moved the mapping of the vDSO to after the mapping of the various ELF segments and of the interpreter, so that conflicts get caught properly (it still has to be before create_elf_tables since the later will fill the AT_SYSINFO_EHDR with the proper address). While I was at it, I also changed the 32 and 64 bits vDSO's to link at their "natural" address of 1Mb instead of 0. This is the address where they are normally mapped in absence of conflict. By doing so, it should be possible to properly prelink one it's been verified to work on glibc. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Paul Mackerras: [PATCH] ppc64: fix export of wrong symbol In arch/ppc64/kernel/ppc_ksyms.c, we are still exporting flush_icache_range, but that has been changed to be an inline in include/asm-ppc64/cacheflush.h which calls __flush_icache_range (defined in arch/ppc64/kernel/misc.S). This patch changes the export to __flush_icache_range, thus allowing modules to use the inline flush_icache_range. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] ppc64: Fix semantics of __ioremap This patch fixes ppc64 __ioremap() so that it stops adding implicitely _PAGE_GUARDED when the cache is not writeback, and instead, let the callers provide the flag they want here. This allows things like framebuffers to explicitely request a non-cacheable and non-guarded mapping which is more efficient for that type of memory without side effects. The patch also fixes all current callers to add _PAGE_GUARDED except btext, which is fine without it. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] pmac: Improve sleep code of tumbler driver This patch improves the behaviour of the "tumbler/snapper" driver used on newer PowerMacs during sleep. It properly set the HW mutes to shut down amplifiers and does an analog shutdown of the codec. That might improve power consumption during sleep on a number of machines. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] ppc64: very basic desktop g5 sound support This patch hacks the current PowerMac Alsa driver to add some basic support of analog sound output to some desktop G5s. It has severe limitations though: - Only 44100Khz 16 bits - Only work on G5 models using a TAS3004 analog code, that is early single CPU desktops and all dual CPU desktops at this date, but none of the more recent ones like iMac G5. - It does analog only, no digital/SPDIF support at all, no native AC3 support Better support would require a complete rewrite of the driver (which I am working on, but don't hold your breath), to properly support the diversity of apple sound HW setup, including dual codecs, several i2s busses, all the new codecs used in the new machines, proper clock switching with digital, etc etc etc... This patch applies on top of the other PowerMac sound patches I posted in the past couple of days (new powerbook support and sleep fixes). Note: This is a FAQ entry for PowerMac sound support with TI codecs: They have a feature called "DRC" which is automatically enabled for the internal speaker (at least when auto mute control is enabled) which will cause your sound to fade out to nothing after half a second of playback if you don't set a proper "DRC Range" in the mixer. So if you have a problem like that, check alsamixer and raise your DRC Range to something reasonable. Note2: This patch will also add auto-mute of the speaker when line-out jack is used on some earlier desktop G4s (and on the G5) in addition to the headphone jack. If that behaviour isn't what you want, just disable auto-muting and use the manual mute controls in alsamixer. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] pmac: sound support for latest laptops This patch hacks the current Alsa snd-powermac driver to add support for recent machine models with the tas3004 chip, that is basically new laptop models. The Mac Mini is _NOT_ yet supported by this patch (soon soon ...). The G5s (iMac or Desktop) will need the rewritten sound driver on which I'm working on (I _might_ get a hack for analog only on some G5s on the current driver, but no promise). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] ppc32: MV643XX ethernet is an option for Pegasos This patch allows Kconfig to build the MV643xx ethernet driver on Pegasos (CONFIG_PPC_MULTIPLATFORM) and adds what I think is a missing fix from Dale's batch, that is remove SA_INTERRUPT and add SA_SHIRQ in there as the interrupt is shared if I understand things correctly. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Fabio Massimo Di Nitto Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benoit Boissinot: [PATCH] ppc32: fix compilation error in arch/ppc/syslib/open_pic_defs.h make defconfig give the following error on ppc (gcc-4): arch/ppc/syslib/open_pic.c:36: error: static declaration of ‘OpenPIC’ follows non-static declaration arch/ppc/syslib/open_pic_defs.h:175: error: previous declaration of ‘OpenPIC’ was here Signed-Off-By: Benoit Boissinot Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benoit Boissinot: [PATCH] ppc32: fix compilation error in include/asm/prom.h make defconfig give the following error on ppc (gcc-4): arch/ppc/syslib/prom_init.c:120: error: static declaration of ‘prom_display_paths’ follows non-static declaration include/asm/prom.h:17: error: previous declaration of ‘prom_display_paths’ was here arch/ppc/syslib/prom_init.c:122: error: static declaration of ‘prom_num_displays’ follows non-static declaration include/asm/prom.h:18: error: previous declaration of ‘prom_num_displays’ was here Signed-Off-By: Benoit Boissinot Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benoit Boissinot: [PATCH] ppc32: fix compilation error in arch/ppc/kernel/time.c make defconfig give the following error on ppc (gcc-4): arch/ppc/kernel/time.c:92: error: static declaration of ‘time_offset’ follows non-static declaration include/linux/timex.h:236: error: previous declaration of ‘time_offset’ was here The following patch solves it (time_offset is declared in timer.c). Signed-Off-By: Benoit Boissinot Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benoit Boissinot: [PATCH] ppc32: fix compilation error in include/asm-m68k/setup.h make defconfig give the following error on ppc (gcc-4): include/asm-m68k/setup.h:365: error: array type has incomplete element type Signed-Off-By: Benoit Boissinot Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Leigh Brown: [PATCH] ppc32: Make the Powerstack II Pro4000 boot again This patch restores the original behaviour of prep_pcibios_fixup() to only call prep_pib_init() on machines with an openpic. This allows the Powerstack II Pro4000 to boot again. Signed-off-by: Leigh Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Tom Rini: [PATCH] ppc32: Fix building 32bit kernel for 64bit machines When building a ppc32 MULTIPLATFORM kernel for a 64bit pmac, we try and build certain files or use certain functions that make no sense in that context. This catches the last of these. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Giovambattista Pulcini: [PATCH] ppc32: Fix a problem with NTP on !(chrp||gemini) The following problem was found by Giovambattista Pulcini , who also provided a partial patch, and this has been verified by our time guru Gabriel Paubert . The problem is that in do_settimeofday() we always set time_state to TIME_ERROR and except on two platforms, never re-set it. This meant that ntp_gettime() and ntp_adjtime() always returned TIME_ERROR, incorrectly. Based on Gabriel's analysis, time_state is used for leap-second processing, and ppc shouldn't be mucking with it. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Tom Rini: [PATCH] ppc32: Fix mpc8xx watchdog The CONFIG_8xx_WDT option got broken in the generic hardirq update as ppc32 had its own different request_irq that worked when other arches used setup_irq. This is the trivial fix for the problem. From: Carsten Juttner Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Kumar Gala: [PATCH] ppc32: Support 36-bit physical addressing on e500 To add support for 36-bit physical addressing on e500 the following changes have been made. The changes are generalized to support any physical address size larger than 32-bits: * Allow FSL Book-E parts to use a 64-bit PTE, it is 44-bits of pfn, 20-bits of flags. * Introduced new CPU feature (CPU_FTR_BIG_PHYS) to allow runtime handling of updating hardware register (SPRN_MAS7) which holds the upper 32-bits of physical address that will be written into the TLB. This is useful since not all e500 cores support 36-bit physical addressing. * Currently have a pass through implementation of fixup_bigphys_addr * Moved _PAGE_DIRTY in the 64-bit PTE case to free room for three additional storage attributes that may exist in future FSL Book-E cores and updated fault handler to copy these bits into the hardware TLBs. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Kumar Gala: [PATCH] ppc32: Allow adjust of pfn offset in pte Allow the pfn to be offset by more than just PAGE_SHIFT in the pte. Today, PAGE_SHIFT tends to allow us to have 12-bits of flags in the pte. In the future if we have a larger pte we can allocate more bits for flags by offsetting the pfn even further. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Kumar Gala: [PATCH] ppc32: make usage of CONFIG_PTE_64BIT & CONFIG_PHYS_64BIT consistent CONFIG_PTE_64BIT & CONFIG_PHYS_64BIT are not currently consistently used in the code base. Fixed up the usage such that CONFIG_PTE_64BIT is used when we have a 64-bit PTE regardless of physical address width. CONFIG_PHYS_64BIT is used if the physical address width is larger than 32-bits, regardless of PTE size. These changes required a few sub-arch specific ifdef's to be fixed and the introduction of a physical address format string. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Kumar Gala: [PATCH] ppc32: Fix pte_update for 64-bit PTEs While the existing pte_update code handled atomically modifying a 64-bit PTE, it did not return all 64-bits of the PTE before it was modified. This causes problems in some places that expect the full PTE to be returned, like ptep_get_and_clear(). Created a new pte_update function that is conditional on CONFIG_PTE_64BIT. It atomically reads the low PTE word which all PTE flags are required to be in and returns a premodified full 64-bit PTE. Since we now have an explicit 64-bit PTE version of pte_update we can also remove the hack that existed to get the low PTE word regardless of size. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] ppc32: Fix AGP and sleep again My previous patch that added sleep support for uninorth-agp and some AGP "off" stuff in radeonfb and aty128fb is breaking some configs. More specifically, it has problems with rage128 setups since the DRI code for these in X doesn't properly re-enable AGP on wakeup or console switch (unlike the radeon DRM). This patch fixes the problem for pmac once for all by using a different approach. The AGP driver "registers" special suspend/resume callbacks with some arch code that the fbdev's can later on call to suspend and resume AGP, making sure it's resumed back in the same state it was when suspended. This is platform specific for now. It would be too complicated to try to do a generic implementation of this at this point due to all sort of weird things going on with AGP on other architectures. We'll re-work that whole problem cleanly once we finally merge fbdev's and DRI. In the meantime, please apply this patch which brings back some r128 based laptops into working condition as far as system sleep is concerned. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Benjamin Herrenschmidt: [PATCH] ppc32: Fix cpufreq problems This patch updates the PowerMac cpufreq driver. It depends on the addition of the suspend() method (my previous patch) and on the new flag I defined to silence some warnings that are normal for us. It fixes various issues related to cpufreq on pmac, including some crashes on some models when sleeping the machine while in low speed, proper voltage control on some newer machines, and adds voltage control on 750FX based G3 laptops. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Paul Mackerras: [PATCH] ppc32: oops on kernel altivec assist exceptions If we should happen to get an altivec assist exception while executing in the kernel, we will currently try to handle it and fail, and end up oopsing with (apparently) a segfault. (An altivec assist exception occurs for floating-point altivec instructions with denormalized inputs or outputs if the altivec unit is in java mode.) This patch checks explicitly if we are in user mode and prints a useful message if not. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Paul Mackerras: [PATCH] ppc32: fix single-stepping of emulated instructions On ppc, we emulate instructions that cause alignment exceptions. If we are single-stepping an instruction and it causes an alignment exception, we will currently do the next instruction as well before taking the single-step exception. This patch fixes that, so we take the single-step exception after emulating the instruction. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Paul Mackerras: [PATCH] ppc32: improve timebase sync for SMP Currently the procedure in the ppc32 kernel that synchronizes the timebase registers across an SMP powermac system does so by setting both timebases to zero. That is OK at boot but causes problems if done later. So that we can do hotplug CPU on these machines, this patch changes the code so it reads the timebase from one CPU and transfers the value to the other CPU. (Hotplug CPU is needed for sleep (aka suspend to RAM) to work.) Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Eugene Surovegin: [PATCH] ppc32: ppc4xx_pic - add acknowledge when enabling level-sensitive IRQ This patch adds interrupt acknowledge to the PPC4xx PIC enable_irq implementation for level-sensitive IRQ sources. This helps in cases when enable/disable_irq is used in interrupt handlers for hardware, which requires IRQ acknowledge to be issued from non-interrupt context (e.g. when actual ACK in device needs an I2C transaction). For such strange hardware, interrupt handler disables IRQ and defers actual ACK to some other context. When this happens, IRQ is enabled again. For level-sensitive sources we get spurious triggering right after IRQ is enabled. This patch fixes this. Suggested by Tolunay Orkun . Signed-off-by: Eugene Surovegin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Paul Mackerras: [PATCH] ppc32: fix bogosity in process-freezing code The code that went into arch/ppc/kernel/signal.c recently to handle process freezing seems to contain a dubious assumption: that a process that calls do_signal when PF_FREEZE is set will have entered the kernel because of a system call. This patch removes that assumption. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds James Morris: [PATCH] SELinux: add support for NETLINK_KOBJECT_UEVENT This patch adds SELinux support for the KOBJECT_UEVENT Netlink family, so that SELinux can apply finer grained controls to it. For example, security policy for hald can be locked down to the KOBJECT_UEVENT Netlink family only. Currently, this family simply defaults to the default Netlink socket class. Note that some new permission definitions are added to sync with changes in the core userspace policy package, which auto-generates header files. Signed-off-by: James Morris Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jean Tourrilhes: [PATCH] irda_device() oops fix Acked-by: "David S. Miller" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Herbert Xu: [PATCH] Fix dst_destroy() race When we are not the real parent of the dst (e.g., when we're xfrm_dst and the child is an rtentry), it may already be on the GC list. In fact the current code is buggy to, we need to check dst->flags before the dec as dst may no longer be valid afterwards. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds David S. Miller: [PATCH] Fix linux/atalk.h header This recently got changed to include a lot of kernel internal stuff in the non-__KERNEL__ area of the header, which isn't so kosher and breaks libc builds. The fix is pretty simple. Signed-off-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Arnaldo Carvalho de Melo: [PATCH] net: don't call kmem_cache_create with a spinlock held This fixes the warning reported by Marcel Holtmann (Thanks!). Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Martin Hicks: [PATCH] meminfo: add Cached underflow check Working on some code lately I've been getting huge values for "Cached". The cause is that get_page_cache_size() is an approximate value, and for a sufficiently small returned value of get_page_cache_size() the value underflows. Signed-off-by: Martin Hicks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] end_buffer_write_sync() avoid pointless assignments Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] vmscan: pageout(): remove unneeded test We only call pageout() for dirty pages, so this test is redundant. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Jeff Moyer: [PATCH] filemap_getpage can block when MAP_NONBLOCK specified We will return NULL from filemap_getpage when a page does not exist in the page cache and MAP_NONBLOCK is specified, here: page = find_get_page(mapping, pgoff); if (!page) { if (nonblock) return NULL; goto no_cached_page; } But we forget to do so when the page in the cache is not uptodate. The following could result in a blocking call: /* * Ok, found a page in the page cache, now we need to check * that it's up-to-date. */ if (!PageUptodate(page)) goto page_not_uptodate; Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrea Arcangeli: [PATCH] oom-killer disable for iscsi/lvm2/multipath userland critical sections iscsi/lvm2/multipath needs guaranteed protection from the oom-killer, so make the magical value of -17 in /proc//oom_adj defeat the oom-killer altogether. (akpm: we still need to document oom_adj and friends in Documentation/filesystems/proc.txt!) Signed-off-by: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Dave Airlie: [PATCH] r128_state.c: break missing in switch statement drm: fix r128_state.c switch statements.. in drivers/char/drm/r128_state.c (linux-2.6.12-rc2), some breaks are missing in the switch statement. See trivial fix below. Signed-off-by: Hansjoerg Lipp Signed-off-by: Dave Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds James Morris: [PATCH] SELinux: fix bug in Netlink message type detection This patch fixes a bug in the SELinux Netlink message type detection code, where the wrong constant was being used in a case statement. The incorrect value is not valid for this class of object so it would not have been reached, and fallen through to a default handler for all Netlink messages. Signed-off-by: James Morris Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] fix Bug 4395: modprobe bttv freezes the computer From: Johannes Stezenbach Fix http://bugme.osdl.org/show_bug.cgi?id=4395. Patch by Manu Abraham and Gerd Knorr: Remove redundant bttv_reset_audio() which caused the computer to freeze with some bt8xx based DVB cards when loading the bttv driver. Signed-off-by: Johannes Stezenbach Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Stas Sergeev: [PATCH] fix crash in entry.S restore_all Fix the access-above-bottom-of-stack crash. 1. Allows to preserve the valueable optimization 2. Works for NMIs 3. Doesn't care whether or not there are more of the like instances where the stack is left empty. 4. Seems to work for me without the crashes:) (akpm: this is still under discussion, although I _think_ it's OK. You might want to hold off) Signed-off-by: Stas Sergeev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds David S. Miller: [PATCH] Fix get_compat_sigevent() I have no idea how a bug like this lasted so long. Anyways, obvious memset()'ing of incorrect pointer. Signed-off-by: David S. Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] Fix acl Oops From: Andreas Gruenbacher ext[23]_get_acl will return an error when reading the attribute fails or out-of-memory occurs. Catch this case. Signed-off-by: Andreas Gruenbacher Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds James Bottomley: [PATCH] re-export cancel_rearming_delayed_workqueue This was unexported by Arjan because we have no current users. However, during a conversion from tasklets to workqueues of the parisc led functions, we ran across a case where this was needed. In particular, the open coded equivalent of cancel_rearming_delayed_workqueue was implemented incorrectly, which is, I think, all the evidence necessary that this is a useful API. Signed-off-by: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Artem B. Bityuckiy: [PATCH] crypto: call zlib end functions on deflate exit path In the deflate_[compress|uncompress|pcompress] functions we call the zlib_[in|de]flateReset function at the beginning. This is OK. But when we unload the deflate module we don't call zlib_[in|de]flateEnd to free all the zlib internal data. It looks like a bug for me. Please, consider the attached patch. Signed-off-by: Artem B. Bityuckiy Signed-off-by: Herbert Xu Cc: "David S. Miller" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] arm: add comment about max_low_pfn/max_pfn From: Russell King Oddly, max_low_pfn/max_pfn end up being the number of pages in the system, rather than the maximum PFN on ARM. This doesn't seem to cause any problems, so just add a note about it. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] arm: add comment about dma_supported() From: Russell King The ARM dma_supported() is rather basic, and I don't think it takes into account everything that it should do (eg, whether the mask agrees with what we'd return for GFP_DMA allocations). Note this. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] arm: fix help text for ixdp465 From: Russell King For some reason, this help text was missed when the file was last audited by the documentation referencing folk. Fix this incorrect documentation reference. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Andrew Morton: [PATCH] arm: fix SIGBUS handling From: Russell King ARM wasn't raising a SIGBUS with a siginfo structure. Fix __do_user_fault() to allow us to use it for SIGBUS conditions, and arrange for the sigbus path to use this. We need to prevent the siginfo code being called if we do not have a user space context to call it, so consolidate the "user_mode()" tests. Thanks to Ian Campbell who spotted this oversight. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Neil Brown: [PATCH] Avoid deadlock in sync_page_io by using GFP_NOIO ..as sync_page_io can be called on the write-out path. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Christoph Lameter: [PATCH] mmtimer build fix Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Linus Torvalds: Linux-2.6.12-rc2 Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!