summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-05-21Detach sched.h from mm.hAlexey Dobriyan109-30/+126
First thing mm.h does is including sched.h solely for can_do_mlock() inline function which has "current" dereference inside. By dealing with can_do_mlock() mm.h can be detached from sched.h which is good. See below, why. This patch a) removes unconditional inclusion of sched.h from mm.h b) makes can_do_mlock() normal function in mm/mlock.c c) exports can_do_mlock() to not break compilation d) adds sched.h inclusions back to files that were getting it indirectly. e) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were getting them indirectly Net result is: a) mm.h users would get less code to open, read, preprocess, parse, ... if they don't need sched.h b) sched.h stops being dependency for significant number of files: on x86_64 allmodconfig touching sched.h results in recompile of 4083 files, after patch it's only 3744 (-8.3%). Cross-compile tested on all arm defconfigs, all mips defconfigs, all powerpc defconfigs, alpha alpha-up arm i386 i386-up i386-defconfig i386-allnoconfig ia64 ia64-up m68k mips parisc parisc-up powerpc powerpc-up s390 s390-up sparc sparc-up sparc64 sparc64-up um-x86_64 x86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig as well as my two usual configs. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-21Fix "fs: convert core functions to zero_user_page"OGAWA Hirofumi1-1/+1
The bug was introduced by 01f2705daf5a36208e69d7cf95db9c330f843af6. It misses to convert the first argument, it should be "new_page". This became a cause of fatfs corruption. Cc: Nate Diller <nate.diller@gmail.com> Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-21Merge master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6Linus Torvalds1-1/+3
* master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6: [CRYPTO] api: Read module pointer before freeing algorithm
2007-05-19[CRYPTO] api: Read module pointer before freeing algorithmHerbert Xu1-1/+3
The function crypto_mod_put first frees the algorithm and then drops the reference to its module. Unfortunately we read the module pointer which after freeing the algorithm and that pointer sits inside the object that we just freed. So this patch reads the module pointer out before we free the object. Thanks to Luca Tettamanti for reporting this. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2007-05-18Linux v2.6.22-rc2v2.6.22-rc2Linus Torvalds1-1/+1
2007-05-18cciss: Fix pci_driver.shutdown while device is still activeGerald Britton1-15/+30
Fix an Oops in the cciss driver caused by system shutdown while a filesystem on a cciss device is still active. The cciss_remove_one function only properly removes the device if the device has been cleanly released by its users, which is not the case when the pci_driver.shutdown method is called. This patch adds a new cciss_shutdown function to better match the pattern used by various SCSI drivers: deactivate device interrupts and flush caches. It also alters the cciss_remove_one function to match and readds the __devexit annotation that was removed when cciss_remove_one was serving as the pci_driver.shutdown method. Signed-off-by: Gerald Britton <gbritton@alum.mit.edu> Acked-by: Mike Miller <mike.miller@hp.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-18Further update of the i386 boot documentationH. Peter Anvin1-82/+303
A number of items in the i386 boot documentation have been either vague, outdated or hard to read. This text revision adds several more examples, including a memory map for a modern kernel load. It also adds a field-by-field detailed description of the setup header, and a bootloader ID for Qemu. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-18Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6Linus Torvalds2-3/+3
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: [CRYPTO] tcrypt: Add missing error check [CRYPTO] padlock: Make CRYPTO_DEV_PADLOCK a tristate again
2007-05-18Fix roundup_pow_of_two(1)Rolf Eike Beer1-1/+1
1 is a power of two, therefore roundup_pow_of_two(1) should return 1. It does in case the argument is a variable but in case it's a constant it behaves wrong and returns 0. Probably nobody ever did it so this was never noticed. Signed-off-by: Rolf Eike Beer <eike-kernel@sf-tec.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-18timerfd use waitqueue lock ...Davide Libenzi1-13/+11
The timerfd was using the unlocked waitqueue operations, but it was using a different lock, so poll_wait() would race with it. This makes timerfd directly use the waitqueue lock. Signed-off-by: Davide Libenzi <davidel@xmailserver.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-18eventfd use waitqueue lock ...Davide Libenzi1-14/+12
The eventfd was using the unlocked waitqueue operations, but it was using a different lock, so poll_wait() would race with it. This makes eventfd directly use the waitqueue lock. Signed-off-by: Davide Libenzi <davidel@xmailserver.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-18Merge branch 'master' of ↵Linus Torvalds47-582/+782
git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (32 commits) [POWERPC] Remove build warnings in windfarm_core [POWERPC] Pass per-file CFLAGs for platform specific op codes [POWERPC] Correct #endif comment [POWERPC] Fix ppc_rtas_progress_show() [POWERPC] Fix sed command lines for zlib source construction [POWERPC] Specify GNUTARGET on $(AR) invocations [POWERPC] Make sure device node type/name is not NULL on hot-added nodes [POWERPC] Small fixes for the Ebony device tree [POWERPC] Fix warning on UP [POWERPC] cell_defconfig: Disable cpufreq and pmi [POWERPC] Fix IO space on PCI buses created from of_platform [POWERPC] Add spinlock to request_phb_iospace() [POWERPC] Fix make rules for treeImage.initrd [POWERPC] Remove warning in mpic.c [POWERPC] Update pasemi_defconfig [POWERPC] pasemi: CONFIG_GENERIC_TBSYNC no longer needed [POWERPC] Update iseries_defconfig [POWERPC] Wire up some more syscalls [POWERPC] Fix bug adding properties with flatdevtree.c's ft_set_prop() [POWERPC] Remove fixup_bigphys_addr() for arch/powerpc to avoid link error ...
2007-05-18Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds1-1/+1
* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC64]: Fix sched_clock() et al.
2007-05-18Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds6-27/+103
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [IPV4]: Remove IPVS icmp hack from route.c for now. [IPV4]: Correct rp_filter help text. [TCP]: TCP_CONG_YEAH requires TCP_CONG_VEGAS [TCP] slow start: Make comments and code logic clearer. [BLUETOOTH]: Fix locking in hci_sock_dev_event(). [NET]: Fix BMSR_100{HALF,FULL}2 defines in linux/mii.h [NET]: lockdep classes in register_netdevice
2007-05-18slub: another slabinfo fixChristoph Lameter1-0/+9
The slab manipulation functions should not be triggered by slabs that are unresovable in the subset of slabs selected on the command line. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-18revert "cancel_delayed_work: use del_timer() instead of del_timer_sync()"Oleg Nesterov1-1/+1
As pointed out by Jarek Poplawski, the patch [WORKQUEUE]: cancel_delayed_work: use del_timer() instead of del_timer_sync() commit: 071b638689464c6b39407025eedd810d5b5e6f5d was wrong, it was merged by mistake after that. From the changelog: after this patch: ... delayed_work_timer_fn->__queue_work() in progress. The latter doesn't differ from the caller's POV, it does make a difference if the caller calls flush_workqueue() after cancel_delayed_work(), in that case flush_workqueue() can miss this work_struct. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Cc: Jarek Poplawski <jarkao2@o2.pl> Cc: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-18[IPV4]: Remove IPVS icmp hack from route.c for now.David S. Miller1-2/+2
Revert: 2d771cd86d4c3af26f34a7bcdc1b87696824cad9 This is dangerous if enabled and a better solution to the problem is being worked on. Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-18[CRYPTO] tcrypt: Add missing error checkHerbert Xu1-1/+1
The return value of crypto_hash_final isn't checked in test_hash_cycles. This patch corrects this. Thanks to Eric Sesterhenn for reporting this. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2007-05-17[SPARC64]: Fix sched_clock() et al.David S. Miller1-1/+1
SPARC64_NSEC_PER_CYC_SHIFT was set too high. Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-17Revert "[PATCH] x86: Drop cc-options call for all options supported in gcc 3.2+"Linus Torvalds2-2/+2
This reverts commit c8fdd247255a3a027cd9f66dcf93e6847d1d2f85. It turns out the kernel was correct, and the gcc complaint was a gcc bug. The preferred stack boundary is expressed not in bytes, but in the the log2() of the preferred boundary, so "-mpreferred-stack-boundary=2" is in fact exactly what we want, but a gcc that is compiled for x86-64 will consider it an error (because the 64-bit calling sequence says that the stack should be 16-byte aligned) even if we are then using "-m32" to generate 32-bit code. Noted-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> Cc: Jan Hubicka <jh@suse.cz> Acked-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-18[CRYPTO] padlock: Make CRYPTO_DEV_PADLOCK a tristate againHerbert Xu1-2/+2
Turning it into a boolean was unnecessary and caused ALGAPI to be pinned down as a boolean to. This patch makes it a tristate again. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2007-05-17Merge git://git.linux-nfs.org/pub/linux/nfs-2.6Linus Torvalds18-79/+77
* git://git.linux-nfs.org/pub/linux/nfs-2.6: SUNRPC: Fix sparse warnings NLM: Fix sparse warnings NFS: Fix more sparse warnings NFS: Fix some 'sparse' warnings... SUNRPC: remove dead variable 'rpciod_running' NFS4: Fix incorrect use of sizeof() in fs/nfs/nfs4xdr.c NFS: use zero_user_page NLM: don't use CLONE_SIGHAND in nlmclnt_recovery NLM: Fix locking client timeouts...
2007-05-17Merge branch 'upstream-linus' of ↵Linus Torvalds6-43/+18
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: sata_via: pcim_iomap_regions() conversion missed BAR5 libata: remove libata.spindown_compat sata_nv: fix fallout of devres conversion drivers/ata: remove the wildcard from sata_nv driver
2007-05-17sata_via: pcim_iomap_regions() conversion missed BAR5Tejun Heo1-1/+1
pcim_iomap_regions() conversion missed BAR5. Fix it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17libata: remove libata.spindown_compatTejun Heo4-25/+16
With STANDBYDOWN tracking added, libata.spindown_compat isn't necessary anymore. If userspace shutdown(8) issues STANDBYNOW, libata warns. If userspace shutdown(8) doesn't issue STANDBYNOW, libata does the right thing. Userspace can tell whether kernel supports spindown by testing whether sysfs node manage_start_stop exists as before. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17sata_nv: fix fallout of devres conversionTejun Heo1-11/+1
As with all other drivers, sata_nv's hpriv is allocated with devm_kzalloc() and there's no need to free it explicitly. Kill nv_remove_one() which incorrectly used kfree() instead of devm_kfree() and use ata_pci_remove_one() directly. Original fix is from Peer Chen. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Peer Chen <pchen@nvidia.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17drivers/ata: remove the wildcard from sata_nv driverPeer Chen1-6/+0
Because nvidia SATA controllers onward base on AHCI, so wildcard in sata_nv driver is unnecessary. Also the wildcard sometimes cause sata_nv driver to be loaded for AHCI controllers,which is not as expected. Signed-off-by: Peer Chen <pchen@nvidia.com> Cc: Tejun Heo <htejun@gmail.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17e1000: Fix msi enable leak on error, don't print error message, cleanupAuke Kok2-28/+15
pci_enable_msi failure is a normal event so we should not print any error. Going over the code I spotted a missing pci_disable_msi() leak when irq allocation fails. The whole code also needed a cleanup, so I combined the two different calls to pci_request_irq into a single call making this look a lot better. All #ifdef CONFIG_PCI_MSI's have been removed. Compile tested with both CONFIG_PCI_MSI enabled and disabled. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17ixgb: don't print error if pci_enable_msi() fails, cleanup minor leakAuke Kok2-23/+15
pci_enable_msi calls can fail for normal operational reasons. Driver should not print an error message in that case. Fix a leak that leaves msi enabled if pci_request_irq fails. We can remove CONFIG_PCI_MSI ifdefs alltogether Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17NetXen: Fix NetXen driver ping on system-pMithlesh Thukral1-1/+1
NetXen: Fix for driver on System-p This patch will fix a ping issue on system-p Signed-off by: Milan Bag <mbag@netxen.com> Signed-off by: Adhiraj Joshi <adhiraj@netxen.com> Signed-by: Mithlesh Thukral <mithlesh@netxen.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17spidernet: node-aware skbuff allocationChristoph Hellwig1-1/+2
Spidernet was the driver I original did all the node-aware netdevice allocation for, but after a year it still hasn't hit mainline. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17gianfar: Add I/O barriers when touching buffer descriptor ownership.Scott Wood1-0/+11
The hardware must not see that is given ownership of a buffer until it is completely written, and when the driver receives ownership of a buffer, it must ensure that any other reads to the buffer reflect its final state. Thus, I/O barriers are added where required. Without this patch, I have observed GCC reordering the setting of bdp->length and bdp->status in gfar_new_skb. Hardware reordering was also theoretically possible. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17ibm_emac: fix link speed detection changeEugene Surovegin1-1/+1
Fix link speed detection change. Thanks to Stefan Roese <sr@denx.de> for finding this bug. CC: Stefan Roese <sr@denx.de> Signed-off-by: Eugene Surovegin <ebs@ebshome.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17ibm_emac: improved PHY supportEugene Surovegin1-15/+45
Original patch is from Jeff Haran <jharan@brocade.com> with my minor style fixes. His comments follow: The first problem was in the function that configures the PHY for autonegotiation, genmii_setup_aneg(). The original code does a read/modify/write of the autonegotiation advertizement register (reg 4), followed by a read/modify/write of the control register (reg 0). While the original code follows the proper procedure as per reading the IEEE specs, what I found is that on at least one PHY model (National DP83843) the read of the control register comes back with the soft reset bit set (bit 15). Because of the read/modify/write operation, this causes the write to write a 1 back to the reset bit, which initiates a software reset of the PHY. This software reset causes the PHY to return to its power up state which advertizes all modes of operation, thus negating the write to the autoneg advertizement register. The modification is to spin reading the control register until the soft reset bit is clear before doing the modify/write. The second problem was in the function that configures the PHY for forced operation, genmii_setup_forced(). The original code initiates a software reset operation via a write of a 1 to bit 15 of the control register (reg 0), but then proceeds to do a second write to that same register without waiting until that reset bit is cleared by the PHY itself (which according to the IEEE specs indicates that the PHY reset is complete). This is a violation of how one is supposed to use this software reset feature of these PHYs and I believe was the cause of mysterious, difficult to reproduce link failures that we've observed on some of our systems that use this driver. The fix is to modify the function so that it spins waiting for the reset bit to clear after doing the soft reset and before doing the subsequent write. Signed-off-by: Jeff Haran <jharan@brocade.com> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Eugene Surovegin <ebs@ebshome.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17ibm_emac: fix section mismatch warningsEugene Surovegin8-10/+8
Fix "Section mismatch" warnings Signed-off-by: Eugene Surovegin <ebs@ebshome.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17small netdevices.txt fixChristoph Hellwig1-1/+1
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17sky2: memory barriers changeStephen Hemminger1-4/+11
Do some memory barrier changes for safety/perfomance: Don't need read after update to index, mmiowb() followed by read at end of irq is sufficient. Signed-off-by: Stephn Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17sky2: remove dual port workaroundStephen Hemminger1-7/+0
This workaround was added to deal with NAPI core and how it affected dual port shared polling. It turned out not to be necessary. Stopping device 0 only doesn't stop NAPI from working completely after that. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17sky2: MIB counter overflow handlingStephen Hemminger1-0/+6
Make sure that if we ever get a MIB counter overflow interrupt (normally masked off), that the IRQ is cleared. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17sky2: keep track of receive alloc failuresStephen Hemminger1-1/+3
When driver can't allocate receive buffer it drops incoming packet. Keep a counter. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17sky2: PHY register settingsStephen Hemminger1-1/+6
Align the PHY setup of the sky2 driver with the vendor sk98lin (10.0.4.3) driver. The PHY register settings are mostly black magic, even with access to the documentation it isn't clear what the right values are. The changes are mostly comments, the code change only affects the Yukon FE (100 mbit only) version. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17sky2: remove Gigabyte 88e8056 restrictionStephen Hemminger1-30/+0
The problems with Gigabyte motherboards are system configuration dependent. Since it works fine for some users, it doesn't make sense to deprive them. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-17[IPV4]: Correct rp_filter help text.Dave Jones1-3/+3
As mentioned in http://bugzilla.kernel.org/show_bug.cgi?id=5015 The helptext implies that this is on by default. This may be true on some distros (Fedora/RHEL have it enabled in /etc/sysctl.conf), but the kernel defaults to it off. Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-17[TCP]: TCP_CONG_YEAH requires TCP_CONG_VEGASDavid S. Miller1-0/+1
These two congestion control modules share code. Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-17[TCP] slow start: Make comments and code logic clearer.Stephen Hemminger1-18/+22
Add more comments to describe our version of tcp_slow_start(). Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-17[BLUETOOTH]: Fix locking in hci_sock_dev_event().Satyam Sharma1-2/+4
We presently use lock_sock() to acquire a lock on a socket in hci_sock_dev_event(), but this goes BUG because lock_sock() can sleep and we're already holding a read-write spinlock at that point. So, we must use the non-sleeping BH version, bh_lock_sock(). However, hci_sock_dev_event() is called from user context and hence using simply bh_lock_sock() will deadlock against a concurrent softirq that tries to acquire a lock on the same socket. Hence, disabling BH's before acquiring the socket lock and enable them afterwards, is the proper solution to fix socket locking in hci_sock_dev_event(). Signed-off-by: Satyam Sharma <ssatyam@cse.iitk.ac.in> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-17[NET]: Fix BMSR_100{HALF,FULL}2 defines in linux/mii.hDavid S. Miller1-2/+2
Noticed by Matvejchikov Ilya. Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-17[NET]: lockdep classes in register_netdeviceJarek Poplawski1-0/+69
After initializing dev->_xmit_lock register_netdevice() sets lockdep class according to dev->type. Idea of this patch - by David Miller. Reported & tested by: "Yuriy N. Shkandybin" <jura@netams.com> Signed-off-by: Jarek Poplawski <jarkao2@o2.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-17Merge branch 'master' of /home/trondmy/repositories/git/linux-2.6/Trond Myklebust94-669/+647
2007-05-17Fix incorrect prototype for ipxrtr_route_packet()David Woodhouse1-1/+1
The function ipxrtr_route_packet() takes a 'len' argument of type size_t. However, its prototype in af_ipx.c incorrectly suggests that the corresponding argument is of type 'int' instead. Discovered by building with --combine and letting the compiler see it all at once. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>