Juha Yrjola [Thu, 28 Sep 2006 16:07:12 +0000 (19:07 +0300)]
ARM: OMAP2: Optimize INTC register accesses and enable autoidling
Use virtual addresses directly instead of physical addresses to
avoid having to recalculate the virtual address with every
register access.
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Thu, 28 Sep 2006 16:05:17 +0000 (19:05 +0300)]
ARM: OMAP2: Enable serial idling and wakeup features
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Thu, 28 Sep 2006 16:03:52 +0000 (19:03 +0300)]
ARM: OMAP: Add function to print clock usecounts
Useful for debugging power management code.
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Thu, 28 Sep 2006 16:00:59 +0000 (19:00 +0300)]
CBUS: Enable suspend wakeup for Retu IRQ
Juha Yrjola [Thu, 28 Sep 2006 15:24:02 +0000 (18:24 +0300)]
ARM: OMAP: Enable 24xx GPIO autoidling
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Thu, 28 Sep 2006 15:20:59 +0000 (18:20 +0300)]
omapfb: Enable DISPC and DSS autoidling
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
David Brownell [Thu, 28 Sep 2006 14:48:43 +0000 (17:48 +0300)]
musb_hdrc: musb procfs updates
Tighten up error handling in the procfs dump, and avoid returning
bogus values from the read() system call. Report single vs double
buffering for FIFO setup.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
David Brownell [Thu, 28 Sep 2006 14:47:44 +0000 (17:47 +0300)]
musb_hdrc: fix some bugs in the updated host side code
- Remove an oops in the queue fault cleanup path, caused by using the
wrong giveback routine (heavy weight vs lighter-weight). Move a few
key bits of code into that lighter weight version.
- Trigger that lighter-weight cleanup during URB completion, when the
URB in question can't yet been handed off to the hardware even if
it's at the queue head.
- Reduce syslog noise when those fault cleanup paths are triggered from
scatterlist calls by usb-storage.
- Paranoia: when scheduling, insist that the endpoint fifo isn't smaller
than required.
Oops observed courtesy of a slightly flakey usb-storage device, which
once again proves itself handy for testing.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
David Brownell [Thu, 28 Sep 2006 14:46:58 +0000 (17:46 +0300)]
musb_hdrc: cleanup, mostly related to CPPI
- Remove #ifdefs in favor of new is_cppi_enabled() macro.
- Trim some tx-start logic, inlining it and removing MGC_{Read,Write}Csr16()
- Remove remnant of bogus/non-existent host-side ISO bitfield.
For upstream merging, more such #ifdeffery still needs to be removed.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
David Brownell [Thu, 28 Sep 2006 14:46:12 +0000 (17:46 +0300)]
musb_hdrc: DaVinci-specific updates and cleanups
- Add header needed for DaVinci build.
- Remove some partially obsolete comments.
- Cleaner and more reproducible host side VBUS handling, including
waiting for it to fall after powerdown on rmmod.
- Tighten up various state machine transitions and diagnostics
Plus removing some generic #ifdeffery. The vbus updates make it work more like
the TUSB code, and the cleanups etc make upstream merging more practical.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
David Brownell [Thu, 28 Sep 2006 14:45:20 +0000 (17:45 +0300)]
musb_hdrc: add heuristic to make ethernet peripherals use RNDIS RX mode
When you're willing to trust the USB host not to commit certain errors, the
CPPI "rndis" RX mode can be used with the peripheral side g_ether driver.
(In other cases, rndis rx mode tends to misbehave _very_ rudely ...)
This patch adds a heuristic to detect when the safe scenario is likely, and
a module parameter to disable the heuristic in contexts when it's likely
to fail; for example, users of gadgetfs will likely need to disable it.
This gave about a 60% improvement in throughput with CDC Ethernet (!!) and a
slight reduction in CPU load. That's measured with TTCP, which pushes a lot
of full size Ethernet frames and thus can see three IRQs per packet reduced
to just one, and also get I/O overlap when double buffering packets. That is,
net 10 MByte/sec sustained, using double buffering but no DMA transfer queues;
it's unclear why TX is still just 6 MByte/sec.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Komal Shah [Thu, 28 Sep 2006 14:10:49 +0000 (17:10 +0300)]
[PATCH] ARM: OMAP: Remove <linux/config.h>
<linux/config.h> automatically gets included by kbuild
Signed-off-by: Komal Shah <komal_shah802003@yahoo.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
andrzej zaborowski [Thu, 28 Sep 2006 14:04:22 +0000 (17:04 +0300)]
[PATCH] ARM: OMAP: Palm Tungsten E board update
General update of the board file for Palm Tungsten E. Registers the
platform devices contained in the PDA (ROM chip, keypad, infra-red)
and updates the configuration for USB and MMC, whose config values
were previously guessed in most cases due to lack of documentation
(and now are confirmed by a number of users). Macros for GPIO pins are
moved to a file in include/asm-arm/arch-omap.
Signed-off-by: Andrzej Zaborowski <balrog@zabor.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
andrzej zaborowski [Thu, 28 Sep 2006 13:58:34 +0000 (16:58 +0300)]
[PATCH] ARM: OMAP: correct misc 15xx and non-15xx platform code
Disable accesses to SOFT_REQ_REG2 and ULPD_SOFT_DISABLE_REQ_REG
registers for 15xx processors that don't have these registers. Enable
level 2 interrupt handler for processors that identify as OMAP 15xx
(e.g 310) and not 1510 specifically. Also fix the following compiler
warning (only visible with CONFIG_OMAP_RESET_CLOCKS):
arch/arm/mach-omap1/clock.c: In function 'omap1_clk_disable_unused':
arch/arm/mach-omap1/clock.c:634: warning: 'return' with a value, in
function returning void
Signed-off-by: Andrzej Zaborowski <balrog@zabor.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Tony Lindgren [Thu, 28 Sep 2006 13:54:07 +0000 (16:54 +0300)]
Merge source.mvista.com:/home/git/linux-omap-2.6
Juha Yrjola [Mon, 25 Sep 2006 23:26:42 +0000 (02:26 +0300)]
ARM: OMAP2: Add DMA IRQ sanity checks
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Mon, 25 Sep 2006 23:24:22 +0000 (02:24 +0300)]
ARM: OMAP2: Force APLLs always active
The APLLs are most efficiently idled by hardware.
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Mon, 25 Sep 2006 23:22:18 +0000 (02:22 +0300)]
ARM: OMAP2: Place SMS and SDRC into smart idle mode
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Mon, 25 Sep 2006 20:04:31 +0000 (23:04 +0300)]
ARM: OMAP: DSPGW: Deferred dsp initializtion
DSP HW-related initialization is deferred until the first DSP device
node is opened. This allows us to keep DSP powered down before the
DSP SW is loaded.
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Mon, 25 Sep 2006 20:04:30 +0000 (23:04 +0300)]
ARM: OMAP: DSPGW: fix build warning
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Mon, 25 Sep 2006 18:32:37 +0000 (21:32 +0300)]
ARM: OMAP: DSPGW: mailbox build fix
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Tony Lindgren [Mon, 25 Sep 2006 10:33:46 +0000 (13:33 +0300)]
ARM: OMAP: Sync timer32k code with mainline
Sync timer32k code with mainline
Signed-off-by: Tony Lindgren <tony@atomide.com>
Tony Lindgren [Mon, 25 Sep 2006 10:04:32 +0000 (13:04 +0300)]
ARM: OMAP: Sync clock code with mainline
These can be static now that CONFIG_OMAP_RESET_CLOCKS
is rearranged.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:47 +0000 (17:41 +0300)]
ARM: OMAP: DSPGW: Peripheral (kfunc) control, Nokia770-specific
Nokia770-specific part
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:46 +0000 (17:41 +0300)]
ARM: OMAP: DSPGW: Peripheral (kfunc) control
DSP needs to control some board-specific peripheral devices (GPT,
audio, mbox, etc.) through dspgw kfunc commands.
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:45 +0000 (17:41 +0300)]
ARM: OMAP: DSPGW: Fix deadlock
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:44 +0000 (17:41 +0300)]
ARM: OMAP: DSPGW: Use device model
- use device model for IRQ detection.
- use "dsp_device" as a pointer for "struct device"
- some whitespaces are cleaned up.
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:43 +0000 (17:41 +0300)]
ARM: OMAP: mailbox restructure: omap2 specific parts
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:42 +0000 (17:41 +0300)]
ARM: OMAP: mailbox restructure: omap1 specific parts
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:41 +0000 (17:41 +0300)]
ARM: OMAP: mailbox restructure
Mailbox is restructured as below:
- OMAP1 and OMAP2 parts split out to mach-omap[1-2] respectively.
- struct mbx isolation
- Introduced device model
- Added class interface
Moved omap[1,2] specific parts in mach-omap[1,2]/
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:40 +0000 (17:41 +0300)]
ARM: OMAP: DSPGW: mailbox log cleanup
mailbox log small clean-up
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:39 +0000 (17:41 +0300)]
ARM: OMAP: DSPGW: set autoidle for dsp and mailbox
Add dsp clock autoidle(DSP_FCLK, DSP_ICLK, INT_D_FCLK, INT_D_ICLK).
which are controled together by auto-control mode.
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:38 +0000 (17:41 +0300)]
ARM: OMAP: DSPGW: rename mbx -> mbox
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Hiroshi DOYU [Thu, 21 Sep 2006 14:41:37 +0000 (17:41 +0300)]
ARM: OMAP: DSPGW: cleanup
- cleanup whitespaces
- fix some build errors
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Toshihiro Kobayashi [Thu, 21 Sep 2006 14:41:36 +0000 (17:41 +0300)]
ARM: OMAP: DSPGW: DSP Gateway driver 3.3.1
Here's the patch that updates DSP Gateway driver to 3.3.1, that
supports omap2 DSP. It also contains generic mailbox interface
considering IVA use on 2420, but this patch itself doesn't contain any
IVA driver.
Regarding omap2, this code is tested only on our 2420 custom board, so
feedbacks from testing on other chips / boards will be greatly
appreciated.
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Thu, 21 Sep 2006 15:29:26 +0000 (18:29 +0300)]
ARM: OMAP: Add sanity check to clk_disable
BUG() if the clock use count is already zero.
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Thu, 21 Sep 2006 15:25:42 +0000 (18:25 +0300)]
ARM: OMAP2: Keep both APLLs active during bootup
Enabling and disabling the 54 MHz and 96 MHz APLLs can happen
unnecessarily often during bootup. Make sure they're kept
enabled during init.
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Thu, 21 Sep 2006 15:19:06 +0000 (18:19 +0300)]
ARM: OMAP2: Make sure peripherals can be accessed after clk_enable
Some peripherals seem to need additional delay until they
can actually be accessed after enabling their FCLK and ICLK.
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Juha Yrjola [Thu, 14 Sep 2006 11:40:09 +0000 (14:40 +0300)]
ARM: OMAP: Add support for forcing osc_ck on
Some boards might use the oscillator clock for powering
external peripherals. Add support for making sure osc_ck
stays active even when trying to go to sleep.
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
David Cohen [Thu, 21 Sep 2006 13:51:54 +0000 (16:51 +0300)]
Menelaus: Fix voltage values for VMEM
Signed-off-by: David Cohen <david.cohen@indt.org.br>
Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Tony Lindgren [Wed, 20 Sep 2006 16:33:10 +0000 (19:33 +0300)]
Merge with /home/tmlind/src/kernel/linux-2.6
Tony Lindgren [Wed, 20 Sep 2006 12:11:24 +0000 (15:11 +0300)]
ARM: Fix typo in ARM11 DCC
Fix typo in ARM11 DCC
Signed-off-by: Tony Lindgren <tony@atomide.com>
Tony Lindgren [Wed, 13 Sep 2006 07:58:47 +0000 (10:58 +0300)]
ARM: DCC debug console support for ARM11
Adds support for CONFIG_DEBUG_ICEDCC for ARM11.
Tested on ARM1136 (OMAP2420).
Signed-off-by: Tony Lindgren <tony@atomide.com>
Linus Torvalds [Wed, 20 Sep 2006 03:42:06 +0000 (20:42 -0700)]
Linux v2.6.18. Arrr!
Ahoy, all land-lubbers, test me out right smartly!
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Wed, 20 Sep 2006 03:36:22 +0000 (20:36 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[IPV4] fib_trie: missing ntohl() when calling fib_semantic_match()
[NETFILTER]: xt_quota: add missing module aliases
[ATM]: [he] don't hold the device lock when upcalling
Al Viro [Tue, 19 Sep 2006 20:42:46 +0000 (13:42 -0700)]
[IPV4] fib_trie: missing ntohl() when calling fib_semantic_match()
fib_trie.c::check_leaf() passes host-endian where fib_semantic_match()
expects (and stores into) net-endian.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Patrick McHardy [Tue, 19 Sep 2006 20:00:57 +0000 (13:00 -0700)]
[NETFILTER]: xt_quota: add missing module aliases
Add missing aliases for ipt_quota and ip6t_quota to make autoload
work.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Chas Williams [Tue, 19 Sep 2006 19:59:11 +0000 (12:59 -0700)]
[ATM]: [he] don't hold the device lock when upcalling
This can create a deadlock/lock ordering problem with other layers
that want to use the transmit (or other) path of the card at that
time.
Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
Linus Torvalds [Tue, 19 Sep 2006 16:46:53 +0000 (09:46 -0700)]
Merge branch 'fixes' of git://git.linux-nfs.org/pub/linux/nfs-2.6
* 'fixes' of git://git.linux-nfs.org/pub/linux/nfs-2.6:
NFS: Fix nfs_page use after free issues in fs/nfs/write.c
NFSv4: Fix incorrect semaphore release in _nfs4_do_open()
NFS: Fix Oopsable condition in nfs_readpage_sync()
Trond Myklebust [Tue, 19 Sep 2006 03:20:35 +0000 (23:20 -0400)]
NFS: Fix nfs_page use after free issues in fs/nfs/write.c
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Trond Myklebust [Fri, 15 Sep 2006 12:11:51 +0000 (08:11 -0400)]
NFSv4: Fix incorrect semaphore release in _nfs4_do_open()
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Trond Myklebust [Fri, 15 Sep 2006 20:03:45 +0000 (16:03 -0400)]
NFS: Fix Oopsable condition in nfs_readpage_sync()
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Linus Torvalds [Tue, 19 Sep 2006 15:15:22 +0000 (08:15 -0700)]
Revert mmiocfg heuristics and blacklist changes
This reverts commits
11012d419cfc0e0f78ca356aca03674217910124 and
40dd2d20f220eda1cd0da8ea3f0f9db8971ba237, which allowed us to use the
MMIO accesses for PCI config cycles even without the area being marked
reserved in the e820 memory tables.
Those changes were needed for EFI-environment Intel macs, but broke some
newer Intel 965 boards, so for now it's better to revert to our old
2.6.17 behaviour and at least avoid introducing any new breakage.
Andi Kleen has a set of patches that work with both EFI and the broken
Intel 965 boards, which will be applied once they get wider testing.
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Edgar Hucek <hostmaster@ed-soft.at>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Tue, 19 Sep 2006 15:01:58 +0000 (08:01 -0700)]
Merge git://git.infradead.org/mtd-2.6
* git://git.infradead.org/mtd-2.6:
[MTD] Use SEEK_{SET,CUR,END} instead of hardcoded values in mtdchar lseek()
MTD: Fix bug in fixup_convert_atmel_pri
[JFFS2][SUMMARY] Fix a summary collecting bug.
[PATCH] [MTD] DEVICES: Fill more device IDs in the structure of m25p80
MTD: Add lock/unlock operations for Atmel AT49BV6416
MTD: Convert Atmel PRI information to AMD format
fs/jffs2/xattr.c: remove dead code
[PATCH] [MTD] Maps: Add dependency on alternate probe methods to physmap
[PATCH] MTD: Add Macronix MX29F040 to JEDEC
[MTD] Fixes of performance and stability issues in CFI driver.
block2mtd.c: Make kernel boot command line arguments work (try 4)
[MTD NAND] Fix lookup error in nand_get_flash_type()
remove #error on !PCI from pmc551.c
MTD: [NAND] Fix the sharpsl driver after breakage from a core conversion
[MTD] NAND: OOB buffer offset fixups
make fs/jffs2/nodelist.c:jffs2_obsolete_node_frag() static
[PATCH] [MTD] NAND: fix dead URL in Kconfig
Dave Kleikamp [Tue, 19 Sep 2006 03:12:33 +0000 (20:12 -0700)]
[PATCH] EXT2: Remove superblock lock contention in ext2_statfs
Fix a performance degradation introduced in 2.6.17. (30% degradation
running dbench with 16 threads)
Commit
21730eed11de42f22afcbd43f450a1872a0b5ea1, which claims to make
EXT2_DEBUG work again, moves the taking of the kernel lock out of
debug-only code in ext2_count_free_inodes and ext2_count_free_blocks and
into ext2_statfs.
The same problem was fixed in ext3 by removing the lock completely (commit
5b11687924e40790deb0d5f959247ade82196665)
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Matthew Wilcox [Tue, 19 Sep 2006 03:12:27 +0000 (20:12 -0700)]
[PATCH] headers_check: Clean up asm-parisc/page.h for user headers
Remove definitions of PAGE_* from the user view
Delete unnecessary comments referring to the size of pages
Only include <asm-generic> if we're in __KERNEL__
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Geert Uytterhoeven [Tue, 19 Sep 2006 03:12:23 +0000 (20:12 -0700)]
[PATCH] Fix 'make headers_check' on ia64
Fix 'make headers_check' on m68k
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David Woodhouse [Tue, 19 Sep 2006 03:12:19 +0000 (20:12 -0700)]
[PATCH] Add headers_check' target to output of 'make help'
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ingo Molnar [Tue, 19 Sep 2006 09:14:34 +0000 (11:14 +0200)]
[PATCH] genirq core: fix handle_level_irq()
while porting the -rt tree to 2.6.18-rc7 i noticed the following
screaming-IRQ scenario on an SMP system:
2274 0Dn.:1 0.001ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.010ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.020ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.029ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.039ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.048ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.058ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.068ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.077ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.087ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
2274 0Dn.:1 0.097ms: do_IRQ+0xc/0x103 <= (ret_from_intr+0x0/0xf)
as it turns out, the bug is caused by handle_level_irq(), which if it
races with another CPU already handling this IRQ, it _unmasks_ the IRQ
line on the way out. This is not how 2.6.17 works, and we introduced
this bug in one of the early genirq cleanups right before it went into
-mm. (the bug was not in the genirq patchset for a long time, and we
didnt notice the bug due to the lack of -rt rebase to the new genirq
code. -rt, and hardirq-preemption in particular opens up such races much
wider than anything else.)
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Mon, 18 Sep 2006 23:20:40 +0000 (16:20 -0700)]
x86: save/restore eflags in context switch
(And reset it on new thread creation)
It turns out that eflags is important to save and restore not just
because of iopl, but due to the magic bits like the NT bit, which we
don't want leaking between different threads.
Tested-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Mon, 18 Sep 2006 23:16:05 +0000 (16:16 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[ATM] CLIP: Do not refer freed skbuff in clip_mkip().
[NET]: Drop tx lock in dev_watchdog_up
[PACKET]: Don't truncate non-linear skbs with mmaped IO
[NET]: Mark frame diverter for future removal.
[NETFILTER]: Add secmark headers to header-y
[ATM]: linux-atm-general mailing list is subscribers only
[ATM]: [he] when transmit fails, unmap the dma regions
[TCP] tcp-lp: update information to MAINTAINERS
[TCP] tcp-lp: bug fix for oops in 2.6.18-rc6
[BRIDGE]: random extra bytes on STP TCN packet
[IPV6]: Accept -1 for IPV6_TCLASS
[IPV6]: Fix tclass setting for raw sockets.
[IPVS]: remove the debug option go ip_vs_ftp
[IPVS]: Make sure ip_vs_ftp ports are valid
[IPVS]: auto-help for ip_vs_ftp
[IPVS]: Document the ports option to ip_vs_ftp in kernel-parameters.txt
[TCP]: Turn ABC off.
[NEIGH]: neigh_table_clear() doesn't free stats
Linus Torvalds [Mon, 18 Sep 2006 23:15:40 +0000 (16:15 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
[SPARC]: Fix regression in sys_getdomainname()
[OPENPROMIO]: Handle current_node being NULL correctly.
Linus Torvalds [Mon, 18 Sep 2006 23:15:16 +0000 (16:15 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] 3815/1: headers_install support for ARM
[ARM] 3794/1: S3C24XX: do not defined set_irq_wake when no CONFIG_PM
[ARM] 3793/1: S3C2412: fix wrong serial info struct
[ARM] 3780/1: Fix iop321 cpuid
[ARM] 3786/1: pnx4008: update defconfig
[ARM] 3785/1: S3C2412: Fix idle code as default uses wrong clocks
[ARM] 3784/1: S3C2413: fix config for MACH_S3C2413/MACH_SMDK2413
Ralph Siemsen [Mon, 18 Sep 2006 15:28:50 +0000 (16:28 +0100)]
[ARM] 3815/1: headers_install support for ARM
Move kernel-only #includes into #ifdef __KERNEL__, so that
headers_install target can be used on ARM.
Signed-off-by: Ralph Siemsen <ralphs@netwinder.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Andy Walker [Mon, 18 Sep 2006 14:11:36 +0000 (07:11 -0700)]
[SPARC]: Fix regression in sys_getdomainname()
This patch corrects the buffer length checking in the
sys_getdomainname() implementation for sparc/sparc64.
Signed-off-by: Andy Walker <andy@puszczka.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
YOSHIFUJI Hideaki [Mon, 18 Sep 2006 13:37:58 +0000 (06:37 -0700)]
[ATM] CLIP: Do not refer freed skbuff in clip_mkip().
In clip_mkip(), skb->dev is dereferenced after clip_push(),
which frees up skb.
Advisory: AD_LAB-06009 (<adlab@venustech.com.cn>).
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Ben Dooks [Mon, 18 Sep 2006 12:30:20 +0000 (13:30 +0100)]
[ARM] 3794/1: S3C24XX: do not defined set_irq_wake when no CONFIG_PM
Patch from Ben Dooks
Do not define set_irq_wake as a real function if
the CONFIG_PM option is not set.
Fixes bug reported by Thomas Gleixner.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Ben Dooks [Mon, 18 Sep 2006 12:30:17 +0000 (13:30 +0100)]
[ARM] 3793/1: S3C2412: fix wrong serial info struct
Patch from Ben Dooks
The S3C2440 serial info struct is being passed
through the S3C2412 serial info struct probe
routine.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Thomas Glexiner <tglx@linutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Juha Yrjola [Mon, 18 Sep 2006 10:35:47 +0000 (13:35 +0300)]
Merge 65.200.49.170:linux-omap
Juha Yrjola [Mon, 18 Sep 2006 10:39:10 +0000 (03:39 -0700)]
Merge branch 'master' of /home/git/linux-omap-2.6
David S. Miller [Mon, 18 Sep 2006 08:47:13 +0000 (01:47 -0700)]
[OPENPROMIO]: Handle current_node being NULL correctly.
If the user tries to traverse to the next node of the
last node, we get NULL in current_node and a zero phandle
returned. That's fine, but if the user tries to obtain
properties in that state, we try to dereference a NULL
pointer in the downcall to the of_*() routines.
So protect against that.
Signed-off-by: David S. Miller <davem@davemloft.net>
Herbert Xu [Mon, 18 Sep 2006 07:22:30 +0000 (00:22 -0700)]
[NET]: Drop tx lock in dev_watchdog_up
Fix lockdep warning with GRE, iptables and Speedtouch ADSL, PPP over ATM.
On Sat, Sep 02, 2006 at 08:39:28PM +0000, Krzysztof Halasa wrote:
>
> =======================================================
> [ INFO: possible circular locking dependency detected ]
> -------------------------------------------------------
> swapper/0 is trying to acquire lock:
> (&dev->queue_lock){-+..}, at: [<
c02c8c46>] dev_queue_xmit+0x56/0x290
>
> but task is already holding lock:
> (&dev->_xmit_lock){-+..}, at: [<
c02c8e14>] dev_queue_xmit+0x224/0x290
>
> which lock already depends on the new lock.
This turns out to be a genuine bug. The queue lock and xmit lock are
intentionally taken out of order. Two things are supposed to prevent
dead-locks from occuring:
1) When we hold the queue_lock we're supposed to only do try_lock on the
tx_lock.
2) We always drop the queue_lock after taking the tx_lock and before doing
anything else.
>
> the existing dependency chain (in reverse order) is:
>
> -> #1 (&dev->_xmit_lock){-+..}:
> [<
c012e7b6>] lock_acquire+0x76/0xa0
> [<
c0336241>] _spin_lock_bh+0x31/0x40
> [<
c02d25a9>] dev_activate+0x69/0x120
This path obviously breaks assumption 1) and therefore can lead to ABBA
dead-locks.
I've looked at the history and there seems to be no reason for the lock
to be held at all in dev_watchdog_up. The lock appeared in day one and
even there it was unnecessary. In fact, people added __dev_watchdog_up
precisely in order to get around the tx lock there.
The function dev_watchdog_up is already serialised by rtnl_lock since
its only caller dev_activate is always called under it.
So here is a simple patch to remove the tx lock from dev_watchdog_up.
In 2.6.19 we can eliminate the unnecessary __dev_watchdog_up and
replace it with dev_watchdog_up.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
David Brownell [Mon, 18 Sep 2006 07:08:08 +0000 (10:08 +0300)]
MUSB: TUSB peripheral connection bugfix
When booting with a USB Mini-B connecting TUSB to a host, the peripheral
will agin notice the connection and let the host enumerate it.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Patrick McHardy [Mon, 18 Sep 2006 06:59:57 +0000 (23:59 -0700)]
[PACKET]: Don't truncate non-linear skbs with mmaped IO
Non-linear skbs are truncated to their linear part with mmaped IO.
Fix by using skb_copy_bits instead of memcpy.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Acked-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stephen Hemminger [Thu, 14 Sep 2006 04:13:54 +0000 (21:13 -0700)]
[NET]: Mark frame diverter for future removal.
The code for frame diverter is unmaintained and has bitrotted.
The number of users is very small and the code has lots of problems.
If anyone is using it, they maybe exposing themselves to bad packet attacks.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
James Morris [Thu, 14 Sep 2006 04:04:55 +0000 (21:04 -0700)]
[NETFILTER]: Add secmark headers to header-y
This patch includes xt_SECMARK.h and xt_CONNSECMARK.h to the kernel
headers which are exported via 'make headers_install'. This is needed to
allow userland code to be built correctly with these features.
Please apply, and consider for inclusion with 2.6.18 as a bugfix.
Signed-off-by: James Morris <jmorris@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Roland Dreier [Thu, 14 Sep 2006 03:39:33 +0000 (20:39 -0700)]
[ATM]: linux-atm-general mailing list is subscribers only
As the automated reply I got to my last ATM patch shows, the
linux-atm-general mailing list is subscribers-only.
Signed-off-by: Roland Dreier <roland@digitalvampire.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Chas Williams [Thu, 14 Sep 2006 03:33:40 +0000 (20:33 -0700)]
[ATM]: [he] when transmit fails, unmap the dma regions
Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
Wong Hoi Sing Edison [Thu, 14 Sep 2006 03:31:13 +0000 (20:31 -0700)]
[TCP] tcp-lp: update information to MAINTAINERS
Signed-off-by: Wong Hoi Sing Edison <hswong3i@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Wong Hoi Sing Edison [Thu, 14 Sep 2006 03:30:30 +0000 (20:30 -0700)]
[TCP] tcp-lp: bug fix for oops in 2.6.18-rc6
Sorry that the patch submited yesterday still contain a small bug.
This version have already been test for hours with BT connections. The
oops is now difficult to reproduce.
Signed-off-by: Wong Hoi Sing Edison <hswong3i@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stephen Hemminger [Thu, 14 Sep 2006 03:12:40 +0000 (20:12 -0700)]
[BRIDGE]: random extra bytes on STP TCN packet
We seem to send 3 extra bytes in a TCN, which will be whatever happens
to be on the stack. Thanks to Aji_Srinivas@emc.com for seeing.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Remi Denis-Courmont [Thu, 14 Sep 2006 03:08:07 +0000 (20:08 -0700)]
[IPV6]: Accept -1 for IPV6_TCLASS
This patch should add support for -1 as "default" IPv6 traffic class,
as specified in IETF RFC3542 ยง6.5. Within the kernel, it seems tclass
< 0 is already handled, but setsockopt, getsockopt and recvmsg calls
won't accept it from userland.
Signed-off-by: Remi Denis-Courmont <rdenis@simphalempin.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
YOSHIFUJI Hideaki [Thu, 14 Sep 2006 03:01:28 +0000 (20:01 -0700)]
[IPV6]: Fix tclass setting for raw sockets.
np->cork.tclass is used only in cork'ed context.
Otherwise, np->tclass should be used.
Bug#7096 reported by Remi Denis-Courmont <rdenis@simphalempin.com>.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Simon Horman [Thu, 14 Sep 2006 02:59:23 +0000 (19:59 -0700)]
[IPVS]: remove the debug option go ip_vs_ftp
This patch makes the debuging behaviour of this code more consistent
with the rest of IPVS.
Signed-Off-By: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Simon Horman [Thu, 14 Sep 2006 02:58:44 +0000 (19:58 -0700)]
[IPVS]: Make sure ip_vs_ftp ports are valid
I'm not entirely sure what happens in the case of a valid port,
at best it'll be silently ignored. This patch ignores them a little
more verbosely.
Signed-Off-By: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Simon Horman [Thu, 14 Sep 2006 02:57:54 +0000 (19:57 -0700)]
[IPVS]: auto-help for ip_vs_ftp
Fill in a help message for the ports option to ip_vs_ftp
Signed-Off-By: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Simon Horman [Thu, 14 Sep 2006 02:57:18 +0000 (19:57 -0700)]
[IPVS]: Document the ports option to ip_vs_ftp in kernel-parameters.txt
I'm not sure if documenting this here is appropriate, but
if it is, here is some text to put there.
Signed-Off-By: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stephen Hemminger [Thu, 14 Sep 2006 02:51:02 +0000 (19:51 -0700)]
[TCP]: Turn ABC off.
Turn Appropriate Byte Count off by default because it unfairly
penalizes applications that do small writes. Add better documentation
to describe what it is so users will understand why they might want to
turn it on.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Kirill Korotaev [Fri, 1 Sep 2006 08:34:10 +0000 (01:34 -0700)]
[NEIGH]: neigh_table_clear() doesn't free stats
neigh_table_clear() doesn't free tbl->stats.
Found by Alexey Kuznetsov. Though Alexey considers this
leak minor for mainstream, I still believe that cleanup
code should not forget to free some of the resources :)
At least, this is critical for OpenVZ with virtualized
neighbour tables.
Signed-Off-By: Kirill Korotaev <dev@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Josef 'Jeff' Sipek [Sun, 17 Sep 2006 01:09:29 +0000 (21:09 -0400)]
[MTD] Use SEEK_{SET,CUR,END} instead of hardcoded values in mtdchar lseek()
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Jeff Garzik [Sun, 17 Sep 2006 05:05:43 +0000 (01:05 -0400)]
Merge branch 'master' into upstream-fixes
Frank Pavlic [Fri, 15 Sep 2006 14:27:02 +0000 (16:27 +0200)]
[PATCH] s390: qeth driver fixes [6/6]
[PATCH 9/9] s390: qeth driver fixes [6/6]
From: Frank Pavlic <fpavlic@de.ibm.com>
- Hipersockets has no IPV6 support, thus prevent issueing
SETRTG_IPV6 control commands on Hipersockets devices.
- fixed error handling in qeth_sysfs_(un)register
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Frank Pavlic [Fri, 15 Sep 2006 14:26:52 +0000 (16:26 +0200)]
[PATCH] s390: qeth driver fixes [5/6]
[PATCH 8/9] s390: qeth driver fixes [5/6]
From: Frank Pavlic <fpavlic@de.ibm.com>
fix kernel panic in qdio queue handling.
qeth_qdio_clear_card() could be invoked by 2 CPUs
simultaneously (for example reboot event and recovery).
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Frank Pavlic [Fri, 15 Sep 2006 14:26:34 +0000 (16:26 +0200)]
[PATCH] s390: qeth driver fixes [4/6]
[PATCH 7/9] s390: qeth driver fixes [4/6]
From: Frank Pavlic <fpavlic@de.ibm.com>
- fix kernel crash due to race,
set card->state to SOFTSETUP after
card and card->dev are initialized properly.
- remove CONFIG_QETH_PERF_STATS, use sysfs attribute instead,
as we want to have the ability to turn on/off the
statistics at runtime.
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Frank Pavlic [Fri, 15 Sep 2006 14:26:19 +0000 (16:26 +0200)]
[PATCH] s390: qeth driver fixes [3/6]
[PATCH 6/9] s390: qeth driver fixes [3/6]
From: Frank Pavlic <fpavlic@de.ibm.com>
fixed kernel panic caused by qeth driver:
Using a bonding device qeth driver will realloc
headroom for every skb coming from the bond device.
Once this happens qeth frees the original skb and
set the skb pointer to the new realloced skb.
Under heavy transmit workload (e.g.UDP streams) through bond
network device the qdio output queue might get full.
In this case we return with EBUSY from qeth_send_packet.
Returning to qeth_hard_start_xmit routine
the skb address on the stack still points to the old address,
which has been freed before.
Returning from qeth_hard_start_xmit with EBUSY results in
requeuing the skb. In this case it corrupts the qdisc queue
and results in kernel panic.
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Frank Pavlic [Fri, 15 Sep 2006 14:26:07 +0000 (16:26 +0200)]
[PATCH] s390: qeth driver fixes [2/6]
[PATCH 5/9] s390: qeth driver fixes [2/6]
From: Frank Pavlic <fpavlic@de.ibm.com>
- fixed error handling in create_device_attributes
- fixed some minor bugs in IPv4
and IPv6 address checking
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Frank Pavlic [Fri, 15 Sep 2006 14:25:56 +0000 (16:25 +0200)]
[PATCH] s390: qeth driver fixes [1/6]
[PATCH 4/9] s390: qeth driver fixes [1/6]
From: Frank Pavlic <fpavlic@de.ibm.com>
- Drop incoming packets with vlan_tag set
if card->vlangrp is not set.
- use always vlan_hwaccel_rx to pass
vlan frames to the stack.
- fix recovery problem. Device was recovered
properly but still not working.
netif_carrier_on call right before
recovery start fixes it.
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Frank Pavlic [Fri, 15 Sep 2006 14:25:39 +0000 (16:25 +0200)]
[PATCH] s390: Makefile cleanup
[PATCH 3/9] s390: Makefile cleanup
From: Frank Pavlic <fpavlic@de.ibm.com>
remove CONFIG_MPC from Makefile which was
introduced accidently in the past.
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Frank Pavlic [Fri, 15 Sep 2006 14:25:19 +0000 (16:25 +0200)]
[PATCH] s390: netiucv driver fixes
[PATCH 2/9] s390: netiucv driver fixes
From: Frank Pavlic <fpavlic@de.ibm.com>
- missing lock initialization added
- avoid duplicate iucv-interfaces to the same peer
- rw-lock added for manipulating the list of
defined iucv connections
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Frank Pavlic [Fri, 15 Sep 2006 14:25:03 +0000 (16:25 +0200)]
[PATCH] s390: minor s390 network driver fixes
Hi Jeff,
this is a RESEND of the nine s390 network driver patches.
I finally found that my kmail corrupted almost every patch
I sent the last time. Please apply these 9 patches and forget
about my first attempt! Sorry for the delay, I had some fights
with sendmail, IMAP and mutt configuration.
Frank
[RESEND PATCH 1/9] s390: minor s390 network driver fixes
From: Frank Pavlic <fpavlic@de.ibm.com>
- iucv driver:
use do { } while (0) constructs
instead of empty defines to avoid compile bugs.
- ctc driver:
missing lock initialization added
- lcs driver:
BUG_ON usage was removed accidently
with the last lcs patch.
Put them back in place.
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>