[PATCH -next] scsi: hisi_sas: Fix missing unlock on error in hisi_sas_phy_read32()
Add the missing unlock before return from function hisi_sas_phy_read32() in the error handling case. Fixes: 784b46b7cba0 ("scsi: hisi_sas: Use block layer tag instead for IPTT") Signed-off-by: Wei Yongjun --- drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c index 70d6b28..cc36b64 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c @@ -806,8 +806,10 @@ static u32 hisi_sas_phy_read32(struct hisi_hba *hisi_hba, while (1) { start = find_next_zero_bit(bitmap, hisi_hba->slot_index_count, start); - if (start >= end) + if (start >= end) { + spin_unlock_irqrestore(_hba->lock, flags); return -SAS_QUEUE_FULL; + } /* * SAS IPTT bit0 should be 1, and SATA IPTT bit0 should be 0. */
[PATCH -next] scsi: hisi_sas: fix a typo in hisi_sas_task_prep()
Fix a typo in hisi_sas_task_prep(). Fixes: 7eee4b921822 ("scsi: hisi_sas: relocate smp sg map") Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/hisi_sas/hisi_sas_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c index 39f694e..6d37965 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_main.c +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c @@ -390,7 +390,7 @@ static int hisi_sas_task_prep(struct sas_task *task, } n_elem_resp = dma_map_sg(dev, >smp_task.smp_resp, 1, DMA_FROM_DEVICE); - if (!n_elem_req) { + if (!n_elem_resp) { rc = -ENOMEM; goto err_out_dma_unmap; }
[PATCH -next] scsi: qedf: Fix error return code in __qedf_probe()
Fix to return error code -ENOMEM from the error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/qedf/qedf_main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c index 40800dd..ccd9a08 100644 --- a/drivers/scsi/qedf/qedf_main.c +++ b/drivers/scsi/qedf/qedf_main.c @@ -3126,6 +3126,7 @@ static int __qedf_probe(struct pci_dev *pdev, int mode) qedf->cmd_mgr = qedf_cmd_mgr_alloc(qedf); if (!qedf->cmd_mgr) { QEDF_ERR(&(qedf->dbg_ctx), "Failed to allocate cmd mgr.\n"); + rc = -ENOMEM; goto err5; } @@ -3149,6 +3150,7 @@ static int __qedf_probe(struct pci_dev *pdev, int mode) create_workqueue(host_buf); if (!qedf->ll2_recv_wq) { QEDF_ERR(&(qedf->dbg_ctx), "Failed to LL2 workqueue.\n"); + rc = -ENOMEM; goto err7; } @@ -3192,6 +3194,7 @@ static int __qedf_probe(struct pci_dev *pdev, int mode) if (!qedf->timer_work_queue) { QEDF_ERR(&(qedf->dbg_ctx), "Failed to start timer " "workqueue.\n"); + rc = -ENOMEM; goto err7; }
[PATCH -next] scsi: hisi_sas: make local symbol host_attrs static
Fixes the following sparse warning: drivers/scsi/hisi_sas/hisi_sas_main.c:1691:25: warning: symbol 'host_attrs' was not declared. Should it be static? Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/hisi_sas/hisi_sas_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c index 360ecef..e3e7285 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_main.c +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c @@ -1688,7 +1688,7 @@ void hisi_sas_kill_tasklets(struct hisi_hba *hisi_hba) struct scsi_transport_template *hisi_sas_stt; EXPORT_SYMBOL_GPL(hisi_sas_stt); -struct device_attribute *host_attrs[] = { +static struct device_attribute *host_attrs[] = { _attr_phy_event_threshold, NULL, };
[PATCH -next] tcmu: fix error return code in tcmu_configure_device()
Fix to return error code -ENOMEM from the kzalloc() error handling case instead of 0, as done elsewhere in this function. Fixes: fabe6a59cc5a ("tcmu: allow max block and global max blocks to be settable") Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/target/target_core_user.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c index bac08bc..2edd242 100644 --- a/drivers/target/target_core_user.c +++ b/drivers/target/target_core_user.c @@ -1705,8 +1705,10 @@ static int tcmu_configure_device(struct se_device *dev) udev->data_bitmap = kzalloc(BITS_TO_LONGS(udev->max_blocks) * sizeof(unsigned long), GFP_KERNEL); - if (!udev->data_bitmap) + if (!udev->data_bitmap) { + ret = -ENOMEM; goto err_bitmap_alloc; + } udev->mb_addr = vzalloc(CMDR_SIZE); if (!udev->mb_addr) {
[PATCH -next] [SCSI] mac_esp: fix to pass correct device identity to free_irq()
From: Wei Yongjun <weiyongj...@huawei.com> free_irq() expects the same device identity that was passed to corresponding request_irq(), otherwise the IRQ is not freed. Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/mac_esp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/mac_esp.c b/drivers/scsi/mac_esp.c index bb567d3..dda4da2 100644 --- a/drivers/scsi/mac_esp.c +++ b/drivers/scsi/mac_esp.c @@ -580,7 +580,7 @@ static int esp_mac_probe(struct platform_device *dev) fail_free_irq: if (esp_chips[!dev->id] == NULL) - free_irq(host->irq, esp); + free_irq(host->irq, NULL); fail_free_priv: kfree(mep); fail_free_command_block:
[PATCH -next] scsi: sd: make sd_devt_release() static
From: Wei Yongjun <weiyongj...@huawei.com> Fixes the following sparse warning: drivers/scsi/sd.c:3087:6: warning: symbol 'sd_devt_release' was not declared. Should it be static? Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/sd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index cb6e68d..b9b32f58 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -3084,7 +3084,7 @@ struct sd_devt { struct disk_devt disk_devt; }; -void sd_devt_release(struct disk_devt *disk_devt) +static void sd_devt_release(struct disk_devt *disk_devt) { struct sd_devt *sd_devt = container_of(disk_devt, struct sd_devt, disk_devt);
[PATCH -next] scsi: qedi: Fix possible memory leak in qedi_iscsi_update_conn()
From: Wei Yongjun <weiyongj...@huawei.com> 'conn_info' is malloced in qedi_iscsi_update_conn() and should be freed before leaving from the error handling cases, otherwise it will cause memory leak. Fixes: ace7f46ba5fd ("scsi: qedi: Add QLogic FastLinQ offload iSCSI driver framework.") Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/qedi/qedi_iscsi.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c index d6a2054..eb64469 100644 --- a/drivers/scsi/qedi/qedi_iscsi.c +++ b/drivers/scsi/qedi/qedi_iscsi.c @@ -453,13 +453,9 @@ static int qedi_iscsi_update_conn(struct qedi_ctx *qedi, if (rval) { rval = -ENXIO; QEDI_ERR(>dbg_ctx, "Could not update connection\n"); - goto update_conn_err; } kfree(conn_info); - rval = 0; - -update_conn_err: return rval; }
[PATCH -next] scsi: be2iscsi: Use GFP_ATOMIC under spin lock
From: Wei Yongjun <weiyongj...@huawei.com> A spin lock is taken here so we should use GFP_ATOMIC. Fixes: 987132167f4b ("scsi: be2iscsi: Fix for crash in beiscsi_eh_device_reset") Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/be2iscsi/be_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c index 6372613..c9b9daa 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c @@ -294,7 +294,7 @@ static int beiscsi_eh_device_reset(struct scsi_cmnd *sc) beiscsi_conn = conn->dd_data; phba = beiscsi_conn->phba; - inv_tbl = kzalloc(sizeof(*inv_tbl), GFP_KERNEL); + inv_tbl = kzalloc(sizeof(*inv_tbl), GFP_ATOMIC); if (!inv_tbl) { spin_unlock_bh(>frwd_lock); beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_EH, -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] mvsas: fix error return code in mvs_task_prep()
From: Wei Yongjun <weiyongj...@huawei.com> Fix to return error code -ENOMEM from the error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/mvsas/mv_sas.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c index 86eb199..c7cc803 100644 --- a/drivers/scsi/mvsas/mv_sas.c +++ b/drivers/scsi/mvsas/mv_sas.c @@ -791,8 +791,10 @@ static int mvs_task_prep(struct sas_task *task, struct mvs_info *mvi, int is_tmf slot->slot_tag = tag; slot->buf = pci_pool_alloc(mvi->dma_pool, GFP_ATOMIC, >buf_dma); - if (!slot->buf) + if (!slot->buf) { + rc = -ENOMEM; goto err_out_tag; + } memset(slot->buf, 0, MVS_SLOT_BUF_SZ); tei.task = task; -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] scsi: ufs: fix error return code in ufshcd_init()
From: Wei Yongjun <weiyongj...@huawei.com> Fix to return a negative error code from the error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/ufs/ufshcd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 37f3c51..6aebb7e 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -6500,6 +6500,7 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq) if (IS_ERR(hba->devfreq)) { dev_err(hba->dev, "Unable to register with devfreq %ld\n", PTR_ERR(hba->devfreq)); + err = PTR_ERR(hba->devfreq); goto out_remove_scsi_host; } /* Suspend devfreq until the UFS device is detected */ -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] scsi: ibmvscsis: Fix error return code in ibmvscsis_probe()
From: Wei Yongjun <weiyongj...@huawei.com> Fix to return error code -ENOMEM from the dma mapping error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c index 4dd8e5e..38b086e 100644 --- a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +++ b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c @@ -3449,6 +3449,7 @@ static int ibmvscsis_probe(struct vio_dev *vdev, vscsi->map_ioba = dma_map_single(>dev, vscsi->map_buf, PAGE_SIZE, DMA_BIDIRECTIONAL); if (dma_mapping_error(>dev, vscsi->map_ioba)) { + rc = -ENOMEM; dev_err(>dev, "probe: error mapping command buffer\n"); goto free_buf; } -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] [SCSI] mpt fusion: fix error return code in mptfc_probe()
From: Wei Yongjun <weiyongj...@huawei.com> Fix to return error code -ENOMEM from the workqueue alloc error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/message/fusion/mptfc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c index 129e132..add6a3a 100644 --- a/drivers/message/fusion/mptfc.c +++ b/drivers/message/fusion/mptfc.c @@ -1326,8 +1326,10 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id) ioc->fc_rescan_work_q = alloc_ordered_workqueue(ioc->fc_rescan_work_q_name, WQ_MEM_RECLAIM); - if (!ioc->fc_rescan_work_q) + if (!ioc->fc_rescan_work_q) { + error = -ENOMEM; goto out_mptfc_probe; + } /* * Pre-fetch FC port WWN and stuff... -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] scsi: ibmvfc: fix typo in parameter description
From: Wei Yongjun <weiyongj...@huawei.com> Fix typo in parameter description. Signed-off-by: Wei Yongjun <weiyongj...@huawei.com> --- drivers/scsi/ibmvscsi/ibmvfc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index 6b92169..56b9f45 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c @@ -88,7 +88,7 @@ module_param_named(log_level, log_level, uint, 0); MODULE_PARM_DESC(log_level, "Set to 0 - 4 for increasing verbosity of device driver. " "[Default=" __stringify(IBMVFC_DEFAULT_LOG_LEVEL) "]"); module_param_named(cls3_error, cls3_error, uint, 0); -MODULE_PARM_DESC(log_level, "Enable FC Class 3 Error Recovery. " +MODULE_PARM_DESC(cls3_error, "Enable FC Class 3 Error Recovery. " "[Default=" __stringify(IBMVFC_CLS3_ERROR) "]"); static const struct { -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] ipr: Fix error return code in ipr_probe_ioa()
Fix to return error code -ENOMEM from the workqueue alloc error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun <weiyj...@gmail.com> --- drivers/scsi/ipr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index 95e4834..bf85974 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c @@ -10219,6 +10219,7 @@ static int ipr_probe_ioa(struct pci_dev *pdev, if (!ioa_cfg->reset_work_q) { dev_err(>dev, "Couldn't register reset workqueue\n"); + rc = -ENOMEM; goto out_free_irq; } } else -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] fcoe: add missing destroy_workqueue() on error in fcoe_init()
Add the missing destroy_workqueue() before return from fcoe_init() in the fcoe transport register failed error handling case. Signed-off-by: Wei Yongjun <weiyj...@gmail.com> --- drivers/scsi/fcoe/fcoe.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c index 197dc62..9bd41a3 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c @@ -2495,7 +2495,7 @@ static int __init fcoe_init(void) if (rc) { printk(KERN_ERR "failed to register an fcoe transport, check " "if libfcoe is loaded\n"); - return rc; + goto out_destroy; } mutex_lock(_config_mutex); @@ -2518,6 +2518,7 @@ static int __init fcoe_init(void) out_free: mutex_unlock(_config_mutex); +out_destroy: destroy_workqueue(fcoe_wq); return rc; } -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] fcoe: Use kfree_skb() instead of kfree()
Use kfree_skb() instead of kfree() to free sk_buff. Signed-off-by: Wei Yongjun <weiyj...@gmail.com> --- drivers/scsi/fcoe/fcoe_ctlr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c index a569c65..dcf3653 100644 --- a/drivers/scsi/fcoe/fcoe_ctlr.c +++ b/drivers/scsi/fcoe/fcoe_ctlr.c @@ -2923,7 +2923,7 @@ static int fcoe_ctlr_vlan_recv(struct fcoe_ctlr *fip, struct sk_buff *skb) mutex_unlock(>ctlr_mutex); drop: - kfree(skb); + kfree_skb(skb); return rc; } -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] ibmvscsis: Use list_move_tail instead of list_del/list_add_tail
Using list_move_tail() instead of list_del() + list_add_tail(). Signed-off-by: Wei Yongjun <weiyj...@gmail.com> --- drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c index b29fef9..7e873a7 100644 --- a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +++ b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c @@ -3697,8 +3697,7 @@ static void ibmvscsis_release_cmd(struct se_cmd *se_cmd) spin_lock_bh(>intr_lock); /* Remove from active_q */ - list_del(>list); - list_add_tail(>list, >waiting_rsp); + list_move_tail(>list, >waiting_rsp); ibmvscsis_send_messages(vscsi); spin_unlock_bh(>intr_lock); } -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] target/rd: remove unused variable from target_core_rd.c
From: Wei Yongjun yongjun_...@trendmicro.com.cn The variable 'sg_table' is initialized but never used otherwise, so remove the unused variable. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/target_core_rd.c | 6 -- 1 file changed, 6 deletions(-) diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c index 3fd51eb..9a107c0 100644 --- a/drivers/target/target_core_rd.c +++ b/drivers/target/target_core_rd.c @@ -105,14 +105,11 @@ static u32 rd_release_sgl_table(struct rd_dev *rd_dev, struct rd_dev_sg_table *s static void rd_release_device_space(struct rd_dev *rd_dev) { - struct rd_dev_sg_table *sg_table; u32 page_count; if (!rd_dev-sg_table_array || !rd_dev-sg_table_count) return; - sg_table = rd_dev-sg_table_array; - page_count = rd_release_sgl_table(rd_dev, rd_dev-sg_table_array, rd_dev-sg_table_count); @@ -228,14 +225,11 @@ static int rd_build_device_space(struct rd_dev *rd_dev) static void rd_release_prot_space(struct rd_dev *rd_dev) { - struct rd_dev_sg_table *sg_table; u32 page_count; if (!rd_dev-sg_prot_array || !rd_dev-sg_prot_count) return; - sg_table = rd_dev-sg_prot_array; - page_count = rd_release_sgl_table(rd_dev, rd_dev-sg_prot_array, rd_dev-sg_prot_count); -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] target/sbc: Fix sparse non static symbol warning
From: Wei Yongjun yongjun_...@trendmicro.com.cn Fixes the following sparse warning: drivers/target/target_core_sbc.c:573:1: warning: symbol 'sbc_check_prot' was not declared. Should it be static? Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/target_core_sbc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c index 77d7ae2..ec49257 100644 --- a/drivers/target/target_core_sbc.c +++ b/drivers/target/target_core_sbc.c @@ -569,7 +569,7 @@ sbc_compare_and_write(struct se_cmd *cmd) return TCM_NO_SENSE; } -bool +static bool sbc_check_prot(struct se_device *dev, struct se_cmd *cmd, unsigned char *cdb) { if (!dev-dev_attrib.pi_prot_type) -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [SCSI] bfa: fix missing unlock on error in bfad_iocmd_cfg_trunk()
From: Wei Yongjun yongjun_...@trendmicro.com.cn Add the missing unlock before return from function bfad_iocmd_cfg_trunk() in the error handling case. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/bfa/bfad_bsg.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/bfa/bfad_bsg.c b/drivers/scsi/bfa/bfad_bsg.c index 157f604..8994fb8 100644 --- a/drivers/scsi/bfa/bfad_bsg.c +++ b/drivers/scsi/bfa/bfad_bsg.c @@ -2304,8 +2304,10 @@ bfad_iocmd_cfg_trunk(struct bfad_s *bfad, void *cmd, unsigned int v_cmd) spin_lock_irqsave(bfad-bfad_lock, flags); - if (bfa_fcport_is_dport(bfad-bfa)) + if (bfa_fcport_is_dport(bfad-bfa)) { + spin_unlock_irqrestore(bfad-bfad_lock, flags); return BFA_STATUS_DPORT_ERR; + } if ((fcport-cfg.topology == BFA_PORT_TOPOLOGY_LOOP) || (fcport-topology == BFA_PORT_TOPOLOGY_LOOP)) -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] fcoe: add missing destroy_workqueue() on error in fcoe_init()
From: Wei Yongjun yongjun_...@trendmicro.com.cn Add the missing destroy_workqueue() before return from fcoe_init() in the error handling case. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/fcoe/fcoe.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c index f317000..0f2e497 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c @@ -2623,7 +2623,7 @@ static int __init fcoe_init(void) if (rc) { printk(KERN_ERR failed to register an fcoe transport, check if libfcoe is loaded\n); - return rc; + goto out_destroy_wq; } mutex_lock(fcoe_config_mutex); @@ -2656,6 +2656,7 @@ out_free: fcoe_percpu_thread_destroy(cpu); } mutex_unlock(fcoe_config_mutex); +out_destroy_wq: destroy_workqueue(fcoe_wq); return rc; } -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [SCSI] megaraid: use GFP_ATOMIC under spin lock
From: Wei Yongjun yongjun_...@trendmicro.com.cn A spin lock is taken here so we should use GFP_ATOMIC. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/megaraid/megaraid_mm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/megaraid/megaraid_mm.c b/drivers/scsi/megaraid/megaraid_mm.c index a706927..99fa5d3 100644 --- a/drivers/scsi/megaraid/megaraid_mm.c +++ b/drivers/scsi/megaraid/megaraid_mm.c @@ -570,7 +570,7 @@ mraid_mm_attach_buf(mraid_mmadp_t *adp, uioc_t *kioc, int xferlen) kioc-pool_index= right_pool; kioc-free_buf = 1; - kioc-buf_vaddr = pci_pool_alloc(pool-handle, GFP_KERNEL, + kioc-buf_vaddr = pci_pool_alloc(pool-handle, GFP_ATOMIC, kioc-buf_paddr); spin_unlock_irqrestore(pool-lock, flags); -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [SCSI] hpsa: fix return value check in start_controller_lockup_detector()
From: Wei Yongjun yongjun_...@trendmicro.com.cn In case of error, the function kthread_run() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/hpsa.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index 891c86b..f413b14 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -4757,7 +4757,8 @@ static void start_controller_lockup_detector(struct ctlr_info *h) kthread_run(detect_controller_lockup_thread, NULL, HPSA); } - if (!hpsa_lockup_detector) { + if (IS_ERR(hpsa_lockup_detector)) { + hpsa_lockup_detector = NULL; dev_warn(h-pdev-dev, Could not start lockup detector thread\n); return; -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] target/pscsi: fix return value check
From: Wei Yongjun yongjun_...@trendmicro.com.cn In case of error, the function scsi_host_lookup() returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/target_core_pscsi.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c index 551c96c..0f199f6 100644 --- a/drivers/target/target_core_pscsi.c +++ b/drivers/target/target_core_pscsi.c @@ -134,10 +134,10 @@ static int pscsi_pmode_enable_hba(struct se_hba *hba, unsigned long mode_flag) * pSCSI Host ID and enable for phba mode */ sh = scsi_host_lookup(phv-phv_host_id); - if (IS_ERR(sh)) { + if (!sh) { pr_err(pSCSI: Unable to locate SCSI Host for phv_host_id: %d\n, phv-phv_host_id); - return PTR_ERR(sh); + return -EINVAL; } phv-phv_lld_host = sh; @@ -515,10 +515,10 @@ static int pscsi_configure_device(struct se_device *dev) sh = phv-phv_lld_host; } else { sh = scsi_host_lookup(pdv-pdv_host_id); - if (IS_ERR(sh)) { + if (!sh) { pr_err(pSCSI: Unable to locate pdv_host_id: %d\n, pdv-pdv_host_id); - return PTR_ERR(sh); + return -EINVAL; } } } else { -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] target: remove unused including linux/version.h
From: Wei Yongjun yongjun_...@trendmicro.com.cn Remove including linux/version.h that don't need it. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/target_core_xcopy.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/target/target_core_xcopy.c b/drivers/target/target_core_xcopy.c index 7e12286..fb4b0c5 100644 --- a/drivers/target/target_core_xcopy.c +++ b/drivers/target/target_core_xcopy.c @@ -21,7 +21,6 @@ * **/ -#include linux/version.h #include linux/slab.h #include linux/spinlock.h #include linux/list.h -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] [SCSI] ufshcd-pltfrm: remove redundant dev_err call in ufshcd_pltfrm_probe()
From: Wei Yongjun yongjun_...@trendmicro.com.cn There is a error message within devm_ioremap_resource already, so remove the dev_err call to avoid redundant error message. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/ufs/ufshcd-pltfrm.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/scsi/ufs/ufshcd-pltfrm.c index c42db40..2bd7417 100644 --- a/drivers/scsi/ufs/ufshcd-pltfrm.c +++ b/drivers/scsi/ufs/ufshcd-pltfrm.c @@ -110,7 +110,6 @@ static int ufshcd_pltfrm_probe(struct platform_device *pdev) mmio_base = devm_ioremap_resource(dev, mem_res); if (IS_ERR(mmio_base)) { - dev_err(dev, memory map failed\n); err = PTR_ERR(mmio_base); goto out; } -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [SCSI] sd: fix error return code in sd_probe()
From: Wei Yongjun yongjun_...@trendmicro.com.cn Fix to return a negative error code in the device add error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/sd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 82910cc..99f07e92 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -2944,7 +2944,8 @@ static int sd_probe(struct device *dev) sdkp-dev.class = sd_disk_class; dev_set_name(sdkp-dev, dev_name(dev)); - if (device_add(sdkp-dev)) + error = device_add(sdkp-dev); + if (error) goto out_free_index; get_device(dev); -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [SCSI] fnic: fix error return code in fnic_probe()
From: Wei Yongjun yongjun_...@trendmicro.com.cn Fix to return -ENOMEM in the mempool_create_slab_pool() error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/fnic/fnic_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/scsi/fnic/fnic_main.c b/drivers/scsi/fnic/fnic_main.c index 5f09d18..0523322 100644 --- a/drivers/scsi/fnic/fnic_main.c +++ b/drivers/scsi/fnic/fnic_main.c @@ -605,6 +605,7 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) for (i = 0; i FNIC_IO_LOCKS; i++) spin_lock_init(fnic-io_req_lock[i]); + err = -ENOMEM; fnic-io_req_pool = mempool_create_slab_pool(2, fnic_io_req_cache); if (!fnic-io_req_pool) goto err_out_free_resources; -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [ARM] rpc: acornscsi: fix error return code in acornscsi_probe()
From: Wei Yongjun yongjun_...@trendmicro.com.cn Fix to return -ENOMEM in the ecardm_iomap() error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/arm/acornscsi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c index 09ba186..bee7142 100644 --- a/drivers/scsi/arm/acornscsi.c +++ b/drivers/scsi/arm/acornscsi.c @@ -2961,8 +2961,10 @@ static int acornscsi_probe(struct expansion_card *ec, const struct ecard_id *id) ashost-base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0); ashost-fast = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0); - if (!ashost-base || !ashost-fast) + if (!ashost-base || !ashost-fast) { + ret = -ENOMEM; goto out_put; + } host-irq = ec-irq; ashost-host = host; -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] [SCSI] scsi_transport_iscsi: fix error return code in iscsi_transport_init()
From: Wei Yongjun yongjun_...@trendmicro.com.cn Fix to return -ENOMEM in the create workqueue error case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/scsi_transport_iscsi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index 47799a3..475265a 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c @@ -3985,8 +3985,10 @@ static __init int iscsi_transport_init(void) } iscsi_eh_timer_workq = create_singlethread_workqueue(iscsi_eh); - if (!iscsi_eh_timer_workq) + if (!iscsi_eh_timer_workq) { + err = -ENOMEM; goto release_nls; + } return 0; -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] [SCSI] qla2xxx: fix error return code in qla2x00_probe_one()
From: Wei Yongjun yongjun_...@trendmicro.com.cn Fix to return a negative error code in the queues alloc error handling case instead of 0, as done elsewhere in this function. And also fix to return 0 from qla2x00_alloc_queues() when no error, otherwise this cause if (!qla2x00_alloc_queues(ha, req, rsp)) always be false. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/qla2xxx/qla_os.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 5307bf8..16fe011 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -344,7 +344,7 @@ static int qla2x00_alloc_queues(struct qla_hw_data *ha, struct req_que *req, ha-req_q_map[0] = req; set_bit(0, ha-rsp_qid_map); set_bit(0, ha-req_qid_map); - return 1; + return 0; fail_rsp_map: kfree(ha-req_q_map); @@ -2631,7 +2631,8 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) que_init: /* Alloc arrays of request and response ring ptrs */ - if (!qla2x00_alloc_queues(ha, req, rsp)) { + ret = qla2x00_alloc_queues(ha, req, rsp); + if (ret) { ql_log(ql_log_fatal, base_vha, 0x003d, Failed to allocate memory for queue pointers... aborting.\n); -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [SCSI] mvumi: fix error return code in mvumi_io_attach()
From: Wei Yongjun yongjun_...@trendmicro.com.cn Fix to return a negative error code from the error handling case instead of 0, as returned elsewhere in this function. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/mvumi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/scsi/mvumi.c b/drivers/scsi/mvumi.c index 4594cca..c347374 100644 --- a/drivers/scsi/mvumi.c +++ b/drivers/scsi/mvumi.c @@ -2480,6 +2480,7 @@ static int mvumi_io_attach(struct mvumi_hba *mhba) dev_err(mhba-pdev-dev, failed to create device scan thread\n); mutex_unlock(mhba-sas_discovery_mutex); + ret = PTR_ERR(mhba-dm_thread); goto fail_create_thread; } atomic_set(mhba-pnp_count, 1); -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] [SCSI] mpt fusion: fix error return code in mptfc_probe()
From: Wei Yongjun yongjun_...@trendmicro.com.cn Fix to return a negative error code from the error handling case instead of 0, as returned elsewhere in this function. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/message/fusion/mptfc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c index fd75108..b1b3ea3 100644 --- a/drivers/message/fusion/mptfc.c +++ b/drivers/message/fusion/mptfc.c @@ -1328,8 +1328,10 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id) mptfc_wq_%d, sh-host_no); ioc-fc_rescan_work_q = create_singlethread_workqueue(ioc-fc_rescan_work_q_name); - if (!ioc-fc_rescan_work_q) + if (!ioc-fc_rescan_work_q) { + error = -ENOMEM; goto out_mptfc_probe; + } /* * Pre-fetch FC port WWN and stuff... -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] target: fix possible memory leak in core_tpg_register()
From: Wei Yongjun yongjun_...@trendmicro.com.cn 'se_tpg-tpg_lun_list' is malloced in core_tpg_register() and should be freed before leaving from the error handling cases, otherwise it will cause memory leak. 'se_tpg' is malloced out of this function, and will be freed if we return error, so remove free for 'se_tpg'. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/target_core_tpg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c index 9169d6a..aac9d27 100644 --- a/drivers/target/target_core_tpg.c +++ b/drivers/target/target_core_tpg.c @@ -711,7 +711,8 @@ int core_tpg_register( if (se_tpg-se_tpg_type == TRANSPORT_TPG_TYPE_NORMAL) { if (core_tpg_setup_virtual_lun0(se_tpg) 0) { - kfree(se_tpg); + array_free(se_tpg-tpg_lun_list, + TRANSPORT_MAX_LUNS_PER_TPG); return -ENOMEM; } } -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] [SCSI] csiostor: remove unused variable in csio_process_fwevtq_entry()
From: Wei Yongjun yongjun_...@trendmicro.com.cn The variable 'data' is initialized but never used otherwise, so remove the unused variable. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/csiostor/csio_hw.c | 5 - 1 file changed, 5 deletions(-) diff --git a/drivers/scsi/csiostor/csio_hw.c b/drivers/scsi/csiostor/csio_hw.c index a0b4c89..1936055 100644 --- a/drivers/scsi/csiostor/csio_hw.c +++ b/drivers/scsi/csiostor/csio_hw.c @@ -3565,7 +3565,6 @@ csio_process_fwevtq_entry(struct csio_hw *hw, void *wr, uint32_t len, struct csio_fl_dma_buf *flb, void *priv) { __u8 op; - __be64 *data; void *msg = NULL; uint32_t msg_len = 0; bool msg_sg = 0; @@ -3581,8 +3580,6 @@ csio_process_fwevtq_entry(struct csio_hw *hw, void *wr, uint32_t len, msg = (void *) flb; msg_len = flb-totlen; msg_sg = 1; - - data = (__be64 *) msg; } else if (op == CPL_FW6_MSG || op == CPL_FW4_MSG) { CSIO_INC_STATS(hw, n_cpl_fw6_msg); @@ -3590,8 +3587,6 @@ csio_process_fwevtq_entry(struct csio_hw *hw, void *wr, uint32_t len, msg = (void *)((uintptr_t)wr + sizeof(__be64)); msg_len = (op == CPL_FW6_MSG) ? sizeof(struct cpl_fw6_msg) : sizeof(struct cpl_fw4_msg); - - data = (__be64 *) msg; } else { csio_warn(hw, unexpected CPL %#x on FW event queue\n, op); CSIO_INC_STATS(hw, n_cpl_unexp); -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH -next] [SCSI] fnic: convert to use simple_open()
From: Wei Yongjun yongjun_...@trendmicro.com.cn This removes an open coded simple_open() function and replaces file operations references to the function with simple_open() instead. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/fnic/fnic_debugfs.c | 19 +-- 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/drivers/scsi/fnic/fnic_debugfs.c b/drivers/scsi/fnic/fnic_debugfs.c index bc06f9b..26db5b5 100644 --- a/drivers/scsi/fnic/fnic_debugfs.c +++ b/drivers/scsi/fnic/fnic_debugfs.c @@ -25,23 +25,6 @@ static struct dentry *fnic_trace_debugfs_file; static struct dentry *fnic_trace_enable; /* - * fnic_trace_ctrl_open - Open the trace_enable file - * @inode: The inode pointer. - * @file: The file pointer to attach the trace enable/disable flag. - * - * Description: - * This routine opens a debugsfs file trace_enable. - * - * Returns: - * This function returns zero if successful. - */ -static int fnic_trace_ctrl_open(struct inode *inode, struct file *filp) -{ - filp-private_data = inode-i_private; - return 0; -} - -/* * fnic_trace_ctrl_read - Read a trace_enable debugfs file * @filp: The file pointer to read from. * @ubuf: The buffer to copy the data to. @@ -232,7 +215,7 @@ static int fnic_trace_debugfs_release(struct inode *inode, static const struct file_operations fnic_trace_ctrl_fops = { .owner = THIS_MODULE, - .open = fnic_trace_ctrl_open, + .open = simple_open, .read = fnic_trace_ctrl_read, .write = fnic_trace_ctrl_write, }; -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] target: fix return value check in sbp_register_configfs()
From: Wei Yongjun yongjun_...@trendmicro.com.cn In case of error, the function target_fabric_configfs_init() returns ERR_PTR() not NULL pointer. The NULL test in the return value check should be replaced with IS_ERR(). dpatch engine is used to auto generated this patch. (https://github.com/weiyj/dpatch) Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/sbp/sbp_target.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c index 39ddba5..773303e 100644 --- a/drivers/target/sbp/sbp_target.c +++ b/drivers/target/sbp/sbp_target.c @@ -2556,9 +2556,9 @@ static int sbp_register_configfs(void) int ret; fabric = target_fabric_configfs_init(THIS_MODULE, sbp); - if (!fabric) { + if (IS_ERR(fabric)) { pr_err(target_fabric_configfs_init() failed\n); - return -ENOMEM; + return PTR_ERR(fabric); } fabric-tf_ops = sbp_ops; -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [SCSI] bfa: move the dereference below the NULL test
From: Wei Yongjun yongjun_...@trendmicro.com.cn The dereference should be moved below the NULL test. spatch with a semantic match is used to found this. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/bfa/bfad_im.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/bfa/bfad_im.c b/drivers/scsi/bfa/bfad_im.c index 2eebf8d..e778f35 100644 --- a/drivers/scsi/bfa/bfad_im.c +++ b/drivers/scsi/bfa/bfad_im.c @@ -951,13 +951,15 @@ static int bfad_im_slave_alloc(struct scsi_device *sdev) { struct fc_rport *rport = starget_to_rport(scsi_target(sdev)); - struct bfad_itnim_data_s *itnim_data = - (struct bfad_itnim_data_s *) rport-dd_data; - struct bfa_s *bfa = itnim_data-itnim-bfa_itnim-bfa; + struct bfad_itnim_data_s *itnim_data; + struct bfa_s *bfa; if (!rport || fc_remote_port_chkready(rport)) return -ENXIO; + itnim_data = (struct bfad_itnim_data_s *)rport-dd_data; + bfa = itnim_data-itnim-bfa_itnim-bfa; + if (bfa_get_lun_mask_status(bfa) == BFA_LUNMASK_ENABLED) { /* * We should not mask LUN 0 - since this will translate -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] tcm_fc: move the dereference below the NULL test
From: Wei Yongjun yongjun_...@trendmicro.com.cn The dereference should be moved below the NULL test. spatch with a semantic match is used to found this. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/tcm_fc/tfc_io.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/target/tcm_fc/tfc_io.c b/drivers/target/tcm_fc/tfc_io.c index ad36ede1..1b367a9 100644 --- a/drivers/target/tcm_fc/tfc_io.c +++ b/drivers/target/tcm_fc/tfc_io.c @@ -328,11 +328,12 @@ drop: */ void ft_invl_hw_context(struct ft_cmd *cmd) { - struct fc_seq *seq = cmd-seq; + struct fc_seq *seq; struct fc_exch *ep = NULL; struct fc_lport *lport = NULL; BUG_ON(!cmd); + seq = cmd-seq; /* Cleanup the DDP context in HW if DDP was setup */ if (cmd-was_ddp_setup seq) { -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] target: move the dereference below the NULL test
From: Wei Yongjun yongjun_...@trendmicro.com.cn The dereference should be moved below the NULL test. spatch with a semantic match is used to found this. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/target_core_pr.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c index 1e94650..7e2e9be 100644 --- a/drivers/target/target_core_pr.c +++ b/drivers/target/target_core_pr.c @@ -197,10 +197,10 @@ int target_scsi2_reservation_release(struct se_cmd *cmd) { struct se_device *dev = cmd-se_dev; struct se_session *sess = cmd-se_sess; - struct se_portal_group *tpg = sess-se_tpg; + struct se_portal_group *tpg; int ret = 0, rc; - if (!sess || !tpg) + if (!sess || !sess-se_tpg) goto out; rc = target_check_scsi2_reservation_conflict(cmd); if (rc == 1) @@ -228,6 +228,7 @@ int target_scsi2_reservation_release(struct se_cmd *cmd) dev-dev_res_bin_isid = 0; dev-dev_flags = ~DF_SPC2_RESERVATIONS_WITH_ISID; } + tpg = sess-se_tpg; pr_debug(SCSI-2 Released reservation for %s LUN: %u - MAPPED LUN: %u for %s\n, tpg-se_tpg_tfo-get_fabric_name(), cmd-se_lun-unpacked_lun, cmd-se_deve-mapped_lun, @@ -245,7 +246,7 @@ int target_scsi2_reservation_reserve(struct se_cmd *cmd) { struct se_device *dev = cmd-se_dev; struct se_session *sess = cmd-se_sess; - struct se_portal_group *tpg = sess-se_tpg; + struct se_portal_group *tpg; int ret = 0, rc; if ((cmd-t_task_cdb[1] 0x01) @@ -260,7 +261,7 @@ int target_scsi2_reservation_reserve(struct se_cmd *cmd) * This is currently the case for target_core_mod passthrough struct se_cmd * ops */ - if (!sess || !tpg) + if (!sess || !sess-se_tpg) goto out; rc = target_check_scsi2_reservation_conflict(cmd); if (rc == 1) @@ -272,6 +273,7 @@ int target_scsi2_reservation_reserve(struct se_cmd *cmd) } ret = 0; + tpg = sess-se_tpg; spin_lock(dev-dev_reservation_lock); if (dev-dev_reserved_node_acl (dev-dev_reserved_node_acl != sess-se_node_acl)) { -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [SCSI] bnx2fc: move the dereference below the NULL test
From: Wei Yongjun yongjun_...@trendmicro.com.cn The dereference should be moved below the NULL test. spatch with a semantic match is used to found this. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/bnx2fc/bnx2fc_io.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c index 73f231c..298a0fe 100644 --- a/drivers/scsi/bnx2fc/bnx2fc_io.c +++ b/drivers/scsi/bnx2fc/bnx2fc_io.c @@ -686,7 +686,7 @@ static int bnx2fc_initiate_tmf(struct scsi_cmnd *sc_cmd, u8 tm_flags) { struct fc_lport *lport; struct fc_rport *rport = starget_to_rport(scsi_target(sc_cmd-device)); - struct fc_rport_libfc_priv *rp = rport-dd_data; + struct fc_rport_libfc_priv *rp; struct fcoe_port *port; struct bnx2fc_interface *interface; struct bnx2fc_rport *tgt; @@ -722,6 +722,8 @@ static int bnx2fc_initiate_tmf(struct scsi_cmnd *sc_cmd, u8 tm_flags) rc = FAILED; goto tmf_err; } + + rp = rport-dd_data; /* rport and tgt are allocated together, so tgt should be non-NULL */ tgt = (struct bnx2fc_rport *)rp[1]; -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] [SCSI] bfa: use list_move_tail instead of list_del/list_add_tail
From: Wei Yongjun yongjun_...@trendmicro.com.cn Using list_move_tail() instead of list_del() + list_add_tail(). spatch with a semantic match is used to found this problem. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/bfa/bfa_ioc.c | 3 +-- drivers/scsi/bfa/bfa_fcpim.c | 37 + 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/drivers/scsi/bfa/bfa_ioc.c b/drivers/scsi/bfa/bfa_ioc.c index 8cdb79c..339e731 100644 --- a/drivers/scsi/bfa/bfa_ioc.c +++ b/drivers/scsi/bfa/bfa_ioc.c @@ -2950,8 +2950,7 @@ bfa_timer_beat(struct bfa_timer_mod_s *mod) elem = (struct bfa_timer_s *) qe; if (elem-timeout = BFA_TIMER_FREQ) { elem-timeout = 0; - list_del(elem-qe); - list_add_tail(elem-qe, timedout_q); + list_move_tail(elem-qe, timedout_q); } else { elem-timeout -= BFA_TIMER_FREQ; } diff --git a/drivers/scsi/bfa/bfa_fcpim.c b/drivers/scsi/bfa/bfa_fcpim.c index f0f80e2..02a1552 100644 --- a/drivers/scsi/bfa/bfa_fcpim.c +++ b/drivers/scsi/bfa/bfa_fcpim.c @@ -91,8 +91,7 @@ enum bfa_itnim_event { * BFA IOIM related definitions */ #define bfa_ioim_move_to_comp_q(__ioim) do { \ - list_del((__ioim)-qe);\ - list_add_tail((__ioim)-qe, (__ioim)-fcpim-ioim_comp_q);\ + list_move_tail((__ioim)-qe, (__ioim)-fcpim-ioim_comp_q); \ } while (0) @@ -1030,8 +1029,7 @@ bfa_itnim_cleanup(struct bfa_itnim_s *itnim) * Move IO to a cleanup queue from active queue so that a later * TM will not pickup this IO. */ - list_del(ioim-qe); - list_add_tail(ioim-qe, itnim-io_cleanup_q); + list_move_tail(ioim-qe, itnim-io_cleanup_q); bfa_wc_up(itnim-wc); bfa_ioim_cleanup(ioim); @@ -1505,15 +1503,13 @@ bfa_ioim_sm_uninit(struct bfa_ioim_s *ioim, enum bfa_ioim_event event) if (!bfa_itnim_is_online(ioim-itnim)) { if (!bfa_itnim_hold_io(ioim-itnim)) { bfa_sm_set_state(ioim, bfa_ioim_sm_hcb); - list_del(ioim-qe); - list_add_tail(ioim-qe, - ioim-fcpim-ioim_comp_q); + list_move_tail(ioim-qe, + ioim-fcpim-ioim_comp_q); bfa_cb_queue(ioim-bfa, ioim-hcb_qe, __bfa_cb_ioim_pathtov, ioim); } else { - list_del(ioim-qe); - list_add_tail(ioim-qe, - ioim-itnim-pending_q); + list_move_tail(ioim-qe, + ioim-itnim-pending_q); } break; } @@ -2040,8 +2036,7 @@ bfa_ioim_sm_hcb_free(struct bfa_ioim_s *ioim, enum bfa_ioim_event event) switch (event) { case BFA_IOIM_SM_HCB: bfa_sm_set_state(ioim, bfa_ioim_sm_resfree); - list_del(ioim-qe); - list_add_tail(ioim-qe, ioim-fcpim-ioim_resfree_q); + list_move_tail(ioim-qe, ioim-fcpim-ioim_resfree_q); break; case BFA_IOIM_SM_FREE: @@ -2673,14 +2668,12 @@ bfa_ioim_notify_cleanup(struct bfa_ioim_s *ioim) * Move IO from itnim queue to fcpim global queue since itnim will be * freed. */ - list_del(ioim-qe); - list_add_tail(ioim-qe, ioim-fcpim-ioim_comp_q); + list_move_tail(ioim-qe, ioim-fcpim-ioim_comp_q); if (!ioim-iosp-tskim) { if (ioim-fcpim-delay_comp ioim-itnim-iotov_active) { bfa_cb_dequeue(ioim-hcb_qe); - list_del(ioim-qe); - list_add_tail(ioim-qe, ioim-itnim-delay_comp_q); + list_move_tail(ioim-qe, ioim-itnim-delay_comp_q); } bfa_itnim_iodone(ioim-itnim); } else @@ -2724,8 +2717,7 @@ bfa_ioim_delayed_comp(struct bfa_ioim_s *ioim, bfa_boolean_t iotov) * Move IO to fcpim global queue since itnim will be * freed. */ - list_del(ioim-qe); - list_add_tail(ioim-qe, ioim-fcpim-ioim_comp_q); + list_move_tail(ioim-qe, ioim-fcpim-ioim_comp_q); } @@ -3319,8 +3311,7 @@ bfa_tskim_gather_ios(struct bfa_tskim_s *tskim) cmnd = (struct scsi_cmnd *) ioim-dio; int_to_scsilun(cmnd-device-lun, scsilun); if (bfa_tskim_match_scope(tskim, scsilun)) { - list_del
[PATCH] [SCSI] lpfc 8.3.32: use list_move_tail instead of list_del/list_add_tail
From: Wei Yongjun yongjun_...@trendmicro.com.cn Using list_move_tail() instead of list_del() + list_add_tail(). spatch with a semantic match is used to found this problem. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/scsi/lpfc/lpfc_sli.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 9cbd20b..0ada66b 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -15833,8 +15833,7 @@ lpfc_cleanup_pending_mbox(struct lpfc_vport *vport) (mb-u.mb.mbxCommand != MBX_REG_VPI)) continue; - list_del(mb-list); - list_add_tail(mb-list, mbox_cmd_list); + list_move_tail(mb-list, mbox_cmd_list); } /* Clean up active mailbox command with the vport */ mb = phba-sli.mbox_active; -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2] [SCSI] bfa: use list_move_tail instead of list_del/list_add_tail
From: Wei Yongjun yongjun_...@trendmicro.com.cn Using list_move_tail() instead of list_del() + list_add_tail(). spatch with a semantic match is used to found this problem. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- v1 - v2: add cleanup for drivers/scsi/bfa/bfa_svc.c --- drivers/scsi/bfa/bfa_svc.c | 18 ++ drivers/scsi/bfa/bfa_ioc.c | 3 +-- drivers/scsi/bfa/bfa_fcpim.c | 37 + 3 files changed, 20 insertions(+), 38 deletions(-) diff --git a/drivers/scsi/bfa/bfa_svc.c b/drivers/scsi/bfa/bfa_svc.c index 2e856e6..dd97cb3 100644 --- a/drivers/scsi/bfa/bfa_svc.c +++ b/drivers/scsi/bfa/bfa_svc.c @@ -656,8 +656,7 @@ bfa_fcxp_put(struct bfa_fcxp_s *fcxp) } WARN_ON(!bfa_q_is_on_q(mod-fcxp_active_q, fcxp)); - list_del(fcxp-qe); - list_add_tail(fcxp-qe, mod-fcxp_free_q); + list_move_tail(fcxp-qe, mod-fcxp_free_q); } static void @@ -1588,8 +1587,7 @@ bfa_lps_login_rsp(struct bfa_s *bfa, struct bfi_lps_login_rsp_s *rsp) break; } - list_del(lps-qe); - list_add_tail(lps-qe, mod-lps_active_q); + list_move_tail(lps-qe, mod-lps_active_q); bfa_sm_send_event(lps, BFA_LPS_SM_FWRSP); } @@ -1610,8 +1608,7 @@ bfa_lps_no_res(struct bfa_lps_s *first_lps, u8 count) lps = (struct bfa_lps_s *)qe; bfa_trc(bfa, lps-bfa_tag); lps-status = first_lps-status; - list_del(lps-qe); - list_add_tail(lps-qe, mod-lps_active_q); + list_move_tail(lps-qe, mod-lps_active_q); bfa_sm_send_event(lps, BFA_LPS_SM_FWRSP); qe = qe_next; count--; @@ -1667,8 +1664,7 @@ bfa_lps_free(struct bfa_lps_s *lps) struct bfa_lps_mod_s*mod = BFA_LPS_MOD(lps-bfa); lps-lp_pid = 0; - list_del(lps-qe); - list_add_tail(lps-qe, mod-lps_free_q); + list_move_tail(lps-qe, mod-lps_free_q); } /* @@ -1696,8 +1692,7 @@ bfa_lps_send_login(struct bfa_lps_s *lps) m-bb_scn = lps-bb_scn; bfa_reqq_produce(lps-bfa, lps-reqq, m-mh); - list_del(lps-qe); - list_add_tail(lps-qe, mod-lps_login_q); + list_move_tail(lps-qe, mod-lps_login_q); } /* @@ -4534,8 +4529,7 @@ bfa_rport_free(struct bfa_rport_s *rport) struct bfa_rport_mod_s *mod = BFA_RPORT_MOD(rport-bfa); WARN_ON(!bfa_q_is_on_q(mod-rp_active_q, rport)); - list_del(rport-qe); - list_add_tail(rport-qe, mod-rp_free_q); + list_move_tail(rport-qe, mod-rp_free_q); } static bfa_boolean_t diff --git a/drivers/scsi/bfa/bfa_ioc.c b/drivers/scsi/bfa/bfa_ioc.c index 8cdb79c..339e731 100644 --- a/drivers/scsi/bfa/bfa_ioc.c +++ b/drivers/scsi/bfa/bfa_ioc.c @@ -2950,8 +2950,7 @@ bfa_timer_beat(struct bfa_timer_mod_s *mod) elem = (struct bfa_timer_s *) qe; if (elem-timeout = BFA_TIMER_FREQ) { elem-timeout = 0; - list_del(elem-qe); - list_add_tail(elem-qe, timedout_q); + list_move_tail(elem-qe, timedout_q); } else { elem-timeout -= BFA_TIMER_FREQ; } diff --git a/drivers/scsi/bfa/bfa_fcpim.c b/drivers/scsi/bfa/bfa_fcpim.c index f0f80e2..02a1552 100644 --- a/drivers/scsi/bfa/bfa_fcpim.c +++ b/drivers/scsi/bfa/bfa_fcpim.c @@ -91,8 +91,7 @@ enum bfa_itnim_event { * BFA IOIM related definitions */ #define bfa_ioim_move_to_comp_q(__ioim) do { \ - list_del((__ioim)-qe);\ - list_add_tail((__ioim)-qe, (__ioim)-fcpim-ioim_comp_q);\ + list_move_tail((__ioim)-qe, (__ioim)-fcpim-ioim_comp_q); \ } while (0) @@ -1030,8 +1029,7 @@ bfa_itnim_cleanup(struct bfa_itnim_s *itnim) * Move IO to a cleanup queue from active queue so that a later * TM will not pickup this IO. */ - list_del(ioim-qe); - list_add_tail(ioim-qe, itnim-io_cleanup_q); + list_move_tail(ioim-qe, itnim-io_cleanup_q); bfa_wc_up(itnim-wc); bfa_ioim_cleanup(ioim); @@ -1505,15 +1503,13 @@ bfa_ioim_sm_uninit(struct bfa_ioim_s *ioim, enum bfa_ioim_event event) if (!bfa_itnim_is_online(ioim-itnim)) { if (!bfa_itnim_hold_io(ioim-itnim)) { bfa_sm_set_state(ioim, bfa_ioim_sm_hcb); - list_del(ioim-qe); - list_add_tail(ioim-qe, - ioim-fcpim-ioim_comp_q); + list_move_tail(ioim-qe, + ioim-fcpim-ioim_comp_q); bfa_cb_queue(ioim-bfa, ioim-hcb_qe
[PATCH] tcm_fc: remove unused including generated/utsrelease.h
From: Wei Yongjun yongjun_...@trendmicro.com.cn From: Wei Yongjun yongjun_...@trendmicro.com.cn Remove including generated/utsrelease.h that don't need it. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/tcm_fc/tfc_cmd.c | 1 - drivers/target/tcm_fc/tfc_io.c | 1 - drivers/target/tcm_fc/tfc_sess.c | 1 - 3 files changed, 3 deletions(-) diff --git a/drivers/target/tcm_fc/tfc_cmd.c b/drivers/target/tcm_fc/tfc_cmd.c index b9cb500..4d44ad3 100644 --- a/drivers/target/tcm_fc/tfc_cmd.c +++ b/drivers/target/tcm_fc/tfc_cmd.c @@ -19,7 +19,6 @@ #include linux/module.h #include linux/moduleparam.h -#include generated/utsrelease.h #include linux/utsname.h #include linux/init.h #include linux/slab.h diff --git a/drivers/target/tcm_fc/tfc_io.c b/drivers/target/tcm_fc/tfc_io.c index ad36ede1..d051102 100644 --- a/drivers/target/tcm_fc/tfc_io.c +++ b/drivers/target/tcm_fc/tfc_io.c @@ -28,7 +28,6 @@ #include linux/module.h #include linux/moduleparam.h -#include generated/utsrelease.h #include linux/utsname.h #include linux/init.h #include linux/slab.h diff --git a/drivers/target/tcm_fc/tfc_sess.c b/drivers/target/tcm_fc/tfc_sess.c index 87901fa..a0e3cee 100644 --- a/drivers/target/tcm_fc/tfc_sess.c +++ b/drivers/target/tcm_fc/tfc_sess.c @@ -19,7 +19,6 @@ #include linux/module.h #include linux/moduleparam.h -#include generated/utsrelease.h #include linux/utsname.h #include linux/init.h #include linux/slab.h -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] target: remove unused including generated/utsrelease.h
From: Wei Yongjun yongjun_...@trendmicro.com.cn From: Wei Yongjun yongjun_...@trendmicro.com.cn Remove including generated/utsrelease.h that don't need it. Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn --- drivers/target/target_core_fabric_configfs.c | 1 - drivers/target/target_core_stat.c| 1 - 2 files changed, 2 deletions(-) diff --git a/drivers/target/target_core_fabric_configfs.c b/drivers/target/target_core_fabric_configfs.c index ea479e5..bca737b 100644 --- a/drivers/target/target_core_fabric_configfs.c +++ b/drivers/target/target_core_fabric_configfs.c @@ -22,7 +22,6 @@ #include linux/module.h #include linux/moduleparam.h -#include generated/utsrelease.h #include linux/utsname.h #include linux/init.h #include linux/fs.h diff --git a/drivers/target/target_core_stat.c b/drivers/target/target_core_stat.c index 3d44beb..cb6b003 100644 --- a/drivers/target/target_core_stat.c +++ b/drivers/target/target_core_stat.c @@ -32,7 +32,6 @@ #include linux/delay.h #include linux/timer.h #include linux/string.h -#include generated/utsrelease.h #include linux/utsname.h #include linux/proc_fs.h #include linux/seq_file.h -- To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html