diff options
Diffstat (limited to 'drivers/message/fusion/mptbase.c')
-rw-r--r-- | drivers/message/fusion/mptbase.c | 23 |
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 | **/ |
1411 | static void | 1409 | static const char* |
1412 | mpt_get_product_name(u16 vendor, u16 device, u8 revision, char *prod_name) | 1410 | mpt_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 | **/ |
7010 | int | 7007 | static int |
7011 | mpt_SoftResetHandler(MPT_ADAPTER *ioc, int sleepFlag) | 7008 | mpt_SoftResetHandler(MPT_ADAPTER *ioc, int sleepFlag) |
7012 | { | 7009 | { |
7013 | int rc; | 7010 | int rc; |