On 2021/08/15 16:06, Greg KH wrote: > On Sun, Aug 15, 2021 at 03:52:45PM +0900, Tetsuo Handa wrote: >> --- a/include/linux/genhd.h >> +++ b/include/linux/genhd.h >> @@ -303,9 +303,9 @@ struct gendisk *__blk_alloc_disk(int node); >> void blk_cleanup_disk(struct gendisk *disk); >> >> int __register_blkdev(unsigned int major, const char *name, >> - void (*probe)(dev_t devt)); >> + void (*probe)(dev_t devt), struct module *owner); >> #define register_blkdev(major, name) \ >> - __register_blkdev(major, name, NULL) >> + __register_blkdev(major, name, NULL, NULL) >> void unregister_blkdev(unsigned int major, const char *name); > > Do not force modules to put their own THIS_MODULE macro as a parameter, > put it in the .h file so that it happens automagically, much like the > usb_register() define in include/linux/usb.h is created. Sure. We can do like below. diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 13b34177cc85..70f00641fa11 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h @@ -302,10 +302,12 @@ extern void put_disk(struct gendisk *disk); struct gendisk *__blk_alloc_disk(int node); void blk_cleanup_disk(struct gendisk *disk); -int __register_blkdev(unsigned int major, const char *name, - void (*probe)(dev_t devt)); +int ____register_blkdev(unsigned int major, const char *name, + void (*probe)(dev_t devt), struct module *owner); +#define __register_blkdev(major, name, probe) \ + ____register_blkdev(major, name, probe, THIS_MODULE) #define register_blkdev(major, name) \ - __register_blkdev(major, name, NULL) + ____register_blkdev(major, name, NULL, NULL) void unregister_blkdev(unsigned int major, const char *name); bool bdev_check_media_change(struct block_device *bdev); > > If you do that, you can probably get rid of the __register_blkdev() > direct calls as well... I assume "automagically" implies "do not patch individual unregister_blkdev() / __register_blkdev() callers". But "removing __register_blkdev() direct calls" requires "patching individual __register_blkdev() callers". I didn't catch what you suggested here. Anyway, since this patch should be backported to 5.11+ kernels, lines changed should be kept minimal. We can do whatever remapping after this patch.