scsi: sd: sd_zbc: Don't pass GFP_NOIO to kvcalloc
authorJohannes Thumshirn <johannes.thumshirn@wdc.com>
Wed, 17 Feb 2021 13:52:45 +0000 (22:52 +0900)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 23 Feb 2021 03:30:10 +0000 (22:30 -0500)
commit9acced3f58ad24407c1f9ebf53a8892c1e24cdb5
tree0b26f80d9e1bbbf5faebc96ea1e0127d9072eebb
parentc2f23a96c6e25a3b8aa2e873519b513745bba27c
scsi: sd: sd_zbc: Don't pass GFP_NOIO to kvcalloc

Dan reported we're passing in GFP_NOIO to kvmalloc() which will then
fallback to doing kmalloc() instead of an optional vmalloc() if the size
exceeds kmalloc()s limits. This will break with drives that have zone
numbers exceeding PAGE_SIZE/sizeof(u32).

Instead of passing in GFP_NOIO, enter an implicit GFP_NOIO allocation
scope.

Link: https://lore.kernel.org/r/YCuvSfKw4qEQBr/t@mwanda
Link: https://lore.kernel.org/r/5a6345e2989fd06c049ac4e4627f6acb492c15b8.1613569821.git.johannes.thumshirn@wdc.com
Fixes: 5795eb443060: ("scsi: sd_zbc: emulate ZONE_APPEND commands")
Cc: Damien Le Moal <Damien.LeMoal@wdc.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/sd_zbc.c