linux-yocto/block
Caleb Sander Mateos d6072557b9 block: zero non-PI portion of auto integrity buffer
[ Upstream commit ca22c566b89164f6e670af56ecc45f47ef3df819 ]

The auto-generated integrity buffer for writes needs to be fully
initialized before being passed to the underlying block device,
otherwise the uninitialized memory can be read back by userspace or
anyone with physical access to the storage device. If protection
information is generated, that portion of the integrity buffer is
already initialized. The integrity data is also zeroed if PI generation
is disabled via sysfs or the PI tuple size is 0. However, this misses
the case where PI is generated and the PI tuple size is nonzero, but the
metadata size is larger than the PI tuple. In this case, the remainder
("opaque") of the metadata is left uninitialized.
Generalize the BLK_INTEGRITY_CSUM_NONE check to cover any case when the
metadata is larger than just the PI tuple.

Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Fixes: c546d6f438 ("block: only zero non-PI metadata tuples in bio_integrity_prep")
Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2026-01-23 11:21:16 +01:00
..
partitions block: switch ->getgeo() to struct gendisk 2025-08-13 02:59:29 -04:00
badblocks.c badblocks: Fix a nonsense WARN_ON() which checks whether a u64 variable < 0 2025-03-10 07:41:58 -06:00
bdev.c block: add __must_check attribute to sb_min_blocksize() 2025-11-05 14:00:16 +01:00
bfq-cgroup.c Revert "block, bfq: merge bfq_release_process_ref() into bfq_put_cooperator()" 2024-11-19 19:05:32 -07:00
bfq-iosched.c block: fix race between wbt_enable_default and IO submission 2026-01-02 12:56:51 +01:00
bfq-iosched.h lib/sbitmap: convert shallow_depth from one word to the whole sbitmap 2025-08-07 06:30:17 -06:00
bfq-wf2q.c
bio-integrity-auto.c block: zero non-PI portion of auto integrity buffer 2026-01-23 11:21:16 +01:00
bio-integrity.c blk-integrity: enable p2p source and destination 2025-09-09 10:33:27 -06:00
bio.c block: rename bio_iov_iter_get_pages_aligned to bio_iov_iter_get_pages 2025-10-07 08:05:44 -06:00
blk-cgroup-fc-appid.c
blk-cgroup-rwstat.c
blk-cgroup-rwstat.h blk-cgroup: rwstat: fix kernel-doc warnings in header file 2025-01-13 07:47:09 -07:00
blk-cgroup.c block: Remove elevator_lock usage from blkg_conf frozen operations 2025-10-15 08:00:19 -06:00
blk-cgroup.h block: initialize bio issue time in blk_mq_submit_bio() 2025-09-10 05:23:45 -06:00
blk-core.c for-6.18/block-20250929 2025-10-02 10:16:56 -07:00
blk-crypto-fallback.c blk-crypto: convert to use bio_submit_split_bioset() 2025-09-10 05:23:46 -06:00
blk-crypto-internal.h blk-crypto: add ioctls to create and prepare hardware-wrapped keys 2025-02-10 09:54:19 -07:00
blk-crypto-profile.c blk-crypto: export wrapped key functions 2025-05-06 19:08:08 +02:00
blk-crypto-sysfs.c blk-crypto: show supported key types in sysfs 2025-02-10 09:54:19 -07:00
blk-crypto.c blk-crypto: use BLK_STS_INVAL for alignment errors 2025-10-30 08:52:57 -06:00
blk-flush.c block: remove unused parameter 2025-03-12 08:25:28 -06:00
blk-ia-ranges.c block: get rid of request queue ->sysfs_dir_lock 2025-01-29 07:16:47 -07:00
blk-integrity.c block: don't merge bios with different app_tags 2026-01-17 16:35:28 +01:00
blk-ioc.c copy_process: pass clone_flags as u64 across calltree 2025-09-01 15:31:34 +02:00
blk-iocost.c for-6.15/block-20250322 2025-03-26 18:08:55 -07:00
blk-iolatency.c blk-mq: add QUEUE_FLAG_BIO_ISSUE_TIME 2025-09-10 05:23:45 -06:00
blk-ioprio.c blk-cgroup: Simplify policy files registration 2025-03-11 09:22:55 -10:00
blk-ioprio.h
blk-lib.c block: fix memory leak in __blkdev_issue_zero_pages 2025-12-18 14:03:36 +01:00
blk-map.c block: rename bio_iov_iter_get_pages_aligned to bio_iov_iter_get_pages 2025-10-07 08:05:44 -06:00
blk-merge.c block: fix ordering of recursive split IO 2025-09-10 05:23:46 -06:00
blk-mq-cpumap.c blk-mq: add number of queue calc helper 2025-07-01 10:24:19 -06:00
blk-mq-debugfs.c blk-mq: add QUEUE_FLAG_BIO_ISSUE_TIME 2025-09-10 05:23:45 -06:00
blk-mq-debugfs.h
blk-mq-dma.c blk-mq-dma: bring back p2p request flags 2025-09-09 10:33:35 -06:00
blk-mq-sched.c block: use {alloc|free}_sched data methods 2026-01-02 12:56:51 +01:00
blk-mq-sched.h block: use {alloc|free}_sched data methods 2026-01-02 12:56:51 +01:00
blk-mq-sysfs.c blk-mq: Move flush queue allocation into blk_mq_init_hctx() 2025-09-08 08:05:32 -06:00
blk-mq-tag.c blk-mq: fix stale tag depth for shared sched tags in blk_mq_update_nr_requests() 2025-10-15 07:49:19 -06:00
blk-mq.c blk-mq: skip CPU offline notify on unmapped hctx 2026-01-08 10:16:52 +01:00
blk-mq.h blk-mq: fix stale tag depth for shared sched tags in blk_mq_update_nr_requests() 2025-10-15 07:49:19 -06:00
blk-pm.c block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-pm.h
blk-rq-qos.c block: avoid cpu_hotplug_lock depedency on freeze_lock 2025-08-21 07:11:11 -06:00
blk-rq-qos.h block: validate QoS before calling __rq_qos_done_bio() 2025-08-26 10:34:08 -06:00
blk-settings.c block: validate pi_offset integrity limit 2026-01-17 16:35:33 +01:00
blk-stat.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
blk-stat.h treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
blk-sysfs.c block: Remove queue freezing from several sysfs store callbacks 2026-01-02 12:57:11 +01:00
blk-throttle.c block/blk-throttle: Fix throttle slice time for SSDs 2025-12-18 14:03:03 +01:00
blk-throttle.h blk-throttle: fix access race during throttle policy activation 2025-09-08 08:24:44 -06:00
blk-timeout.c
blk-wbt.c block: fix race between wbt_enable_default and IO submission 2026-01-02 12:56:51 +01:00
blk-wbt.h block: fix race between wbt_enable_default and IO submission 2026-01-02 12:56:51 +01:00
blk-zoned.c block: fix NULL pointer dereference in blk_zone_reset_all_bio_endio() 2026-01-08 10:17:21 +01:00
blk.h block: handle zone management operations completions 2026-01-08 10:16:52 +01:00
bsg-lib.c block: remove unused parameter 'q' parameter in __blk_rq_map_sg() 2025-03-13 05:46:19 -06:00
bsg.c
disk-events.c
early-lookup.c
elevator.c block: fix race between wbt_enable_default and IO submission 2026-01-02 12:56:51 +01:00
elevator.h block: fix race between wbt_enable_default and IO submission 2026-01-02 12:56:51 +01:00
fops.c block: move bio_iov_iter_get_bdev_pages to block/fops.c 2025-10-07 08:05:44 -06:00
genhd.c block: rate-limit capacity change info log 2026-01-02 12:57:08 +01:00
holder.c
ioctl.c for-6.18/block-20250929 2025-10-02 10:16:56 -07:00
ioprio.c block: remove test of incorrect io priority level 2025-05-08 09:04:12 -06:00
Kconfig block: Remove obsolete configs BLK_MQ_{PCI,VIRTIO} 2025-05-14 05:43:56 -06:00
Kconfig.iosched
kyber-iosched.c blk-mq: fix elevator depth_updated method 2025-09-05 13:52:52 -06:00
Makefile blk-mq: move the DMA mapping code to a separate file 2025-05-16 08:43:41 -06:00
mq-deadline.c block/mq-deadline: Switch back to a single dispatch list 2025-12-18 14:02:33 +01:00
opal_proto.h
sed-opal.c block: sed-opal: add ioctl IOC_OPAL_SET_SID_PW 2024-10-22 08:16:40 -06:00
t10-pi.c block: rename tuple_size field in blk_integrity to metadata_size 2025-07-01 14:00:14 +02:00