On Sun, Aug 15, 2021 at 04:49:55PM +0900, Tetsuo Handa wrote:
quoted hunk ↗ jump to hunk
On 2021/08/15 16:06, Greg KH wrote:
quoted
On Sun, Aug 15, 2021 at 03:52:45PM +0900, Tetsuo Handa wrote:
quoted
--- 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)
Why stop at 4 _ characters?
{sigh}
I think you need a new naming scheme here...
quoted
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.
Yes, that is a different thing, sorry for the confusion.
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.
Don't worry about backports, fix it properly first.
thanks,
greg k-h