* [PATCH 0/4] Call scsi_device_put() from non-atomic context
@ 2022-10-31 22:47 Bart Van Assche
2022-10-31 22:47 ` [PATCH 1/4] scsi: alua: Move a scsi_device_put() call out of alua_check_vpd() Bart Van Assche
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Bart Van Assche @ 2022-10-31 22:47 UTC (permalink / raw)
To: Martin K . Petersen; +Cc: linux-scsi, Bart Van Assche
Hi Martin,
As reported by Dan Carpenter, a recent change may cause scsi_device_put() to
sleep while a few callers remain that call scsi_device_put() from atomic
context. This patch series converts those callers. Please consider this patch
series for the 6.0 kernel.
Thanks,
Bart.
Bart Van Assche (4):
scsi: alua: Move a scsi_device_put() call out of alua_check_vpd()
scsi: alua: Move a scsi_device_put() call out of
alua_rtpg_select_sdev()
scsi: bfa: Convert bfad_reset_sdev_bflags() from a macro into a
function
scsi: bfa: Rework bfad_reset_sdev_bflags()
drivers/scsi/bfa/bfad_bsg.c | 29 ++++++++++
drivers/scsi/bfa/bfad_im.h | 26 ---------
drivers/scsi/device_handler/scsi_dh_alua.c | 61 ++++++++++++++--------
3 files changed, 68 insertions(+), 48 deletions(-)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/4] scsi: alua: Move a scsi_device_put() call out of alua_check_vpd()
2022-10-31 22:47 [PATCH 0/4] Call scsi_device_put() from non-atomic context Bart Van Assche
@ 2022-10-31 22:47 ` Bart Van Assche
2022-11-02 14:27 ` Hannes Reinecke
2022-10-31 22:47 ` [PATCH 2/4] scsi: alua: Move a scsi_device_put() call out of alua_rtpg_select_sdev() Bart Van Assche
` (4 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Bart Van Assche @ 2022-10-31 22:47 UTC (permalink / raw)
To: Martin K . Petersen
Cc: linux-scsi, Bart Van Assche, Hannes Reinecke, Dan Carpenter
This patch fixes the following smatch warning:
drivers/scsi/device_handler/scsi_dh_alua.c:1013 alua_rtpg_queue() warn: sleeping in atomic context
alua_check_vpd() <- disables preempt
-> alua_rtpg_queue()
-> scsi_device_put()
Cc: Hannes Reinecke <hare@suse.de>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/device_handler/scsi_dh_alua.c | 23 ++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index 610a51538f03..f7bc81cc59ab 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -324,6 +324,7 @@ static int alua_check_vpd(struct scsi_device *sdev, struct alua_dh_data *h,
struct alua_port_group *pg, *old_pg = NULL;
bool pg_updated = false;
unsigned long flags;
+ bool put_sdev;
group_id = scsi_vpd_tpg_id(sdev, &rel_port);
if (group_id < 0) {
@@ -373,11 +374,14 @@ static int alua_check_vpd(struct scsi_device *sdev, struct alua_dh_data *h,
list_add_rcu(&h->node, &pg->dh_list);
spin_unlock_irqrestore(&pg->lock, flags);
- alua_rtpg_queue(rcu_dereference_protected(h->pg,
+ put_sdev = alua_rtpg_queue(rcu_dereference_protected(h->pg,
lockdep_is_held(&h->pg_lock)),
sdev, NULL, true);
spin_unlock(&h->pg_lock);
+ if (put_sdev)
+ scsi_device_put(sdev);
+
if (old_pg)
kref_put(&old_pg->kref, release_port_group);
@@ -968,9 +972,10 @@ static void alua_rtpg_work(struct work_struct *work)
* RTPG already has been scheduled.
*
* Returns true if and only if alua_rtpg_work() will be called asynchronously.
- * That function is responsible for calling @qdata->fn().
+ * That function is responsible for calling @qdata->fn(). If this function
+ * returns true, the caller is responsible for invoking scsi_device_put(@sdev).
*/
-static bool alua_rtpg_queue(struct alua_port_group *pg,
+static bool __must_check alua_rtpg_queue(struct alua_port_group *pg,
struct scsi_device *sdev,
struct alua_queue_data *qdata, bool force)
{
@@ -1009,8 +1014,6 @@ static bool alua_rtpg_queue(struct alua_port_group *pg,
else
kref_put(&pg->kref, release_port_group);
}
- if (sdev)
- scsi_device_put(sdev);
return true;
}
@@ -1117,10 +1120,12 @@ static int alua_activate(struct scsi_device *sdev,
rcu_read_unlock();
mutex_unlock(&h->init_mutex);
- if (alua_rtpg_queue(pg, sdev, qdata, true))
+ if (alua_rtpg_queue(pg, sdev, qdata, true)) {
+ scsi_device_put(sdev);
fn = NULL;
- else
+ } else {
err = SCSI_DH_DEV_OFFLINED;
+ }
kref_put(&pg->kref, release_port_group);
out:
if (fn)
@@ -1146,7 +1151,9 @@ static void alua_check(struct scsi_device *sdev, bool force)
return;
}
rcu_read_unlock();
- alua_rtpg_queue(pg, sdev, NULL, force);
+
+ if (alua_rtpg_queue(pg, sdev, NULL, force))
+ scsi_device_put(sdev);
kref_put(&pg->kref, release_port_group);
}
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/4] scsi: alua: Move a scsi_device_put() call out of alua_rtpg_select_sdev()
2022-10-31 22:47 [PATCH 0/4] Call scsi_device_put() from non-atomic context Bart Van Assche
2022-10-31 22:47 ` [PATCH 1/4] scsi: alua: Move a scsi_device_put() call out of alua_check_vpd() Bart Van Assche
@ 2022-10-31 22:47 ` Bart Van Assche
2022-10-31 22:47 ` [PATCH 3/4] scsi: bfa: Convert bfad_reset_sdev_bflags() from a macro into a function Bart Van Assche
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Bart Van Assche @ 2022-10-31 22:47 UTC (permalink / raw)
To: Martin K . Petersen
Cc: linux-scsi, Bart Van Assche, Hannes Reinecke, Dan Carpenter
Move a scsi_device_put() call from alua_rtpg_select_sdev() to its
callers. This patch fixes the following smatch complaint:
drivers/scsi/device_handler/scsi_dh_alua.c:853 alua_rtpg_select_sdev() warn: sleeping in atomic context
alua_rtpg_work() <- disables preempt
-> alua_rtpg_select_sdev()
-> scsi_device_put()
Cc: Hannes Reinecke <hare@suse.de>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/device_handler/scsi_dh_alua.c | 38 ++++++++++++++--------
1 file changed, 24 insertions(+), 14 deletions(-)
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index f7bc81cc59ab..693cd827e138 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -815,14 +815,19 @@ static unsigned alua_stpg(struct scsi_device *sdev, struct alua_port_group *pg)
return SCSI_DH_RETRY;
}
-static bool alua_rtpg_select_sdev(struct alua_port_group *pg)
+/*
+ * The caller must call scsi_device_put() on the returned pointer if it is not
+ * NULL.
+ */
+static struct scsi_device * __must_check
+alua_rtpg_select_sdev(struct alua_port_group *pg)
{
struct alua_dh_data *h;
- struct scsi_device *sdev = NULL;
+ struct scsi_device *sdev = NULL, *prev_sdev;
lockdep_assert_held(&pg->lock);
if (WARN_ON(!pg->rtpg_sdev))
- return false;
+ return NULL;
/*
* RCU protection isn't necessary for dh_list here
@@ -849,22 +854,22 @@ static bool alua_rtpg_select_sdev(struct alua_port_group *pg)
pr_warn("%s: no device found for rtpg\n",
(pg->device_id_len ?
(char *)pg->device_id_str : "(nameless PG)"));
- return false;
+ return NULL;
}
sdev_printk(KERN_INFO, sdev, "rtpg retry on different device\n");
- scsi_device_put(pg->rtpg_sdev);
+ prev_sdev = pg->rtpg_sdev;
pg->rtpg_sdev = sdev;
- return true;
+ return prev_sdev;
}
static void alua_rtpg_work(struct work_struct *work)
{
struct alua_port_group *pg =
container_of(work, struct alua_port_group, rtpg_work.work);
- struct scsi_device *sdev;
+ struct scsi_device *sdev, *prev_sdev = NULL;
LIST_HEAD(qdata_list);
int err = SCSI_DH_OK;
struct alua_queue_data *qdata, *tmp;
@@ -905,7 +910,7 @@ static void alua_rtpg_work(struct work_struct *work)
/* If RTPG failed on the current device, try using another */
if (err == SCSI_DH_RES_TEMP_UNAVAIL &&
- alua_rtpg_select_sdev(pg))
+ (prev_sdev = alua_rtpg_select_sdev(pg)))
err = SCSI_DH_IMM_RETRY;
if (err == SCSI_DH_RETRY || err == SCSI_DH_IMM_RETRY ||
@@ -917,9 +922,7 @@ static void alua_rtpg_work(struct work_struct *work)
pg->interval = ALUA_RTPG_RETRY_DELAY;
pg->flags |= ALUA_PG_RUN_RTPG;
spin_unlock_irqrestore(&pg->lock, flags);
- queue_delayed_work(kaluad_wq, &pg->rtpg_work,
- pg->interval * HZ);
- return;
+ goto queue_rtpg;
}
if (err != SCSI_DH_OK)
pg->flags &= ~ALUA_PG_RUN_STPG;
@@ -934,9 +937,7 @@ static void alua_rtpg_work(struct work_struct *work)
pg->interval = 0;
pg->flags &= ~ALUA_PG_RUNNING;
spin_unlock_irqrestore(&pg->lock, flags);
- queue_delayed_work(kaluad_wq, &pg->rtpg_work,
- pg->interval * HZ);
- return;
+ goto queue_rtpg;
}
}
@@ -950,6 +951,9 @@ static void alua_rtpg_work(struct work_struct *work)
pg->rtpg_sdev = NULL;
spin_unlock_irqrestore(&pg->lock, flags);
+ if (prev_sdev)
+ scsi_device_put(prev_sdev);
+
list_for_each_entry_safe(qdata, tmp, &qdata_list, entry) {
list_del(&qdata->entry);
if (qdata->callback_fn)
@@ -961,6 +965,12 @@ static void alua_rtpg_work(struct work_struct *work)
spin_unlock_irqrestore(&pg->lock, flags);
scsi_device_put(sdev);
kref_put(&pg->kref, release_port_group);
+ return;
+
+queue_rtpg:
+ if (prev_sdev)
+ scsi_device_put(prev_sdev);
+ queue_delayed_work(kaluad_wq, &pg->rtpg_work, pg->interval * HZ);
}
/**
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/4] scsi: bfa: Convert bfad_reset_sdev_bflags() from a macro into a function
2022-10-31 22:47 [PATCH 0/4] Call scsi_device_put() from non-atomic context Bart Van Assche
2022-10-31 22:47 ` [PATCH 1/4] scsi: alua: Move a scsi_device_put() call out of alua_check_vpd() Bart Van Assche
2022-10-31 22:47 ` [PATCH 2/4] scsi: alua: Move a scsi_device_put() call out of alua_rtpg_select_sdev() Bart Van Assche
@ 2022-10-31 22:47 ` Bart Van Assche
2022-10-31 22:47 ` [PATCH 4/4] scsi: bfa: Rework bfad_reset_sdev_bflags() Bart Van Assche
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Bart Van Assche @ 2022-10-31 22:47 UTC (permalink / raw)
To: Martin K . Petersen
Cc: linux-scsi, Bart Van Assche, Anil Gurumurthy, Sudarsana Kalluru
Before modifying bfad_reset_sdev_bflags(), convert it from a macro into a
function.
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/bfa/bfad_bsg.c | 27 +++++++++++++++++++++++++++
drivers/scsi/bfa/bfad_im.h | 26 --------------------------
2 files changed, 27 insertions(+), 26 deletions(-)
diff --git a/drivers/scsi/bfa/bfad_bsg.c b/drivers/scsi/bfa/bfad_bsg.c
index be8dfbe13e90..73754032e25c 100644
--- a/drivers/scsi/bfa/bfad_bsg.c
+++ b/drivers/scsi/bfa/bfad_bsg.c
@@ -2540,6 +2540,33 @@ bfad_iocmd_vf_clr_stats(struct bfad_s *bfad, void *cmd)
return 0;
}
+/*
+ * Set the SCSI device sdev_bflags - sdev_bflags are used by the
+ * SCSI mid-layer to choose LUN Scanning mode REPORT_LUNS vs. Sequential Scan
+ *
+ * Internally iterates over all the ITNIM's part of the im_port & sets the
+ * sdev_bflags for the scsi_device associated with LUN #0.
+ */
+static void bfad_reset_sdev_bflags(struct bfad_im_port_s *im_port,
+ int lunmask_cfg)
+{
+ const u32 scan_flags = BLIST_NOREPORTLUN | BLIST_SPARSELUN;
+ struct bfad_itnim_s *itnim;
+ struct scsi_device *sdev;
+
+ list_for_each_entry(itnim, &im_port->itnim_mapped_list, list_entry) {
+ sdev = scsi_device_lookup(im_port->shost, itnim->channel,
+ itnim->scsi_tgt_id, 0);
+ if (sdev) {
+ if (lunmask_cfg == BFA_TRUE)
+ sdev->sdev_bflags |= scan_flags;
+ else
+ sdev->sdev_bflags &= ~scan_flags;
+ scsi_device_put(sdev);
+ }
+ }
+}
+
/* Function to reset the LUN SCAN mode */
static void
bfad_iocmd_lunmask_reset_lunscan_mode(struct bfad_s *bfad, int lunmask_cfg)
diff --git a/drivers/scsi/bfa/bfad_im.h b/drivers/scsi/bfa/bfad_im.h
index c03b225ea1ba..4353feedf76a 100644
--- a/drivers/scsi/bfa/bfad_im.h
+++ b/drivers/scsi/bfa/bfad_im.h
@@ -198,30 +198,4 @@ irqreturn_t bfad_intx(int irq, void *dev_id);
int bfad_im_bsg_request(struct bsg_job *job);
int bfad_im_bsg_timeout(struct bsg_job *job);
-/*
- * Macro to set the SCSI device sdev_bflags - sdev_bflags are used by the
- * SCSI mid-layer to choose LUN Scanning mode REPORT_LUNS vs. Sequential Scan
- *
- * Internally iterate's over all the ITNIM's part of the im_port & set's the
- * sdev_bflags for the scsi_device associated with LUN #0.
- */
-#define bfad_reset_sdev_bflags(__im_port, __lunmask_cfg) do { \
- struct scsi_device *__sdev = NULL; \
- struct bfad_itnim_s *__itnim = NULL; \
- u32 scan_flags = BLIST_NOREPORTLUN | BLIST_SPARSELUN; \
- list_for_each_entry(__itnim, &((__im_port)->itnim_mapped_list), \
- list_entry) { \
- __sdev = scsi_device_lookup((__im_port)->shost, \
- __itnim->channel, \
- __itnim->scsi_tgt_id, 0); \
- if (__sdev) { \
- if ((__lunmask_cfg) == BFA_TRUE) \
- __sdev->sdev_bflags |= scan_flags; \
- else \
- __sdev->sdev_bflags &= ~scan_flags; \
- scsi_device_put(__sdev); \
- } \
- } \
-} while (0)
-
#endif
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/4] scsi: bfa: Rework bfad_reset_sdev_bflags()
2022-10-31 22:47 [PATCH 0/4] Call scsi_device_put() from non-atomic context Bart Van Assche
` (2 preceding siblings ...)
2022-10-31 22:47 ` [PATCH 3/4] scsi: bfa: Convert bfad_reset_sdev_bflags() from a macro into a function Bart Van Assche
@ 2022-10-31 22:47 ` Bart Van Assche
2022-11-08 3:36 ` [PATCH 0/4] Call scsi_device_put() from non-atomic context Martin K. Petersen
2022-11-17 18:29 ` Martin K. Petersen
5 siblings, 0 replies; 8+ messages in thread
From: Bart Van Assche @ 2022-10-31 22:47 UTC (permalink / raw)
To: Martin K . Petersen
Cc: linux-scsi, Bart Van Assche, Anil Gurumurthy, Sudarsana Kalluru,
Dan Carpenter
Since commit f93ed747e2c7 ("scsi: core: Release SCSI devices
synchronously") it is no longer allowed to call scsi_device_put() from
atomic context. Hence this patch that reworks bfad_reset_sdev_bflags()
such that scsi_device_put() is no longer called. This patch fixes the
following smatch warning:
drivers/scsi/bfa/bfad_bsg.c:2551 bfad_iocmd_lunmask_reset_lunscan_mode() warn: sleeping in atomic context
bfad_iocmd_lunmask() <- disables preempt
-> bfad_iocmd_lunmask_reset_lunscan_mode()
-> scsi_device_put()
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/bfa/bfad_bsg.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/bfa/bfad_bsg.c b/drivers/scsi/bfa/bfad_bsg.c
index 73754032e25c..79d4f7ee5bcb 100644
--- a/drivers/scsi/bfa/bfad_bsg.c
+++ b/drivers/scsi/bfa/bfad_bsg.c
@@ -2553,18 +2553,20 @@ static void bfad_reset_sdev_bflags(struct bfad_im_port_s *im_port,
const u32 scan_flags = BLIST_NOREPORTLUN | BLIST_SPARSELUN;
struct bfad_itnim_s *itnim;
struct scsi_device *sdev;
+ unsigned long flags;
+ spin_lock_irqsave(im_port->shost->host_lock, flags);
list_for_each_entry(itnim, &im_port->itnim_mapped_list, list_entry) {
- sdev = scsi_device_lookup(im_port->shost, itnim->channel,
- itnim->scsi_tgt_id, 0);
+ sdev = __scsi_device_lookup(im_port->shost, itnim->channel,
+ itnim->scsi_tgt_id, 0);
if (sdev) {
if (lunmask_cfg == BFA_TRUE)
sdev->sdev_bflags |= scan_flags;
else
sdev->sdev_bflags &= ~scan_flags;
- scsi_device_put(sdev);
}
}
+ spin_unlock_irqrestore(im_port->shost->host_lock, flags);
}
/* Function to reset the LUN SCAN mode */
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/4] scsi: alua: Move a scsi_device_put() call out of alua_check_vpd()
2022-10-31 22:47 ` [PATCH 1/4] scsi: alua: Move a scsi_device_put() call out of alua_check_vpd() Bart Van Assche
@ 2022-11-02 14:27 ` Hannes Reinecke
0 siblings, 0 replies; 8+ messages in thread
From: Hannes Reinecke @ 2022-11-02 14:27 UTC (permalink / raw)
To: Bart Van Assche, Martin K . Petersen; +Cc: linux-scsi, Dan Carpenter
On 10/31/22 23:47, Bart Van Assche wrote:
> This patch fixes the following smatch warning:
>
> drivers/scsi/device_handler/scsi_dh_alua.c:1013 alua_rtpg_queue() warn: sleeping in atomic context
>
> alua_check_vpd() <- disables preempt
> -> alua_rtpg_queue()
> -> scsi_device_put()
>
> Cc: Hannes Reinecke <hare@suse.de>
> Cc: Dan Carpenter <dan.carpenter@oracle.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
> drivers/scsi/device_handler/scsi_dh_alua.c | 23 ++++++++++++++--------
> 1 file changed, 15 insertions(+), 8 deletions(-)
>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/4] Call scsi_device_put() from non-atomic context
2022-10-31 22:47 [PATCH 0/4] Call scsi_device_put() from non-atomic context Bart Van Assche
` (3 preceding siblings ...)
2022-10-31 22:47 ` [PATCH 4/4] scsi: bfa: Rework bfad_reset_sdev_bflags() Bart Van Assche
@ 2022-11-08 3:36 ` Martin K. Petersen
2022-11-17 18:29 ` Martin K. Petersen
5 siblings, 0 replies; 8+ messages in thread
From: Martin K. Petersen @ 2022-11-08 3:36 UTC (permalink / raw)
To: Bart Van Assche; +Cc: Martin K . Petersen, linux-scsi
Bart,
> As reported by Dan Carpenter, a recent change may cause
> scsi_device_put() to sleep while a few callers remain that call
> scsi_device_put() from atomic context. This patch series converts
> those callers. Please consider this patch series for the 6.0 kernel.
Applied to 6.2/scsi-staging, thanks!
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/4] Call scsi_device_put() from non-atomic context
2022-10-31 22:47 [PATCH 0/4] Call scsi_device_put() from non-atomic context Bart Van Assche
` (4 preceding siblings ...)
2022-11-08 3:36 ` [PATCH 0/4] Call scsi_device_put() from non-atomic context Martin K. Petersen
@ 2022-11-17 18:29 ` Martin K. Petersen
5 siblings, 0 replies; 8+ messages in thread
From: Martin K. Petersen @ 2022-11-17 18:29 UTC (permalink / raw)
To: Bart Van Assche; +Cc: Martin K . Petersen, linux-scsi
On Mon, 31 Oct 2022 15:47:24 -0700, Bart Van Assche wrote:
> As reported by Dan Carpenter, a recent change may cause scsi_device_put() to
> sleep while a few callers remain that call scsi_device_put() from atomic
> context. This patch series converts those callers. Please consider this patch
> series for the 6.0 kernel.
>
> Thanks,
>
> [...]
Applied to 6.2/scsi-queue, thanks!
[1/4] scsi: alua: Move a scsi_device_put() call out of alua_check_vpd()
https://git.kernel.org/mkp/scsi/c/0b25e17e9018
[2/4] scsi: alua: Move a scsi_device_put() call out of alua_rtpg_select_sdev()
https://git.kernel.org/mkp/scsi/c/379e2554e3d1
[3/4] scsi: bfa: Convert bfad_reset_sdev_bflags() from a macro into a function
https://git.kernel.org/mkp/scsi/c/2e5a6c3baccd
[4/4] scsi: bfa: Rework bfad_reset_sdev_bflags()
https://git.kernel.org/mkp/scsi/c/2e79cf37b15b
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-11-17 18:29 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-31 22:47 [PATCH 0/4] Call scsi_device_put() from non-atomic context Bart Van Assche
2022-10-31 22:47 ` [PATCH 1/4] scsi: alua: Move a scsi_device_put() call out of alua_check_vpd() Bart Van Assche
2022-11-02 14:27 ` Hannes Reinecke
2022-10-31 22:47 ` [PATCH 2/4] scsi: alua: Move a scsi_device_put() call out of alua_rtpg_select_sdev() Bart Van Assche
2022-10-31 22:47 ` [PATCH 3/4] scsi: bfa: Convert bfad_reset_sdev_bflags() from a macro into a function Bart Van Assche
2022-10-31 22:47 ` [PATCH 4/4] scsi: bfa: Rework bfad_reset_sdev_bflags() Bart Van Assche
2022-11-08 3:36 ` [PATCH 0/4] Call scsi_device_put() from non-atomic context Martin K. Petersen
2022-11-17 18:29 ` Martin K. Petersen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox