Re: [PATCH v2 04/15] block: Add block device LED trigger integrations

From: Ian Pilcher
Date: Fri Sep 10 2021 - 11:00:27 EST

On 9/9/21 8:23 PM, Marek Behún wrote:
On Thu, 9 Sep 2021 17:25:02 -0500
Ian Pilcher <arequipeno@xxxxxxxxx> wrote:
Call ledtrig_blkdev_disk_init() from device_add_disk() to ensure that
ledtrig is initialized to NULL, in case a driver allocates the structure
itself and doesn't use kzalloc()

No, this is not needed. If someone does not use kzalloc(), they should
use it. No need to fix other code here.

Yeah. I'm honestly not sure if this is necessary or not, as I don't
know if there are any drivers that actually have this problem. I
decided to include this for now, because an uninitialized pointer can
cause memory corruption, etc., when the disk cleanup function follows a
garbage pointer.

This recent commit seems to indicate that until recently drivers were
responsible for doing gendisk allocation.

commit f525464a8000f092c20b00eead3eaa9d849c599e
Author: Christoph Hellwig <hch@xxxxxx>
Date: Fri May 21 07:50:55 2021 +0200

block: add blk_alloc_disk and blk_cleanup_disk APIs
Add two new APIs to allocate and free a gendisk including the
request_queue for use with BIO based drivers. This is to avoid
boilerplate code in drivers.

Were those drivers expected to use kzalloc() or otherwise zero out the
entire structure? I really don't know.

I think that it makes sense to defer to the block subsystem maintainers
on this question.

In Soviet Russia, Google searches you!