Files
linux/include/linux
Pankaj Raghav b025d81b96 block: reject bs > ps block devices when THP is disabled
[ Upstream commit 4cdf1bdd45 ]

If THP is disabled and when a block device with logical block size >
page size is present, the following null ptr deref panic happens during
boot:

[   [13.2 mK  AOSAN: null-ptr-deref in range [0x0000000000000000-0x0000000000K0 0 0[07]
[   13.017749] RIP: 0010:create_empty_buffers+0x3b/0x380
<snip>
[   13.025448] Call Trace:
[   13.025692]  <TASK>
[   13.025895]  block_read_full_folio+0x610/0x780
[   13.026379]  ? __pfx_blkdev_get_block+0x10/0x10
[   13.027008]  ? __folio_batch_add_and_move+0x1fa/0x2b0
[   13.027548]  ? __pfx_blkdev_read_folio+0x10/0x10
[   13.028080]  filemap_read_folio+0x9b/0x200
[   13.028526]  ? __pfx_filemap_read_folio+0x10/0x10
[   13.029030]  ? __filemap_get_folio+0x43/0x620
[   13.029497]  do_read_cache_folio+0x155/0x3b0
[   13.029962]  ? __pfx_blkdev_read_folio+0x10/0x10
[   13.030381]  read_part_sector+0xb7/0x2a0
[   13.030805]  read_lba+0x174/0x2c0
<snip>
[   13.045348]  nvme_scan_ns+0x684/0x850 [nvme_core]
[   13.045858]  ? __pfx_nvme_scan_ns+0x10/0x10 [nvme_core]
[   13.046414]  ? _raw_spin_unlock+0x15/0x40
[   13.046843]  ? __switch_to+0x523/0x10a0
[   13.047253]  ? kvm_clock_get_cycles+0x14/0x30
[   13.047742]  ? __pfx_nvme_scan_ns_async+0x10/0x10 [nvme_core]
[   13.048353]  async_run_entry_fn+0x96/0x4f0
[   13.048787]  process_one_work+0x667/0x10a0
[   13.049219]  worker_thread+0x63c/0xf60

As large folio support depends on THP, only allow bs > ps block devices
if THP is enabled.

Fixes: 47dd675323 ("block/bdev: lift block size restrictions to 64k")
Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Link: https://lore.kernel.org/r/20250704092134.289491-1-p.raghav@samsung.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-07-17 18:43:58 +02:00
..
2025-04-03 21:35:32 +02:00
2025-03-21 09:46:08 +01:00
2024-10-11 14:34:11 -04:00
2024-10-13 17:16:57 +02:00
2025-03-21 20:57:55 -03:00
2024-10-14 23:27:57 +05:30
2025-02-21 17:31:45 -06:00
2025-02-21 09:54:01 +01:00
2024-11-11 10:45:03 +01:00
2024-10-09 15:42:48 +01:00
2024-10-14 18:33:04 -07:00
2025-03-08 14:37:39 +01:00
2025-02-26 12:10:48 +01:00
2025-02-06 11:27:16 -07:00
2025-03-20 17:33:31 -04:00
2025-03-17 22:06:41 -07:00
2024-11-05 13:32:21 +01:00
2025-02-24 12:08:51 +02:00
2024-11-28 14:49:28 +01:00
2025-01-07 18:06:51 -08:00
2024-11-24 17:05:27 -08:00
2025-03-10 13:13:04 -07:00
2024-10-16 21:56:59 +02:00
2025-03-22 15:36:49 +02:00
2024-11-05 16:56:26 -08:00
2025-01-14 19:45:35 +01:00
2024-12-13 08:49:31 -07:00
2025-03-08 12:13:25 +01:00
2024-12-09 13:48:23 -08:00
2024-10-14 16:33:24 -05:00
2025-02-20 15:24:13 +01:00
2025-02-07 23:15:01 +05:30
2025-04-15 11:32:34 +02:00
2025-03-17 13:54:50 +00:00
2025-06-19 15:40:42 +02:00
2025-02-18 11:51:22 -05:00
2024-11-05 16:56:26 -08:00
2025-03-06 15:13:13 -04:00
2024-11-16 10:09:30 -06:00
2025-03-27 13:14:46 -05:00
2024-10-02 16:23:10 -05:00
2025-03-10 08:53:40 +01:00
2025-03-12 20:41:14 +01:00
2025-01-10 11:59:00 +01:00
2025-01-07 15:16:48 +01:00
2025-03-16 17:40:22 -07:00
2025-01-02 10:37:14 -06:00
2024-12-09 14:44:59 -08:00
2025-03-17 11:52:25 +01:00
2024-09-11 20:44:31 -07:00
2025-01-29 13:32:23 -08:00
2025-01-29 09:04:28 -08:00
2025-02-28 11:51:26 -08:00
2024-10-02 16:53:38 +02:00
2025-05-15 04:49:15 +03:00
2025-03-20 08:00:50 -07:00
2025-02-28 11:51:26 -08:00
2025-03-25 09:15:07 -07:00
2025-02-12 12:12:27 +01:00
2025-02-28 11:51:26 -08:00
2025-07-10 16:08:52 +02:00
2025-04-18 10:05:49 -04:00
2024-12-09 14:44:59 -08:00
2024-11-06 12:59:44 -05:00
2025-03-13 13:25:58 -07:00
2025-03-13 13:25:58 -07:00
2025-03-13 13:25:58 -07:00