block: nbd: fix sanity check for first_minor
Subsystems (2)
PATCH 1/1 block: nbd: fix sanity check for first_minor
From: "Yan, Zheng" <[email protected]>
Device's minor is a 20-bits number, max value is 0xfffff.
Fixes b1a811633f ("block: nbd: add sanity check for first_minor").
Signed-off-by "Yan, Zheng" <[email protected]>
--- drivers/block/nbd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/block/nbd.c +1 -1
@@ -1753,7 +1753,7 @@ static struct nbd_device *nbd_dev_add(int index, unsigned int refs)* byte in __device_add_disk(). */ disk->first_minor = index << part_shift; -if (disk->first_minor >0xff ) { +if (disk->first_minor >MINORMASK ) { err = -EINVAL ; goto out_free_idr; }
Signature · 1 line
2.12.2
On 10/9/21 08:35, Yan, Zheng wrote:
+CC Christoph
Quoted 16 lines
From: "Yan, Zheng" <[email protected]>
Device's minor is a 20-bits number, max value is
0xfffff.Fixes b1a811633f ("block: nbd: add sanity check for first_minor").Signed-off-by "Yan, Zheng" <[email protected]>--- drivers/block/nbd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/block/nbd.c +0
-0
drivers/block/nbd.c static struct nbd_device *nbd_dev_add(int index, unsigned int refs) · line 1759
Quoted 8 lines
drivers/block/nbd.c +1
-1@@ -1753,7 +1753,7 @@ static struct nbd_device *nbd_dev_add(int index, unsigned int refs)* byte in __device_add_disk(). */ disk->first_minor = index << part_shift; -if (disk->first_minor >0xff ) { +if (disk->first_minor >MINORMASK ) { err = -EINVAL ; goto out_free_idr; }
I've looked into what confused me with 0xff and I found that uapi's kdev_t.h has following MINOR definition:
#define MINOR(dev) ((dev) & 0xff)
But kernel's kdev_t.h is really allows 20 bit minor number :)
Also, can you, please, fix up comment above this check, since it contains info about max minor 0xff and it can confuse readers.
With regards,
Pavel Skripkin