commit 29e8c3c304b62f31b799565c9ee85d42bd163f80 Author: Linus Torvalds Date: Tue Mar 4 20:33:54 2008 -0800 Linux 2.6.25-rc4 commit 9b37ccfc637be27d9a652fcedc35e6e782c3aa78 Author: Pavel Roskin Date: Thu Feb 28 17:11:02 2008 -0500 module: allow ndiswrapper to use GPL-only symbols A change after 2.6.24 broke ndiswrapper by accidentally removing its access to GPL-only symbols. Revert that change and add comments about the reasons why ndiswrapper and driverloader are treated in a special way. Signed-off-by: Pavel Roskin Acked-by: Greg KH Acked-by: Ingo Molnar Cc: Rusty Russell Cc: Jon Masters Signed-off-by: Linus Torvalds commit dea75bdfa57f75a7a7ec2961ec28db506c18e5db Author: Stephen Hemminger Date: Tue Mar 4 17:03:49 2008 -0800 [IPCONFIG]: The kernel gets no IP from some DHCP servers From: Stephen Hemminger Based upon a patch by Marcel Wappler: This patch fixes a DHCP issue of the kernel: some DHCP servers (i.e. in the Linksys WRT54Gv5) are very strict about the contents of the DHCPDISCOVER packet they receive from clients. Table 5 in RFC2131 page 36 requests the fields 'ciaddr' and 'siaddr' MUST be set to '0'. These DHCP servers ignore Linux kernel's DHCP discovery packets with these two fields set to '255.255.255.255' (in contrast to popular DHCP clients, such as 'dhclient' or 'udhcpc'). This leads to a not booting system. Signed-off-by: David S. Miller commit b2a5cd6938879b5bcfef0a73c28fea84c49519c2 Author: Masami Hiramatsu Date: Tue Mar 4 14:29:44 2008 -0800 kprobes: fix a null pointer bug in register_kretprobe() Fix a bug in regiseter_kretprobe() which does not check rp->kp.symbol_name == NULL before calling kprobe_lookup_name. For maintainability, this introduces kprobe_addr helper function which resolves addr field. It is used by register_kprobe and register_kretprobe. Signed-off-by: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli Cc: Jim Keniston Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1913130553aa231644eb4e955b1a2c533fe33d17 Author: Randy Dunlap Date: Tue Mar 4 14:29:43 2008 -0800 input: add I2C to config since the driver makes several i2c*() calls Add to help text that the Intel I2C ICH (i801) driver is also needed for this kernel. Add LEDS_CLASS to config since the driver makes les_classdev_*() calls: ERROR: "led_classdev_register" [drivers/input/misc/apanel.ko] undefined! ERROR: "__led_classdev_unregister" [drivers/input/misc/apanel.ko] undefined! Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 92587216f8bdf74432ada8a9a1a7caf4c135cf42 Author: Josef Bacik Date: Tue Mar 4 14:29:43 2008 -0800 ext3: fix mount option parsing The "resize" option won't be noticed as it comes after the NULL option, so if you try to mount (or in this case remount) with that option it won't be recognized. Signed-off-by: Josef Bacik Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 348e1e04b5229a481891699ce86da009b793f29e Author: Nishanth Aravamudan Date: Tue Mar 4 14:29:42 2008 -0800 hugetlb: fix pool shrinking while in restricted cpuset Adam Litke noticed that currently we grow the hugepage pool independent of any cpuset the running process may be in, but when shrinking the pool, the cpuset is checked. This leads to inconsistency when shrinking the pool in a restricted cpuset -- an administrator may have been able to grow the pool on a node restricted by a containing cpuset, but they cannot shrink it there. There are two options: either prevent growing of the pool outside of the cpuset or allow shrinking outside of the cpuset. >From previous discussions on linux-mm, /proc/sys/vm/nr_hugepages is an administrative interface that should not be restricted by cpusets. So allow shrinking the pool by removing pages from nodes outside of current's cpuset. Signed-off-by: Nishanth Aravamudan Acked-by: Adam Litke Cc: William Irwin Cc: Lee Schermerhorn Cc: Christoph Lameter Cc: Paul Jackson Cc: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ac09b3a15154af5f081fed509c6c3662e79de785 Author: Adam Litke Date: Tue Mar 4 14:29:38 2008 -0800 hugetlb: close a difficult to trigger reservation race A hugetlb reservation may be inadequately backed in the event of racing allocations and frees when utilizing surplus huge pages. Consider the following series of events in processes A and B: A) Allocates some surplus pages to satisfy a reservation B) Frees some huge pages A) A notices the extra free pages and drops hugetlb_lock to free some of its surplus pages back to the buddy allocator. B) Allocates some huge pages A) Reacquires hugetlb_lock and returns from gather_surplus_huge_pages() Avoid this by commiting the reservation after pages have been allocated but before dropping the lock to free excess pages. For parity, release the reservation in return_unused_surplus_pages(). This patch also corrects the cpuset_mems_nr() error path in hugetlb_acct_memory(). If the cpuset check fails, uncommit the reservation, but also be sure to return any surplus huge pages that may have been allocated to back the failed reservation. Thanks to Andy Whitcroft for discovering this. Signed-off-by: Adam Litke Cc: Mel Gorman Cc: Andy Whitcroft Cc: Dave Hansen Cc: William Lee Irwin III Cc: Andy Whitcroft Cc: Mel Gorman Cc: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a07e6ab41be179cf1ed728a4f41368435508b550 Author: K.Tanaka Date: Tue Mar 4 14:29:37 2008 -0800 md: the md RAID10 resync thread could cause a md RAID10 array deadlock This message describes another issue about md RAID10 found by testing the 2.6.24 md RAID10 using new scsi fault injection framework. Abstract: When a scsi error results in disabling a disk during RAID10 recovery, the resync threads of md RAID10 could stall. This case, the raid array has already been broken and it may not matter. But I think stall is not preferable. If it occurs, even shutdown or reboot will fail because of resource busy. The deadlock mechanism: The r10bio_s structure has a "remaining" member to keep track of BIOs yet to be handled when recovering. The "remaining" counter is incremented when building a BIO in sync_request() and is decremented when finish a BIO in end_sync_write(). If building a BIO fails for some reasons in sync_request(), the "remaining" should be decremented if it has already been incremented. I found a case where this decrement is forgotten. This causes a md_do_sync() deadlock because md_do_sync() waits for md_done_sync() called by end_sync_write(), but end_sync_write() never calls md_done_sync() because of the "remaining" counter mismatch. For example, this problem would be reproduced in the following case: Personalities : [raid10] md0 : active raid10 sdf1[4] sde1[5](F) sdd1[2] sdc1[1] sdb1[6](F) 3919616 blocks 64K chunks 2 near-copies [4/2] [_UU_] [>....................] recovery = 2.2% (45376/1959808) finish=0.7min speed=45376K/sec This case, sdf1 is recovering, sdb1 and sde1 are disabled. An additional error with detaching sdd will cause a deadlock. md0 : active raid10 sdf1[4] sde1[5](F) sdd1[6](F) sdc1[1] sdb1[7](F) 3919616 blocks 64K chunks 2 near-copies [4/1] [_U__] [=>...................] recovery = 5.0% (99520/1959808) finish=5.9min speed=5237K/sec 2739 ? S< 0:17 [md0_raid10] 28608 ? D< 0:00 [md0_resync] 28629 pts/1 Ss 0:00 bash 28830 pts/1 R+ 0:00 ps ax 31819 ? D< 0:00 [kjournald] The resync thread keeps working, but actually it is deadlocked. Patch: By this patch, the remaining counter will be decremented if needed. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1c830532f6b44d10a1743ccd00e990c6b83396f5 Author: NeilBrown Date: Tue Mar 4 14:29:35 2008 -0800 md: fix possible raid1/raid10 deadlock on read error during resync Thanks to K.Tanaka and the scsi fault injection framework, here is a fix for another possible deadlock in raid1/raid10 error handing. If a read request returns an error while a resync is happening and a resync request is pending, the attempt to fix the error will block until the resync progresses, and the resync will block until the read request completes. Thus a deadlock. This patch fixes the problem. Cc: "K.Tanaka" Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8ed3a19563b6c05b7625649b1769ddb063d53253 Author: Keld Simonsen Date: Tue Mar 4 14:29:34 2008 -0800 md: don't attempt read-balancing for raid10 'far' layouts This patch changes the disk to be read for layout "far > 1" to always be the disk with the lowest block address. Thus the chunks to be read will always be (for a fully functioning array) from the first band of stripes, and the raid will then work as a raid0 consisting of the first band of stripes. Some advantages: The fastest part which is the outer sectors of the disks involved will be used. The outer blocks of a disk may be as much as 100 % faster than the inner blocks. Average seek time will be smaller, as seeks will always be confined to the first part of the disks. Mixed disks with different performance characteristics will work better, as they will work as raid0, the sequential read rate will be number of disks involved times the IO rate of the slowest disk. If a disk is malfunctioning, the first disk which is working, and has the lowest block address for the logical block will be used. Signed-off-by: Keld Simonsen Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 27c529bb8e906d5d692152bc127cc09477d3629e Author: NeilBrown Date: Tue Mar 4 14:29:33 2008 -0800 md: lock access to rdev attributes properly When we access attributes of an rdev (component device on an md array) through sysfs, we really need to lock the array against concurrent changes. We currently do that when we change an attribute, but not when we read an attribute. We need to lock when reading as well else rdev->mddev could become NULL while we are accessing it. So add appropriate locking (mddev_lock) to rdev_attr_show. rdev_size_store requires some extra care as well as it needs to unlock the mddev while scanning other mddevs for overlapping regions. We currently assume that rdev->mddev will still be unchanged after the scan, but that cannot be certain. So take a copy of rdev->mddev for use at the end of the function. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 25156198235325805cd7295ed694509fd6e3a29e Author: NeilBrown Date: Tue Mar 4 14:29:32 2008 -0800 md: make sure a reshape is started when device switches to read-write A resync/reshape/recovery thread will refuse to progress when the array is marked read-only. So whenever it mark it not read-only, it is important to wake up thread resync thread. There is one place we didn't do this. The problem manifests if the start_ro module parameters is set, and a raid5 array that is in the middle of a reshape (restripe) is started. The array will initially be semi-read-only (meaning it acts like it is readonly until the first write). So the reshape will not proceed. On the first write, the array will become read-write, but the reshape will not be started, and there is no event which will ever restart that thread. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d0fae18f1b53a1d39135a968792be034bdf7ff26 Author: NeilBrown Date: Tue Mar 4 14:29:31 2008 -0800 md: clean up irregularity with raid autodetect When a raid1 array is stopped, all components currently get added to the list for auto-detection. However we should really only add components that were found by autodetection in the first place. So add a flag to record that information, and use it. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a1801f858e57f87a7f79914346921cc729632295 Author: NeilBrown Date: Tue Mar 4 14:29:31 2008 -0800 md: guard against possible bad array geometry in v1 metadata Make sure the data doesn't start before the end of the superblock when the superblock is at the start of the device. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8311c29d40235062a843f4a8e8a70a44af6fe4c9 Author: NeilBrown Date: Tue Mar 4 14:29:30 2008 -0800 md: reduce CPU wastage on idle md array with a write-intent bitmap On an md array with a write-intent bitmap, a thread wakes up every few seconds and scans the bitmap looking for work to do. If the array is idle, there will be no work to do, but a lot of scanning is done to discover this. So cache the fact that the bitmap is completely clean, and avoid scanning the whole bitmap when the cache is known to be clean. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a35e63efa1fb18c6f20f38e3ddf3f8ffbcf0f6e7 Author: NeilBrown Date: Tue Mar 4 14:29:29 2008 -0800 md: fix deadlock in md/raid1 and md/raid10 when handling a read error When handling a read error, we freeze the array to stop any other IO while attempting to over-write with correct data. This is done in the raid1d(raid10d) thread and must wait for all submitted IO to complete (except for requests that failed and are sitting in the retry queue - these are counted in ->nr_queue and will stay there during a freeze). However write requests need attention from raid1d as bitmap updates might be required. This can cause a deadlock as raid1 is waiting for requests to finish that themselves need attention from raid1d. So we create a new function 'flush_pending_writes' to give that attention, and call it in freeze_array to be sure that we aren't waiting on raid1d. Thanks to "K.Tanaka" for finding and reporting this problem. Cc: "K.Tanaka" Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 466634488e80968f12e73dd1fe6af5c37a1fbfe2 Author: FUJITA Tomonori Date: Tue Mar 4 14:29:28 2008 -0800 iommu: parisc: make the IOMMUs respect the segment boundary limits Make PARISC's two IOMMU implementations not allocate a memory area spanning LLD's segment boundary. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: FUJITA Tomonori Cc: Kyle McMartin Cc: Matthew Wilcox Cc: Grant Grundler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7c8cda625acd9b704100994626fb6d2fb4ffb9c2 Author: FUJITA Tomonori Date: Tue Mar 4 14:29:28 2008 -0800 iommu: parisc: pass struct device to iommu_alloc_range This adds struct device argument to sba_alloc_range and ccio_alloc_range, a preparation for modifications to fix the IOMMU segment boundary problem. This change enables ccio_alloc_range to access to LLD's segment boundary limits. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: FUJITA Tomonori Cc: Kyle McMartin Cc: Matthew Wilcox Cc: Grant Grundler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3715863aa142c4f4c5208f5f3e5e9bac06006d2f Author: FUJITA Tomonori Date: Tue Mar 4 14:29:27 2008 -0800 iommu: export iommu_is_span_boundary helper function iommu_is_span_boundary is used internally in the IOMMU helper (lib/iommu-helper.c), a primitive function that judges whether a memory area spans LLD's segment boundary or not. It's difficult to convert some IOMMUs to use the IOMMU helper but iommu_is_span_boundary is still useful for them. So this patch exports it. This is needed for the parisc iommu fixes. Signed-off-by: FUJITA Tomonori Cc: Kyle McMartin Cc: Matthew Wilcox Cc: Grant Grundler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7eb701dc7779794d46e02a7fa1380289cb730d46 Author: Kyle McMartin Date: Tue Mar 4 14:29:26 2008 -0800 hisax_fcpcipnp: move request_irq later in probe After a quick glance at the code, we're getting the DEBUG_SHIRQ spurious interrupt before we have the adapter template filled in. Real interrupts appear to be turned on by fcpci*_init(), so move request_irq until just before that. Signed-off-by: Kyle McMartin Cc: Karsten Keil Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e4465fdaeb3f7b5ef47f389d3eac76db79ff20d8 Author: Michael Halcrow Date: Tue Mar 4 14:29:24 2008 -0800 eCryptfs: make ecryptfs_prepare_write decrypt the page When the page is not up to date, ecryptfs_prepare_write() should be acting much like ecryptfs_readpage(). This includes the painfully obvious step of actually decrypting the page contents read from the lower encrypted file. Note that this patch resolves a bug in eCryptfs in 2.6.24 that one can produce with these steps: # mount -t ecryptfs /secret /secret # echo "abc" > /secret/file.txt # umount /secret # mount -t ecryptfs /secret /secret # echo "def" >> /secret/file.txt # cat /secret/file.txt Without this patch, the resulting data returned from cat is likely to be something other than "abc\ndef\n". (Thanks to Benedikt Driessen for reporting this.) Signed-off-by: Michael Halcrow Cc: Benedikt Driessen Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 87ffbe679e21cbf82ff8e3302520ff0ea2beed9a Author: Jesper Nilsson Date: Tue Mar 4 14:29:23 2008 -0800 cris: correct syscall numbers in unistd.h for timerfd_settime and timerfd_gettime Last commit for unistd was not correct, it only had a partial update of syscall numbers for __NR_timerfd_settime and __NR_timerfd_gettime. Also, NR_syscalls was not incremented for the new syscalls. Signed-off-by: Jesper Nilsson Cc: Mikael Starvik Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 07f2402b4adbcd0e6822ddc27953b63d4504faec Author: Jesper Nilsson Date: Tue Mar 4 14:29:23 2008 -0800 cris: correct usage of __user for copy to and from user space in lib/usercopy and uaccess.h Function __copy_user_zeroing in arch/lib/usercopy.c had the wrong parameter set as __user, and in include/asm-cris/uaccess.h, it was not set at all for some of the calling functions. This will cut the number of warnings quite dramatically when using sparse. While we're here, remove useless CVS log and correct confusing typo. Signed-off-by: Jesper Nilsson Cc: Mikael Starvik Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cee47f5a32a1b5a1c8b148e738249946e3fedb95 Author: Henrique de Moraes Holschuh Date: Tue Mar 4 14:29:21 2008 -0800 ACPI: thinkpad-acpi: fix hotkey_get_tablet_mode I used the wrong return convention on hotkey_get_tablet_mode(), breaking a lot of stuff. Bad Henrique! Fix it to return the status in the parameter-by-reference, and IO status on the function return value. Duh. Signed-off-by: Henrique de Moraes Holschuh Cc: Zdenek Kabelac Cc: "Rafael J. Wysocki" Cc: Lukas Hejtmanek Cc: Len Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit acc1f3ede977bf189b332874beeadf48c01544c5 Author: Julia Lawall Date: Tue Mar 4 14:29:20 2008 -0800 fs/reiserfs/super.c: correct use of ! and & In commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337 ("wmi: (!x & y) strikes again"), a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way. This is not tested and clearly changes the semantics, so it is only something to consider. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @@ expression E1,E2; @@ ( !E1 & !E2 | - !E1 & E2 + !(E1 & E2) ) // Signed-off-by: Julia Lawall Cc: Chris Mason Cc: Jeff Mahoney Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 022d917d9621ee79e6f6782fbddd582b8f941024 Author: Julia Lawall Date: Tue Mar 4 14:29:19 2008 -0800 drivers/serial/m32r_sio.c: correct use of ! and & In commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337 ("wmi: (!x & y) strikes again"), a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way. This is not tested and clearly changes the semantics, so it is only something to consider. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @@ expression E1,E2; @@ ( !E1 & !E2 | - !E1 & E2 + !(E1 & E2) ) // Signed-off-by: Julia Lawall Cc: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ae91d60ba88ef0bdb1b5e9b2363bd52fc45d2af7 Author: Julia Lawall Date: Tue Mar 4 14:29:18 2008 -0800 drivers/isdn: correct use of ! and & In commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337 ("wmi: (!x & y) strikes again"), a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way. This is not tested and clearly changes the semantics, so it is only something to consider. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @@ expression E1,E2; @@ ( !E1 & !E2 | - !E1 & E2 + !(E1 & E2) ) // Signed-off-by: Julia Lawall Cc: Karsten Keil Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 07fb6f26bab869fc3bb9df0a785ba734f4c51ac3 Author: Julia Lawall Date: Tue Mar 4 14:29:17 2008 -0800 drivers/char/isicom.c: correct use of ! and & In commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337 ("wmi: (!x & y) strikes again"), a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way. This is not tested and clearly changes the semantics, so it is only something to consider. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @@ expression E1,E2; @@ ( !E1 & !E2 | - !E1 & E2 + !(E1 & E2) ) // Signed-off-by: Julia Lawall Cc: Jiri Slaby Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fb59e9f1e9786635ea12e12bf6adbb132e10f979 Author: Hugh Dickins Date: Tue Mar 4 14:29:16 2008 -0800 memcg: fix oops on NULL lru list While testing force_empty, during an exit_mmap, __mem_cgroup_remove_list called from mem_cgroup_uncharge_page oopsed on a NULL pointer in the lru list. I couldn't see what racing tasks on other cpus were doing, but surmise that another must have been in mem_cgroup_charge_common on the same page, between its unlock_page_cgroup and spin_lock_irqsave near done (thanks to that kzalloc which I'd almost changed to a kmalloc). Normally such a race cannot happen, the ref_cnt prevents it, the final uncharge cannot race with the initial charge. But force_empty buggers the ref_cnt, that's what it's all about; and thereafter forced pages are vulnerable to races such as this (just think of a shared page also mapped into an mm of another mem_cgroup than that just emptied). And remain vulnerable until they're freed indefinitely later. This patch just fixes the oops by moving the unlock_page_cgroups down below adding to and removing from the list (only possible given the previous patch); and while we're at it, we might as well make it an invariant that page->page_cgroup is always set while pc is on lru. But this behaviour of force_empty seems highly unsatisfactory to me: why have a ref_cnt if we always have to cope with it being violated (as in the earlier page migration patch). We may prefer force_empty to move pages to an orphan mem_cgroup (could be the root, but better not), from which other cgroups could recover them; we might need to reverse the locking again; but no time now for such concerns. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9b3c0a07e0fca35e36751680de3e4c76dbff5df3 Author: Hirokazu Takahashi Date: Tue Mar 4 14:29:15 2008 -0800 memcg: simplify force_empty and move_lists As for force_empty, though this may not be the main topic here, mem_cgroup_force_empty_list() can be implemented simpler. It is possible to make the function just call mem_cgroup_uncharge_page() instead of releasing page_cgroups by itself. The tip is to call get_page() before invoking mem_cgroup_uncharge_page(), so the page won't be released during this function. Kamezawa-san points out that by the time mem_cgroup_uncharge_page() uncharges, the page might have been reassigned to an lru of a different mem_cgroup, and now be emptied from that; but Hugh claims that's okay, the end state is the same as when it hasn't gone to another list. And once force_empty stops taking lock_page_cgroup within mz->lru_lock, mem_cgroup_move_lists() can be simplified to take mz->lru_lock directly while holding page_cgroup lock (but still has to use try_lock_page_cgroup). Signed-off-by: Hirokazu Takahashi Signed-off-by: Hugh Dickins Cc: David Rientjes Cc: Balbir Singh Cc: KAMEZAWA Hiroyuki Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2680eed723b664d83e6181ae275fac0ec8fa05ff Author: Hugh Dickins Date: Tue Mar 4 14:29:13 2008 -0800 memcg: fix mem_cgroup_move_lists locking Ever since the VM_BUG_ON(page_get_page_cgroup(page)) (now Bad page state) went into page freeing, I've hit it from time to time in testing on some machines, sometimes only after many days. Recently found a machine which could usually produce it within a few hours, which got me there at last. The culprit is mem_cgroup_move_lists, whose locking is inadequate; and the arrangement of structures was such that you got page_cgroups from the lru list neatly put on to SLUB's freelist. Kamezawa-san identified the same hole independently. The main problem was that it was missing the lock_page_cgroup it needs to safely page_get_page_cgroup; but it's tricky to go beyond that too, and I couldn't do it with SLAB_DESTROY_BY_RCU as I'd expected. See the code for comments on the constraints. This patch immediately gets replaced by a simpler one from Hirokazu-san; but is it just foolish pride that tells me to put this one on record, in case we need to come back to it later? Signed-off-by: Hugh Dickins Cc: David Rientjes Cc: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6d48ff8bcfd403ec8d3ef7a56538ea9e6f773b9c Author: Hugh Dickins Date: Tue Mar 4 14:29:12 2008 -0800 memcg: css_put after remove_list mem_cgroup_uncharge_page does css_put on the mem_cgroup before uncharging from it, and before removing page_cgroup from one of its lru lists: isn't there a danger that struct mem_cgroup memory could be freed and reused before completing that, so corrupting something? Never seen it, and for all I know there may be other constraints which make it impossible; but let's be defensive and reverse the ordering there. mem_cgroup_force_empty_list is safe because there's an extra css_get around all its works; but even so, change its ordering the same way round, to help get in the habit of doing it like this. Signed-off-by: Hugh Dickins Cc: David Rientjes Cc: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b9c565d5a29a795f970b4a1340393d8fc6722fb9 Author: Hugh Dickins Date: Tue Mar 4 14:29:11 2008 -0800 memcg: remove clear_page_cgroup and atomics Remove clear_page_cgroup: it's an unhelpful helper, see for example how mem_cgroup_uncharge_page had to unlock_page_cgroup just in order to call it (serious races from that? I'm not sure). Once that's gone, you can see it's pointless for page_cgroup's ref_cnt to be atomic: it's always manipulated under lock_page_cgroup, except where force_empty unilaterally reset it to 0 (and how does uncharge's atomic_dec_and_test protect against that?). Simplify this page_cgroup locking: if you've got the lock and the pc is attached, then the ref_cnt must be positive: VM_BUG_ONs to check that, and to check that pc->page matches page (we're on the way to finding why sometimes it doesn't, but this patch doesn't fix that). Signed-off-by: Hugh Dickins Cc: David Rientjes Cc: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d5b69e38f8cdb1e41cc022305c86c9739bf1ffdb Author: Hugh Dickins Date: Tue Mar 4 14:29:10 2008 -0800 memcg: memcontrol uninlined and static More cleanup to memcontrol.c, this time changing some of the code generated. Let the compiler decide what to inline (except for page_cgroup_locked which is only used when CONFIG_DEBUG_VM): the __always_inline on lock_page_cgroup etc. was quite a waste since bit_spin_lock etc. are inlines in a header file; made mem_cgroup_force_empty and mem_cgroup_write_strategy static. Signed-off-by: Hugh Dickins Cc: David Rientjes Cc: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8869b8f6e09a1b49bf915eb03f663f2e4e8fbcd4 Author: Hugh Dickins Date: Tue Mar 4 14:29:09 2008 -0800 memcg: memcontrol whitespace cleanups Sorry, before getting down to more important changes, I'd like to do some cleanup in memcontrol.c. This patch doesn't change the code generated, but cleans up whitespace, moves up a double declaration, removes an unused enum, removes void returns, removes misleading comments, that kind of thing. Signed-off-by: Hugh Dickins Cc: David Rientjes Cc: Balbir Singh Cc: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8289546e573d5ff681cdf0fc7a1184cca66fdb55 Author: Hugh Dickins Date: Tue Mar 4 14:29:08 2008 -0800 memcg: remove mem_cgroup_uncharge Nothing uses mem_cgroup_uncharge apart from mem_cgroup_uncharge_page, (a trivial wrapper around it) and mem_cgroup_end_migration (which does the same as mem_cgroup_uncharge_page). And it often ends up having to lock just to let its caller unlock. Remove it (but leave the silly locking until a later patch). Moved mem_cgroup_cache_charge next to mem_cgroup_charge in memcontrol.h. Signed-off-by: Hugh Dickins Cc: David Rientjes Acked-by: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7e924aafa4b03ff71de34af8553d9a1ebc86c071 Author: Hugh Dickins Date: Tue Mar 4 14:29:08 2008 -0800 memcg: mem_cgroup_charge never NULL My memcgroup patch to fix hang with shmem/tmpfs added NULL page handling to mem_cgroup_charge_common. It seemed convenient at the time, but hard to justify now: there's a perfectly appropriate swappage to charge and uncharge instead, this is not on any hot path through shmem_getpage, and no performance hit was observed from the slight extra overhead. So revert that NULL page handling from mem_cgroup_charge_common; and make it clearer by bringing page_cgroup_assign_new_page_cgroup into its body - that was a helper I found more of a hindrance to understanding. Signed-off-by: Hugh Dickins Cc: David Rientjes Acked-by: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9442ec9df40d952b0de185ae5638a74970388e01 Author: Hugh Dickins Date: Tue Mar 4 14:29:07 2008 -0800 memcg: bad page if page_cgroup when free Replace free_hot_cold_page's VM_BUG_ON(page_get_page_cgroup(page)) by a "Bad page state" and clear: most users don't have CONFIG_DEBUG_VM on, and if it were set here, it'd likely cause corruption when the page is reused. Don't use page_assign_page_cgroup to clear it: that should be private to memcontrol.c, and always called with the lock taken; and memmap_init_zone doesn't need it either - like page->mapping and other pointers throughout the kernel, Linux assumes pointers in zeroed structures are NULL pointers. Instead use page_reset_bad_cgroup, added to memcontrol.h for this only. Signed-off-by: Hugh Dickins Cc: David Rientjes Acked-by: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 98837c7f82ef78aa38f40462aa2fcac68fd3acbf Author: Hugh Dickins Date: Tue Mar 4 14:29:06 2008 -0800 memcg: fix VM_BUG_ON from page migration Page migration gave me free_hot_cold_page's VM_BUG_ON page->page_cgroup. remove_migration_pte was calling mem_cgroup_charge on the new page whenever it found a swap pte, before it had determined it to be a migration entry. That left a surplus reference count on the page_cgroup, so it was still attached when the page was later freed. Move that mem_cgroup_charge down to where we're sure it's a migration entry. We were already under i_mmap_lock or anon_vma->lock, so its GFP_KERNEL was already inappropriate: change that to GFP_ATOMIC. It's essential that remove_migration_pte removes all the migration entries, other crashes follow if not. So proceed even when the charge fails: normally it cannot, but after a mem_cgroup_force_empty it might - comment in the code. Signed-off-by: Hugh Dickins Cc: David Rientjes Cc: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 61469f1d51777fc3b6d8d70da8373ee77ee13349 Author: Hugh Dickins Date: Tue Mar 4 14:29:04 2008 -0800 memcg: when do_swap's do_wp_page fails Don't uncharge when do_swap_page's call to do_wp_page fails: the page which was charged for is there in the pagetable, and will be correctly uncharged when that area is unmapped - it was only its COWing which failed. And while we're here, remove earlier XXX comment: yes, OR in do_wp_page's return value (maybe VM_FAULT_WRITE) with do_swap_page's there; but if it fails, mask out success bits, which might confuse some arches e.g. sparc. Signed-off-by: Hugh Dickins Cc: David Rientjes Acked-by: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6dbf6d3bb955d5a92005b6ecd6ffad2c5b95b963 Author: Hugh Dickins Date: Tue Mar 4 14:29:04 2008 -0800 memcg: page_cache_release not __free_page There's nothing wrong with mem_cgroup_charge failure in do_wp_page and do_anonymous page using __free_page, but it does look odd when nearby code uses page_cache_release: use that instead (while turning a blind eye to ancient inconsistencies of page_cache_release versus put_page). Signed-off-by: Hugh Dickins Cc: David Rientjes Acked-by: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 427d5416f317681498337ab19218d195edea02d6 Author: Hugh Dickins Date: Tue Mar 4 14:29:03 2008 -0800 memcg: move_lists on page not page_cgroup Each caller of mem_cgroup_move_lists is having to use page_get_page_cgroup: it's more convenient if it acts upon the page itself not the page_cgroup; and in a later patch this becomes important to handle within memcontrol.c. Signed-off-by: Hugh Dickins Cc: David Rientjes Acked-by: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bd845e38c7a7251a95a8f2c38aa7fb87140b771d Author: Hugh Dickins Date: Tue Mar 4 14:29:01 2008 -0800 memcg: mm_match_cgroup not vm_match_cgroup vm_match_cgroup is a perverse name for a macro to match mm with cgroup: rename it mm_match_cgroup, matching mm_init_cgroup and mm_free_cgroup. Signed-off-by: Hugh Dickins Acked-by: David Rientjes Acked-by: Balbir Singh Acked-by: KAMEZAWA Hiroyuki Cc: Hirokazu Takahashi Cc: YAMAMOTO Takashi Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit acc4988bcf38f9618886eaeb9802aeacc6978ec2 Author: Mathieu Desnoyers Date: Tue Mar 4 14:29:00 2008 -0800 markers: add an if(0) to __mark_check_format() Wrap __mark_check_format() into an if(0) to make sure that parameters such as trace_mark(mm_page_alloc, "order %u pfn %lu", order, page?page_to_pfn(page):0); (where page_to_pfn() has side-effects) won't generate code because of the __mark_check_format(). Thanks to Jan Kiszka for reporting this. Signed-off-by: Mathieu Desnoyers Cc: Jan Kiszka Cc: "Frank Ch. Eigler" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 544adb41077a10d299a1094f12ec55a5843a9bdb Author: Jesper Juhl Date: Tue Mar 4 14:29:00 2008 -0800 markers: don't risk NULL deref in marker get_marker() may return NULL, so test for it. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Jesper Juhl Acked-by: Mathieu Desnoyers Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7088655477b51a5a248fa54190388e1283ba7ebf Author: Chris Dearman Date: Tue Mar 4 14:28:59 2008 -0800 .gitignore: ignore emacs backup and temporary files. Signed-off-by: Chris Dearman Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d5a4630a0daad241c761064295958554472ed491 Author: FUJITA Tomonori Date: Tue Mar 4 14:28:58 2008 -0800 alpha: remove unused DEBUG_FORCEDAC define in IOMMU This just removes unused DEBUG_FORCEDAC define in the IOMMU code. Signed-off-by: FUJITA Tomonori Cc: Richard Henderson Cc: Ivan Kokshaysky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cf5401454863df8e6dc3ebe8faad09141cbec187 Author: FUJITA Tomonori Date: Tue Mar 4 14:28:57 2008 -0800 alpha: make IOMMU respect the segment boundary limits This patch makes the IOMMU code not allocate a memory area spanning LLD's segment boundary. is_span_boundary() judges whether a memory area spans LLD's segment boundary. If iommu_arena_find_pages() finds such a area, it tries to find the next available memory area. Signed-off-by: FUJITA Tomonori Cc: Richard Henderson Cc: Ivan Kokshaysky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 23d7e0390ab57cf15a5cfe8d6806192f0997e5a8 Author: FUJITA Tomonori Date: Tue Mar 4 14:28:57 2008 -0800 alpha: IOMMU had better access to the free space bitmap at only one place iommu_arena_find_pages duplicates the code to access to the bitmap for free space management. This patch convert the IOMMU code to have only one place to access the bitmap, in the popular way that other IOMMUs (e.g. POWER and SPARC) do. This patch is preparation for modifications to fix the IOMMU segment boundary problem. Signed-off-by: FUJITA Tomonori Cc: Richard Henderson Cc: Ivan Kokshaysky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3c5f1def7dd50b792f56dcf7378c2684c06947f3 Author: FUJITA Tomonori Date: Tue Mar 4 14:28:54 2008 -0800 alpha: convert IOMMU to use ALIGN() This patch is preparation for modifications to fix the IOMMU segment boundary problem. Signed-off-by: FUJITA Tomonori Cc: Richard Henderson Cc: Ivan Kokshaysky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 040922c04cf2c8ac70be2e88a8a9614ecdb41d2e Author: Eric Sandeen Date: Tue Mar 4 14:28:53 2008 -0800 include falloc.h in header-y Include falloc.h in header-y; it defines a flag for the fallocate sysctl. Signed-off-by: Eric Sandeen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9fe3fd03a18ee42006a59b182761d7d0f6f090f3 Author: Jesper Nilsson Date: Tue Mar 4 14:28:52 2008 -0800 CRIS: Import string.c (memcpy) from newlib: fixes compile error with gcc 4 Adrian Bunk reported another compile error with a SVN head GCC: ... CC arch/cris/arch-v10/lib/string.o /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/string.c:138: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/string.c:138: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/string.c:139: error: lvalue required as increment operand ... This is due to the use of the construct: *((long*)dst)++ = lc; Which isn't legal since casts don't return an lvalue. The solution is to import the implementation from newlib, which is continually autotested together with GCC mainline, and uses the construct: *(long *) dst = lc; dst += 4; Since this is an import of a file from newlib, I'm not touching the formatting or correcting any checkpatch errors. As for the earlier fix for memset.c, even if the two files for CRIS v10 and CRIS v32 are identical at the moment, it might be possible to tweak the CRIS v32 version. Thus, I'm not yet folding them into the same file, at least not until we've done some research on it. Signed-off-by: Jesper Nilsson Cc: Mikael Starvik Cc: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a51f4124e6d69afdfae34a2ff2e580e7bf224ad2 Author: David Sterba Date: Tue Mar 4 14:28:50 2008 -0800 ipwireless: fix potential tty == NULL dereference The Coverity checker spotted the following inconsequent NULL checking in drivers/char/pcmcia/ipwireless/network.c:ipwireless_network_packet_received() if (tty && channel_idx == IPW_CHANNEL_RAS && (network->ras_control_lines & IPW_CONTROL_LINE_DCD) != 0 && ipwireless_tty_is_modem(tty)) { ... else ipwireless_tty_received(tty, data, length); Cc: Adrian Bunk Signed-off-by: David Sterba Signed-off-by: Jiri Kosina Cc: "John W. Linville" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3149be50d3a31df095bcc83d752293da65a37f62 Author: Ville Syrjala Date: Tue Mar 4 14:28:50 2008 -0800 sm501: add support for the SM502 programmable PLL SM502 has a programmable PLL which can provide the panel pixel clock instead of the 288MHz and 336MHz PLLs. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Ville Syrjala Cc: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 245904a4ce08c48495b2fd6d6c317c26ddf2b57a Author: Ville Syrjala Date: Tue Mar 4 14:28:49 2008 -0800 sm501: remove a duplicated table misc_div is a subset of px_div so eliminate the smaller table. Signed-off-by: Ville Syrjala Cc: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7e533705bd973267c488f8c3a7c7246ecad3a414 Author: Ville Syrjala Date: Tue Mar 4 14:28:49 2008 -0800 sm501fb: fix timing limits Vertical sync height register can only hold 6 bits. Fix the hsync start test to use > instead of >=. Also add a few clarifying comments. Signed-off-by: Ville Syrjala Acked-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 19d06eff4e0d77fc1a15c92f845f1916e2d10dd0 Author: Ville Syrjala Date: Tue Mar 4 14:28:48 2008 -0800 sm501fb: set transp.offset to 0 in 8bpp and 16bpp modes Even though it may not be strictly necessary transp.offset should probably be 0 when alpha channel is not available. Signed-off-by: Ville Syrjala Acked-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fedbb3625b3c16441de1378ca00a74e9c1733289 Author: Ville Syrjala Date: Tue Mar 4 14:28:47 2008 -0800 sm501fb: RGB offsets are reversed in 16bpp modes The RGB offsets were reversed in 16bpp modes. Simply trying to reverse the offsets when endianness differs is clearly the wrong thing to do but that is an issue for another patch. Signed-off-by: Ville Syrjala Acked-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5619d823bc0e49d05618cdf955b04055b51a7de5 Author: Ville Syrjala Date: Tue Mar 4 14:28:46 2008 -0800 sm501fb: direct color visual does not work The sm501fb palette code clearly does not handle direct color so change the driver to use true color visual for 16bpp. Signed-off-by: Ville Syrjala Acked-by: Magnus Damm Acked-by: Ben Dooks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5cba6d22e35a05adb28fdea191b232501518c455 Author: Andrew Morton Date: Tue Mar 4 14:28:45 2008 -0800 ndelay(): switch to C function to avoid 64-bit division We should be able to do ndelay(some_u64), but that can cause a call to __divdi3() to be emitted because the ndelay() macros does a divide. Fix it by switching to static inline which will force the u64 arg to be treated as an unsigned long. udelay() takes an unsigned long arg. [bunk@kernel.org: reported m68k build breakage] Cc: Adrian Bunk Cc: Evgeniy Polyakov Cc: Martin Michlmayr Cc: Herbert Xu Cc: Ralf Baechle Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit daa49ff50a0cd1ddf88019e9afc41e26640ab1c4 Author: Anton Vorontsov Date: Tue Mar 4 14:28:44 2008 -0800 ds1wm: report bus reset error The patch replaces dev_dbg() by dev_err(), so the user could actually see the error, instead of wondering why w1 doesn't work. The root cause of the bus reset error isn't yet debugged though, but this sometimes happens on iPaq H5555. And while I'm at it, some cosmetic cleanups also made (few lines were using spaces instead of tabs). Signed-off-by: Anton Vorontsov Acked-by: Evgeniy Polyakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fbc357df2e7728feb010148bed4eccb03a181610 Author: Anton Vorontsov Date: Tue Mar 4 14:28:43 2008 -0800 ds1wm: should check for IS_ERR(clk) instead of NULL On the error condition clk_get() returns ERR_PTR(..), so checking for NULL doesn't work. ds1wm module causes a kernel oops when ds1wm clock isn't registered. This patch converts NULL check to IS_ERR(), plus uses PTR_ERR() for the return code. Signed-off-by: Anton Vorontsov Acked-by: Evgeniy Polyakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4874cc1b5142397d585c63d84b3d6d3afff60354 Author: Grant Likely Date: Tue Mar 4 14:28:42 2008 -0800 powerpc: mpc5200: fix build error on mpc52xx_psc_spi device driver Commit id 94f389485e27641348c1951ab8d65157122a8939 (Separate MPC52xx PSC FIOF regsiters from the rest of PSC) split the PSC fifo registers away from the core PSC regs. Doing so broke the mpc52xx_psc_spi driver. This patch teaches the mpc52xx_psc_spi driver about the new PSC fifo register definitions. Signed-off-by: Grant Likely Cc: David Brownell Cc: Paul Mackerras Cc: Benjamin Herrenschmidt Cc: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 05680d86d21bdbe56db80c66c24c686590815f1f Author: Peter Osterlund Date: Tue Mar 4 14:28:41 2008 -0800 pktcdvd: reduce stack consumption On my system, pkt_open() consumes 584 bytes because the compiler decides to inline lots of functions that would not normally be part of long call chains. The following patch fixes that problem on my system. Signed-off-by: Peter Osterlund Cc: Nix Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 735c4fb916e9f83a9350aeb2680d77d01ea75094 Author: Andrew Morton Date: Tue Mar 4 14:28:40 2008 -0800 add noinline_for_stack People are adding `noinline' in various places to prevent excess stack consumption due to gcc inlining. But once this is done, it is quite unobvious why the `noinline' is present in the code. We can comment each and every site, or we can use noinline_for_stack. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e8ed857c64e3ae62e27606ae58bc7371b5daccb1 Author: Krzysztof Helt Date: Tue Mar 4 14:28:39 2008 -0800 tridentfb: resource management fixes in probe function Correct error paths in probe function. The probe function enables mmio mode so it important to disable the mmio mode before exiting the probe function. Otherwise, the console is left in unusable state (garbled fonts at least, lock up at worst). [akpm@linux-foundation.org: cleanups] Signed-off-by: Krzysztof Helt Cc: "Antonino A. Daplas" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 00f0b8259e48979c37212995d798f3fbd0374690 Author: Balbir Singh Date: Tue Mar 4 14:28:39 2008 -0800 Memory controller: rename to Memory Resource Controller Rename Memory Controller to Memory Resource Controller. Reflect the same changes in the CONFIG definition for the Memory Resource Controller. Group together the config options for Resource Counters and Memory Resource Controller. Signed-off-by: Balbir Singh Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 804defea1c020d5c52985685e56986f1a399acde Author: Ananth N Mavinakayanahalli Date: Tue Mar 4 14:28:38 2008 -0800 Kprobes: move kprobe examples to samples/ Move kprobes examples from Documentation/kprobes.txt to under samples/. Patch originally by Randy Dunlap. o Updated the patch to apply on 2.6.25-rc3 o Modified examples code to build on multiple architectures. Currently, the kprobe and jprobe examples code works for x86 and powerpc o Cleaned up unneeded #includes o Cleaned up Kconfig per Sam Ravnborg's suggestions to fix build break on archs that don't have kretprobes o Implemented suggestions by Mathieu Desnoyers on CONFIG_KRETPROBES o Included Andrew Morton's cleanup based on x86-git o Modified kretprobe_example to act as a arch-agnostic module to determine routine execution times: Use 'modprobe kretprobe_example func=' to determine execution time of func_name in nanoseconds. Signed-off-by: Randy Dunlap Signed-off-by: Ananth N Mavinakayanahalli Acked-by: Mathieu Desnoyers Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9edddaa200df18e08fe0cf21036e8ae467b1363c Author: Ananth N Mavinakayanahalli Date: Tue Mar 4 14:28:37 2008 -0800 Kprobes: indicate kretprobe support in Kconfig Add CONFIG_HAVE_KRETPROBES to the arch//Kconfig file for relevant architectures with kprobes support. This facilitates easy handling of in-kernel modules (like samples/kprobes/kretprobe_example.c) that depend on kretprobes being present in the kernel. Thanks to Sam Ravnborg for helping make the patch more lean. Per Mathieu's suggestion, added CONFIG_KRETPROBES and fixed up dependencies. Signed-off-by: Ananth N Mavinakayanahalli Acked-by: Mathieu Desnoyers Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8182ec49a73729334f5a6c65a607ba7009ebd6d6 Author: Samuel Thibault Date: Tue Mar 4 14:28:36 2008 -0800 VT notifier fix for VT switch VT notifier callbacks need to be aware of console switches. This is already partially done from console_callback(), but at that time fg_console, cursor positions, etc. are not yet updated and hence screen readers fetch the old values. This adds an update notify after all of the values are updated in redraw_screen(vc, 1). Signed-off-by: Samuel Thibault Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit be852795e1c8d3829ddf3cb1ce806113611fa555 Author: Eric Dumazet Date: Tue Mar 4 14:28:35 2008 -0800 alloc_percpu() fails to allocate percpu data Some oprofile results obtained while using tbench on a 2x2 cpu machine were very surprising. For example, loopback_xmit() function was using high number of cpu cycles to perform the statistic updates, supposed to be real cheap since they use percpu data pcpu_lstats = netdev_priv(dev); lb_stats = per_cpu_ptr(pcpu_lstats, smp_processor_id()); lb_stats->packets++; /* HERE : serious contention */ lb_stats->bytes += skb->len; struct pcpu_lstats is a small structure containing two longs. It appears that on my 32bits platform, alloc_percpu(8) allocates a single cache line, instead of giving to each cpu a separate cache line. Using the following patch gave me impressive boost in various benchmarks ( 6 % in tbench) (all percpu_counters hit this bug too) Long term fix (ie >= 2.6.26) would be to let each CPU allocate their own block of memory, so that we dont need to roudup sizes to L1_CACHE_BYTES, or merging the SGI stuff of course... Note : SLUB vs SLAB is important here to *show* the improvement, since they dont have the same minimum allocation sizes (8 bytes vs 32 bytes). This could very well explain regressions some guys reported when they switched to SLUB. Signed-off-by: Eric Dumazet Acked-by: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e3892296de632e3f9299d9fabe0c746740004891 Author: Jan Kara Date: Tue Mar 4 14:28:33 2008 -0800 vfs: fix NULL pointer dereference in fsync_buffers_list() Fix NULL pointer dereference in fsync_buffers_list() introduced by recent fix of races in private_list handling. Since bh->b_assoc_map has been cleared in __remove_assoc_queue() we should really use original value stored in the 'mapping' variable. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 10ed273f5016c582413dfbc468dd084957d847e1 Author: KOSAKI Motohiro Date: Tue Mar 4 14:28:32 2008 -0800 zlc_setup(): handle jiffies wraparound jiffies subtraction may cause an overflow problem. It should be using time_after(). [akpm@linux-foundation.org: include jiffies.h] Signed-off-by: KOSAKI Motohiro Cc: Lee Schermerhorn Cc: Paul Jackson Cc: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d9d4fcfe515d7cece1b26decd75f5d41544a287b Author: Alex Riesen Date: Tue Mar 4 14:28:31 2008 -0800 Fix "Malformed early option 'loglevel'" Keith Mannthey said: The parameter hotadd_percent is setup right but there is a "Malformed early option 'numa'" message. Rusty Russell said: This happens when the function registered with early_param() returns non-zero. __setup() functions return 1 if OK, module_param() and early_param() return 0 or a -ve error code. For instance: Linux version 2.6.25-rc3-t (raa@steel) (gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #22 SMP PREEMPT Tue Feb 26 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 00000000000a0000 (usable) BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000003fff0000 (usable) BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS) BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data) BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved) Malformed early option 'loglevel' 127MB HIGHMEM available. 896MB LOWMEM available. Command line: BOOT_IMAGE=2.6.25-t ro root=809 ro console=ttyS0,57600n8 console=tty0 loglevel=5 Acked-by: Yinghai Lu Cc: Rusty Russell Cc: Keith Mannthey Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d31472b6d4f799a68d877f69b2f843eec5875472 Author: Roland McGrath Date: Tue Mar 4 14:28:30 2008 -0800 core dump: user_regset writeback This makes the user_regset-based core dump code call user_regset writeback hooks when available. This is necessary groundwork to allow IA64 to set CORE_DUMP_USE_REGSET. Cc: Shaohua Li Signed-off-by: Roland McGrath Cc: "Luck, Tony" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 938a9204e0df070bfbaac71f6403cebed76763ad Author: akpm@linux-foundation.org Date: Tue Mar 4 14:28:29 2008 -0800 Add memory resource controller maintainers Signed-off-by: Balbir Singh Signed-off-by: Pavel Emelyanov Cc: Paul Menage Cc: KAMEZAWA Hiroyuki Cc: YAMAMOTO Takashi Cc: Hugh Dickins Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fb3a0fb6fd3e997b61f1b121e980aeea88fa4529 Author: Paul Menage Date: Tue Mar 4 14:28:28 2008 -0800 Control Groups: add Paul Menage as maintainer Control Groups: Add Paul Menage as maintainer Signed-off-by: Paul Menage Cc: Balbir Singh Cc: KAMEZAWA Hiroyuki Cc: YAMAMOTO Takashi Cc: Hugh Dickins Cc: Pavel Emelyanov Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7560fa60fcdcdb0da662f6a9fad9064b554ef46c Author: David Brownell Date: Tue Mar 4 14:28:27 2008 -0800 gpio: and "no GPIO support here" stubs Add a defining fail/warn stubs for GPIO calls on platforms that don't support the GPIO programming interface. That includes the arch-specific implementation glue otherwise. This facilitates a new model for GPIO usage: drivers that can use GPIOs if they're available, but don't require them. One example of such a driver is NAND driver for various FreeScale chips. On platforms update with GPIO support, they can be used instead of a worst-case delay to verify that the BUSY signal is off. (Also includes a couple minor unrelated doc updates.) Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 83c7c693ed3e61535ad6a097ad991a88aafc54b8 Author: Harvey Harrison Date: Tue Mar 4 14:28:26 2008 -0800 specialix.c: fix possible double-unlock Noticed by sparse, trivial to see: drivers/char/specialix.c:2112:3: warning: context imbalance in 'sx_throttle' - unexpected unlock Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c46288b09e1a5b5741a7e1a575d5f53f79132d39 Author: Byron Bradley Date: Tue Mar 4 14:28:25 2008 -0800 rtc: add support for the S-35390A RTC chip This adds basic get/set time support for the Seiko Instruments S-35390A. This chip communicates using I2C and is used on the QNAP TS-109/TS-209 NAS devices. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Byron Bradley Acked-by: Jean Delvare Acked-by: David Brownell Tested-by: Tim Ellis Cc: Alessandro Zummo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fb78922ce9c71b24c4af1ffc9c3d60c57ac471fb Author: Balbir Singh Date: Tue Mar 4 14:28:24 2008 -0800 Memory Resource Controller use strstrip while parsing arguments The memory controller has a requirement that while writing values, we need to use echo -n. This patch fixes the problem and makes the UI more consistent. Signed-off-by: Balbir Singh Cc: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a10568733cdff03cac742955c7254585451f5431 Author: Jesper Nilsson Date: Tue Mar 4 14:28:23 2008 -0800 CRIS v10: Include mm.h instead of vmstat.h in kernel/time.c Commit 2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 (CONFIG_HIGHPTE vs. sub-page page tables) introduced use of inc_zone_page_state and dec_zone_page_state in include/linux/mm.h. Those are defined in include/linux/vmstat.h, but after it includes mm.h, making it impossible to include vmstat.h since inc_zone_page_state and dec_zone_page_state then would be undefined. arch/cris/arch-v10/kernel/time.c does just this, which makes the CRIS v10 build break with the following error: ... CC arch/cris/arch-v10/kernel/time.o In file included from include/linux/vmstat.h:7, from arch/cris/arch-v10/kernel/time.c:17: include/linux/mm.h: In function 'pgtable_page_ctor': include/linux/mm.h:902: error: implicit declaration of function 'inc_zone_page_state' include/linux/mm.h: In function 'pgtable_page_dtor': include/linux/mm.h:908: error: implicit declaration of function 'dec_zone_page_state' make[2]: *** [arch/cris/arch-v10/kernel/time.o] Error 1 make[1]: *** [arch/cris/arch-v10/kernel] Error 2 make: *** [sub-make] Error 2 ... By changing kernel/time.c to include linux/mm.h, the build succeeds. Signed-off-by: Jesper Nilsson Cc: Mikael Starvik Cc: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 51587cb54fb2b27c5e0db9078a61261c9359142a Author: Bjorn Helgaas Date: Tue Mar 4 14:28:21 2008 -0800 serial: add PNP ID GVC0303 for Archtek 3334BRV ISA modem Thomas Lehmann verified that this entry works. Signed-off-by: Bjorn Helgaas Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cf655043d4ba6fb3e352d6295a6ad5c2361755c4 Author: Andy Whitcroft Date: Tue Mar 4 14:28:20 2008 -0800 update checkpatch.pl to version 0.15 This version brings a number of minor fixes updating the type detector and the unary tracker. It also brings a few small fixes for false positives. It also reverts the --file warning. Of note: - limit CVS checks to added lines - improved type detections - fixes to the unary tracker Andy Whitcroft (13): Version: 0.15 EXPORT_SYMBOL checks need to accept array variables export checks must match DECLARE_foo and LIST_HEAD possible types: cleanup debugging missing line values: track values through preprocessor conditional paths typeof is actually a type possible types: detect definitions which cross lines values: include line numbers on value debug information values: ensure we find correctly record pending brackets values: simplify the brace history stack CVS keyword checks should only apply to added lines loosen spacing for comments allow braces for single statement blocks with multiline conditionals Harvey Harrison (1): checkpatch: remove fastcall Ingo Molnar (1): checkpatch.pl: revert wrong --file message Uwe Kleine-Koenig (1): fix typo "goot" -> "good" Signed-off-by: Andy Whitcroft Cc: Randy Dunlap Cc: Joel Schopp Cc: Ingo Molnar Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b6abdb0e6ca5c2c0a7caa4131da2af0750927e72 Author: Li Zefan Date: Tue Mar 4 14:28:19 2008 -0800 cgroup: fix default notify_on_release setting The documentation says the default value of notify_on_release of a child cgroup is inherited from its parent, which is reasonable, but the implementation just sets the flag disabled. Signed-off-by: Li Zefan Acked-by: Paul Menage Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c256e05b7b30fab484deacb4f8cff59ce649c75e Author: Michael Buesch Date: Tue Mar 4 20:31:13 2008 +0100 b43legacy: Fix module init message This fixes the module init message to tell that the legacy driver loaded. This makes it less confusing, in case both drivers are loaded. Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit cdb2a9fe63575dd1eb82b724bbd0aa5e0dd89fa0 Author: Jussi Kivilinna Date: Tue Mar 4 20:05:27 2008 +0200 rndis_wlan: fix broken data copy Replace broken code that attempted to copy 6 byte array to 64-bit integer. Due to missing cast to 64-bit integer, left shift operation were 32-bit and lead to bytes been copied over each other. New code uses simple memcpy, for greater readability and efficiency. Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit 8a96df80b3ddb2410045a26ea19eeccb5f2d2d11 Author: Sebastian Siewior Date: Tue Mar 4 18:22:27 2008 +0100 libertas: compare the current command with response instead of with itself. Signed-off-by: Sebastian Siewior Signed-off-by: John W. Linville commit 6305f498604df6c66bdb4cc533ce6332fa5ab61f Author: David Woodhouse Date: Mon Mar 3 12:20:12 2008 +0100 libertas: fix sanity check on sequence number in command response Slightly more useful if we compare it against the sequence number of the command we have outstanding, rather than comparing the reply with itself. Doh. Pointed out by Sebastian Siewior Signed-off-by: David Woodhouse Acked-by: Dan Williams Signed-off-by: John W. Linville commit c2f2d3a06f8b628d444cf4f396d6c6ddd47e1d1f Author: Johannes Berg Date: Fri Feb 29 23:28:25 2008 +0100 p54: fix eeprom parser length sanity checks When I called p54_parse_eeprom() on a hand-coded structure I managed to make a small mistake with wrap->len which caused a segfault a few lines down when trying to read entry->len. This patch changes the validation code to avoid such problems. Signed-off-by: Johannes Berg Tested-by: Florian Fainelli Signed-off-by: John W. Linville commit 8c28293f5514f64ba064bac7946aebeda4a663c6 Author: Johannes Berg Date: Fri Feb 29 13:56:33 2008 +0100 p54: fix EEPROM structure endianness Since the EEPROM structure is read from hardware, it is always little endian, annotate that in the struct and make sure to convert where applicable. Signed-off-by: Johannes Berg Cc: Michael Wu Tested-by: Florian Fainelli Signed-off-by: John W. Linville commit dc63644b0ee3b447e879ef8e124657b40e9ea81c Author: Yoichi Yuasa Date: Fri Feb 29 11:09:31 2008 +0100 ssb: Add pcibios_enable_device() return value check This patch has added pcibios_enable_device() return value check. Signed-off-by: Yoichi Yuasa Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit 1d60ab0574fae362b1cca0ef52181ef75fd46832 Author: Stefano Brivio Date: Sun Mar 2 11:33:10 2008 +0100 rc80211-pid: fix rate adjustment Merge rate_control_pid_shift_adjust() to rate_control_pid_adjust_rate() in order to make the learning algorithm aware of constraints on rates. Also add some comments and rename variables. This fixes a bug which prevented 802.11b/g non-AP STAs from working with 802.11b only AP STAs. This patch was originally destined for 2.6.26, and is being backported to fix a user reported problem in post-2.6.24 kernels. Signed-off-by: Stefano Brivio Signed-off-by: John W. Linville commit c1ef5cbd03921047c2eafb998132e562043678a7 Author: Kenji Kaneshige Date: Tue Mar 4 13:01:14 2008 -0800 pci: hotplug: pciehp: fix error code path in hpc_power_off_slot Fix the error code path in hpc_power_off_slot(). The Bad DLLP Mask bit must be restored before return. Signed-off-by: Kenji Kaneshige Signed-off-by: Kristen Carlson Accardi Signed-off-by: Greg Kroah-Hartman commit 90a1ba0c5e39eeea278f263c28ae02166c5911c8 Author: Jonas Bonn Date: Fri Feb 22 11:02:21 2008 +0100 PCI: Add DECLARE_PCI_DEVICE_TABLE macro The definitions of struct pci_device_id arrays should generally follow the same pattern across the entire kernel. This macro defines this array as const and puts it into the __devinitconst section. There are currently many definitions scattered about the kernel that omit the __devinitdata modifier despite the documentation stating that it should always be there. These definitions really also should have been const, which wasn't possible before but has become so with the addition of the __devinitconst attribute. Furthermore, there are definitions that use "const" and __devinitdata, which is explicitly wrong but the compiler doesn't catch section mismatches if there's only one such one case in the module (which is often the case). Adding the __devinitconst modifier where there was nothing before buys us memory. Adding the const modifier gives the compiler a chance to do its thing. Changing __devinitdata to __devinitconst where it was wrong actually fixes some compiler errors in older (mid-release) kernels that were patched over by "removing" the section attribute altogether (which wastes memory). This macro makes it pretty difficult to get this definition wrong in the future... Signed-off-by: Jonas Bonn Signed-off-by: Greg Kroah-Hartman commit 4725e7bdb831b9d4bd4ba0b0909398ebcf0c2df9 Author: Greg Kroah-Hartman Date: Mon Mar 3 14:47:13 2008 -0800 PCI: fix up error messages for pci_bus registering Due to the class_device cleanup of pci_bus, the error messages when things go wrong are incorrect. So fix this up to properly report what is really happening, if things go wrong. Thanks to Kay for pointing out the issue. Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 0ab2b57f8db8a1bcdf24089074f5d2856a3ffb42 Author: Sam Ravnborg Date: Sun Feb 17 10:45:28 2008 +0100 PCI: fix section mismatch warning in pci_scan_child_bus Fix following warning: WARNING: vmlinux.o(.text+0x47bdb1): Section mismatch in reference from the function pci_scan_child_bus() to the function .devinit.text:pcibios_fixup_bus() We had plenty of functions that could be annotated __devinit but due to the former restriction that exported symbols could not be annotated they were not so. So annotate these function and fix the references from the pci/hotplug/* code to silence the resuting warnings. Signed-off-by: Sam Ravnborg Signed-off-by: Greg Kroah-Hartman commit 415b6d0e894333d8e5e5a384a483a01b9b782fc7 Author: Bjorn Helgaas Date: Fri Feb 29 16:04:39 2008 -0700 PCI: consolidate duplicated MSI enable functions Two recent patches added basically the same code to turn on HT MSI mapping: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6bae1d96c6d7dde078994f6cb98235fd46f8736b http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9dc625e72309e1c919ea3e7f51d0ffca96123787 There's no need to have both, so this patch removes one copy. Signed-off-by: Bjorn Helgaas Signed-off-by: Greg Kroah-Hartman commit d6505a5236a68c51a77df16bc4e6100b3aee2672 Author: Bjorn Helgaas Date: Fri Feb 29 16:12:18 2008 -0700 PCI: use dev_printk in quirk messages Convert quirk printks to dev_printk(). Signed-off-by: Bjorn Helgaas Signed-off-by: Greg Kroah-Hartman commit 4ae897df80019db433cd46cdd50d3b48463757d9 Author: Sven Andersen Date: Tue Mar 4 22:09:11 2008 +0100 USB: ftdi_sio - really enable EM1010PC Add EM1010PC to ftdi_sio.c Signed-off-by: Sven Andersen Cc: stable Signed-off-by: Greg Kroah-Hartman commit 350351006426471458fe50b1de1160200a1ba138 Author: Tony Jones Date: Fri Feb 22 00:13:36 2008 +0100 USB: remove incorrect struct class_device from the printer gadget This field does nothing, and should not be allowed to stick around incase someone gets any other ideas... Signed-off-by: Tony Jones Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 64cc2dd937298324c77c7d584495052547c64a6a Author: Dmitry Baryshkov Date: Fri Feb 22 17:17:19 2008 -0800 USB: pxa2xx_udc: fix misuse of clock enable/disable calls Fix pxa2xx_udc to balance calls to clk_enable/clk_disable. [db: remove inline #ifdefs for IXP non-support of calls] Signed-off-by: Dmitry Baryshkov dbaryshkov@gmail.com Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 546d7eec389a3df3173b3131d92829c14e614601 Author: Kevin Vance Date: Sat Mar 1 13:49:59 2008 -0500 USB: ftdi_sio: Workaround for broken Matrix Orbital serial port Workaround for the FT232RL-based, Matrix Orbital VK204-25-USB serial port added to the ftdi_sio driver. The device has an invalid endpoint descriptor, which must be modified before it can be used. Signed-off-by: Kevin Vance Cc: stable Signed-off-by: Greg Kroah-Hartman commit 85fb62a001278270f9fffbdc3508ef23d5f3693d Author: Daniel Kozák Date: Tue Mar 4 18:54:53 2008 +0100 USB: Add support for AXESSTEL MV110H CDMA modem Add entry for Axesstel MV110H CDMA modem (ID: 1726:1000) to option driver Signed-off-by: Daniel Kozák Signed-off-by: Greg Kroah-Hartman commit 6d512a80c26d87f8599057c86dc920fbfe0aa3aa Author: Alan Stern Date: Fri Feb 22 17:00:06 2008 -0500 usb-storage: update earlier scatter-gather bug fix This patch (as1037) makes a small update to the earlier as1035 patch. The minimum-length computation shouldn't be done in usb_stor_access_xfer_buf(), since that routine can be called multiple times for a single transfer. It should be done in usb_stor_set_xfer_buf() instead, which gets called only once. The way it is now isn't really _wrong_, but it isn't really _right_ either. Moving the statement will be an improvement. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 0ed930bffab2ec98ee8f43f579a30755c13dd5ea Author: Anti Sullin Date: Mon Mar 3 15:39:54 2008 +0200 USB: isp116x: fix enumeration on boot This patch removes the buffering of the status register. USB core behavior has changed a bit and this buffering was not refreshed at the right time. The core got buffered old value of HCRHPORT and it did not detect any devices on boot. Signed-off-by: Anti Sullin Acked by: Olav Kongas Signed-off-by: Greg Kroah-Hartman commit b5f7a0ec11694e60c99d682549dfaf8a03d7ad97 Author: Misha Zhilin Date: Wed Feb 27 18:05:24 2008 -0800 USB: ehci: handle large bulk URBs correctly (again) USB: ehci: Fixes completion for multi-qtd URB the short read case When use of urb->status in the EHCI driver was reworked last August (commit 14c04c0f88f228fee1f412be91d6edcb935c78aa), a bug was inserted in the handling of early completion for bulk transactions that need more than one qTD (e.g. more than 20KB in one URB). This patch resolves that problem by ensuring that the early completion status is preserved until the URB is handed back to its submitter, instead of resetting it after each qTD. Signed-off-by: Misha Zhilin Signed-off-by: David Brownell Acked-by: Alan Stern Cc: stable@kernel.org Signed-off-by: Greg Kroah-Hartman commit 14f3546f32d69adaa303b72e5a999e85abe83f9a Author: Alan Stern Date: Wed Feb 27 15:43:47 2008 -0500 USB: spruce up the device blacklist This patch (as1040) fixes up the blacklist of USB device quirks. A couple of lines are broken to comply with the 80-column rule, and entries are sorted into the proper numerical order. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit d6d914f52b15d5a8e81ad481e02d9ab30d412a29 Author: Lei Ming Date: Mon Feb 25 18:07:28 2008 +0800 USB: fix comment of struct usb_interface update the comment for the removed "driver" field and being out-of-order of @cur_altsetting and @num_altsetting. Signed-off-by: Lei Ming Signed-off-by: Greg Kroah-Hartman commit c2c8d1fdadda4abc90efdb7176f44cb903634511 Author: Alan Stern Date: Mon Feb 25 11:43:32 2008 -0500 USB: update Kconfig entry for USB_SUSPEND This patch (as1039) updates the Kconfig entry for USB_SUSPEND. The out-of-date reference to "power/state" is fixed, autosuspend is mentioned, and the dependency on EXPERIMENTAL is removed. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 11e1abb453690a907ea26c07043987165a4f277f Author: David Ludlow Date: Mon Feb 25 17:30:52 2008 -0500 usb: Add support for the mos7820/7840-based B&B USB/RS485 converter to mos7840.c Add support for the mos7820/7840-based B&B USOPTL4_2/USOPTL4_4 USB/RS485 converter to mos7840.c Signed-off-by: Dave Ludlow Signed-off-by: Greg Kroah-Hartman commit 3634634edd49c115da931998b9540bcc17665b05 Author: Harvey Harrison Date: Wed Feb 13 17:08:16 2008 -0800 debugfs: fix sparse warnings extern does not belong in C files, move declaration to linux/debugfs.h fs/debugfs/file.c:42:30: warning: symbol 'debugfs_file_operations' was not declared. Should it be static? fs/debugfs/file.c:54:31: warning: symbol 'debugfs_link_operations' was not declared. Should it be static? Signed-off-by: Harvey Harrison Signed-off-by: Greg Kroah-Hartman commit c1fe539a7e031302af1d121163e7ce68e679ba8c Author: Cornelia Huck Date: Wed Feb 27 15:38:23 2008 +0100 Driver core: Fix cleanup when failing device_add(). Driver core: Fix cleanup when failing device_add(). - Don't call cleanup_device_parent() if we didn't call setup_parent(). - dev->kobj.parent may be NULL when cleanup_device_parent() is called, so we need to handle glue_dir == NULL in cleanup_glue_dir(). Signed-off-by: Cornelia Huck Signed-off-by: Greg Kroah-Hartman commit 135dee0cd0eb2638fab899b428e51f00e8c046a8 Author: Rafael J. Wysocki Date: Mon Mar 3 23:46:51 2008 +0100 driver core: Remove dpm_sysfs_remove() from error path of device_add() Since device_pm_remove(dev) calls dpm_sysfs_remove(dev), it's incorrect to call the latter after the former in the device_add() error path. Signed-off-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman commit 1b3cbec1dcb6747b587b40335f5de1d9e035063c Author: Alan Stern Date: Fri Feb 29 11:50:22 2008 -0500 PM: fix new mutex-locking bug in the PM core This patch (as1041) fixes a bug introduced by the acquire-all-device-semaphores reversion. The error pathway of dpm_suspend() fails to reacquire a mutex it should be holding. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 7a8d37a37380e2b1500592d40b7ec384dbebe7a0 Author: Rafael J. Wysocki Date: Mon Feb 25 00:35:04 2008 +0100 PM: Do not acquire device semaphores upfront during suspend Remove the code that acquires all device semaphores from the suspend code path as it causes multiple problems to appear (most notably, http://bugzilla.kernel.org/show_bug.cgi?id=10030) and revert the change introduced by commit 4145ed6dc597a9bea5f6ae8c574653b2de10620f depending on the code being removed. Remove pm_sleep_lock()/pm_sleep_unlock() from device_add() to avoid the issue reported at http://bugzilla.kernel.org/show_bug.cgi?id=9874. It should fix the regreesions reported at: http://bugzilla.kernel.org/show_bug.cgi?id=9874 http://bugzilla.kernel.org/show_bug.cgi?id=10030 Signed-off-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman commit a4573c488dd531c6e2d308ce8a7413c4a2646207 Author: Greg Kroah-Hartman Date: Tue Feb 26 09:36:38 2008 -0800 kobject: properly initialize ksets kset_initialize was calling kobject_init_internal() which didn't initialize the kobject as well as kobject_init() was. So have kobject_init() call kobject_init_internal() and move the logic to initalize the kobject there. Cc: Kay Sievers Cc: Hannes Reinecke Signed-off-by: Greg Kroah-Hartman commit d47846c5866b7d98a1173c86a39d810a06647329 Author: Ingo Molnar Date: Tue Mar 4 14:54:47 2008 +0100 sysfs: CONFIG_SYSFS_DEPRECATED fix CONFIG_SYSFS_DEPRECATED=y changed its meaning recently and causes regressions in working setups that had SYSFS_DEPRECATED disabled. so rename it to SYSFS_DEPRECATED_V2 so that testers pick up the new default via 'make oldconfig', even if their old .config's disabled CONFIG_SYSFS_DEPRECATED ... Signed-off-by: Ingo Molnar Cc: Kay Sievers Cc: Linus Torvalds Cc: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 024440d2ec9712c077cd315de7ae6bc9f6f14f1b Author: Greg Kroah-Hartman Date: Mon Mar 3 14:47:13 2008 -0800 driver core: fix up Kconfig text for CONFIG_SYSFS_DEPRECATED As things get moved into this config option, the hard date of 2006 does not work anymore, so update the text to be more descriptive. Cc: Kay Sievers Cc: Jiri Slaby Signed-off-by: Greg Kroah-Hartman commit 9dad6f5785a9f113dbbd58951d2f5ef9abd06dcc Author: Adrian Bunk Date: Mon Mar 3 20:07:22 2008 +0200 [IA64] fix ia64 kprobes compilation This patch fixes the following compile error with a recent gcc: CC kernel/kprobes.o /home/bunk/linux/kernel-2.6/git/linux-2.6/kernel/kprobes.c:1066: error: __ksymtab_jprobe_return causes a section type conflict Signed-off-by: Adrian Bunk Signed-off-by: Tony Luck commit ed58dd41f3aeefc11a7f634db90687f92ea8632e Author: Herbert Xu Date: Tue Mar 4 14:29:21 2008 -0800 [ESP]: Add select on AUTHENC Now the ESP uses the AEAD interface even for algorithms which are not combined mode, we need to select CONFIG_CRYPTO_AUTHENC as otherwise only combined mode algorithms will work. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller commit 7adc3830f90df04a13366914d80a3ed407db5381 Author: David S. Miller Date: Tue Mar 4 14:28:41 2008 -0800 [TCP]: Improve ipv4 established hash function. If all of the entropy is in the local and foreign addresses, but xor'ing together would cancel out that entropy, the current hash performs poorly. Suggested by Cosmin Ratiu: Basically, the situation is as follows: There is a client machine and a server machine. Both create 15000 virtual interfaces, open up a socket for each pair of interfaces and do SIP traffic. By profiling I noticed that there is a lot of time spent walking the established hash chains with this particular setup. The addresses were distributed like this: client interfaces were 198.18.0.1/16 with increments of 1 and server interfaces were 198.18.128.1/16 with increments of 1. As I said, there were 15000 interfaces. Source and destination ports were 5060 for each connection. So in this case, ports don't matter for hashing purposes, and the bits from the address pairs used cancel each other, meaning there are no differences in the whole lot of pairs, so they all end up in the same hash chain. Signed-off-by: David S. Miller commit 956d6cad87abdfaef35fa4fc2f2e4ac5bb4ee7a5 Author: Doug Chapman Date: Fri Feb 29 15:28:43 2008 -0500 [IA64] move gcc_intrin.h from header-y to unifdef-y When I submitted 0df29025fd0379d5950d206314d0b10a2c8a9607 to ad an #ifdef __KERNEL__ to include/asm-ia64/gcc_intrin.h a few weeks ago I neglected to move gcc_intrin.h from header-y to unifdef-y. Thanks to David Woodhouse for pointing this out. Signed-off-by: Doug Chapman Signed-off-by: Jarod Wilson Signed-off-by: Tony Luck commit 6ed0dc5ba811ce682f48988bf114669265e1120d Author: Alex Chiang Date: Wed Feb 27 18:41:38 2008 -0700 [IA64] workaround tiger ia64_sal_get_physical_id_info hang This fixes regression introduced in 113134fcbca83619be4c68d0ca66db6093777b5d Intel Tiger platforms hang when calling SAL_GET_PHYSICAL_ID_INFO instead of properly returning -1 for unimplemented, so add a version check. SGI Altix platforms have an incorrect SAL version hard-coded into their prom -- they encode 2.9, but actually implement 3.2 -- so fix it up and allow ia64_sal_get_physical_id_info to keep working. Signed-off-by: Alex Chiang Acked-by: Russ Anderson Signed-off-by: Tony Luck commit 022f9268854e88adcc343de77a440d6e82f74c2e Author: Adrian Bunk Date: Tue Feb 26 21:54:46 2008 +0200 [IA64] move defconfig to arch/ia64/configs/ This patch moves the default ia64 defconfig to arch/ia64/configs/generic_defconfig where it belongs and selects it as the default defconfig through KBUILD_DEFCONFIG. Signed-off-by: Adrian Bunk Signed-off-by: Tony Luck commit a6cd6322d594014240465210ccb290971469c6e8 Author: Kenji Kaneshige Date: Mon Feb 25 14:32:22 2008 +0900 [IA64] Fix irq migration in multiple vector domain Fix the problem that the following error message is sometimes displayed at irq migration when vector domain is enabled. "Unexpected interrupt vector %d on CPU %d is not mapped to any IRQ!" The cause of this problem is an interrupt is sent to the previous target CPU after cleaning up vector to irq mapping table. To clean up vector to irq map on the previous target CPU safty, change the irq migration in multiple vector domain as follows. The original idea is from x86 interrupt management code. - Delay vector to irq table cleanup until the interrupts are sent to new target CPUs. By this, it is ensured that target CPU is completely changed on the interrupt controller side. - Even after the interrupts are sent to new target CPUs, there can be pended interrupts remaining on the previous target CPU. So we need to delay clearning up vector to irq table until the pended interrupt is handled. For this, send IPI to the previous target CPU with lower priority vector and clean up vector to irq table in its handler. This patch affects only to irq migration code with multiple vector domain is enabled. Signed-off-by: Kenji Kaneshige Signed-off-by: Tony Luck commit 86dffa4cd1a1d61fed68ab64c674d4094f2bdfe4 Author: Shi Weihua Date: Tue Feb 19 10:26:19 2008 +0800 [IA64] signal(ia64_ia32): add a signal stack overflow check The similar check has been added to x86_32(i386) in commit id 83bd01024b1fdfc41d9b758e5669e80fca72df66. So we add this check to ia64_ia32 and improve it a liitle bit in that we need to check for stack overflow only when the signal is on stack. Signed-off-by: Shi Weihua Signed-off-by: Tony Luck commit d7a6c68a2f991b18e61ebfe0251ab42c054d9a1d Author: Shi Weihua Date: Tue Feb 19 10:25:09 2008 +0800 [IA64] signal(ia64): add a signal stack overflow check The similar check has been added to x86_32(i386) in commit id 83bd01024b1fdfc41d9b758e5669e80fca72df66. So we add this check to ia64 and improve it a liitle bit in that we need to check for stack overflow only when the signal is on stack. Signed-off-by: Shi Weihua Signed-off-by: Tony Luck commit bd3be240cb4e513c3d5e7d773ab9a8ce646befbd Author: Jes Sorensen Date: Mon Feb 11 15:10:19 2008 +0100 [IA64] CONFIG_SGI_SN2 - auto select NUMA and ACPI_NUMA Auto select CONFIG_NUMA and CONFIG_ACPI_NUMA when picking SN2, similar to how they are selected automatically for CONFIG_IA64_GENERIC. Signed-off-by: Jes Sorensen Signed-off-by: Tony Luck commit d9452e9f81e997cbd0c9bface8d2c2a4b064cc3e Author: David S. Miller Date: Tue Mar 4 12:28:49 2008 -0800 [NETPOLL]: Revert two bogus cleanups that broke netconsole. Based upon a report by Andrew Morton and code analysis done by Jarek Poplawski. This reverts 33f807ba0d9259e7c75c7a2ce8bd2787e5b540c7 ("[NETPOLL]: Kill NETPOLL_RX_DROP, set but never tested.") and c7b6ea24b43afb5749cb704e143df19d70e23dea ("[NETPOLL]: Don't need rx_flags."). The rx_flags did get tested for zero vs. non-zero and therefore we do need those tests and that code which sets NETPOLL_RX_DROP et al. Signed-off-by: David S. Miller commit fcab59a3186640ce085e89ee6dfc03cacfb6c7c9 Author: Hugh Dickins Date: Tue Mar 4 19:33:24 2008 +0000 x86: a P4 is a P6 not an i486 P4 has been coming out as CPU_FAMILY=4 instead of 6: fix MPENTIUM4 typo. Signed-off-by: Hugh Dickins Signed-off-by: Linus Torvalds commit e97a294ef6938512b655b1abf17656cf2b26f709 Author: Jens Axboe Date: Tue Mar 4 20:22:54 2008 +0100 scsi: missing add of padded bytes to io completion byte count Original patch from Tejun Heo but should use ->extra_len and not ->data_len, as we would then overshoot the original request size. Signed-off-by: Jens Axboe commit 6497dcffe07b7c3d863f9899280c4f6eae999161 Author: Dan Williams Date: Sat Mar 1 07:52:14 2008 -0700 ioat: fix 'ack' handling, driver must ensure that 'ack' is zero Initialize 'ack' to zero in case the descriptor has been recycled. Prevents "kernel BUG at crypto/async_tx/async_xor.c:185!" Signed-off-by: Dan Williams Acked-by: Shannon Nelson Cc: stable@kernel.org commit ec8670f1f795badedaa056a3a3245b9b82201747 Author: Dan Williams Date: Sat Mar 1 07:51:29 2008 -0700 dmaengine: fix sparse warning include/linux/dmaengine.h:364:2: warning: returning void-valued expression Signed-off-by: Dan Williams commit 222ccf9ab838a1ca7163969fabd2cddc10403fb5 Author: Dan Williams Date: Sat Mar 1 07:51:17 2008 -0700 fsldma: do not cleanup descriptors in hardirq context "Cleaning" descriptors involves calling pending callbacks and clients assume that their callback will only ever happen in softirq context. Delay cleanup to the tasklet. Signed-off-by: Dan Williams Acked-by: Zhang Wei commit 173acc7ce8538f1f3040791dc622a92aadc12cf4 Author: Zhang Wei Date: Sat Mar 1 07:42:48 2008 -0700 dmaengine: add driver for Freescale MPC85xx DMA controller The driver implements DMA engine API for Freescale MPC85xx DMA controller, which could be used by devices in the silicon. The driver supports the Basic mode of Freescale MPC85xx DMA controller. The MPC85xx processors supported include MPC8540/60, MPC8555, MPC8548, MPC8641 and so on. The MPC83xx(MPC8349, MPC8360) are also supported. [kamalesh@linux.vnet.ibm.com: build fix] [dan.j.williams@intel.com: merge mm fixes, rebase on async_tx-2.6.25] Signed-off-by: Zhang Wei Signed-off-by: Ebony Zhu Acked-by: Kumar Gala Cc: Shannon Nelson Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Dan Williams commit 62fb185130e4d420f71a30ff59d8b16b74ef5d2b Author: Peter Zijlstra Date: Mon Feb 25 17:34:02 2008 +0100 sched: revert load_balance_monitor() changes The following commits cause a number of regressions: commit 58e2d4ca581167c2a079f4ee02be2f0bc52e8729 Author: Srivatsa Vaddagiri Date: Fri Jan 25 21:08:00 2008 +0100 sched: group scheduling, change how cpu load is calculated commit 6b2d7700266b9402e12824e11e0099ae6a4a6a79 Author: Srivatsa Vaddagiri Date: Fri Jan 25 21:08:00 2008 +0100 sched: group scheduler, fix fairness of cpu bandwidth allocation for task groups Namely: - very frequent wakeups on SMP, reported by PowerTop users. - cacheline trashing on (large) SMP - some latencies larger than 500ms While there is a mergeable patch to fix the latter, the former issues are not fixable in a manner suitable for .25 (we're at -rc3 now). Hence we revert them and try again in v2.6.26. Signed-off-by: Peter Zijlstra CC: Srivatsa Vaddagiri Tested-by: Alexey Zaytsev Signed-off-by: Ingo Molnar commit 87d034f3139b5f0d93df2ba58f37d6f2c2c7eeb6 Author: Ian Campbell Date: Thu Feb 28 23:16:49 2008 +0000 x86/xen: fix DomU boot problem Construct Xen guest e820 map with a hole between 640K-1M. It's pure luck that Xen kernels have gotten away with it in the past. The patch below seems like the right thing to do. It certainly boots in a domU without the DMI problem (without any of the other related patches such as Alexander's). Signed-off-by: Ian Campbell Cc: H. Peter Anvin Cc: Jeremy Fitzhardinge Tested-by: Mark McLoughlin Acked-by: Mark McLoughlin Signed-off-by: Ingo Molnar Acked-by: Thomas Gleixner commit 7c9e92b6cdc9937eee53600e5d49a25e421463dd Author: Yinghai Lu Date: Tue Feb 19 15:35:54 2008 -0800 x86: not set node to cpu_to_node if the node is not online resolve boot problem reported by Mel Gorman: http://lkml.org/lkml/2008/2/13/404 init_cpu_to_node will use cpu->apic (from MADT or mptable) and apic->node(from SRAT or AMD config space with k8_bus_64.c) to have cpu->node mapping, and later identify_cpu will overwrite them again...(with nearby_node...) this patch checks if the node is online, otherwise it will not update cpu_node map. so keep cpu_node map to online node before identify_cpu..., to prevent possible error. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Acked-by: Thomas Gleixner commit 18a8622101154277df97e24097ed17aace84fa3a Author: Suresh Siddha Date: Mon Mar 3 13:01:08 2008 -0800 x86, i387: fix ptrace leakage using init_fpu() This bug got introduced by the recent i387 merge: commit 4421011120b2304e5c248ae4165a2704588aedf1 Author: Roland McGrath Date: Wed Jan 30 13:31:50 2008 +0100 x86: x86 i387 user_regset Current usage of unlazy_fpu() in ptrace specific routines is wrong. unlazy_fpu() will not init fpu if the task never used math. So the ptrace calls can expose the parent tasks FPU data in some cases. Replace it with the init_fpu() which will init the math state, if the task never used math before. Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar Acked-by: Thomas Gleixner commit 8727e28ddebb031d80b5e261c98c24f1dcb9a82f Author: Geert Uytterhoeven Date: Tue Mar 4 09:18:16 2008 +0100 m68k{,nommu}: Wire up new timerfd syscalls m68k{,nommu}: Wire up the new timerfd syscalls, which were introduced in commit 4d672e7ac79b5ec5cdc90e450823441e20464691 ("timerfd: new timerfd API"). Signed-off-by: Geert Uytterhoeven Acked-by: Greg Ungerer Signed-off-by: Linus Torvalds commit 0a504779d312ab20b9dbe3c8f1c66f395f80e2eb Author: Greg Ungerer Date: Tue Mar 4 16:52:01 2008 +1000 m68knommu: fix fec driver interrupt races The FEC driver has a common interrupt handler for all interrupt event types. It is raised on a number of distinct interrupt vectors. This handler can't be re-entered while processing an interrupt, so make sure all requested vectors are flagged as IRQF_DISABLED. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds commit e311f68a4e43ade048d7dbaa6b458fbe31114daf Author: Greg Ungerer Date: Tue Mar 4 16:35:04 2008 +1000 m68knommu: declare do_IRQ() Need a declaration of do_IRQ for the 68328 interrupt handling code. It is common to all m68knommu targets, so a common declaration makes sense. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds commit 881ab680a49708b785384990ba729c1305e7f978 Author: Greg Ungerer Date: Tue Mar 4 16:24:17 2008 +1000 m68knommu: remove duplicate hw_tick() code Remove duplicate hw_tick() function from 68328 timers code. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds commit 673da21b10fe5988dd237beddd5292e18b5c5988 Author: Greg Ungerer Date: Tue Mar 4 15:44:23 2008 +1000 m68knommu: update defconfig Update the m68knommu defconfig. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds commit 10a7f3135ac4937a3dc8ed11614a2b70cbd44728 Author: Tony Breeds Date: Tue Mar 4 16:05:06 2008 +1100 Build fix for drivers/s390/char/defkeymap.c Commit 5ce2087ed0eb424e0889bdc9102727f65d2ecdde (Fix default compose table initialization) left a trailing quote. CC drivers/s390/char/defkeymap.o drivers/s390/char/defkeymap.c:155: error: missing terminating ' character drivers/s390/char/defkeymap.c:156: error: syntax error before ';' token make[3]: *** [drivers/s390/char/defkeymap.o] Error 1 Fix that. Signed-off-by: Tony Breeds Signed-off-by: Linus Torvalds commit 13b1c3d4b49bd83d861c775ca2db54e1692a1b07 Author: Roland McGrath Date: Mon Mar 3 20:22:05 2008 -0800 freezer vs stopped or traced This changes the "freezer" code used by suspend/hibernate in its treatment of tasks in TASK_STOPPED (job control stop) and TASK_TRACED (ptrace) states. As I understand it, the intent of the "freezer" is to hold all tasks from doing anything significant. For this purpose, TASK_STOPPED and TASK_TRACED are "frozen enough". It's possible the tasks might resume from ptrace calls (if the tracer were unfrozen) or from signals (including ones that could come via timer interrupts, etc). But this doesn't matter as long as they quickly block again while "freezing" is in effect. Some minor adjustments to the signal.c code make sure that try_to_freeze() very shortly follows all wakeups from both kinds of stop. This lets the freezer code safely leave stopped tasks unmolested. Changing this fixes the longstanding bug of seeing after resuming from suspend/hibernate your shell report "[1] Stopped" and the like for all your jobs stopped by ^Z et al, as if you had freshly fg'd and ^Z'd them. It also removes from the freezer the arcane special case treatment for ptrace'd tasks, which relied on intimate knowledge of ptrace internals. Signed-off-by: Roland McGrath Signed-off-by: Linus Torvalds commit 1a4e3f89c6b2cbe0b26c08ec63a8c34156eaae04 Author: Randy Dunlap Date: Wed Feb 20 09:20:08 2008 -0800 x86: disable KVM for Voyager and friends Most classic Pentiums don't have hardware virtualization extension, and building kvm with Voyager, Visual Workstation, or NUMAQ generates spurious failures. Signed-off-by: Avi Kivity Signed-off-by: Randy Dunlap commit 33f9c505ed5c83bd8a07877e5b4628308f4cc099 Author: Avi Kivity Date: Wed Feb 27 16:06:57 2008 +0200 KVM: VMX: Avoid rearranging switched guest msrs while they are loaded KVM tries to run as much as possible with the guest msrs loaded instead of host msrs, since switching msrs is very expensive. It also tries to minimize the number of msrs switched according to the guest mode; for example, MSR_LSTAR is needed only by long mode guests. This optimization is done by setup_msrs(). However, we must not change which msrs are switched while we are running with guest msr state: - switch to guest msr state - call setup_msrs(), removing some msrs from the list - switch to host msr state, leaving a few guest msrs loaded An easy way to trigger this is to kexec an x86_64 linux guest. Early during setup, the guest will switch EFER to not include SCE. KVM will stop saving MSR_LSTAR, and on the next msr switch it will leave the guest LSTAR loaded. The next host syscall will end up in a random location in the kernel. Fix by reloading the host msrs before changing the msr list. Signed-off-by: Avi Kivity commit f7d9c7b7b902f9f532738d47593d9679b0b182d9 Author: Avi Kivity Date: Tue Feb 26 22:12:10 2008 +0200 KVM: MMU: Fix race when instantiating a shadow pte For improved concurrency, the guest walk is performed concurrently with other vcpus. This means that we need to revalidate the guest ptes once we have write-protected the guest page tables, at which point they can no longer be modified. The current code attempts to avoid this check if the shadow page table is not new, on the assumption that if it has existed before, the guest could not have modified the pte without the shadow lock. However the assumption is incorrect, as the racing vcpu could have modified the pte, then instantiated the shadow page, before our vcpu regains control: vcpu0 vcpu1 fault walk pte modify pte fault in same pagetable instantiate shadow page lookup shadow page conclude it is old instantiate spte based on stale guest pte We could do something clever with generation counters, but a test run by Marcelo suggests this is unnecessary and we can just do the revalidation unconditionally. The pte will be in the processor cache and the check can be quite fast. Signed-off-by: Avi Kivity commit 8c35f237fb5664d30aa90448c3d6cea0cbb43f35 Author: Avi Kivity Date: Mon Feb 25 10:28:31 2008 +0200 KVM: Route irq 0 to vcpu 0 exclusively Some Linux versions allow the timer interrupt to be processed by more than one cpu, leading to hangs due to tsc instability. Work around the issue by only disaptching the interrupt to vcpu 0. Problem analyzed (and patch tested) by Sheng Yang. Signed-off-by: Avi Kivity commit 0b975a3c2d53829fa978e18fabae7d99031f588f Author: Avi Kivity Date: Sun Feb 24 14:37:50 2008 +0200 KVM: Avoid infinite-frequency local apic timer If the local apic initial count is zero, don't start a an hrtimer with infinite frequency, locking up the host. Signed-off-by: Avi Kivity commit 24993d53495d1f9b844f8eb3ebd1b9efd3521617 Author: Marcelo Tosatti Date: Thu Feb 14 21:25:39 2008 -0200 KVM: make MMU_DEBUG compile again the cr3 variable is now inside the vcpu->arch structure. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit 5e4a0b3c1b899bb0ba28bde6edf95c5ddeb48b5c Author: Marcelo Tosatti Date: Thu Feb 14 21:21:43 2008 -0200 KVM: move alloc_apic_access_page() outside of non-preemptable region alloc_apic_access_page() can sleep, while vmx_vcpu_setup is called inside a non preemptable region. Move it after put_cpu(). Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity commit a2938c807024ba30191e3bd593430c0659d75717 Author: Joerg Roedel Date: Wed Feb 13 16:30:28 2008 +0100 KVM: SVM: fix Windows XP 64 bit installation crash While installing Windows XP 64 bit wants to access the DEBUGCTL and the last branch record (LBR) MSRs. Don't allowing this in KVM causes the installation to crash. This patch allow the access to these MSRs and fixes the issue. Signed-off-by: Joerg Roedel Signed-off-by: Markus Rechberger Signed-off-by: Avi Kivity commit 72dc67a69690288538142df73a7e3ac66fea68dc Author: Izik Eidus Date: Sun Feb 10 18:04:15 2008 +0200 KVM: remove the usage of the mmap_sem for the protection of the memory slots. This patch replaces the mmap_sem lock for the memory slots with a new kvm private lock, it is needed beacuse untill now there were cases where kvm accesses user memory while holding the mmap semaphore. Signed-off-by: Izik Eidus Signed-off-by: Avi Kivity commit cc66b4512cae8df4ed1635483210aabf7690ec27 Author: Jens Axboe Date: Tue Mar 4 11:47:46 2008 +0100 block: fix blkdev_issue_flush() not detecting and passing EOPNOTSUPP back This is important to eg dm, that tries to decide whether to stop using barriers or not. Tested as working by Anders Henke Signed-off-by: Jens Axboe commit 56d94a37f63ad1c9da3bc8e903f79d0ee1e80170 Author: Harvey Harrison Date: Tue Mar 4 11:31:22 2008 +0100 block: fix shadowed variable warning in blk-map.c Introduced between 2.6.25-rc2 and -rc3 block/blk-map.c:154:14: warning: symbol 'bio' shadows an earlier one block/blk-map.c:110:13: originally declared here Signed-off-by: Harvey Harrison Signed-off-by: Jens Axboe commit 448da4d262b5db90817ce853726ff4d9b0c2bf48 Author: Harvey Harrison Date: Tue Mar 4 11:30:18 2008 +0100 block: remove extern on function definition Intoduced between 2.6.25-rc2 and -rc3 block/blk-settings.c:319:12: warning: function 'blk_queue_dma_drain' with external linkage has definition Signed-off-by: Harvey Harrison Signed-off-by: Jens Axboe commit 68d95b585f1b67b3c89ce0eb934e221ebeeb5c61 Author: Mike Miller Date: Tue Mar 4 11:25:15 2008 +0100 cciss: remove READ_AHEAD define and use block layer defaults This patch removes the #define READ_AHEAD 1024 from the driver and uses the block layer defaults, instead. We have found that under certain workloads the setting can cause a disk connected to the e200 controller to go offline. If the disk hiccups the link may try to downshift but the controller is never notified that the link successfully completed the renegotiation. We've also found that performance using the block layer default of 32 pages was on par with the 1024 setting. We tried setting it to zero at one time based on info from our firmware guys but that killed performance. Turns out we were talking about 2 different read ahead settings. Please consider this for inclusion. Signed-off-by: Mike Miller Signed-off-by: Jens Axboe commit ecb80c6a490863af569853eea2a925f97e9e856a Author: Adrian Bunk Date: Tue Mar 4 11:23:51 2008 +0100 make cdrom.c:check_for_audio_disc() static This patch makes the needlessly global check_for_audio_disc() static. Signed-off-by: Adrian Bunk Signed-off-by: Jens Axboe commit a0db701a6bf767320e4471bd55e70702d230f6fb Author: Adrian Bunk Date: Tue Mar 4 11:23:50 2008 +0100 block/genhd.c: proper externs This patch adds proper externs for two structs in include/linux/genhd.h Signed-off-by: Adrian Bunk Signed-off-by: Jens Axboe commit bec419404afe8b0d60000118ca90ada4c69a3a6d Author: Adrian Bunk Date: Tue Mar 4 11:23:48 2008 +0100 unexport blk_rq_map_user_iov This patch removes the unused export of blk_rq_map_user_iov. Signed-off-by: Adrian Bunk Signed-off-by: Jens Axboe commit 9d7f1e6b9b2c2e4fe029ff35f4ca1e2879864208 Author: Adrian Bunk Date: Tue Mar 4 11:23:47 2008 +0100 unexport blk_{get,put}_queue This patch removes the unused exports of blk_{get,put}_queue. Signed-off-by: Adrian Bunk Signed-off