diff options
Diffstat (limited to 'drivers/message/fusion')
| -rw-r--r-- | drivers/message/fusion/mptbase.c | 15 | ||||
| -rw-r--r-- | drivers/message/fusion/mptlan.c | 22 | ||||
| -rw-r--r-- | drivers/message/fusion/mptlan.h | 2 | ||||
| -rw-r--r-- | drivers/message/fusion/mptscsih.c | 3 |
4 files changed, 19 insertions, 23 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index d6a0074b9dc3..c4e8b9aa3827 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c | |||
| @@ -952,7 +952,6 @@ mpt_put_msg_frame_hi_pri(u8 cb_idx, MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf) | |||
| 952 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 952 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
| 953 | /** | 953 | /** |
| 954 | * mpt_free_msg_frame - Place MPT request frame back on FreeQ. | 954 | * mpt_free_msg_frame - Place MPT request frame back on FreeQ. |
| 955 | * @handle: Handle of registered MPT protocol driver | ||
| 956 | * @ioc: Pointer to MPT adapter structure | 955 | * @ioc: Pointer to MPT adapter structure |
| 957 | * @mf: Pointer to MPT request frame | 956 | * @mf: Pointer to MPT request frame |
| 958 | * | 957 | * |
| @@ -4563,7 +4562,7 @@ WaitForDoorbellReply(MPT_ADAPTER *ioc, int howlong, int sleepFlag) | |||
| 4563 | failcnt++; | 4562 | failcnt++; |
| 4564 | hword = le16_to_cpu(CHIPREG_READ32(&ioc->chip->Doorbell) & 0x0000FFFF); | 4563 | hword = le16_to_cpu(CHIPREG_READ32(&ioc->chip->Doorbell) & 0x0000FFFF); |
| 4565 | /* don't overflow our IOC hs_reply[] buffer! */ | 4564 | /* don't overflow our IOC hs_reply[] buffer! */ |
| 4566 | if (u16cnt < sizeof(ioc->hs_reply) / sizeof(ioc->hs_reply[0])) | 4565 | if (u16cnt < ARRAY_SIZE(ioc->hs_reply)) |
| 4567 | hs_reply[u16cnt] = hword; | 4566 | hs_reply[u16cnt] = hword; |
| 4568 | CHIPREG_WRITE32(&ioc->chip->IntStatus, 0); | 4567 | CHIPREG_WRITE32(&ioc->chip->IntStatus, 0); |
| 4569 | } | 4568 | } |
| @@ -5422,7 +5421,6 @@ mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num, pRaidPhysDiskPage0_t | |||
| 5422 | /** | 5421 | /** |
| 5423 | * mpt_findImVolumes - Identify IDs of hidden disks and RAID Volumes | 5422 | * mpt_findImVolumes - Identify IDs of hidden disks and RAID Volumes |
| 5424 | * @ioc: Pointer to a Adapter Strucutre | 5423 | * @ioc: Pointer to a Adapter Strucutre |
| 5425 | * @portnum: IOC port number | ||
| 5426 | * | 5424 | * |
| 5427 | * Return: | 5425 | * Return: |
| 5428 | * 0 on success | 5426 | * 0 on success |
| @@ -6939,7 +6937,6 @@ mpt_fc_log_info(MPT_ADAPTER *ioc, u32 log_info) | |||
| 6939 | /** | 6937 | /** |
| 6940 | * mpt_spi_log_info - Log information returned from SCSI Parallel IOC. | 6938 | * mpt_spi_log_info - Log information returned from SCSI Parallel IOC. |
| 6941 | * @ioc: Pointer to MPT_ADAPTER structure | 6939 | * @ioc: Pointer to MPT_ADAPTER structure |
| 6942 | * @mr: Pointer to MPT reply frame | ||
| 6943 | * @log_info: U32 LogInfo word from the IOC | 6940 | * @log_info: U32 LogInfo word from the IOC |
| 6944 | * | 6941 | * |
| 6945 | * Refer to lsi/sp_log.h. | 6942 | * Refer to lsi/sp_log.h. |
| @@ -7176,7 +7173,7 @@ union loginfo_type { | |||
| 7176 | 7173 | ||
| 7177 | sas_loginfo.loginfo = log_info; | 7174 | sas_loginfo.loginfo = log_info; |
| 7178 | if ((sas_loginfo.dw.bus_type != 3 /*SAS*/) && | 7175 | if ((sas_loginfo.dw.bus_type != 3 /*SAS*/) && |
| 7179 | (sas_loginfo.dw.originator < sizeof(originator_str)/sizeof(char*))) | 7176 | (sas_loginfo.dw.originator < ARRAY_SIZE(originator_str))) |
| 7180 | return; | 7177 | return; |
| 7181 | 7178 | ||
| 7182 | originator_desc = originator_str[sas_loginfo.dw.originator]; | 7179 | originator_desc = originator_str[sas_loginfo.dw.originator]; |
| @@ -7185,21 +7182,21 @@ union loginfo_type { | |||
| 7185 | 7182 | ||
| 7186 | case 0: /* IOP */ | 7183 | case 0: /* IOP */ |
| 7187 | if (sas_loginfo.dw.code < | 7184 | if (sas_loginfo.dw.code < |
| 7188 | sizeof(iop_code_str)/sizeof(char*)) | 7185 | ARRAY_SIZE(iop_code_str)) |
| 7189 | code_desc = iop_code_str[sas_loginfo.dw.code]; | 7186 | code_desc = iop_code_str[sas_loginfo.dw.code]; |
| 7190 | break; | 7187 | break; |
| 7191 | case 1: /* PL */ | 7188 | case 1: /* PL */ |
| 7192 | if (sas_loginfo.dw.code < | 7189 | if (sas_loginfo.dw.code < |
| 7193 | sizeof(pl_code_str)/sizeof(char*)) | 7190 | ARRAY_SIZE(pl_code_str)) |
| 7194 | code_desc = pl_code_str[sas_loginfo.dw.code]; | 7191 | code_desc = pl_code_str[sas_loginfo.dw.code]; |
| 7195 | break; | 7192 | break; |
| 7196 | case 2: /* IR */ | 7193 | case 2: /* IR */ |
| 7197 | if (sas_loginfo.dw.code >= | 7194 | if (sas_loginfo.dw.code >= |
| 7198 | sizeof(ir_code_str)/sizeof(char*)) | 7195 | ARRAY_SIZE(ir_code_str)) |
| 7199 | break; | 7196 | break; |
| 7200 | code_desc = ir_code_str[sas_loginfo.dw.code]; | 7197 | code_desc = ir_code_str[sas_loginfo.dw.code]; |
| 7201 | if (sas_loginfo.dw.subcode >= | 7198 | if (sas_loginfo.dw.subcode >= |
| 7202 | sizeof(raid_sub_code_str)/sizeof(char*)) | 7199 | ARRAY_SIZE(raid_sub_code_str)) |
| 7203 | break; | 7200 | break; |
| 7204 | if (sas_loginfo.dw.code == 0) | 7201 | if (sas_loginfo.dw.code == 0) |
| 7205 | sub_code_desc = | 7202 | sub_code_desc = |
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c index 603ffd008c73..a13f6eecd25b 100644 --- a/drivers/message/fusion/mptlan.c +++ b/drivers/message/fusion/mptlan.c | |||
| @@ -815,7 +815,7 @@ mpt_lan_wake_post_buckets_task(struct net_device *dev, int priority) | |||
| 815 | * @priority: 0 = put it on the timer queue, 1 = put it on the immediate queue | 815 | * @priority: 0 = put it on the timer queue, 1 = put it on the immediate queue |
| 816 | */ | 816 | */ |
| 817 | { | 817 | { |
| 818 | struct mpt_lan_priv *priv = dev->priv; | 818 | struct mpt_lan_priv *priv = netdev_priv(dev); |
| 819 | 819 | ||
| 820 | if (test_and_set_bit(0, &priv->post_buckets_active) == 0) { | 820 | if (test_and_set_bit(0, &priv->post_buckets_active) == 0) { |
| 821 | if (priority) { | 821 | if (priority) { |
| @@ -834,7 +834,7 @@ mpt_lan_wake_post_buckets_task(struct net_device *dev, int priority) | |||
| 834 | static int | 834 | static int |
| 835 | mpt_lan_receive_skb(struct net_device *dev, struct sk_buff *skb) | 835 | mpt_lan_receive_skb(struct net_device *dev, struct sk_buff *skb) |
| 836 | { | 836 | { |
| 837 | struct mpt_lan_priv *priv = dev->priv; | 837 | struct mpt_lan_priv *priv = netdev_priv(dev); |
| 838 | 838 | ||
| 839 | skb->protocol = mpt_lan_type_trans(skb, dev); | 839 | skb->protocol = mpt_lan_type_trans(skb, dev); |
| 840 | 840 | ||
| @@ -866,7 +866,7 @@ mpt_lan_receive_skb(struct net_device *dev, struct sk_buff *skb) | |||
| 866 | static int | 866 | static int |
| 867 | mpt_lan_receive_post_turbo(struct net_device *dev, u32 tmsg) | 867 | mpt_lan_receive_post_turbo(struct net_device *dev, u32 tmsg) |
| 868 | { | 868 | { |
| 869 | struct mpt_lan_priv *priv = dev->priv; | 869 | struct mpt_lan_priv *priv = netdev_priv(dev); |
| 870 | MPT_ADAPTER *mpt_dev = priv->mpt_dev; | 870 | MPT_ADAPTER *mpt_dev = priv->mpt_dev; |
| 871 | struct sk_buff *skb, *old_skb; | 871 | struct sk_buff *skb, *old_skb; |
| 872 | unsigned long flags; | 872 | unsigned long flags; |
| @@ -921,7 +921,7 @@ static int | |||
| 921 | mpt_lan_receive_post_free(struct net_device *dev, | 921 | mpt_lan_receive_post_free(struct net_device *dev, |
| 922 | LANReceivePostReply_t *pRecvRep) | 922 | LANReceivePostReply_t *pRecvRep) |
| 923 | { | 923 | { |
| 924 | struct mpt_lan_priv *priv = dev->priv; | 924 | struct mpt_lan_priv *priv = netdev_priv(dev); |
| 925 | MPT_ADAPTER *mpt_dev = priv->mpt_dev; | 925 | MPT_ADAPTER *mpt_dev = priv->mpt_dev; |
| 926 | unsigned long flags; | 926 | unsigned long flags; |
| 927 | struct sk_buff *skb; | 927 | struct sk_buff *skb; |
| @@ -976,7 +976,7 @@ static int | |||
| 976 | mpt_lan_receive_post_reply(struct net_device *dev, | 976 | mpt_lan_receive_post_reply(struct net_device *dev, |
| 977 | LANReceivePostReply_t *pRecvRep) | 977 | LANReceivePostReply_t *pRecvRep) |
| 978 | { | 978 | { |
| 979 | struct mpt_lan_priv *priv = dev->priv; | 979 | struct mpt_lan_priv *priv = netdev_priv(dev); |
| 980 | MPT_ADAPTER *mpt_dev = priv->mpt_dev; | 980 | MPT_ADAPTER *mpt_dev = priv->mpt_dev; |
| 981 | struct sk_buff *skb, *old_skb; | 981 | struct sk_buff *skb, *old_skb; |
| 982 | unsigned long flags; | 982 | unsigned long flags; |
| @@ -1427,11 +1427,9 @@ mptlan_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
| 1427 | printk(KERN_INFO MYNAM ": %s: Fusion MPT LAN device " | 1427 | printk(KERN_INFO MYNAM ": %s: Fusion MPT LAN device " |
| 1428 | "registered as '%s'\n", ioc->name, dev->name); | 1428 | "registered as '%s'\n", ioc->name, dev->name); |
| 1429 | printk(KERN_INFO MYNAM ": %s/%s: " | 1429 | printk(KERN_INFO MYNAM ": %s/%s: " |
| 1430 | "LanAddr = %02X:%02X:%02X:%02X:%02X:%02X\n", | 1430 | "LanAddr = %pM\n", |
| 1431 | IOC_AND_NETDEV_NAMES_s_s(dev), | 1431 | IOC_AND_NETDEV_NAMES_s_s(dev), |
| 1432 | dev->dev_addr[0], dev->dev_addr[1], | 1432 | dev->dev_addr); |
| 1433 | dev->dev_addr[2], dev->dev_addr[3], | ||
| 1434 | dev->dev_addr[4], dev->dev_addr[5]); | ||
| 1435 | 1433 | ||
| 1436 | ioc->netdev = dev; | 1434 | ioc->netdev = dev; |
| 1437 | 1435 | ||
| @@ -1516,9 +1514,8 @@ mpt_lan_type_trans(struct sk_buff *skb, struct net_device *dev) | |||
| 1516 | 1514 | ||
| 1517 | printk (KERN_WARNING MYNAM ": %s: WARNING - Broadcast swap F/W bug detected!\n", | 1515 | printk (KERN_WARNING MYNAM ": %s: WARNING - Broadcast swap F/W bug detected!\n", |
| 1518 | NETDEV_PTR_TO_IOC_NAME_s(dev)); | 1516 | NETDEV_PTR_TO_IOC_NAME_s(dev)); |
| 1519 | printk (KERN_WARNING MYNAM ": Please update sender @ MAC_addr = %02x:%02x:%02x:%02x:%02x:%02x\n", | 1517 | printk (KERN_WARNING MYNAM ": Please update sender @ MAC_addr = %pM\n", |
| 1520 | fch->saddr[0], fch->saddr[1], fch->saddr[2], | 1518 | fch->saddr); |
| 1521 | fch->saddr[3], fch->saddr[4], fch->saddr[5]); | ||
| 1522 | } | 1519 | } |
| 1523 | 1520 | ||
| 1524 | if (*fch->daddr & 1) { | 1521 | if (*fch->daddr & 1) { |
| @@ -1537,7 +1534,6 @@ mpt_lan_type_trans(struct sk_buff *skb, struct net_device *dev) | |||
| 1537 | 1534 | ||
| 1538 | fcllc = (struct fcllc *)skb->data; | 1535 | fcllc = (struct fcllc *)skb->data; |
| 1539 | 1536 | ||
| 1540 | |||
| 1541 | /* Strip the SNAP header from ARP packets since we don't | 1537 | /* Strip the SNAP header from ARP packets since we don't |
| 1542 | * pass them through to the 802.2/SNAP layers. | 1538 | * pass them through to the 802.2/SNAP layers. |
| 1543 | */ | 1539 | */ |
diff --git a/drivers/message/fusion/mptlan.h b/drivers/message/fusion/mptlan.h index 33927ee7dc3b..c171afa93239 100644 --- a/drivers/message/fusion/mptlan.h +++ b/drivers/message/fusion/mptlan.h | |||
| @@ -122,7 +122,7 @@ MODULE_DESCRIPTION(LANAME); | |||
| 122 | #define dlprintk(x) | 122 | #define dlprintk(x) |
| 123 | #endif | 123 | #endif |
| 124 | 124 | ||
| 125 | #define NETDEV_TO_LANPRIV_PTR(d) ((struct mpt_lan_priv *)(d)->priv) | 125 | #define NETDEV_TO_LANPRIV_PTR(d) ((struct mpt_lan_priv *)netdev_priv(d)) |
| 126 | #define NETDEV_PTR_TO_IOC_NAME_s(d) (NETDEV_TO_LANPRIV_PTR(d)->mpt_dev->name) | 126 | #define NETDEV_PTR_TO_IOC_NAME_s(d) (NETDEV_TO_LANPRIV_PTR(d)->mpt_dev->name) |
| 127 | #define IOC_AND_NETDEV_NAMES_s_s(d) NETDEV_PTR_TO_IOC_NAME_s(d), (d)->name | 127 | #define IOC_AND_NETDEV_NAMES_s_s(d) NETDEV_PTR_TO_IOC_NAME_s(d), (d)->name |
| 128 | 128 | ||
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index d62fd4f6b52e..ee090413e598 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
| @@ -2008,6 +2008,9 @@ mptscsih_host_reset(struct scsi_cmnd *SCpnt) | |||
| 2008 | return FAILED; | 2008 | return FAILED; |
| 2009 | } | 2009 | } |
| 2010 | 2010 | ||
| 2011 | /* make sure we have no outstanding commands at this stage */ | ||
| 2012 | mptscsih_flush_running_cmds(hd); | ||
| 2013 | |||
| 2011 | ioc = hd->ioc; | 2014 | ioc = hd->ioc; |
| 2012 | printk(MYIOC_s_INFO_FMT "attempting host reset! (sc=%p)\n", | 2015 | printk(MYIOC_s_INFO_FMT "attempting host reset! (sc=%p)\n", |
| 2013 | ioc->name, SCpnt); | 2016 | ioc->name, SCpnt); |
