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
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