The 'probe' callback in __register_blkdev() is only used under the CONFIG_BLOCK_LEGACY_AUTOLOAD deprecation guard. The loop_probe() function is only used for that callback, so guard it too, accordingly. See commit fbdee71bb5d8 ("block: deprecate autoloading based on dev_t"). Signed-off-by: Mauricio Faria de Oliveira <mfo@xxxxxxxxxxxxx> --- drivers/block/loop.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/block/loop.c b/drivers/block/loop.c index bc31bb7072a2..21bcd6ffe241 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -2095,6 +2095,7 @@ static void loop_remove(struct loop_device *lo) put_disk(lo->lo_disk); } +#ifdef CONFIG_BLOCK_LEGACY_AUTOLOAD static void loop_probe(dev_t dev) { int idx = MINOR(dev) >> part_shift; @@ -2103,6 +2104,7 @@ static void loop_probe(dev_t dev) return; loop_add(idx); } +#endif static int loop_control_remove(int idx) { @@ -2237,8 +2239,11 @@ static int __init loop_init(void) if (err < 0) goto err_out; - +#ifdef CONFIG_BLOCK_LEGACY_AUTOLOAD if (__register_blkdev(LOOP_MAJOR, "loop", loop_probe)) { +#else + if (register_blkdev(LOOP_MAJOR, "loop")) { +#endif err = -EIO; goto misc_out; } -- 2.39.2