Loading drivers/scsi/aacraid/commsup.c +6 −8 Original line number Diff line number Diff line Loading @@ -2056,7 +2056,6 @@ static int fillup_pools(struct aac_dev *dev, struct hw_fib **hw_fib_pool, { struct hw_fib **hw_fib_p; struct fib **fib_p; int rcode = 1; hw_fib_p = hw_fib_pool; fib_p = fib_pool; Loading @@ -2074,11 +2073,11 @@ static int fillup_pools(struct aac_dev *dev, struct hw_fib **hw_fib_pool, } } /* * Get the actual number of allocated fibs */ num = hw_fib_p - hw_fib_pool; if (!num) rcode = 0; return rcode; return num; } static void wakeup_fibctx_threads(struct aac_dev *dev, Loading Loading @@ -2186,7 +2185,6 @@ static void aac_process_events(struct aac_dev *dev) struct fib *fib; unsigned long flags; spinlock_t *t_lock; unsigned int rcode; t_lock = dev->queues->queue[HostNormCmdQueue].lock; spin_lock_irqsave(t_lock, flags); Loading Loading @@ -2269,8 +2267,8 @@ static void aac_process_events(struct aac_dev *dev) * Fill up fib pointer pools with actual fibs * and hw_fibs */ rcode = fillup_pools(dev, hw_fib_pool, fib_pool, num); if (!rcode) num = fillup_pools(dev, hw_fib_pool, fib_pool, num); if (!num) goto free_mem; /* Loading drivers/scsi/device_handler/scsi_dh_alua.c +24 −14 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ struct alua_queue_data { #define ALUA_POLICY_SWITCH_ALL 1 static void alua_rtpg_work(struct work_struct *work); static void alua_rtpg_queue(struct alua_port_group *pg, static bool alua_rtpg_queue(struct alua_port_group *pg, struct scsi_device *sdev, struct alua_queue_data *qdata, bool force); static void alua_check(struct scsi_device *sdev, bool force); Loading Loading @@ -862,7 +862,13 @@ static void alua_rtpg_work(struct work_struct *work) kref_put(&pg->kref, release_port_group); } static void alua_rtpg_queue(struct alua_port_group *pg, /** * alua_rtpg_queue() - cause RTPG to be submitted asynchronously * * Returns true if and only if alua_rtpg_work() will be called asynchronously. * That function is responsible for calling @qdata->fn(). */ static bool alua_rtpg_queue(struct alua_port_group *pg, struct scsi_device *sdev, struct alua_queue_data *qdata, bool force) { Loading @@ -870,8 +876,8 @@ static void alua_rtpg_queue(struct alua_port_group *pg, unsigned long flags; struct workqueue_struct *alua_wq = kaluad_wq; if (!pg) return; if (WARN_ON_ONCE(!pg) || scsi_device_get(sdev)) return false; spin_lock_irqsave(&pg->lock, flags); if (qdata) { Loading @@ -884,14 +890,12 @@ static void alua_rtpg_queue(struct alua_port_group *pg, pg->flags |= ALUA_PG_RUN_RTPG; kref_get(&pg->kref); pg->rtpg_sdev = sdev; scsi_device_get(sdev); start_queue = 1; } else if (!(pg->flags & ALUA_PG_RUN_RTPG) && force) { pg->flags |= ALUA_PG_RUN_RTPG; /* Do not queue if the worker is already running */ if (!(pg->flags & ALUA_PG_RUNNING)) { kref_get(&pg->kref); sdev = NULL; start_queue = 1; } } Loading @@ -900,13 +904,17 @@ static void alua_rtpg_queue(struct alua_port_group *pg, alua_wq = kaluad_sync_wq; spin_unlock_irqrestore(&pg->lock, flags); if (start_queue && !queue_delayed_work(alua_wq, &pg->rtpg_work, msecs_to_jiffies(ALUA_RTPG_DELAY_MSECS))) { if (sdev) scsi_device_put(sdev); if (start_queue) { if (queue_delayed_work(alua_wq, &pg->rtpg_work, msecs_to_jiffies(ALUA_RTPG_DELAY_MSECS))) sdev = NULL; else kref_put(&pg->kref, release_port_group); } if (sdev) scsi_device_put(sdev); return true; } /* Loading Loading @@ -1007,11 +1015,13 @@ static int alua_activate(struct scsi_device *sdev, mutex_unlock(&h->init_mutex); goto out; } fn = NULL; rcu_read_unlock(); mutex_unlock(&h->init_mutex); alua_rtpg_queue(pg, sdev, qdata, true); if (alua_rtpg_queue(pg, sdev, qdata, true)) fn = NULL; else err = SCSI_DH_DEV_OFFLINED; kref_put(&pg->kref, release_port_group); out: if (fn) Loading drivers/scsi/hpsa.c +1 −0 Original line number Diff line number Diff line Loading @@ -3885,6 +3885,7 @@ static int hpsa_update_device_info(struct ctlr_info *h, if (h->fw_support & MISC_FW_RAID_OFFLOAD_BASIC) hpsa_get_ioaccel_status(h, scsi3addr, this_device); volume_offline = hpsa_volume_offline(h, scsi3addr); this_device->volume_offline = volume_offline; if (volume_offline == HPSA_LV_FAILED) { rc = HPSA_LV_FAILED; dev_err(&h->pdev->dev, Loading drivers/scsi/libsas/sas_ata.c +1 −1 Original line number Diff line number Diff line Loading @@ -221,7 +221,7 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) task->num_scatter = qc->n_elem; } else { for_each_sg(qc->sg, sg, qc->n_elem, si) xfer += sg->length; xfer += sg_dma_len(sg); task->total_xfer_len = xfer; task->num_scatter = si; Loading drivers/scsi/lpfc/lpfc_debugfs.h +14 −8 Original line number Diff line number Diff line Loading @@ -44,14 +44,6 @@ /* hbqinfo output buffer size */ #define LPFC_HBQINFO_SIZE 8192 enum { DUMP_FCP, DUMP_NVME, DUMP_MBX, DUMP_ELS, DUMP_NVMELS, }; /* nvmestat output buffer size */ #define LPFC_NVMESTAT_SIZE 8192 #define LPFC_NVMEKTIME_SIZE 8192 Loading Loading @@ -283,8 +275,22 @@ struct lpfc_idiag { struct lpfc_idiag_offset offset; void *ptr_private; }; #else #define lpfc_nvmeio_data(phba, fmt, arg...) \ no_printk(fmt, ##arg) #endif enum { DUMP_FCP, DUMP_NVME, DUMP_MBX, DUMP_ELS, DUMP_NVMELS, }; /* Mask for discovery_trace */ #define LPFC_DISC_TRC_ELS_CMD 0x1 /* Trace ELS commands */ #define LPFC_DISC_TRC_ELS_RSP 0x2 /* Trace ELS response */ Loading Loading
drivers/scsi/aacraid/commsup.c +6 −8 Original line number Diff line number Diff line Loading @@ -2056,7 +2056,6 @@ static int fillup_pools(struct aac_dev *dev, struct hw_fib **hw_fib_pool, { struct hw_fib **hw_fib_p; struct fib **fib_p; int rcode = 1; hw_fib_p = hw_fib_pool; fib_p = fib_pool; Loading @@ -2074,11 +2073,11 @@ static int fillup_pools(struct aac_dev *dev, struct hw_fib **hw_fib_pool, } } /* * Get the actual number of allocated fibs */ num = hw_fib_p - hw_fib_pool; if (!num) rcode = 0; return rcode; return num; } static void wakeup_fibctx_threads(struct aac_dev *dev, Loading Loading @@ -2186,7 +2185,6 @@ static void aac_process_events(struct aac_dev *dev) struct fib *fib; unsigned long flags; spinlock_t *t_lock; unsigned int rcode; t_lock = dev->queues->queue[HostNormCmdQueue].lock; spin_lock_irqsave(t_lock, flags); Loading Loading @@ -2269,8 +2267,8 @@ static void aac_process_events(struct aac_dev *dev) * Fill up fib pointer pools with actual fibs * and hw_fibs */ rcode = fillup_pools(dev, hw_fib_pool, fib_pool, num); if (!rcode) num = fillup_pools(dev, hw_fib_pool, fib_pool, num); if (!num) goto free_mem; /* Loading
drivers/scsi/device_handler/scsi_dh_alua.c +24 −14 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ struct alua_queue_data { #define ALUA_POLICY_SWITCH_ALL 1 static void alua_rtpg_work(struct work_struct *work); static void alua_rtpg_queue(struct alua_port_group *pg, static bool alua_rtpg_queue(struct alua_port_group *pg, struct scsi_device *sdev, struct alua_queue_data *qdata, bool force); static void alua_check(struct scsi_device *sdev, bool force); Loading Loading @@ -862,7 +862,13 @@ static void alua_rtpg_work(struct work_struct *work) kref_put(&pg->kref, release_port_group); } static void alua_rtpg_queue(struct alua_port_group *pg, /** * alua_rtpg_queue() - cause RTPG to be submitted asynchronously * * Returns true if and only if alua_rtpg_work() will be called asynchronously. * That function is responsible for calling @qdata->fn(). */ static bool alua_rtpg_queue(struct alua_port_group *pg, struct scsi_device *sdev, struct alua_queue_data *qdata, bool force) { Loading @@ -870,8 +876,8 @@ static void alua_rtpg_queue(struct alua_port_group *pg, unsigned long flags; struct workqueue_struct *alua_wq = kaluad_wq; if (!pg) return; if (WARN_ON_ONCE(!pg) || scsi_device_get(sdev)) return false; spin_lock_irqsave(&pg->lock, flags); if (qdata) { Loading @@ -884,14 +890,12 @@ static void alua_rtpg_queue(struct alua_port_group *pg, pg->flags |= ALUA_PG_RUN_RTPG; kref_get(&pg->kref); pg->rtpg_sdev = sdev; scsi_device_get(sdev); start_queue = 1; } else if (!(pg->flags & ALUA_PG_RUN_RTPG) && force) { pg->flags |= ALUA_PG_RUN_RTPG; /* Do not queue if the worker is already running */ if (!(pg->flags & ALUA_PG_RUNNING)) { kref_get(&pg->kref); sdev = NULL; start_queue = 1; } } Loading @@ -900,13 +904,17 @@ static void alua_rtpg_queue(struct alua_port_group *pg, alua_wq = kaluad_sync_wq; spin_unlock_irqrestore(&pg->lock, flags); if (start_queue && !queue_delayed_work(alua_wq, &pg->rtpg_work, msecs_to_jiffies(ALUA_RTPG_DELAY_MSECS))) { if (sdev) scsi_device_put(sdev); if (start_queue) { if (queue_delayed_work(alua_wq, &pg->rtpg_work, msecs_to_jiffies(ALUA_RTPG_DELAY_MSECS))) sdev = NULL; else kref_put(&pg->kref, release_port_group); } if (sdev) scsi_device_put(sdev); return true; } /* Loading Loading @@ -1007,11 +1015,13 @@ static int alua_activate(struct scsi_device *sdev, mutex_unlock(&h->init_mutex); goto out; } fn = NULL; rcu_read_unlock(); mutex_unlock(&h->init_mutex); alua_rtpg_queue(pg, sdev, qdata, true); if (alua_rtpg_queue(pg, sdev, qdata, true)) fn = NULL; else err = SCSI_DH_DEV_OFFLINED; kref_put(&pg->kref, release_port_group); out: if (fn) Loading
drivers/scsi/hpsa.c +1 −0 Original line number Diff line number Diff line Loading @@ -3885,6 +3885,7 @@ static int hpsa_update_device_info(struct ctlr_info *h, if (h->fw_support & MISC_FW_RAID_OFFLOAD_BASIC) hpsa_get_ioaccel_status(h, scsi3addr, this_device); volume_offline = hpsa_volume_offline(h, scsi3addr); this_device->volume_offline = volume_offline; if (volume_offline == HPSA_LV_FAILED) { rc = HPSA_LV_FAILED; dev_err(&h->pdev->dev, Loading
drivers/scsi/libsas/sas_ata.c +1 −1 Original line number Diff line number Diff line Loading @@ -221,7 +221,7 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) task->num_scatter = qc->n_elem; } else { for_each_sg(qc->sg, sg, qc->n_elem, si) xfer += sg->length; xfer += sg_dma_len(sg); task->total_xfer_len = xfer; task->num_scatter = si; Loading
drivers/scsi/lpfc/lpfc_debugfs.h +14 −8 Original line number Diff line number Diff line Loading @@ -44,14 +44,6 @@ /* hbqinfo output buffer size */ #define LPFC_HBQINFO_SIZE 8192 enum { DUMP_FCP, DUMP_NVME, DUMP_MBX, DUMP_ELS, DUMP_NVMELS, }; /* nvmestat output buffer size */ #define LPFC_NVMESTAT_SIZE 8192 #define LPFC_NVMEKTIME_SIZE 8192 Loading Loading @@ -283,8 +275,22 @@ struct lpfc_idiag { struct lpfc_idiag_offset offset; void *ptr_private; }; #else #define lpfc_nvmeio_data(phba, fmt, arg...) \ no_printk(fmt, ##arg) #endif enum { DUMP_FCP, DUMP_NVME, DUMP_MBX, DUMP_ELS, DUMP_NVMELS, }; /* Mask for discovery_trace */ #define LPFC_DISC_TRC_ELS_CMD 0x1 /* Trace ELS commands */ #define LPFC_DISC_TRC_ELS_RSP 0x2 /* Trace ELS response */ Loading