From: Christoph Hellwig Date: Thu, 8 Jun 2023 11:02:39 +0000 (+0200) Subject: swsusp: don't pass a stack address to blkdev_get_by_path X-Git-Tag: for-6.5/block-2023-06-23~62 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=c889d0793d9dc07e94a5fddcc05356157fab00b7;p=linux-block.git swsusp: don't pass a stack address to blkdev_get_by_path holder is just an on-stack pointer that can easily be reused by other calls, replace it with a static variable that doesn't change. Signed-off-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Acked-by: Rafael J. Wysocki Link: https://lore.kernel.org/r/20230608110258.189493-12-hch@lst.de Signed-off-by: Jens Axboe --- diff --git a/kernel/power/swap.c b/kernel/power/swap.c index 81aec3b2c605..b03ff1a33c7f 100644 --- a/kernel/power/swap.c +++ b/kernel/power/swap.c @@ -1510,6 +1510,8 @@ end: return error; } +static void *swsusp_holder; + /** * swsusp_check - Check for swsusp signature in the resume device */ @@ -1517,14 +1519,13 @@ end: int swsusp_check(bool snapshot_test) { int error; - void *holder; fmode_t mode = FMODE_READ; if (snapshot_test) mode |= FMODE_EXCL; hib_resume_bdev = blkdev_get_by_dev(swsusp_resume_device, - mode, &holder, NULL); + mode, &swsusp_holder, NULL); if (!IS_ERR(hib_resume_bdev)) { set_blocksize(hib_resume_bdev, PAGE_SIZE); clear_page(swsusp_header);