aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Merge branch 'master'Jeff Garzik2005-11-05
|\
| * Merge branch 'upstream-linus' of ↵Linus Torvalds2005-11-05
| |\ | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
| | * [PATCH] phy address mask support for generic phy layerMatt Porter2005-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a phy_mask field to struct mii_bus and uses it. This field indicates each phy address to be ignored when probing the mdio bus. This support is needed for the fs_enet and ibm_emac drivers to be converted to the generic phy layer among other drivers. Many systems lock up on probing certain phy addresses or probing doesn't return 0xffff when nothing is found at the address. A new driver I'm working on also makes use of this mask. Signed-off-by: Matt Porter <mporter@kernel.crashing.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * [PATCH] pcnet32: Prevent hang with 79c976Don Fry2005-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some boards using the 79c976 pcnet32 chip will hang the system if the ethtool --register-dump is performed with the device operational. The request to read bcr30 is retried by the PCI device infinitely without returning data, hanging the system. Tested ia32 and ppc64. Signed-off-by: Don Fry <brazilnut@us.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * [PATCH] pcnet32: AT2700/2701 and Bugzilla 2699 & 4551Don Fry2005-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is a better fix for Allied Telesyn 2700/2701 FX boards than the change made in early January this year. It allows the user to select the speed/duplex via module_param, but if no selection is made, forces the speed to 100 FD. It fixes both Bugzilla bugs 2669 and 4551. Tested ia32 and ppc64 by myself, and by the originator of bug 2669. Signed-off-by: Don Fry <brazilnut@us.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * [PATCH] pcnet32: show name of failing deviceDon Fry2005-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Display the name eth%d or pci_name() of device which fails to allocate memory. When changing ring size via ethtool, it also releases the lock before returning on error. Added comment that the caller of pcnet32_alloc_ring must call pcnet32_free_ring on error, to avoid leak. Tested ia32 by forcing allocation errors. Signed-off-by: Don Fry <brazilnut@us.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * [PATCH] S2io: Updated documentationRavinandan Arakali2005-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hi, This patch provides updated documentation on the Neterion(S2io) driver. Please review the patch. Signed-off-by: Ravinandan Arakali <ravinandan.arakali@neterion.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * [PATCH] S2io: Multi buffer mode supportAnanda Raju2005-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hi, This patch provides dynamic two buffer-mode and 3 buffer-mode options. Previously 2 buffer-mode was compilation option. Now with this patch applied one can load driver in 2 buffer-mode with module-load parameter ie. #insmod s2io.ko rx_ring_mode=2 This patch also provides 3 buffer-mode which provides header separation functionality. In 3 buffer-mode skb->data will have L2/L3/L4 headers and "skb_shinfo(skb)->frag_list->data" will have have L4 payload. one can load driver in 3 buffer-mode with same above module-load parameter ie. #insmod s2io.ko rx_ring_mode=3 Please review the patch. Signed-off-by: Ananda Raju <ananda.raju@neterion.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * [PATCH] drivers/net/wireless/airo.c unsigned comparasonGabriel A. Devenyi2005-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fid is declared as a u32 (unsigned int), and then a few lines later, it is checked for a value < 0, which is clearly useless. In the two locations this function is used, in one it is *explicitly* given a negative number, which would be ignored with the current definition. Thanks to LinuxICC (http://linuxicc.sf.net). Signed-off-by: Gabriel A. Devenyi <ace@staticwave.ca> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * Merge branch 'master'Jeff Garzik2005-11-05
| | |\
| | * \ Merge branch 'master'Jeff Garzik2005-10-30
| | |\ \
| | * | | [PATCH] fec_8xx: Add support for Intel PHY LX971Pantelis Antoniou2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following patch add support for the Intel LX971 PHY. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * | | [PATCH] fec_8xx: Remove dependency on NETTA & NETPHONEPantelis Antoniou2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following patch removes the dependency of the fec_8xx driver on the NETTA & NETPHONE boards. Other people use the driver too, and we await their board support patches. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * | | [PATCH] fs_enet: Fix dma_unmap_single callsPantelis Antoniou2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following patches fixes a bug with erroneous calling of dma_unmap_single. It never triggered because on normal ppc32 the calls is a NOP. Out of tree drivers need this fix however. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * | | [PATCH] Maintainers for fs_enetPantelis Antoniou2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following patch adds a MAINTAINERS entry for the fs_enet driver. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * | | [PATCH] PPC 4xx EMAC driver: fix VSC8201 PHY initializationEugene Surovegin2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * MII registers must override strap pins * disable "echo" mode to make 10/HDX work (Franz Sirl) Signed-off-by: Eugene Surovegin <ebs@ebshome.net> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * | | [PATCH] PPC 44x EMAC driver: add 440GR supportEugene Surovegin2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add PowerPC 440GR support Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Eugene Surovegin <ebs@ebshome.net> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| | * | | [PATCH] PPC 44x EMAC driver: add 440SPe supportEugene Surovegin2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some reason, the hardware designers made the polarity of one bit in the 440SPe's PHY interface register the opposite of all other PPC 440 chips. To handle this, abstract our access to this bit and do the right thing based on the configured CPU type. Signed-off-by: Roland Dreier <rolandd@cisco.com> Signed-off-by: Eugene Surovegin <ebs@ebshome.net> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * | | | [libata] restore sg on DMA mapping failureTejun Heo2005-11-05
| | |_|/ | |/| |
| * | | Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6Linus Torvalds2005-11-05
| |\ \ \
| | * | | [SCSI] sd: Fix refcountingAlan Stern2005-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the driver takes a reference only for requests coming by way of the gendisk, not for requests coming by way of the struct device or struct scsi_device. Such requests can arrive in the rescan, flush, and shutdown pathways. The patch also makes the scsi_disk keep a reference to the underlying scsi_device, and it erases the scsi_device's pointer to the scsi_disk when the scsi_device is removed (since the pointer should no longer be used). This resolves Bugzilla entry #5237. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * | | Fix ips.c compileJames Bottomley2005-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It looks like one of the ips patches was missing a closing brace in a function Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * | | Merge by HandJames Bottomley2005-11-04
| | |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts in dec_esp.c (Thanks Bacchus), scsi_transport_iscsi.c and scsi_transport_fc.h Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] ips: Fix initialization bug with kdumpJack Hammer2005-10-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If I/O is active on the adapter, and an unexpected interrupt is pending during initialization, the driver blows it's brains out. Since the driver didn't initiate the I/O, the data in it's internal tables will contain NULL pointers. When this condition is detected, a "flush cache and reset" is performed. The flush cache allows any pending "lazy writes" that the adapter is processing to complete ( a "must have" for a RAID adapter ) and the reset puts the adapter back into a known, good state. Signed-off-by: Jack Hammer <jack_hammer@adaptec.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] ips: Fix up for correct scatter/gather processingJack Hammer2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added kmap_atomic/kunmap_atomic. Added protection of KM_IRQ0 slot with local_irq_save(), local_irq_restore(), and comments. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Change version number to 8.1.0James.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc 8.1.0 : Add owner field to struct pci_driverJames.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Fix eh_ return codes for commandsJames.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Return FAILED from eh_ routines if command(s) is(are) not completed There were scenarios where we may have returned from the error handlers prior to all affected commands being flushed to the midlayer. Add changes to ensure this doesn't happen. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Remove unneeded IOCB_t * castJames.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Adjust lpfc_scsi_buf allocationJames.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adjust lpfc_scsi_buf allocation to account for lun_queue_depth and error handling Under high load and high duress, the error handler could steal some command resources from the normal i/o path. Rework to allocate additional resources to avoid this scneario. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Replace lpfc_sli_issue_iocb_wait_high_priorityJames.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace lpfc_sli_issue_iocb_wait_high_priority with lpfc_sli_issue_iocb_wait. Simplify code paths, as there really wasn't a "priority" Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Fix for "command completion for iotax x?? not found"James Bottomley2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From: James Smart <James.Smart@emulex.com> There were scenarios where the error handlers could reuse an iotag value of an active io. Remove all possibility of this by pre-assigning iotag resources to command resources. Signed-off-by: James Smart <James.Smart@emulex.com> Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Remove RPI hash from the driverJames.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Table was not providing a lot of value and injected a couple of errors. Removed it and made functionality inline. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Restore HEX safe bahavior of the sysfs xxx_store functions.James.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Fix for "Unknown IOCB command Data: x0 x3 x0 x0"James.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for "Unknown IOCB command Data: x0 x3 x0 x0" messages and inability to see devices On some platforms, the host-memory based ring mgmt area was not zero. Also, driver wasn't manipulating the entire 32bits of the ring pointers. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Fix comments for nodev_tmoJames.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Add range checking for attributes passed as options at load time.James.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reuse macros defined for sysfs store callbacks in the initialization code in order to enforce the same range checking. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Return -EINVAL, -EPERM, and -EIO instead of 0 from sysfs callbacksJames.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Update to Emulex hba model namesJames.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update adapter names to match Emulex naming conventions. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] lpfc: Cleanup code in lpfc_get_stats().James.Smart@Emulex.Com2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cleanup white spaces in argument calls & initializations, prune if statements, remove casting and remove redundant if checks. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] remove broken driver cpqfcJames Bottomley2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hopefully there should be a brand new replacement driver for this heap of junk by the beginning of next year. Acked By: Martin K. Petersen <mkp@mkp.net> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] fix up mismerge in osstJames Bottomley2005-10-29
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] update fc_transport for removal of block/unblock functionsJames.Smart@Emulex.Com2005-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We recently went back to implement a board reset. When we perform the reset, we wanted to tear down the internal data structures and rebuild them. Unfortunately, when it came to the rport structure, things were odd. If we deleted them, the scsi targets and sdevs would be torn down. Not a good thing for a temporary reset. We could block the rports, but we either maintain the internal structures to keep the rport reference (perhaps even replicating what's in the transport), or we have to fatten the fc transport with new search routines to find the rport (and deal with a case of a dangling rport that the driver forgets). It dawned on me that we had actually reached this state incorrectly. When the fc transport first started, we did the block/unblock first, then added the rport interface. The purpose of block/unblock is to hide the temporary disappearance of the rport (e.g. being deleted, then readded). Why are we making the driver do the block/unblock ? We should be making the transport have only an rport add/delete, and the let the transport handle the block/unblock. So... This patch removes the existing fc_remote_port_block/unblock functions. It moves the block/unblock functionality into the fc_remote_port_add/delete functions. Updates for the lpfc driver are included. Qlogic driver updates are also enclosed, thanks to the contributions of Andrew Vasquez. [Note: the qla2xxx changes are relative to the scsi-misc-2.6 tree as of this morning - which does not include the recent patches sent by Andrew]. The zfcp driver does not use the block/unblock functions. One last comment: The resulting behavior feels very clean. The LLDD is concerned only with add/delete, which corresponds to the physical disappearance. However, the fact that the scsi target and sdevs are not immediately torn down after the LLDD calls delete causes an interesting scenario... the midlayer can call the xxx_slave_alloc and xxx_queuecommand functions with a sdev that is at the location the rport used to be. The driver must validate the device exists when it first enters these functions. In thinking about it, this has always been the case for the LLDD and these routines. The existing drivers already check for existence. However, this highlights that simple validation via data structure dereferencing needs to be watched. To deal with this, a new transport function, fc_remote_port_chkready() was created that LLDDs should call when they first enter these two routines. It validates the rport state, and returns a scsi result which could be returned. In addition to solving the above, it also creates consistent behavior from the LLDD's when the block and deletes are occuring. Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] use scmd_id(), scmd_channel() throughout codeJeff Garzik2005-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wrap a highly common idiom. Makes the code easier to read, helps pave the way for sdev->{id,channel} removal, and adds a token that can easily by grepped-for in the future. There are a couple sdev_id() and scmd_printk() updates thrown in as well. Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] use sfoo_printk() in driversJeff Garzik2005-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] use {sdev,scmd,starget,shost}_printk in generic codeJeff Garzik2005-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rejections fixed and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] introduce sfoo_printk, sfoo_id, sfoo_channel helpersJeff Garzik2005-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New dev_printk wrappers, which allow us to shrink code, and eliminate direct references to host/channel/id/lun members: scmd_printk() Introduce wrappers for highly common idioms, which may also help us eliminate some ->{channel,id} references in the future: {scmd,sdev}_id() {scmd,sdev}_channel() The scmd_* wrappers are present in scsi/scsi_device.h because they all employ the dereference chain cmd->device->$member. We would prefer to use static inline functions rather than macros, but that would have a Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] kill unused scsi_scan_single_target()Jeff Garzik2005-10-28
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] Add an 'Issue LIP' device attribute in fc_transport classAndrew Vasquez2005-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ok, here's a patch to add such a common API for fc transport users. Relevant LLD changes (lpfc and qla2xxx) also present. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | | * | | [SCSI] mptsas: white space fixes and version bumpChristoph Hellwig2005-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various whitespace and comment fixes from Eric, aswell as a version bump. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>