On Thu, Jul 20, 2023 at 11:31:06PM -0700, Christoph Hellwig wrote: > On Thu, Jul 20, 2023 at 05:02:32PM +0100, Daniel Golle wrote: > > On Thu, Jul 20, 2023 at 12:04:43AM -0700, Christoph Hellwig wrote: > > > The layering here is exactly the wrong way around. This block device > > > as nvmem provide has not business sitting in the block layer and being > > > keyed ff the gendisk registration. Instead you should create a new > > > nvmem backed that opens the block device as needed if it fits your > > > OF description without any changes to the core block layer. > > > > > > > Ok. I will use a class_interface instead. > > I'm not sure a class_interface makes much sense here. Why does the > block layer even need to know about you using a device a nvmem provider? It doesn't. But it has to notify the nvmem providing driver about the addition of new block devices. This is what I'm using class_interface for, simply to hook into .add_dev of the block_class. > As far as I can tell your provider should layer entirely above the > block layer and not have to be integrated with it. My approach using class_interface doesn't require any changes to be made to existing block code. However, it does use block_class. If you see any other good option to implement matching off and usage of block devices by in-kernel users, please let me know.