Loading MAINTAINERS +5 −4 Original line number Original line Diff line number Diff line Loading @@ -5517,10 +5517,11 @@ S: Maintained F: arch/arm/mach-lpc32xx/ F: arch/arm/mach-lpc32xx/ LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) M: Nagalakshmi Nandigama <Nagalakshmi.Nandigama@lsi.com> M: Nagalakshmi Nandigama <nagalakshmi.nandigama@avagotech.com> M: Sreekanth Reddy <Sreekanth.Reddy@lsi.com> M: Praveen Krishnamoorthy <praveen.krishnamoorthy@avagotech.com> M: support@lsi.com M: Sreekanth Reddy <sreekanth.reddy@avagotech.com> L: DL-MPTFusionLinux@lsi.com M: Abhijit Mahajan <abhijit.mahajan@avagotech.com> L: MPT-FusionLinux.pdl@avagotech.com L: linux-scsi@vger.kernel.org L: linux-scsi@vger.kernel.org W: http://www.lsilogic.com/support W: http://www.lsilogic.com/support S: Supported S: Supported Loading drivers/scsi/be2iscsi/be_main.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -4198,6 +4198,8 @@ static int hba_setup_cid_tbls(struct beiscsi_hba *phba) kfree(phba->ep_array); kfree(phba->ep_array); phba->ep_array = NULL; phba->ep_array = NULL; ret = -ENOMEM; ret = -ENOMEM; goto free_memory; } } for (i = 0; i < phba->params.cxns_per_ctrl; i++) { for (i = 0; i < phba->params.cxns_per_ctrl; i++) { Loading drivers/scsi/be2iscsi/be_mgmt.c +1 −3 Original line number Original line Diff line number Diff line Loading @@ -1008,10 +1008,8 @@ int mgmt_set_ip(struct beiscsi_hba *phba, BE2_IPV6 : BE2_IPV4 ; BE2_IPV6 : BE2_IPV4 ; rc = mgmt_get_if_info(phba, ip_type, &if_info); rc = mgmt_get_if_info(phba, ip_type, &if_info); if (rc) { if (rc) kfree(if_info); return rc; return rc; } if (boot_proto == ISCSI_BOOTPROTO_DHCP) { if (boot_proto == ISCSI_BOOTPROTO_DHCP) { if (if_info->dhcp_state) { if (if_info->dhcp_state) { Loading drivers/scsi/bnx2fc/bnx2fc_fcoe.c +4 −12 Original line number Original line Diff line number Diff line Loading @@ -516,23 +516,17 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) skb_pull(skb, sizeof(struct fcoe_hdr)); skb_pull(skb, sizeof(struct fcoe_hdr)); fr_len = skb->len - sizeof(struct fcoe_crc_eof); fr_len = skb->len - sizeof(struct fcoe_crc_eof); stats = per_cpu_ptr(lport->stats, get_cpu()); stats->RxFrames++; stats->RxWords += fr_len / FCOE_WORD_TO_BYTE; fp = (struct fc_frame *)skb; fp = (struct fc_frame *)skb; fc_frame_init(fp); fc_frame_init(fp); fr_dev(fp) = lport; fr_dev(fp) = lport; fr_sof(fp) = hp->fcoe_sof; fr_sof(fp) = hp->fcoe_sof; if (skb_copy_bits(skb, fr_len, &crc_eof, sizeof(crc_eof))) { if (skb_copy_bits(skb, fr_len, &crc_eof, sizeof(crc_eof))) { put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } fr_eof(fp) = crc_eof.fcoe_eof; fr_eof(fp) = crc_eof.fcoe_eof; fr_crc(fp) = crc_eof.fcoe_crc32; fr_crc(fp) = crc_eof.fcoe_crc32; if (pskb_trim(skb, fr_len)) { if (pskb_trim(skb, fr_len)) { put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } Loading @@ -544,7 +538,6 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) port = lport_priv(vn_port); port = lport_priv(vn_port); if (!ether_addr_equal(port->data_src_addr, dest_mac)) { if (!ether_addr_equal(port->data_src_addr, dest_mac)) { BNX2FC_HBA_DBG(lport, "fpma mismatch\n"); BNX2FC_HBA_DBG(lport, "fpma mismatch\n"); put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } Loading @@ -552,7 +545,6 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) if (fh->fh_r_ctl == FC_RCTL_DD_SOL_DATA && if (fh->fh_r_ctl == FC_RCTL_DD_SOL_DATA && fh->fh_type == FC_TYPE_FCP) { fh->fh_type == FC_TYPE_FCP) { /* Drop FCP data. We dont this in L2 path */ /* Drop FCP data. We dont this in L2 path */ put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } Loading @@ -562,7 +554,6 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) case ELS_LOGO: case ELS_LOGO: if (ntoh24(fh->fh_s_id) == FC_FID_FLOGI) { if (ntoh24(fh->fh_s_id) == FC_FID_FLOGI) { /* drop non-FIP LOGO */ /* drop non-FIP LOGO */ put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } Loading @@ -572,22 +563,23 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) if (fh->fh_r_ctl == FC_RCTL_BA_ABTS) { if (fh->fh_r_ctl == FC_RCTL_BA_ABTS) { /* Drop incoming ABTS */ /* Drop incoming ABTS */ put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } stats = per_cpu_ptr(lport->stats, smp_processor_id()); stats->RxFrames++; stats->RxWords += fr_len / FCOE_WORD_TO_BYTE; if (le32_to_cpu(fr_crc(fp)) != if (le32_to_cpu(fr_crc(fp)) != ~crc32(~0, skb->data, fr_len)) { ~crc32(~0, skb->data, fr_len)) { if (stats->InvalidCRCCount < 5) if (stats->InvalidCRCCount < 5) printk(KERN_WARNING PFX "dropping frame with " printk(KERN_WARNING PFX "dropping frame with " "CRC error\n"); "CRC error\n"); stats->InvalidCRCCount++; stats->InvalidCRCCount++; put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } put_cpu(); fc_exch_recv(lport, fp); fc_exch_recv(lport, fp); } } Loading drivers/scsi/bnx2fc/bnx2fc_io.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -282,6 +282,8 @@ struct bnx2fc_cmd_mgr *bnx2fc_cmd_mgr_alloc(struct bnx2fc_hba *hba) arr_sz, GFP_KERNEL); arr_sz, GFP_KERNEL); if (!cmgr->free_list_lock) { if (!cmgr->free_list_lock) { printk(KERN_ERR PFX "failed to alloc free_list_lock\n"); printk(KERN_ERR PFX "failed to alloc free_list_lock\n"); kfree(cmgr->free_list); cmgr->free_list = NULL; goto mem_err; goto mem_err; } } Loading Loading
MAINTAINERS +5 −4 Original line number Original line Diff line number Diff line Loading @@ -5517,10 +5517,11 @@ S: Maintained F: arch/arm/mach-lpc32xx/ F: arch/arm/mach-lpc32xx/ LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) M: Nagalakshmi Nandigama <Nagalakshmi.Nandigama@lsi.com> M: Nagalakshmi Nandigama <nagalakshmi.nandigama@avagotech.com> M: Sreekanth Reddy <Sreekanth.Reddy@lsi.com> M: Praveen Krishnamoorthy <praveen.krishnamoorthy@avagotech.com> M: support@lsi.com M: Sreekanth Reddy <sreekanth.reddy@avagotech.com> L: DL-MPTFusionLinux@lsi.com M: Abhijit Mahajan <abhijit.mahajan@avagotech.com> L: MPT-FusionLinux.pdl@avagotech.com L: linux-scsi@vger.kernel.org L: linux-scsi@vger.kernel.org W: http://www.lsilogic.com/support W: http://www.lsilogic.com/support S: Supported S: Supported Loading
drivers/scsi/be2iscsi/be_main.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -4198,6 +4198,8 @@ static int hba_setup_cid_tbls(struct beiscsi_hba *phba) kfree(phba->ep_array); kfree(phba->ep_array); phba->ep_array = NULL; phba->ep_array = NULL; ret = -ENOMEM; ret = -ENOMEM; goto free_memory; } } for (i = 0; i < phba->params.cxns_per_ctrl; i++) { for (i = 0; i < phba->params.cxns_per_ctrl; i++) { Loading
drivers/scsi/be2iscsi/be_mgmt.c +1 −3 Original line number Original line Diff line number Diff line Loading @@ -1008,10 +1008,8 @@ int mgmt_set_ip(struct beiscsi_hba *phba, BE2_IPV6 : BE2_IPV4 ; BE2_IPV6 : BE2_IPV4 ; rc = mgmt_get_if_info(phba, ip_type, &if_info); rc = mgmt_get_if_info(phba, ip_type, &if_info); if (rc) { if (rc) kfree(if_info); return rc; return rc; } if (boot_proto == ISCSI_BOOTPROTO_DHCP) { if (boot_proto == ISCSI_BOOTPROTO_DHCP) { if (if_info->dhcp_state) { if (if_info->dhcp_state) { Loading
drivers/scsi/bnx2fc/bnx2fc_fcoe.c +4 −12 Original line number Original line Diff line number Diff line Loading @@ -516,23 +516,17 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) skb_pull(skb, sizeof(struct fcoe_hdr)); skb_pull(skb, sizeof(struct fcoe_hdr)); fr_len = skb->len - sizeof(struct fcoe_crc_eof); fr_len = skb->len - sizeof(struct fcoe_crc_eof); stats = per_cpu_ptr(lport->stats, get_cpu()); stats->RxFrames++; stats->RxWords += fr_len / FCOE_WORD_TO_BYTE; fp = (struct fc_frame *)skb; fp = (struct fc_frame *)skb; fc_frame_init(fp); fc_frame_init(fp); fr_dev(fp) = lport; fr_dev(fp) = lport; fr_sof(fp) = hp->fcoe_sof; fr_sof(fp) = hp->fcoe_sof; if (skb_copy_bits(skb, fr_len, &crc_eof, sizeof(crc_eof))) { if (skb_copy_bits(skb, fr_len, &crc_eof, sizeof(crc_eof))) { put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } fr_eof(fp) = crc_eof.fcoe_eof; fr_eof(fp) = crc_eof.fcoe_eof; fr_crc(fp) = crc_eof.fcoe_crc32; fr_crc(fp) = crc_eof.fcoe_crc32; if (pskb_trim(skb, fr_len)) { if (pskb_trim(skb, fr_len)) { put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } Loading @@ -544,7 +538,6 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) port = lport_priv(vn_port); port = lport_priv(vn_port); if (!ether_addr_equal(port->data_src_addr, dest_mac)) { if (!ether_addr_equal(port->data_src_addr, dest_mac)) { BNX2FC_HBA_DBG(lport, "fpma mismatch\n"); BNX2FC_HBA_DBG(lport, "fpma mismatch\n"); put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } Loading @@ -552,7 +545,6 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) if (fh->fh_r_ctl == FC_RCTL_DD_SOL_DATA && if (fh->fh_r_ctl == FC_RCTL_DD_SOL_DATA && fh->fh_type == FC_TYPE_FCP) { fh->fh_type == FC_TYPE_FCP) { /* Drop FCP data. We dont this in L2 path */ /* Drop FCP data. We dont this in L2 path */ put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } Loading @@ -562,7 +554,6 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) case ELS_LOGO: case ELS_LOGO: if (ntoh24(fh->fh_s_id) == FC_FID_FLOGI) { if (ntoh24(fh->fh_s_id) == FC_FID_FLOGI) { /* drop non-FIP LOGO */ /* drop non-FIP LOGO */ put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } Loading @@ -572,22 +563,23 @@ static void bnx2fc_recv_frame(struct sk_buff *skb) if (fh->fh_r_ctl == FC_RCTL_BA_ABTS) { if (fh->fh_r_ctl == FC_RCTL_BA_ABTS) { /* Drop incoming ABTS */ /* Drop incoming ABTS */ put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } stats = per_cpu_ptr(lport->stats, smp_processor_id()); stats->RxFrames++; stats->RxWords += fr_len / FCOE_WORD_TO_BYTE; if (le32_to_cpu(fr_crc(fp)) != if (le32_to_cpu(fr_crc(fp)) != ~crc32(~0, skb->data, fr_len)) { ~crc32(~0, skb->data, fr_len)) { if (stats->InvalidCRCCount < 5) if (stats->InvalidCRCCount < 5) printk(KERN_WARNING PFX "dropping frame with " printk(KERN_WARNING PFX "dropping frame with " "CRC error\n"); "CRC error\n"); stats->InvalidCRCCount++; stats->InvalidCRCCount++; put_cpu(); kfree_skb(skb); kfree_skb(skb); return; return; } } put_cpu(); fc_exch_recv(lport, fp); fc_exch_recv(lport, fp); } } Loading
drivers/scsi/bnx2fc/bnx2fc_io.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -282,6 +282,8 @@ struct bnx2fc_cmd_mgr *bnx2fc_cmd_mgr_alloc(struct bnx2fc_hba *hba) arr_sz, GFP_KERNEL); arr_sz, GFP_KERNEL); if (!cmgr->free_list_lock) { if (!cmgr->free_list_lock) { printk(KERN_ERR PFX "failed to alloc free_list_lock\n"); printk(KERN_ERR PFX "failed to alloc free_list_lock\n"); kfree(cmgr->free_list); cmgr->free_list = NULL; goto mem_err; goto mem_err; } } Loading