summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-09-22[SCSI] scsi_dh_rdac: Adding couple more vendor product idsMoger, Babu
This patch adds couple more Vendor/Product IDs for RDAC.. There are no functional changes. Signed-off-by: Babu Moger <babu.moger@netapp.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-22[SCSI] isci: initial sgpio write supportDan Williams
Basic support to initialize the gpio unit, accept an incomming SAS_GPIO_REG_TX_GP bitstream, and translate it to the ODx.n fields in the hardware registers. If register indexes outside the supported range are specified in the SMP frame we simply accept the write and return how many registers (SFF-8485) were written (libsas reports this as residue in the request). Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-22[SCSI] isci: fix sgpio register definitionsDan Williams
output_data_select registers are off by one u32 delete the macros we will never use. Reported-by: Artur Wojcik <artur.wojcik@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-22[SCSI] libsas: sgpio write supportDan Williams
Add SFF-8485 v0.7 / SAS-1 smp-write-gpio register support to libsas. Defer SAS-2 support unless/until it defines an sgpio interface. Minimum implementation needed to get the lights blinking. try_test_sas_gpio_gp_bit() provides a common method to parse the incoming write data (raw bitstream), and the to_sas_gpio_gp_bit() helper routine can be used as a basis for the set/clear operations for the 'read' implementation. Host implementations parse as many bits (ODx.[012]) as are locally supported and report the number of registers successfully written. If the submitted data overruns the internal number of registers available report the write as a success with the number of bytes remaining reported in ->resid_len. Example (assuming an active backplane) set the "identify" pattern for the first 21 devices: smp_write_gpio --count=2 --data=92,49,24,92,24,92,49,24 -t 4 --index=1 /dev/bsg/sas_hostX Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-18[SCSI] qla4xxx: select iscsi boot sysfs attrsMike Christie
qla4xxx now uses iscsi_boot_sysfs to export the targets used for boot to sysfs. It needs to select that config option to make sure that module is also built. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-17[SCSI] bnx2fc: Bumped version to 1.0.6Bhanu Prakash Gollapudi
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-17[SCSI] bnx2fc: Fix FW assert during RSCN stress testsBhanu Prakash Gollapudi
Firmware asserts when the same CQE is armed twice. This scenario happens during RSCN stress tests as driver incorrects arms the CQ after the session is offloaded. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-17[SCSI] bnx2fc: Fix panic caused because of incorrect errror handling in ↵Bhanu Prakash Gollapudi
create(). Driver incorrectly calls bnx2fc_interface_cleanup() when bnx2fc_if_create fails which accesses bad pointer. Handle bnx2fc_if_create failure by directly calling bnx2fc_net_cleanup. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-17[SCSI] bnx2fc: Avoid calling bnx2fc_if_destroy with unnecessary locksBhanu Prakash Gollapudi
It is not required to hold rtnl_lock and bnx2fc_dev_lock when calling bnx2fc_if_destroy, as the locking is only required to serialize creation and deletion of fcoe instances. More importantly, this unnecessary locking causes deadlock as bnx2fc_if_destroy calls fc_remove_host holding rtnl_lock. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-17[SCSI] bnx2fc: Validate vlan id in NETDEV_UNREGISTER handlerNithin Nayak Sujir
When bnx2fc receives an UNREGISTER event on a vlan interface it calls destroy on all interfaces that matches the physical interface. Add vlan_id check to destroy only the vlan interface that generated the event. Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com> Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-17[SCSI] bnx2fc: No abort issued for REC when it times outBhanu Prakash Gollapudi
ABTS was not issued for timed out REC, as REC completion handler exits out if the IO completed. Check for timed out REC and issue ABTS before proceeding with further processing in REC completion handler. Also, initialize rec_retry and srr_retry before starting the IO. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-17[SCSI] bnx2fc: Send solicitation only after vlan discovery is completeBhanu Prakash Gollapudi
Link up event is generated to the driver even before vlan discovery has started. Because of this driver can send discovery solicitation on a stale vlan. Call fcoe_ctlr_link_up() only when the driver is in enabled state, which implies the vlan discovery is complete before sending solicitation. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-09-17[SCSI] bnx2fc: Reset max receive frame size during link upBhanu Prakash Gollapudi
If the max receive frame size is changed during link down, the driver uses the same value after linkup unless it is reset to default. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] scsi_dh_alua: Decrease retry intervalHannes Reinecke
The alua device handler starts the first retry after 10 seconds, and increases it times 10 for each round. This leads to an unnecessary delay. This patch modifies it to start after one second, and increase by a factor of two. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] scsi_dh_alua: Fix Erroneous TPG ID checkHannes Reinecke
For Target Portal Group IDs occupying the full 2 bytes in the RTPG response, the following group_id check in the alua_rtpg routine always fails in scsi_dh_alua.c: if (h->group_id == (ucp[2] << 8) + ucp[3]) { This causes the ALUA handler to wrongly identify the AAS of a specified device as well as incorrectly interpreting the supported AAS of the target as seen by the following entries in the /var/log/messages: "alua: port group 3ea state A supports tousna" "alua: port group 3e9 state A supports tousna" This is because 'ucp' is wrongly declared in alua_rtpg as a character pointer instead of an unsigned character pointer. Signed-off-by: Martin George <marting@netapp.com> Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] scsi_dh: Check for sdev state in store_dh_state()Hannes Reinecke
Avoid attaching a hardware handler to a device which is already scheduled for deletion. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] scsi_dh_alua: always update TPGS status on activateHannes Reinecke
When activating a patch we should always update the TPGS state as it might have changed in between. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] scsi_dh: Implement match callback functionHannes Reinecke
Some device handler types are not tied to the vendor/model but rather to a specific capability. Eg ALUA is supported if the 'TPGS' setting in the standard inquiry is set. This patch implements a 'match' callback for device handler which supersedes the original vendor/model lookup and implements the callback for the ALUA handler. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] scsi_dh: Fixup kernel-doc commentsHannes Reinecke
Fixup some kernel-doc comments to reference to the correct function name. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] scsi_dh_alua: Evaluate TPGS setting from inquiry dataHannes Reinecke
Instead of issuing a standard inquiry from within the alua device handler we can evaluate the TPGS setting from the existing inquiry data of the sdev and save us the I/O. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] libsas: fix sas_queuecommand return valuesChristoph Hellwig
->queuecommand must return either 0, or one of the SCSI_MLQUEUE_* return values. Non-transient errors are indicated by setting cmd->result before calling ->scsi_done and returning 0. Fix libsas to adhere to this calling convention. Note that the DID_ERROR for returns from the low-level driver might not be correct for all cases, but it's the best we can do with the current layering in libsas. I also suspect that the pre-existing handling of -SAS_QUEUE_FULL should really be SCSI_MLQUEUE_HOST_BUSY, but I'll leave that for a separate change. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] libsas: reindent sas_queuecommandChristoph Hellwig
Switch sas_queuecommand to a normal indentation and goto based error handling. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-30[SCSI] libsas: sas_queuecommand doesnt need host_lockChristoph Hellwig
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] sd: Use sd_printk() instead of printk()Nao Nishijima
sd_ioctl() still use printk() for log output. It should use sd_printk() instead of printk(), as well as other sd_*. All SCSI messages should output via s*_printk() instead of printk(). Signed-off-by: Nao Nishijima <nao.nishijima.xt@hitachi.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] genhd: add a new attribute "alias" in gendiskNao Nishijima
This patch allows the user to set an "alias" of the disk via sysfs interface. This patch only adds a new attribute "alias" in gendisk structure. To show the alias instead of the device name in kernel messages, we need to revise printk messages and use alias_name() in them. Example: (current) printk("disk name is %s\n", disk->disk_name); (new) printk("disk name is %s\n", alias_name(disk)); Users can use alphabets, numbers, '-' and '_' in "alias" attribute. A disk can have an "alias" which length is up to 255 bytes. This attribute is write-once. Suggested-by: James Bottomley <James.Bottomley@HansenPartnership.com> Suggested-by: Jon Masters <jcm@redhat.com> Signed-off-by: Nao Nishijima <nao.nishijima.xt@hitachi.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] scsi scan: don't fail scans when host is in recoveryMike Christie
The problem is that if we are doing a scsi scan then the device goes into recovery then we will wait for the recovery to complete. It waits because scsi-ml will send inquiries or report luns and the queueing code will have been blocked due to the host not being ready. However, if we are in recovery and then a scan is started the scan will silently fail and some devices will not be added. It is easy to hit the problem where devices do not show up with FC where we are doing tests that disrupt the target controllers. When the controller is disruprted (reboot, or setting firmware, etc), and we cause the dev loss tmo to fire then devices will be removed Then when the problem has been fixed, the rport will be scanned and devices should be added back. But if we cause another disruption before scanning has started then devices will not get added back. If the problem is not started until the scan is started then the devices will be added back. This patch fixes that problem by not failing scans when the host is in recovery. We will let scsi-ml send the IO and let the queueing and scsi error handling deal with it like is done if we went into recovery while scanning. For recovery cases where the host is being torn down then with the patch we will still fail the scan since there is not point in scanning. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] bnx2fc: Need not schedule destroy_work from __bnx2fc_destroyBhanu Prakash Gollapudi
Since it is already called in the right context with rtnl_lock and dev_mutex held. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] lpfc 8.3.26: Change driver version to 8.3.26James Smart
Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] lpfc 8.3.26: Fix SYSFS interface issuesJames Smart
Fix SYSFS interface issues. - In the lpfc_sli4_pdev_status_reg_wait() routine, after initial 100ms delay following write to PHYSDEV_CONTROL register for the firmware reaction, check the RN bit and ERR bit of the SLIPORT_STATUS register. If none of them became 1, the previous PHYSDEV_CONTROL register should be considered failed due to lack of privilege and error for no permission should be returned immediately without getting into the wait for RDY bits on the SLIPORT_STATUS register. - Remove the driver check on dev->is_physfn before proceed to perform the PHYSDEV_CONTROL register write, and let the PCI function's privilege setting and driver handling of PHYSDEV_CONTROL register write failure to handle the reset-ability through the SLI port. - Added key to ctlreg_write to prevent unauthorized or unexpected write to the control register. - Change return to EACCES for sysfs access that are failed because hba_reset is disabled. Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] lpfc 8.3.26: Fix HBA initialization issuesJames Smart
Fix HBA initialization issues - Swap all values that come from the firmware image on little endian systems. Created a new bf_get_be macro that does the same as the bf_get_le macro but for big endian data instead of little endian data. - Moved the incrementing of temp_offset after the copy fixed the write object loop to use temp_offset to figure out where the end of the image is instead of offset. - Added the necessary codes for properly bringing the driver instance offline and then trying to bring the port back online with the PCI function IP reset. If it fails to bring the SLI port back online, it will fall through to bringing the SLI port to HBA error offline. - Add a call in the probe_one_s3 and probe_one_s4 routines to get the Modeldesc - Change OCe50100 to OCe15100 - Made the error log also include the PCI BAR bitmap returned from kernel call pci_select_bars(). Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] lpfc 8.3.26: Fix issues pertaining to SCSI/FC protocol.James Smart
Fix issues pertaining to SCSI/FC protocol. - Allow frames destined to 0xFFFFFE to be processed by the driver by matching that DID with the physical port. - Call lpfc_sli_issue_iocb with context1 set to ndlp - In echo command accept function, adjust memcpy to limit memcpy to 1K - Set LPFC_SLI3_BG_ENABLED properly upon completion. - Skip the INIT_VFI call in lpfc_register_fcf if the FCF is already registered and go immediately to initial flogi. - use "status" variable instead of "ret" variable to hold the return of the fc_block_scsi_eh. Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] be2iscsi: Add pci_disable deviceJayamohan Kallickal
This patch adds call to pci_disable_device during rmmod and shutdown. The lack of this call was causing hang in insmod - rmmod loop test Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] be2iscsi: Adding a shutdown RoutineJayamohan Kallickal
This patch adds a shutdown routine. It fixes a bug where when be2net and be2iscsi are both used be2iscsi was not cleaning up its resources properly causing be2net to fail to get loaded when the system is rebooted. Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] be2iscsi: Fixing the /proc/interrupts problem V3Jayamohan Kallickal
Fix be2iscsi driver to use a separate pointer for each irq action->name field and avoid display corruption in /proc/interrupts. The be2iscsi driver was using a single static array in a function for the irq action->name field. This results in garbage output from /proc/interrupts The pointer for action->name is garbage and scribbles the output on the screen. This patch fixes the problem: 156: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-X beiscsi_msix_0017 This patch is based on Prarit's patch here: http://www.spinics.net/lists/linux-scsi/msg52325.html but I have fixed up the failure paths and removed redundant check for !i suggested by Eike. Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Fix "active_mask" may be used uninitialized warning.Chad Dupuis
Since active_mask is first assigned in an "else" block, the compiler throws a warning saying that the active_mask variable may be used uninitialized in a print statement later. Initialize active_mask to 0 in the declaration to stop the warning. Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Issue mailbox command only when firmware hung bit is reset ↵Giridhar Malavali
for ISP82xx. Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Return sysfs error codes appropriate to conditions.Joe Carnuccio
Return sysfs error codes that match the conditions encountered. This prevents sysfs from retrying a request which is conditioned to fail under the current circumstance. Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Provide method for updating I2C attached VPD.Joe Carnuccio
Provide bsg interface for updating VPD attached on the I2C serial bus. Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Correction to sysfs edc interface.Joe Carnuccio
Corrects the return value for the cases where read/write edc fails; this prevents sysfs from retrying the operation until forever. Corrects the printk width specifier for the first byte of buf. Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: During loopdown perform Diagnostic loopback.Saurav Kashyap
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Fix array out of bound warning.Saurav Kashyap
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: check for marker IOCB during response queue processing.Saurav Kashyap
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Enable write permission to some debug related module ↵Chad Dupuis
parameters to be changed dynamically. Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Prevent CPU lockups when "ql2xdontresethba" module param is set.Saurav Kashyap
Driver is not releasing the lock if ql2xdontresethba is set, this might lead to a lockup. Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Implemeted beacon on/off for ISP82XX.Saurav Kashyap
[jejb: fix up checkpatch.pl errors] Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-29[SCSI] qla2xxx: Add support for ISP82xx to capture dump (minidump) on failure.Giridhar Malavali
Minidump allows us to catpure a snapshot of the firmware/hardware states at the time of failure for further analysis. [jejb: added missing #include <linux/vmalloc.h> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> ] Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-27[SCSI] zfcp: support for hardware data routerSwen Schillig
FICON Express8S supports hardware data router, which requires an adapted qdio request format. This part 2/2 exploits the functionality in zfcp. Signed-off-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-27[SCSI] qdio: base support for hardware data router with zfcpSwen Schillig
FICON Express8S supports hardware data router, which requires an adapted qdio request format. This part 1/2 provides the qdio base required for exploitation in zfcp. Signed-off-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-27[SCSI] zfcp: non-experimental support for DIF/DIXSteffen Maier
DIF/DIX support for zfcp is no longer experimental, and config option is no longer necessary. Return error from queuecommand for unsupported data directions. Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-08-27[SCSI] mvumi: Add Marvell UMI driverJianyun Li
The Marvell Universal Message Interface (UMI) defines a messaging interface between host and Marvell products (Plato, for example). It considers situations of limited system resource and optimized system performance. UMI driver translates host request to message and sends message to FW via UMI, FW receives message and processes it, then sends response to UMI driver. FW generates an interrupt when it needs to send information or response to UMI driver Signed-off-by: Jianyun Li <jyli@marvell.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>