Thread (22 messages) 22 messages, 3 authors, 2020-06-19

Re: [PATCH v6 6/6] blktrace: fix debugfs use after free

From: Luis Chamberlain <mcgrof@kernel.org>
Date: 2020-06-19 15:36:43
Also in: linux-fsdevel, linux-mm, lkml

On Fri, Jun 12, 2020 at 07:42:12PM -0700, Bart Van Assche wrote:
On 2020-06-08 10:01, Luis Chamberlain wrote:
quoted
+	/*
+	 * Blktrace needs a debugfs name even for queues that don't register
+	 * a gendisk, so it lazily registers the debugfs directory.  But that
+	 * can get us into a situation where a SCSI device is found, with no
+	 * driver for it (yet).  Then blktrace is used on the device, creating
+	 * the debugfs directory, and only after that a driver is loaded. In
+	 * that case we might already have a debugfs directory registered here.
+	 * Even worse we could be racing with blktrace to register it.
+	 */
There are LLD and ULD drivers in the SCSI subsystem. Please mention the
driver type explicitly. I assume that you are referring to SCSI ULDs
since only SCSI ULD drivers call device_add_disk()?
I've simplified this and so this is no longer a valid comment.
quoted
 	case BLKTRACESETUP:
+		if (!sdp->device->request_queue->sg_debugfs_dir)
+			blk_sg_debugfs_init(sdp->device->request_queue,
+					    sdp->disk->disk_name);
How about moving the sg_debugfs_dir check into blk_sg_debugfs_init()?
I found a way to not have to do any of this, the fix will be short and
sweet now.

  Luis
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help