summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ACPI] Reduce acpi-cpufreq switching latency by 50%Venkatesh Pallipadi2005-08-261-21/+36
| | | | | | | | | | | | | | | | | The acpi-cpufreq driver does a P-state get after a P-state set to verify whether set went through successfully. This test is kind of redundant as set goes throught most of the times, and the test is also expensive as a get of P-states can take a lot of time (same as a set operation) as it goes through SMM mode. Effectively, we are doubling the P-state latency due to this get opertion. momdule parameter "acpi_pstate_strict" restores orginal paranoia. http://bugzilla.kernel.org/show_bug.cgi?id=5129 Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* Auto-update from upstreamLen Brown2005-08-2619-63/+57
|\
| * [PATCH] completely disable cpu_exclusive sched domainPaul Jackson2005-08-261-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the suggestion of Nick Piggin and Dinakar, totally disable the facility to allow cpu_exclusive cpusets to define dynamic sched domains in Linux 2.6.13, in order to avoid problems first reported by John Hawkes (corrupt sched data structures and kernel oops). This has been built for ppc64, i386, ia64, x86_64, sparc, alpha. It has been built, booted and tested for cpuset functionality on an SN2 (ia64). Dinakar or Nick - could you verify that it for sure does avoid the problems Hawkes reported. Hawkes is out of town, and I don't have the recipe to reproduce what he found. Signed-off-by: Paul Jackson <pj@sgi.com> Acked-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] undo partial cpu_exclusive sched domain disablingPaul Jackson2005-08-261-19/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The partial disabling of Dinakar's new facility to allow cpu_exclusive cpusets to define dynamic sched domains doesn't go far enough. At the suggestion of Nick Piggin and Dinakar, let us instead totally disable this facility for 2.6.13, in order to avoid problems first reported by John Hawkes (corrupt sched data structures and kernel oops). This patch removes the partial disabling code in 2.6.13-rc7, in anticipation of the next patch, which will totally disable it instead. Signed-off-by: Paul Jackson <pj@sgi.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * Merge HEAD from master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6.git Linus Torvalds2005-08-262-11/+9
| |\
| | * [TG3]: Fix ethtool loopback test lockupMichael Chan2005-08-251-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tg3_abort_hw() call in tg3_test_loopback() is causing lockups on some devices. tg3_abort_hw() disables the memory arbiter, causing tg3_reset_hw() to hang when it tries to write the pre-reset signature. tg3_abort_hw() should only be called after the pre-reset signature has been written. This is all done in tg3_reset_hw() so the tg3_abort_hw() call is unnecessary and can be removed. [ Also bump driver version and release date. -DaveM ] Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| | * [FIB_TRIE]: Don't ignore negative results from fib_semantic_matchPatrick McHardy2005-08-231-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a semantic match occurs either success, not found or an error (for matching unreachable routes/blackholes) is returned. fib_trie ignores the errors and looks for a different matching route. Treat results other than "no match" as success and end lookup. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [PATCH] hwmon: Off-by-one error in fscpos driverJean Delvare2005-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Coverity uncovered an off-by-one error in the fscpos driver, in function set_temp_reset(). Writing to the temp3_reset sysfs file will lead to an array overrun, in turn causing an I2C write to a random register of the FSC Poseidon chip. Additionally, writing to temp1_reset and temp2_reset will not work as expected. The fix is straightforward. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] ppc32 8xx: fix m8xx_ide_init() #ifdefMarcelo Tosatti2005-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Be more precise on deciding whether to call m8xx_ide_init() at m8xx_setup.c:platform_init(). Compilation fails if CONFIG_BLK_DEV_IDE is defined but CONFIG_BLK_DEV_MPC8xx_IDE isnt. Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] late spinlock initialization in ieee1394/ohciAl Viro2005-08-261-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | spinlock used in irq handler should be initialized before registering irq, even if we know that our device has interrupts disabled; handler is registered shared and taking spinlock is done unconditionally. As it is, we can and do get oopsen on boot for some configuration, depending on irq routing - I've got a reproducer. Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Ben Collins <bcollins@debian.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] bogus function type in qdioAl Viro2005-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | In qdio_get_micros() volatile in return type is plain noise (even with old gccisms it would make no sense - noreturn function returning __u64 is a bit odd ;-) Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] bogus iounmap() in emacAl Viro2005-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | Dumb typo: iounmap(&local_pointer_variable). Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] drivers/hwmon/*: kfree() correct pointersAlexey Dobriyan2005-08-265-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The adm9240 driver, in adm9240_detect(), allocates a structure. The error path attempts to kfree() ->client field of it (second one), resulting in an oops (or slab corruption) if the hardware is not present. ->client field in adm1026, adm1031, smsc47b397 and smsc47m1 is the first in ${HWMON}_data structure, but fix them too. Signed-off-by: Jonathan Corbet <corbet@lwn.net Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] Fix oops in fs/locks.c on close of file with pending locksSteve French2005-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The recent change to locks_remove_flock code in fs/locks.c changes how byte range locks are removed from closing files, which shows up a bug in cifs. The assumption in the cifs code was that the close call sent to the server would remove any pending locks on the server on this file, but that is no longer safe as the fs/locks.c code on the client wants unlock of 0 to PATH_MAX to remove all locks (at least from this client, it is not possible AFAIK to remove all locks from other clients made to the server copy of the file). Note that cifs locks are different from posix locks - and it is not possible to map posix locks perfectly on the wire yet, due to restrictions of the cifs network protocol, even to Samba without adding a new request type to the network protocol (which we plan to do for Samba 3.0.21 within a few months), but the local client will have the correct, posix view, of the lock in most cases. The correct fix for cifs for this would involve a bigger change than I would like to do this late in the 2.6.13-rc cycle - and would involve cifs keeping track of all unmerged (uncoalesced) byte range locks for each remote inode and scanning that list to remove locks that intersect or fall wholly within the range - locks that intersect may have to be reaquired with the smaller, remaining range. Signed-off-by: Steve French <sfrench@us.ibm.com> Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] hppfs: fix symlink error pathPaolo 'Blaisorblade' Giarrusso2005-08-261-15/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While touching this code I noticed the error handling is bogus, so I fixed it up. I've removed the IS_ERR(proc_dentry) check, which will never trigger and is clearly a typo: we must check proc_file instead. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] Fixup symlink function pointers for hppfs [for 2.6.13]Paolo 'Blaisorblade' Giarrusso2005-08-261-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update hppfs for the symlink functions prototype change. Yes, I know the code I leave there is still _bogus_, see next patch for this. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] Document idr_get_new_above() semantics, update inotifyJohn McCutchan2005-08-262-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is an off by one problem with idr_get_new_above. The comment and function name suggest that it will return an id > starting_id, but it actually returned an id >= starting_id, and kernel callers other than inotify treated it as such. The patch below fixes the comment, and fixes inotifys usage. The function name still doesn't match the behaviour, but it never did. Signed-off-by: John McCutchan <ttb@tentacle.dhs.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | Ignore disabled ROM resources at setupLinus Torvalds2005-08-261-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Writing even a disabled value seems to mess up some matrox graphics cards. It may be a card-related issue, but we may also be writing reserved low bits in the result. This was a fall-out of switching x86 over to the generic PCI resource allocation code, and needs more debugging. In particular, the old x86 code defaulted to not doing any resource allocations at all for ROM resources. In the meantime, this has been reported to make X happier by Helge Hafting <helgehaf@aitel.hist.no>. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | Only pre-allocate 256 bytes of cardbio IO rangeLinus Torvalds2005-08-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | It may seem small, but most cards need much less, if any, and this not only makes the code adhere to the comment, it seems to fix a boot-time lockup on a ThinkPad 380XD laptop reported by Tero Roponen <teanropo@cc.jyu.fi> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | | merge ibm into testLen Brown2005-08-252-407/+1327
|\ \ \
| * | | [ACPI] IBM ThinkPad ACPI Extras Driver v0.12Borislav Deianov2005-08-252-532/+1442
| |/ / | | | | | | | | | | | | | | | | | | http://ibm-acpi.sf.net/ Signed-off-by: Borislav Deianov <borislav@users.sf.net> Signed-off-by: Len Brown <len.brown@intel.com>
* | | Merge HEAD from ../from-linus Len Brown2005-08-2570-178/+196
|\ \ \ | |/ /
| * | [PATCH] cfq-iosched.c: minor fixesJens Axboe2005-08-241-10/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One critical fix and two minor fixes for 2.6.13-rc7: - Max depth must currently be 2 to allow barriers to function on SCSI - Prefer sync request over async in choosing the next request - Never allow async request to preempt or disturb the "anticipation" for a single cfq process context. This is as-designed, the code right now is buggy in that area. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] Export pcibios_bus_to_resourceKeith Owens2005-08-242-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | pcibios_bus_to_resource is exported on all architectures except ia64 and sparc. Add exports for the two missing architectures. Needed when Yenta socket support is compiled as a module. Signed-off-by: Keith Owens <kaos@sgi.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] x86_64: update defconfig - reenable fusionAndi Kleen2005-08-241-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | I mistakedly disabled fusion support in an earlier update. Fusion is commonly used on many x86-64 systems, so this was a problem. This patch fixes that. Signed-off-by: And Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] ppc64: Export machine_power_off for therm_pm72 moduleBenjamin Herrenschmidt2005-08-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch puts back the export of machine_power_off() that was removed by some janitor as it's used for emergency shutdown by the G5 thermal control driver. Wether that driver should use kernel_power_off() instead is debatable and a post-2.6.13 decision. In the meantime, please commit that patch that fixes the driver for now. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] cpu_exclusive sched domains build fixPaul Jackson2005-08-241-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As reported by Paul Mackerras <paulus@samba.org>, the previous patch "cpu_exclusive sched domains fix" broke the ppc64 build with CONFIC_CPUSET, yielding error messages: kernel/cpuset.c: In function 'update_cpu_domains': kernel/cpuset.c:648: error: invalid lvalue in unary '&' kernel/cpuset.c:648: error: invalid lvalue in unary '&' On some arch's, the node_to_cpumask() is a function, returning a cpumask_t. But the for_each_cpu_mask() requires an lvalue mask. The following patch fixes this build failure by making a copy of the cpumask_t on the stack. Signed-off-by: Paul Jackson <pj@sgi.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] m68k: fix broken macros causing compile errorsAndreas Schwab2005-08-241-3/+3
| |/ | | | | | | | | | | | | Add parens around macro parameters. Signed-off-by: Andreas Schwab <schwab@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * Linux v2.6.13-rc7v2.6.13-rc7Linus Torvalds2005-08-231-1/+1
| | | | | | | | Too many changes to release a final 2.6.13.
| * [PATCH] Fix IXP4xx CLOCK_TICK_RATEDeepak Saxena2005-08-231-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | As pointed out in the following thread, the CLOCK_TICK_RATE setting for IXP4xx is incorrect b/c the HW ignores the lowest 2 bits of the LATCH value. http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2005-August/030950.html Tnx to George Anziger and Egil Hjelmeland for finding the issue. Signed-off-by: Deepak Saxena <dsaxena@plexity.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] cpu_exclusive sched domains on partial nodes temp fixPaul Jackson2005-08-231-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This keeps the kernel/cpuset.c routine update_cpu_domains() from invoking the sched.c routine partition_sched_domains() if the cpuset in question doesn't fall on node boundaries. I have boot tested this on an SN2, and with the help of a couple of ad hoc printk's, determined that it does indeed avoid calling the partition_sched_domains() routine on partial nodes. I did not directly verify that this avoids setting up bogus sched domains or avoids the oops that Hawkes saw. This patch imposes a silent artificial constraint on which cpusets can be used to define dynamic sched domains. This patch should allow proceeding with this new feature in 2.6.13 for the configurations in which it is useful (node alligned sched domains) while avoiding trying to setup sched domains in the less useful cases that can cause the kernel corruption and oops. Signed-off-by: Paul Jackson <pj@sgi.com> Acked-by: Ingo Molnar <mingo@elte.hu> Acked-by: Dinakar Guniguntala <dino@in.ibm.com> Acked-by: John Hawkes <hawkes@sgi.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * Merge head 'upstream-fixes' of ↵Linus Torvalds2005-08-231-2/+2
| |\ | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6
| | * [PATCH] i810_audio: fix release_region misordering in error exit from i810_probeJohn W. Linville2005-08-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Re-order release_region calls in i810_probe to properly unwind preceding allocations. Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | Merge head 'upstream-fixes' of ↵Linus Torvalds2005-08-235-28/+4
| |\ \ | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
| | * | libata: release prep (bump versions, etc.)Jeff Garzik2005-08-235-28/+4
| | |/ | | | | | | | | | | | | | | | - bump versions where necessary - remove two duplicated+outdated doc comments - add MODULE_VERSION() to AHCI driver
| * | [PATCH] x86_64: Don't oops at boot when empty Opteron node has IOAndi Kleen2005-08-231-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code to detect IO links on Opteron would not check if the node had actually memory. This could lead to pci_bus_to_node returning an invalid node, which might cause crashes later when dma_alloc_coherent passes it to page_alloc_node(). The bug has been there forever but for some reason it is causing now crashes. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] usbnet oops fixlepton2005-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | There's a "return the wrong SKB" error in the GL620A cable minidriver (for "usbnet") which can oops. This would not appear when talking Linux-to-Linux, only Linux-to-Windows (for recent Linuxes). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | [PATCH] i386: fix incorrect FP signal codeChuck Ebbert2005-08-231-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i386 floating-point exception handling has a bug that can cause error code 0 to be sent instead of the proper code during signal delivery. This is caused by unconditionally checking the IS and c1 bits from the FPU status word when they are not always relevant. The IS bit tells whether an exception is a stack fault and is only relevant when the exception is IE (invalid operation.) The C1 bit determines whether a stack fault is overflow or underflow and is only relevant when IS and IE are set. Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds2005-08-231-1/+1
| |\ \
| | * | [ROSE]: Fix typo in rose_route_frame() locking fix.David S. Miller2005-08-231-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | | [PATCH] s390 __CHECKER__ ifdefsAl Viro2005-08-232-28/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | remove the bogus games with explicit ifdefs on __CHECKER__ Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | | [PATCH] %t... in vsnprintfAl Viro2005-08-231-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | handling of %t... (ptrdiff_t) in vsnprintf Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | | [PATCH] ad1980 makefile fixAl Viro2005-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ac97_plugin_ad1980 should trigger build of ac97_codec Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | | [PATCH] Kconfig fix (non-modular SCSI drivers)Al Viro2005-08-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | non-modular scsi drivers depend on built-in scsi Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | | [PATCH] Kconfig fix (missing dependencies on PCI in sound/*)Al Viro2005-08-231-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | a bunch of PCI-only drivers didn't have the right dependency Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | | [PATCH] missing exports on m32rAl Viro2005-08-232-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | missing exports on m32r Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | | [PATCH] qualifiers in return types - easy casesAl Viro2005-08-236-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a bunch of functions switched from volatile to __attribute__((noreturn)) and from const to __attribute_pure__ Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | | [PATCH] typo fix in qdio.cAl Viro2005-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | dumb typo: u32 volatile * mistyped as u32 * volatile Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | | [PATCH] emac netpoll fixAl Viro2005-08-231-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | netpoll is void(struct net_device *), not int(struct net_device *) Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * | | [PATCH] vidc gcc4 fixAl Viro2005-08-231-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | removes an extern for a static variable. Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
OpenPOWER on IntegriCloud