aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptbase.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/message/fusion/mptbase.c')
-rw-r--r--drivers/message/fusion/mptbase.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index ebc0af7d769c..a896d948b79e 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -649,12 +649,10 @@ mptbase_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply)
649 case MPI_FUNCTION_CONFIG: 649 case MPI_FUNCTION_CONFIG:
650 case MPI_FUNCTION_SAS_IO_UNIT_CONTROL: 650 case MPI_FUNCTION_SAS_IO_UNIT_CONTROL:
651 ioc->mptbase_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD; 651 ioc->mptbase_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
652 if (reply) { 652 ioc->mptbase_cmds.status |= MPT_MGMT_STATUS_RF_VALID;
653 ioc->mptbase_cmds.status |= MPT_MGMT_STATUS_RF_VALID; 653 memcpy(ioc->mptbase_cmds.reply, reply,
654 memcpy(ioc->mptbase_cmds.reply, reply, 654 min(MPT_DEFAULT_FRAME_SIZE,
655 min(MPT_DEFAULT_FRAME_SIZE, 655 4 * reply->u.reply.MsgLength));
656 4 * reply->u.reply.MsgLength));
657 }
658 if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_PENDING) { 656 if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_PENDING) {
659 ioc->mptbase_cmds.status &= ~MPT_MGMT_STATUS_PENDING; 657 ioc->mptbase_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
660 complete(&ioc->mptbase_cmds.done); 658 complete(&ioc->mptbase_cmds.done);
@@ -1408,8 +1406,8 @@ mpt_verify_adapter(int iocid, MPT_ADAPTER **iocpp)
1408 * in /proc/mpt/summary and /sysfs/class/scsi_host/host<X>/version_product 1406 * in /proc/mpt/summary and /sysfs/class/scsi_host/host<X>/version_product
1409 * 1407 *
1410 **/ 1408 **/
1411static void 1409static const char*
1412mpt_get_product_name(u16 vendor, u16 device, u8 revision, char *prod_name) 1410mpt_get_product_name(u16 vendor, u16 device, u8 revision)
1413{ 1411{
1414 char *product_str = NULL; 1412 char *product_str = NULL;
1415 1413
@@ -1635,8 +1633,7 @@ mpt_get_product_name(u16 vendor, u16 device, u8 revision, char *prod_name)
1635 } 1633 }
1636 1634
1637 out: 1635 out:
1638 if (product_str) 1636 return product_str;
1639 sprintf(prod_name, "%s", product_str);
1640} 1637}
1641 1638
1642/** 1639/**
@@ -1887,8 +1884,8 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
1887 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "facts @ %p, pfacts[0] @ %p\n", 1884 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "facts @ %p, pfacts[0] @ %p\n",
1888 ioc->name, &ioc->facts, &ioc->pfacts[0])); 1885 ioc->name, &ioc->facts, &ioc->pfacts[0]));
1889 1886
1890 mpt_get_product_name(pdev->vendor, pdev->device, pdev->revision, 1887 ioc->prod_name = mpt_get_product_name(pdev->vendor, pdev->device,
1891 ioc->prod_name); 1888 pdev->revision);
1892 1889
1893 switch (pdev->device) 1890 switch (pdev->device)
1894 { 1891 {
@@ -7007,7 +7004,7 @@ EXPORT_SYMBOL(mpt_halt_firmware);
7007 * IOC doesn't reply to any outstanding request. This will transfer IOC 7004 * IOC doesn't reply to any outstanding request. This will transfer IOC
7008 * to READY state. 7005 * to READY state.
7009 **/ 7006 **/
7010int 7007static int
7011mpt_SoftResetHandler(MPT_ADAPTER *ioc, int sleepFlag) 7008mpt_SoftResetHandler(MPT_ADAPTER *ioc, int sleepFlag)
7012{ 7009{
7013 int rc; 7010 int rc;