* [PATCH] nvme-core: check for too small lba shift
@ 2023-11-28 17:39 Keith Busch
2023-11-28 19:10 ` Jens Axboe
0 siblings, 1 reply; 3+ messages in thread
From: Keith Busch @ 2023-11-28 17:39 UTC (permalink / raw)
To: linux-nvme; +Cc: hch, sagi, Keith Busch
From: Keith Busch <kbusch@kernel.org>
The block layer doesn't support logical block sizes smaller than 512
bytes. The nvme spec doesn't support that small either, but the driver
isn't checking to make sure the device responded with usable data.
Failing to catch this will result in a kernel bug, either from a
division by zero when stacking, or a zero length bio.
Signed-off-by: Keith Busch <kbusch@kernel.org>
---
drivers/nvme/host/core.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index a55c2a774b9c4..1be1ce5228965 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -1901,9 +1901,10 @@ static void nvme_update_disk_info(struct gendisk *disk,
/*
* The block layer can't support LBA sizes larger than the page size
- * yet, so catch this early and don't allow block I/O.
+ * or smaller than a sector size yet, so catch this early and don't
+ * allow block I/O.
*/
- if (ns->lba_shift > PAGE_SHIFT) {
+ if (ns->lba_shift > PAGE_SHIFT || ns->lba_shift < SECTOR_SHIFT) {
capacity = 0;
bs = (1 << 9);
}
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] nvme-core: check for too small lba shift
2023-11-28 17:39 [PATCH] nvme-core: check for too small lba shift Keith Busch
@ 2023-11-28 19:10 ` Jens Axboe
2023-11-28 20:44 ` Keith Busch
0 siblings, 1 reply; 3+ messages in thread
From: Jens Axboe @ 2023-11-28 19:10 UTC (permalink / raw)
To: Keith Busch, linux-nvme; +Cc: hch, sagi, Keith Busch
On 11/28/23 10:39 AM, Keith Busch wrote:
> From: Keith Busch <kbusch@kernel.org>
>
> The block layer doesn't support logical block sizes smaller than 512
> bytes. The nvme spec doesn't support that small either, but the driver
> isn't checking to make sure the device responded with usable data.
> Failing to catch this will result in a kernel bug, either from a
> division by zero when stacking, or a zero length bio.
Reviewed-by: Jens Axboe <axboe@kernel.dk>
--
Jens Axboe
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] nvme-core: check for too small lba shift
2023-11-28 19:10 ` Jens Axboe
@ 2023-11-28 20:44 ` Keith Busch
0 siblings, 0 replies; 3+ messages in thread
From: Keith Busch @ 2023-11-28 20:44 UTC (permalink / raw)
To: Jens Axboe; +Cc: Keith Busch, linux-nvme, hch, sagi
Applied for nvme-6.7.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-11-28 20:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-28 17:39 [PATCH] nvme-core: check for too small lba shift Keith Busch
2023-11-28 19:10 ` Jens Axboe
2023-11-28 20:44 ` Keith Busch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox