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

nvme-apple: stop casting function pointer signatures

Casting function pointers breaks control flow enforcement and is
generally a horrible coding style.

Add two wrappers to get rid of these casts.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Sven Peter <sven@svenpeter.dev>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Christoph Hellwig and committed by
Jens Axboe
2fec1dfc 2f7a7e5d

+15 -6
+15 -6
drivers/nvme/host/apple.c
··· 1219 1219 nvme_put_ctrl(&anv->ctrl); 1220 1220 } 1221 1221 1222 + static void devm_apple_nvme_put_tag_set(void *data) 1223 + { 1224 + blk_mq_free_tag_set(data); 1225 + } 1226 + 1222 1227 static int apple_nvme_alloc_tagsets(struct apple_nvme *anv) 1223 1228 { 1224 1229 int ret; ··· 1240 1235 ret = blk_mq_alloc_tag_set(&anv->admin_tagset); 1241 1236 if (ret) 1242 1237 return ret; 1243 - ret = devm_add_action_or_reset(anv->dev, 1244 - (void (*)(void *))blk_mq_free_tag_set, 1238 + ret = devm_add_action_or_reset(anv->dev, devm_apple_nvme_put_tag_set, 1245 1239 &anv->admin_tagset); 1246 1240 if (ret) 1247 1241 return ret; ··· 1264 1260 ret = blk_mq_alloc_tag_set(&anv->tagset); 1265 1261 if (ret) 1266 1262 return ret; 1267 - ret = devm_add_action_or_reset( 1268 - anv->dev, (void (*)(void *))blk_mq_free_tag_set, &anv->tagset); 1263 + ret = devm_add_action_or_reset(anv->dev, devm_apple_nvme_put_tag_set, 1264 + &anv->tagset); 1269 1265 if (ret) 1270 1266 return ret; 1271 1267 ··· 1366 1362 return 0; 1367 1363 } 1368 1364 1365 + static void devm_apple_nvme_mempool_destroy(void *data) 1366 + { 1367 + mempool_destroy(data); 1368 + } 1369 + 1369 1370 static int apple_nvme_probe(struct platform_device *pdev) 1370 1371 { 1371 1372 struct device *dev = &pdev->dev; ··· 1468 1459 ret = -ENOMEM; 1469 1460 goto put_dev; 1470 1461 } 1471 - ret = devm_add_action_or_reset( 1472 - anv->dev, (void (*)(void *))mempool_destroy, anv->iod_mempool); 1462 + ret = devm_add_action_or_reset(anv->dev, 1463 + devm_apple_nvme_mempool_destroy, anv->iod_mempool); 1473 1464 if (ret) 1474 1465 goto put_dev; 1475 1466