aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message
Commit message (Collapse)AuthorAge
* Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds2006-06-10
|\ | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC64]: Avoid JBUS errors on some Niagara systems. [FUSION]: Fix mptspi.c build with CONFIG_PM not set. [TG3]: Handle Sun onboard tg3 chips more correctly. [SPARC64]: Dump local cpu registers in sun4v_log_error()
| * [FUSION]: Fix mptspi.c build with CONFIG_PM not set.Tom "spot" Callaway2006-06-09
| | | | | | | | | | Signed-off-by: Tom "spot" Callaway <tcallawa@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | [PATCH] I2O: Bugfixes to get I2O working againMarkus Lidel2006-06-10
|/ | | | | | | | | | | | | | | | | | | | | | | | | From: Markus Lidel <Markus.Lidel@shadowconnect.com> - Fixed locking of struct i2o_exec_wait in Executive-OSM - Removed LCT Notify in i2o_exec_probe() which caused freeing memory and accessing freed memory during first enumeration of I2O devices - Added missing locking in i2o_exec_lct_notify() - removed put_device() of I2O controller in i2o_iop_remove() which caused the controller structure get freed to early - Fixed size of mempool in i2o_iop_alloc() - Fixed access to freed memory in i2o_msg_get() See http://bugzilla.kernel.org/show_bug.cgi?id=6561 Signed-off-by: Markus Lidel <Markus.Lidel@shadowconnect.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [SCSI] mptspi: reset handler shouldn't be called for other bus protocolsJames Bottomley2006-05-19
| | | | | | | | | | | | | | All registered reset callback handlers are called during reset processing. The mptspi modules has its own reset callback handler, just recently added for issuing domain validation after host reset. If either the mptsas or mptfc driver are loaded, this callback could be called. Thus resulting in domain validation being issued for sas or fibre end devices. Fix this by having mptbase.c check the bus type against the driver type and only call the reset handler if they match (or if it's a non-bus specific reset handler). Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptfc: race between mptfc_register_dev and mptfc_target_allocmdr@sgi.com2006-05-10
| | | | | | | | | | | | | | | | | | | | | | | | | A race condition exists in mptfc between the thread registering a device with the fc transport and the scan work generated by the transport. This race existed prior to the application of the mptfc bug fix patch. mptfc_register_dev() calls fc_remote_port_add() with the FC_RPORT_ROLE_TARGET bit set in the rport ids passed to the function. Having this bit set causes fc_remote_port_add() to schedule a scan of the device. This scan can execute before mptfc_register_dev() can fill in the dd_data in the rport structure. When this happens, mptfc_target_alloc() will fail because dd_data is null. Attached is a patch which fixes the problem. The patch changes the rport ids passed to fc_remote_port_add() to not have the TARGET bit set. This prevents the scan from being scheduled. After mptfc_register_dev() fills in the rport dd_data field, fc_remote_port_rolechg() is called, changing the role of the rport to TARGET. Thus, the scan is scheduled after dd_data is filled in which prevents the failure in mptfc_target_alloc(). Signed-off-by: Michael Reed <mdr@sgi.com> Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptspi: revalidate negotiation parameters after host reset and resumeEric Moore2006-05-03
| | | | | | | | | | This is a bug fix for mptspi driver, where after a host reset or resume, we revalidate the negotiation parameters for all devices. This bug was introduced when the driver was ported to use the spi transport layer. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - bug fix stack overflow in mptbaseEric Moore2006-04-27
| | | | | | | | | | Bug fix for stack overflow in EventDescriptionStr, (a function for debuging firmware events). We allocated 50 bytes on local stack for buff[], however there are places in the code where we've attempted copying in greater than 50 bytes into buff[]. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] - fusion - mptfc bug fix's to prevent deadlock situationsMoore, Eric2006-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mptbase.h bump version number to 3.03.09 remove unneeded flags define workq and remove old fc specific locks mptbase.c initialize new lock and don't initialize two removed locks mptscsih.c when firmware reports target is no longer there, return DID_REQUEUE for fc hosts so that i/o doesn't get killed until the transport has an opportunity to manage the loss via its dev loss timer when the "eh_abort" routine is called, check to see if the driver has the command or not before looking to see if a reset is pending. James Smart and I talked about this and believe that the API for this routine is: if driver doesn't have command, return SUCCESS. This change helps prevent a target from being taken offline. SUCCESS is returned because it's likely that the command completed after error recovery timed it out but before it could be aborted. provide a routine to queue work to newly created workq, and use it. remove "ioc" from mptscsih_abort() it was only used one time. the other references were via hd->ioc, so I just moved it.... net change in references to ioc via hd->ioc is zero move hd->resetPending test and hd->timeouts increment to after the test for whether the command to be aborted remains known to the driver Make certain that the workq exists before queuing work to it. mptfc.c no longer need to lock rport data structures as I was able to single thread the code! I fixed up the debug code to eliminate compilation messages due to type mismatch in the printk. Got rid of some no longer needed rport flags. Initialize and destroy the workq used for the rescan work. simplify the logic regarding the increment of fc_rescan_work_count. use post increment and test for zero vs. pre increment and test for one; eliminate work_count variable: queue_work can be called with the work_lock held as it doesn't sleep Signed-off-by: Michael Reed <mdr@sgi.com> Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptfusion: bug fix's for raid components adding/deletingMoore, Eric2006-04-25
| | | | | | | | | | | | | | | This patch handles case where raid hidden components are not being removed when power turned off to device attached to expander, as well as the case of exposing raid components when power is turned back on to devices attached to an expander. (This is a repost of this patch, with mptsas_is_end_device declared further up in the code.) This patch contains some other miscellaneous bug fix's. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptfusion - fix panic in mptsas_slave_configureMoore, Eric2006-04-14
| | | | | | | | | | | | | | | | Driver panic when RAID logical volume was present when driver loaded, or when a RAID logical volume was created on the fly. This issue was created in due to recent scsi_transport_sas change, when sas_read_port_mode_page was added into the mptsas drivers slave_config entry point. This new API expects that all sdev's to be assocated to an rphy, however that is not the case for logical volumes, as they are created using scsi_add_device, instead of sas_rphy_add(). Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [PATCH] mark f_ops const in the inodeArjan van de Ven2006-03-28
| | | | | | | | | | | Mark the f_ops members of inodes as const, as well as fix the ripple-through this causes by places that copy this f_ops and then "do stuff" with it. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] mempool: use mempool_create_slab_pool()Matthew Dobson2006-03-26
| | | | | | | | | | Modify well over a dozen mempool users to call mempool_create_slab_pool() rather than calling mempool_create() with extra arguments, saving about 30 lines of code and increasing readability. Signed-off-by: Matthew Dobson <colpatch@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] i2o_dump_hrt() output cleanupVasily Averin2006-03-25
| | | | | | | | | | | | | This patch fixes i2o_dump_hrt output from dmesg: iop0: HRT has 1 entries of 16 bytes each. Adapter 00000012: <7>TID 0000:[<7>H<7>P<7>C<7>*<7>]:<7>PCI 1: Bus 1 Device 22 Function 0<7> Signed-off-by: Vasily Averin <vvs@sw.ru> Cc: Markus Lidel <Markus.Lidel@shadowconnect.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [SCSI] convert mptsas over to end_device/expander allocationsJames Bottomley2006-03-19
| | | | | | | | The conversion of mptsas should allow the elimination of the contained flag in the sas transport class. Acked-by: "Moore, Eric" <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - bump versionMoore, Eric2006-03-14
| | | | | | | version bump Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - expander hotplug suport in mptsas moduleMoore, Eric2006-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for hot adding and removing expanders, and its associated attached devices. When there is a change in topology, the fusion firmware sends the MPI_EVENT_SAS_DISCOVERY event to the driver. The driver will read firmware config pages to determine what changes took place, and refresh drivers view of the world stored in ioc->sas_topology. Here is the details of the action the driver does: (1) Expander Added : The mptsas_discovery_work workqueue is called. Config pages read, and ioc->sas_topology is refreshed. The sas_phy_add() is called for each phy of the expander. The expanders attached devices are added via sas_rphy_add(). Added end devices are handled within the MPT_ADD_DEVICE logic in mptsas_hotplug_work workqueue. (2) Expander Delete : The sas_rphy_delete() will be called for the top most compenent of the parent that the expander is attached to. The sas_rphy_delete call will delete all the children phys, rphys, and end devices. This is handled from mptsas_discovery_work workqueue. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - exposing raid components in mptsasMoore, Eric2006-03-14
| | | | | | | | | | | | | | | | | Suppport for exposing hidden raid components for sg interface. The sdev->no_uld_attach flag will set set accordingly. The sas module supports adding/removing raid volumes using online storage management application interface. This patch rely's on patch's provided to me by Christoph Hellwig, that exports device_reprobe. I will post those patch's on behalf of Christoph. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - memory leak, and initializing fieldsMoore, Eric2006-03-14
| | | | | | | | | | | | Changelog: (1) fix memory leak: p->phy_info (2) initialize device_info and port_info data fields (3) initialize the hba firmware handle (4) initialize phy_id for attached phy_info data fields (5) initialize attached phy_info data fields Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - exclosure misspelledMoore, Eric2006-03-14
| | | | | | | exclosure should be enclosure Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - cleanup mptsas event handling functionsMoore, Eric2006-03-14
| | | | | | | Cleanup of mptsas firmware event handlers. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - removing target_id/bus_id from the VirtDevice structureMoore, Eric2006-03-14
| | | | | | | | | | | | | It makes no sense in keeping the target_id and bus_id in the VirtDevice structure, when it can be obtained from the VirtTarget structure. In addition, this patch fix's couple compilation bugs in mptfc.c when MPT_DEBUG_FC is enabled. This provided by Micheal Reed. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - static fix'sMoore, Eric2006-03-14
| | | | | | | | | Patch previously provided from Adrian Bunk <bunk@stusta.de>, moving some functions to static. This is already in the -mm tree. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - move some debug firmware event debug msgs to verbose levelMoore, Eric2006-03-14
| | | | | | | | | | Created a debug level MPT_DEBUG_VERBOSE_EVENTS. Moving some of the more vebose debug messages for firwmare events into new debug level. Also added some more firmware events descriptions. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - loginfo header updateMoore, Eric2006-03-14
| | | | | | | | This header is provided to better understand loginfo codes returned by the mpt fusion firmware. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptscsih: remove unused page 1 setting functionJames Bottomley2006-03-12
| | | | | | | It was actually rendered unused by the move to the spi transport class, but never taken out. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] i2o: fix memory leak in i2o_exec_lct_modifiedVasily Averin2006-03-12
| | | | | | | | | | | | i2o_exec_lct_modified() does not release memory allocated for work_struct. Signed-off-by: Vasily Averin <vvs@sw.ru> Although your patch is the same, i've rewritten it a little bit for naming consistency in the I2O driver. Acked-by: Markus Lidel <Markus.Lidel@shadowconnect.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptspi: Add transport class Domain ValidationJames Bottomley2006-03-01
| | | | | | | | | | | | | | | | | This is the first half of a patch to add the generic domain validation to mptspi. It also creates a secondary "virtual" channel for raid component devices since these are now exported with no_uld_attach. What Eric and I would have really liked is to export all physical components on channel 0 and all raid components on channel 1. Unfortunately, this would result in device renumbering on platforms with mixed RAID/Physical devices which was considered unacceptable for userland stability reasons. Still to be done is to plug back the extra parameter setting and DV pieces on reset and hotplug. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptsas: add support for enclosure and bay identifier attributesChristoph Hellwig2006-02-27
| | | | | | | | | Adds support to retrieve the enclosure and bay identifiers. This patch is from Eric with minor modifications from me, rewritten from a buggy patch of mine, based on the earlier CSMI implementation from Eric.. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] drivers/message/fusion/mptfc.c: make 2 functions staticAdrian Bunk2006-02-27
| | | | | | | This patch makes two needlessly global functions static. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion - mptlan - remove wierd humor printMoore, Eric2006-02-27
| | | | | | | Removes wierd humor, and bad language printk in mptlan. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6Linus Torvalds2006-02-16
|\
| * [SCSI] fusion - mptctl -adding asyn event notification supportMoore, Eric2006-02-04
| | | | | | | | | | | | | | Adding aen support. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] fusion - mptctl -firmware download fixMoore, Eric2006-02-04
| | | | | | | | | | | | | | Fix's firmware download ioctl to work with SAS. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] fusion - mptctl - backplane istwi fixMoore, Eric2006-02-04
| | | | | | | | | | | | | | | | | | | | Moving the toolbox call from mptbase.c, over to mptctl.c, and using the mptctl infastructure to issue the call. The existing code is hanging on certain HP platforms when this ioctl is issued, and this patch fix's that. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] fusion - mptctl -sense width fixMoore, Eric2006-02-04
| | | | | | | | | | | | | | | | Bug fix for correctly setting sense width for the MPTCOMMAND ioctl. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] fusion - mptctl - Event Log FixMoore, Eric2006-02-04
| | | | | | | | | | | | | | | | | | Use the hard coded value MPTCTL_EVENT_LOG_SIZE to fix bug where in certain cases, the ioc->eventLogSize was initialized. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] fusion - mtctl - change to wait_event_timeoutMoore, Eric2006-02-04
| | | | | | | | | | | | | | | | | | Change from using wait_event_interruptible_timeout to wait_event_timeout. Also delete white space and duplicate line of code. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] fusion - mptctl - adding support for bus_type=SASMoore, Eric2006-02-04
| | | | | | | | | | | | | | Add bus_type recognization in ioctl path for SAS. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] fusion - mptctl - MPTCOMMAND - adding function types.Moore, Eric2006-02-04
| | | | | | | | | | | | | | | | This adds support for new function types in the existing MPTCOMMAND ioctl. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [PATCH] Fix i2o_scsi oops on abortMarkus Lidel2006-02-05
|/ | | | | | | | | | | | | | | Fix http://bugzilla.kernel.org/show_bug.cgi?id=5923 When a scsi command failed, an oops would result. Back-to-back SMART queries would make the Seagate drives unhappy. The second SMART query would timeout, and the command would be aborted. Acked-by: Markus Lidel <Markus.Lidel@shadowconnect.com> Cc: Kenny Simpson <theonetruekenny@yahoo.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] I2O: fix and workaround for Motorola/Freescale controllerMarkus Lidel2006-02-03
| | | | | | | | | | | | | - This controller violates the I2O spec for the I/O registers. The patch contains a workaround which moves the registers to the proper location. (originally author: Matthew Starzewski) - If a message frame is beyond the mapped address range a error is returned. Signed-off-by: Markus Lidel <Markus.Lidel@shadowconnect.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] I2O: don't disable PCI device if it is enabled before probingMarkus Lidel2006-02-03
| | | | | | | | If PCI device is enabled before probing, it will not be disabled at exit. Signed-off-by: Markus Lidel <Markus.Lidel@shadowconnect.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [SCSI] fusion: add message sanity checkMoore, Eric2006-01-31
| | | | | | | | | | | | | This adds a sanity check in the interrupt routine insures incoming message frames are a valid message frames. The code for setting 0xdeadbeaf in the freed message frames, apparently was already submitted by Christoph in previous patch submission. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion: unloading the driver - only set asyn narrow for configured ↵Moore, Eric2006-01-31
| | | | | | | | | | devices This patch inhibits sending spi negotiation parameters for non-configured devices from the slave_destroy function. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion: unloading the driver results in panic - fixMoore, Eric2006-01-31
| | | | | | | | | | | | | | | The ioc->alt_ioc->alt_ioc pointer is not getting cleared during driver unload time. This dangling pointer can result in panic in certain circumstances, such as error recovery, or firmware download in flashless environments. This only impacts dual functions controllers, such as 1030. Please apply. This patch also includes a small cosmetic name change for mpt_spi_log_info. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] mptsas: don't complain on bogus slave_alloc callsChristoph Hellwig2006-01-31
| | | | | | | | | When people use the userspace scanning facilities on SAS hardware the LLDD gets bogus slave_alloc calls. Just fail those gracefully instead of printing a warning in mptsas and another one in the midlayer. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion: add task managment response code infoMoore, Eric2006-01-31
| | | | | | | | Adding verbose message returned from firmware when a task mangment request fails. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion: add MSI supportChristoph Hellwig2006-01-31
| | | | | | | | | | | | | On Mon, Jan 16, 2006 at 06:53:24PM -0700, Moore, Eric wrote: > Adding MSI support, and command line for enabling > it. By default, the command line option has MSI disabled. mpt_msi_enable is initialized to 0 implicitly, no need to do that. Also replace if (mpt_msi_enable == 1) tests with just if (mpt_msi_enable). Updated patch below: Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion: overrun tape fixMoore, Eric2006-01-31
| | | | | Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] fusion: add verbose messages for RAID actionsMoore, Eric2006-01-31
| | | | | | | | | | A customer request to send raid asyn actions from firmware to the event syslog. This shows when raid volumes go degraded, or complete resync, or volumes created/deleted, etc. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>