Patch "scsi: scsi_dh_alua: Fix a reference counting bug" has been added to the 4.8-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
scsi: scsi_dh_alua: Fix a reference counting bug
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
scsi-scsi_dh_alua-fix-a-reference-counting-bug.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
df3d422cbac685da882e4c239dfda07de33d431bMon Sep 17 00:00:00 2001
From: Bart Van Assche <[email protected]>
Date: Tue, 1 Nov 2016 08:19:57 -0600
Subject: scsi: scsi_dh_alua: Fix a reference counting bug
From: Bart Van Assche <[email protected]>
commit df3d422cbac685da882e4c239dfda07de33d431b upstream.
The code at the end of alua_rtpg_work() is as follows:
scsi_device_put(sdev); kref_put(&pg->kref, release_port_group);
In other words, alua_rtpg_queue() must hold an sdev reference and a pg reference before queueing rtpg work. If no rtpg work is queued no additional references should be held when alua_rtpg_queue() returns. If no rtpg work is queued, ensure that alua_rtpg_queue() only gives up the sdev reference if that reference was obtained by the same alua_rtpg_queue() call.
--- drivers/scsi/device_handler/scsi_dh_alua.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/scsi/device_handler/scsi_dh_alua.c +3 -1
@@ -890,6 +890,7 @@ static void alua_rtpg_queue(struct alua_/* Do not queue if the worker is already running */ if (!(pg->flags &ALUA_PG_RUNNING )) {kref_get (&pg->kref); + sdev =NULL ; start_queue =1 ; } }
@@ -901,7 +902,8 @@ static void alua_rtpg_queue(struct alua_if (start_queue && !queue_delayed_work (alua_wq, &pg->rtpg_work,msecs_to_jiffies (ALUA_RTPG_DELAY_MSECS ))) { -scsi_device_put (sdev); +if (sdev) +scsi_device_put (sdev);kref_put (&pg->kref, release_port_group); } }
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/scsi-scsi_dh_alua-fix-a-reference-counting-bug.patch