summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2007-01-23mv643xx_eth: Fix race condition in mv643xx_eth_free_tx_descsDale Farnsworth
mv643xx_eth: Fix race condition in mv643xx_eth_free_tx_descs This bug was found and isolated by Thibaut VARENE <T-Bone@parisc-linux.org> and Jarek Poplawski <jarkao2@o2.pl>. This patch is a modification of their fixes. We acquire and release the lock for each descriptor that is freed to minimize the time the lock is held. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23s2io bogus memsetAl Viro
memset() after kmalloc() on size * 8 would better be on size * 8, not just size; fixed by switching to kcalloc() - it's more idiomatic anyway. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23NetXen: Use pci_register_driver() instead of pci_module_init() in init_moduleAmit S. Kale
This will use pci_register_driver() instead of pci_module_init(). Signed-off-by: Amit S. Kale <amitkale@netxen.com> Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23NetXen: Firmware check modificationsAmit S. Kale
This patch is to make the driver work with multiple minor firmware versions Signed-off-by: Amit S. Kale <amitkale@netxen.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23ehea: Fixed possible nullpointer accessThomas Klein
Fixed possible nullpointer access in event queue processing Signed-off-by: Thomas Klein <tklein@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23ehea: Added logging off associated errorsThomas Klein
Added logging of error events associated with a specific queue pair Signed-off-by: Thomas Klein <tklein@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23ehea: Improved logging of permission issuesThomas Klein
Disabled dump of hcall regs on some permission issues and fixed appropriate misleading logmessages Signed-off-by: Thomas Klein <tklein@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23ehea: New method to determine number of available portsThomas Klein
Count OFDT nodes to determine the number of available ports instead of using the possibly outdated value from the hypervisor Signed-off-by: Thomas Klein <tklein@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23ehea: Modified initial autoneg state determinationThomas Klein
Logical partitions are not allowed to (try to) set the autonegotiation status. This patch removes the respective function call from the port setup function. Signed-off-by: Thomas Klein <tklein@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23ehea: Fixing firmware queue config issueThomas Klein
Fix to use exactly one queue for incoming packets in all firmware configurations Signed-off-by: Thomas Klein <tklein@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23ehea: Fixed wrong dereferencationThomas Klein
Not only check the pointer against 0 but also the dereferenced value Signed-off-by: Thomas Klein <tklein@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23PHY: Export phy ethtool helpersKumar Gala
We need to export phy_ethtool_gset and phy_ethtool_sset to allow drivers that use these functions to be built as modules. Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-23modify 3c589_cs to be SMP safeKomuro
1. EL3WINDOW is always 1 when lock is not held. 2. The second argument of el3_interrupt is 'void *dev_id', not 'struct el3_private *lp'. Signed-off-by: komurojun-mbn@nifty.com Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-22Merge branch 'upstream-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: ocfs2: Add backup superblock info to ocfs2_fs.h ocfs2: cleanup ocfs2_iget() errors ocfs2: Directory c/mtime update fixes ocfs2: Don't print errors when following symlinks
2007-01-22Merge branch 'upstream-linus' of ↵Linus Torvalds
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: sis190: failure to set the MAC address from EEPROM Fix phy_read/write redefinition errors in ucc_geth_phy.c Update ucc_geth.c for new workqueue structure myri10ge: update driver version to 1.2.0 myri10ge: check that we can get an irq myri10ge: make wc_fifo usage load-time tunable 8139cp: Don't blindly enable interrupts [PATCH] bcm43xx: Fix failure to deliver PCI-E interrupts
2007-01-22Merge branch 'upstream-linus' of ↵Linus Torvalds
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_mv HighPoint 2310 support (88SX7042) libata: fix handling of port actions in per-dev action mask libata: initialize qc->dma_dir to DMA_NONE sata_via: add PCI ID 0x5337 libata doc: "error : unterminated entity reference exceptions"
2007-01-22Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6Linus Torvalds
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (30 commits) [SCSI] qla1280: set residual correctly [SCSI] fusion: bump version [SCSI] fusion: MODULE_VERSION support [SCSI] fusion: power pc and miscellaneous bug fixs [SCSI] fusion: fibre channel: return DID_ERROR for MPI_IOCSTATUS_SCSI_IOC_TERMINATED [SCSI] megaraid_sas: Update module author [SCSI] 3ware 8000 serialize reset code [SCSI] sr: fix error code check in sr_block_ioctl() [SCSI] scsi: lpfc error path fix [SCSI] aacraid: Product List Update [SCSI] libiscsi: fix senselen calculation [SCSI] iscsi: simplify IPv6 and IPv4 address printing [SCSI] iscsi: newline in printk [SCSI] iscsi: fix crypto_alloc_hash() error check [SCSI] iscsi: fix 2.6.19 data digest calculation bug [SCSI] scsi_scan: fix report lun problems with CDROM or RBC devices [SCSI] qla2xxx: Update version number to 8.01.07-k4. [SCSI] qla2xxx: Use generic isp_ops.fw_dump() function. [SCSI] qla2xxx: Perform a fw-dump when an ISP23xx RISC-paused state is detected. [SCSI] qla2xxx: Correct reset handling logic. ...
2007-01-22Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: hid-core.c: Adds GTCO CalComp Interwrite IPanel PIDs to blacklist HID: put usb_interface instead of usb_device into hid->dev to fix udevinfo breakage HID: add missing RX, RZ and RY enum values to hid-debug output HID: hid/hid-input.c doesn't need to include linux/usb/input.h HID: compilation fix when DEBUG_DATA is defined HID: proper LED-mapping for SpaceNavigator HID: update MAINTAINERS entry for USB-HID HID: GEYSER4_ISO needs quirk HID: fix some ARM builds due to HID brokenness - make USB_HID depend on INPUT
2007-01-22Merge branch 'merge' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] Update defconfigs [POWERPC] atomic_dec_if_positive sign extension fix [POWERPC] Fix OF node refcnt underflow in 836x and 832x platform code [POWERPC] Make it blatantly clear; mpc5200 device tree is not yet stable [POWERPC] Fix broken DMA on non-LPAR pSeries [POWERPC] Fix cell's mmio nvram to properly parse device tree [POWERPC] Remove bogus sanity check in pci -> OF node code
2007-01-22Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linusLinus Torvalds
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: [MIPS] Delete duplicate call to load_irq_save. [MIPS] SMTC: Fix cp0 hazard.
2007-01-22Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6Linus Torvalds
* 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: hwmon/w83793: Hide invalid VID readings hwmon/w83793: Fix the fan input detection hwmon/w83793: Ignore disabled temperature channels hwmon: Fix the VRD 11 decoding hwmon/w83793: Remove the description of AMDSI and update the voltage formula
2007-01-22Merge git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6: NTFS: Forgot to bump version number in makefile to 2.1.28... NTFS: 2.1.28 - Fix deadlock reported by Sergey Vlasov due to ntfs_put_inode().
2007-01-22Merge branch 'master' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: V4L/DVB (5023): Fix compilation on ppc32 architecture V4L/DVB (5071): Tveeprom: autodetect LG TAPC G701D as tuner type 37 V4L/DVB (5069): Fix bttv and friends on 64bit machines with lots of memory V4L/DVB (5033): MSI TV@nywhere Plus fixes V4L/DVB (5029): Ks0127 status flags V4L/DVB (5024): Fix quickcam communicator driver for big endian architectures V4L/DVB (5021): Cx88xx: Fix lockup on suspend V4L/DVB (5020): Fix: disable interrupts while at KM_BOUNCE_READ V4L/DVB (5019): Fix the frame->grabstate update in read() entry point.
2007-01-22Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: mmc: Correct definition of R6 omap: Update MMC response types
2007-01-22Revert "[PATCH] Fix up mmap_kmem"Linus Torvalds
This reverts commit 99a10a60ba9bedcf5d70ef81414d3e03816afa3f. As per Hugh Dickins: "Nadia Derbey has reported that mmap of /dev/kmem no longer works with the kernel virtual address as offset, and Franck has confirmed that his patch came from a misunderstanding of what an offset means to /dev/kmem - whereas his patch description seems to say that he was correcting the offset on a few plaforms, there was no such problem to correct, and his patch was in fact changing its API on all platforms." Suggested-by: Hugh Dickins <hugh@veritas.com> Cc: Franck Bui-Huu <fbuihuu@gmail.com> Cc: Nadia Derbey <Nadia.Derbey@bull.net> Cc: Andi Kleen <ak@suse.de> Cc: Arjan van de Ven <arjan@infradead.org> Cc: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-01-22[POWERPC] Update defconfigsPaul Mackerras
Mostly took the defaults, except tried to get the netfilter options more or less as they were before. Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-01-22[POWERPC] atomic_dec_if_positive sign extension fixRobert Jennings
On 64-bit machines, if an atomic counter is explicitly set to a negative value, the atomic_dec_if_positive function will decrement and store the next smallest value in the atomic counter, contrary to its intended operation. The comparison to determine if the decrement will make the result negative was done by the "addic." instruction, which operates on a 64-bit value, namely the zero-extended word loaded from the atomic variable. This patch uses an explicit word compare (cmpwi) and changes the addic. to an addi (also changing "=&r" to "=&b" so that r0 isn't used, and addi doesn't become li). This also fixes a bug for both 32-bit and 64-bit in that previously 0x80000000 was considered positive, since the result after decrementing is positive. Now it is considered negative. Also, I clarify the return value in the comments just to make it clear that the value returned is always the decremented value, even if that value is not stored back to the atomic counter. Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-01-22[POWERPC] Fix OF node refcnt underflow in 836x and 832x platform codeLi Yang
Incorrect use of of_find_node_by_name() causes of_node_put() on a node which has already been put. It causes the refcount of the node to underflow, which triggers the WARN_ON in kref_get for 836x and 832x. This fixes it. Signed-off-by: Li Yang <leoli@freescale.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-01-22[POWERPC] Make it blatantly clear; mpc5200 device tree is not yet stableGrant Likely
Documentation-only change. The 5200 device tree layout has not yet stablized, so nobody should depend on the layout of the tree. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Sylvain Munaut <tnt@246tNt.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-01-22[POWERPC] Fix broken DMA on non-LPAR pSeriesLinas Vepstas
It appears that the iommu table address is never stored, and thus never found, on non-lpar systems. Thus, for example, during boot: <7>[ 93.067916] PCI: Scanning bus 0001:41 <7>[ 93.068542] PCI: Found 0001:41:01.0 [8086/100f] 000200 00 <7>[ 93.068550] PCI: Calling quirk c0000000007822e0 for 0001:41:01.0 <7>[ 93.069815] PCI: Fixups for bus 0001:41 <4>[ 93.070167] iommu: Device 0001:41:01.0 has no iommu table <7>[ 93.070251] PCI: Bus scan for 0001:41 returning with max=41 No iommu table? How can that be? Well, circa line 471 of arch/powerpc/platforms/pseries/iommu.c we see the code: while (dn && PCI_DN(dn) && PCI_DN(dn)->iommu_table == NULL) dn = dn->parent; and a few lines later is the surprising print statement about the missing table. Seems that this loop ran unto the end, never once finding a non-null PCI_DN(dn)->iommu_table. The problem can be found a few lines earlier: it sems that the value of PCI_DN(dn)->iommu_table is never ever set. Thus, the patch sets it. The patch was tested on a Power4 system running in full system partition mode, which is where I saw the problem. It works; I've not done any wider testing. Had a brief discussion on this on irc. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-01-22[POWERPC] Fix cell's mmio nvram to properly parse device treeBenjamin Herrenschmidt
The mmio nvram driver (used by cell only atm) isn't properly parsing the device-tree, meaning that nvram isn't found correctly on the new Cell blades. It works ok for old blades where the nvram is at the root of the device tree but fails on Malta and CAB when it's hanging off axon. This fixes it by using the proper OF parsing functions. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-01-22[POWERPC] Remove bogus sanity check in pci -> OF node codeBenjamin Herrenschmidt
The new implementation of pci_device_to_OF_node() on ppc32 has a bogus sanity check in it that can cause oopses at boot when no device node is present, and might hit correct cases with older/weird apple device-trees where they have the type "vci" for the chaos bridge. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-01-22ocfs2: Add backup superblock info to ocfs2_fs.hMark Fasheh
This synchronizes us with recent ocfs2-tools changes. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-01-22ocfs2: cleanup ocfs2_iget() errorsMark Fasheh
Get rid of some error prints in the ocfs2_iget() path from ocfs2_get_dentry(). NFSD can easily cause us to read stale inodes. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-01-22ocfs2: Directory c/mtime update fixesMark Fasheh
ocfs2 wasn't updating c/mtime on directories during dirent creation/deletion. Fix ocfs2_unlink(), ocfs2_rename() and __ocfs2_add_entry() by adding the proper code to update the struct inode and push the change out to disk. This helps rename/unlink on nfs exported file systems in particular as those clients compare directory time values to avoid a full re-reading a directory which hasn't changed. ocfs2_rename() loses some superfluous error handling as a result of this patch. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-01-22ocfs2: Don't print errors when following symlinksMark Fasheh
We shouldn't print errors returned from vfs_follow_link(). This was causing spurious errors to show up in the logs. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-01-21hid-core.c: Adds GTCO CalComp Interwrite IPanel PIDs to blacklistJeremy Roberson
Adds GTCO CalComp Interwrite IPanels to the hid-core.c blacklist. Signed-off-by: Jeremy A. Roberson <jroberson@gtcocalcomp.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-01-21HID: put usb_interface instead of usb_device into hid->dev to fix udevinfo ↵Anssi Hannula
breakage The commit 4916b3a57fc94664677d439b911b8aaf86c7ec23 introduced a hid regression between 2.6.19 and 2.6.20-rc1. The device put in input_dev->cdev is now of type usb_device instead of usb_interface. Before: > # readlink -f /sys/class/input/input6/event4/device > /sys/devices/pci0000:00/0000:00:10.0/usb2/2-1/2-1:1.1 After: > # readlink -f /sys/class/input/input3/event3/device > /sys/devices/pci0000:00/0000:00:10.0/usb1/1-1 This causes breakage: > # udevinfo -q all -n /dev/input/event3 > P: /class/input/input3/event3 > N: input/event3 > S: input/by-path/pci-1-1--event- > E: ID_SERIAL=noserial > E: ID_PATH=pci-1-1- No ID_MODEL, ID_VENDOR, ID_REVISION, ID_TYPE etc etc. Fix this by assigning the intf->dev into hid->dev, and fixing all the users. Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-01-21HID: add missing RX, RZ and RY enum values to hid-debug outputSimon Budig
This trivial change adds some missing enum values to the hid-debug output. Signed-off-by: Simon Budig <simon@budig.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-01-21HID: hid/hid-input.c doesn't need to include linux/usb/input.hJiri Kosina
There is no reason for generic hid-input.c to include usb-specific input.h. As a sideeffect, this also fixes warning of redefinition of dbg() macro, when hid-input.c is compiled with DEBUG (as there is a clash between dbg() from hid.h and usb/input.h). Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-01-21HID: compilation fix when DEBUG_DATA is definedJiri Kosina
hid/hid-core.c references 'len' variable when DEBUG_DATA is defined, but the actual name of the variable is 'size'. Fix it. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-01-21HID: proper LED-mapping for SpaceNavigatorSimon Budig
This change introduces a mapping for LED indicators between the HID specification and the Linux input subsystem. The previous code properly mapped the LEDs relevant for Keyboards, but garbeled the remaining ones. With this change all LED enums from the input system get mapped to more or less equivalent LED numbers from the HID specification. This patch also ensures that the unused bits in a HID report to the device are zeroed out. This makes the 3Dconnexion SpaceNavigator fully usable with the linux input system. Signed-off-by: Simon Budig <simon@budig.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-01-21HID: update MAINTAINERS entry for USB-HIDJiri Kosina
Change USB-HID maintainer from Vojtech Pavlik to Jiri Kosina. Acked-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-01-21HID: GEYSER4_ISO needs quirkAdrian Friedli
I've got a newer MacBook with core2duo. Two keys on the keyboard are swapped, "unswaping" works with the same trick as GEYSER3_ISO. Signed-off-by: Adrian Friedli <masteradi@gmx.ch> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-01-21HID: fix some ARM builds due to HID brokenness - make USB_HID depend on INPUTRussell King
We have USB_HID _newly_ selected in configurations which didn't have it before, which overrides CONFIG_HID and builds HID without input support. Nevertheless, here's a patch to solve more of the same that my original patch attempted to solve. The original patch is still required. Seems to solve the final instance of this problem here. Signed-off-by: Russell King <rmk+lkml@arm.linux.org.uk> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-01-20sata_mv HighPoint 2310 support (88SX7042)Olof Johansson
With the following patch, my HighPoint 2310 with a Marvell 88SX7042 on it seems to work OK. The controller only has 4 ports, with MV_FLAG_DUAL_HC it seems to init 8 ports and fails miserably at probe time. There are no other devices mapped to that chip, maybe it was just incorrectly specified in the first place? Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-20libata: fix handling of port actions in per-dev action maskTejun Heo
libata EH ignores port-wide actions in per-dev action mask. However, device resume requests EH_SOFTRESET using per-dev action mask. Under certain circumstances, this results in not resetting frozen port after resuming which causes failure of all commands. This patch allows port-wide actions to be requested in per-dev action mask. Before EH recovery starts, port-wide actions will be collected. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-20libata: initialize qc->dma_dir to DMA_NONETejun Heo
libata didn't used to init qc->dma_dir to any specific value on qc initialization and command translation path didn't set qc->dma_dir if the command doesn't need data transfer. This made non-data commands to have random qc->dma_dir. This usually doesn't cause problem because LLDs usually check qc->protocol first and look at qc->dma_dir iff the command needs data transfer but this doesn't hold for all LLDs. It might be worthwhile to rename qc->dma_dir to qc->data_dir as we use the field to tag data direction for both PIO and DMA protocols. This problem has been spotted by James Bottomley. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: James Bottomley <James.Bottomley@SteelEye.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-20sata_via: add PCI ID 0x5337Luca Pedrielli
Add PCI ID 0x5337 to supported PCI ID. This is VT8237 in IDE mode. Signed-off-by: Luca Pedrielli <luca.pedrielli@barradev.it> Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-01-20libata doc: "error : unterminated entity reference exceptions"Robert P. J. Day
Fix libata.tmpl to not generate "error : unterminated entity reference exceptions" errors anymore when running "make htmldocs". Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>