Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

nvdimm-btt: use bvec_kmap_local in btt_rw_integrity

Using local kmaps slightly reduces the chances to stray writes, and
the bvec interface cleans up the code a little bit.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Link: https://lore.kernel.org/r/20220303111905.321089-7-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Christoph Hellwig and committed by
Jens Axboe
32051906 20072ec8

+4 -6
+4 -6
drivers/nvdimm/btt.c
··· 1163 1163 */ 1164 1164 1165 1165 cur_len = min(len, bv.bv_len); 1166 - mem = kmap_atomic(bv.bv_page); 1166 + mem = bvec_kmap_local(&bv); 1167 1167 if (rw) 1168 - ret = arena_write_bytes(arena, meta_nsoff, 1169 - mem + bv.bv_offset, cur_len, 1168 + ret = arena_write_bytes(arena, meta_nsoff, mem, cur_len, 1170 1169 NVDIMM_IO_ATOMIC); 1171 1170 else 1172 - ret = arena_read_bytes(arena, meta_nsoff, 1173 - mem + bv.bv_offset, cur_len, 1171 + ret = arena_read_bytes(arena, meta_nsoff, mem, cur_len, 1174 1172 NVDIMM_IO_ATOMIC); 1175 1173 1176 - kunmap_atomic(mem); 1174 + kunmap_local(mem); 1177 1175 if (ret) 1178 1176 return ret; 1179 1177