On Sat, Nov 19, 2022 at 04:03:11PM +0000, Daniel Golle wrote: > That works, but has slightly less utility value than the partition > parser approach as in this way I cannot easily populate the PARTNAME > uevent which can later help userspace to identify a device by the FIT > subimage name -- I'd have to either invent a new bus_type or > device_type, both seem inappropriate and have unwanted side effects. > Or am I missing something and there is a way to use add_uevent_var() > for a disk_type device? You're not exposing a partition here - this is an image format that sits in a partition and we should not pretend that is a partition. > However, I don't see a way to avoid using (or duplicating) > devt_from_devname() to select the lower device somehow without having > to probe and parse *all* block devices present (which is, from what I > understood, what you want to avoid, and I agree that it is more safe to > not do that...) > > Can you or anyone give some advise on how this should be done? Just set the block driver up from an initramfs, like we do for all modern stackable drivers. > Yet another (imho not terrible) problem is removal of the lower device. > Many of the supported SBC use a micro SD card to boot, which can be > removed by the user while the system is running (which is generally not > a good idea, but anyway). For partitions this is handled automatically > by blk_drop_partitions() called directly from genhd.c. > I'm currently playing with doing something similar using the bus device > removal notification, but it doesn't seem to work for all cases, e.g. > mmcblk device do not seem to have the ->bus pointer populated at all > (ie. disk_to_dev(disk)->bus == NULL for mmcblk devices). I have WIP patches that allow the claimer of a block device get resize and removal notification. It's not going to land for 6.2, but I hope I have it ready in time for the next merge window.