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> --- v2: - do not remove loop_probe / have two calls for (__)register_blkdev(), instead define it as NULL, keep one call for __register_blkdev(), (thanks: Christoph Hellwig) drivers/block/loop.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 37511d2b2caf..6e56c3faacac 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -2093,6 +2093,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; @@ -2101,6 +2102,9 @@ static void loop_probe(dev_t dev) return; loop_add(idx); } +#else +#define loop_probe NULL +#endif /* !CONFIG_BLOCK_LEGACY_AUTOLOAD */ static int loop_control_remove(int idx) { -- 2.39.2