| From 5f56a1559fc86332f335a7a10a8a7b100bfeeec4 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 7 Oct 2021 21:13:37 +0200 |
| Subject: PM: hibernate: fix sparse warnings |
| |
| From: Anders Roxell <anders.roxell@linaro.org> |
| |
| [ Upstream commit 01de5fcd8b1ac0ca28d2bb0921226a54fdd62684 ] |
| |
| When building the kernel with sparse enabled 'C=1' the following |
| warnings shows up: |
| |
| kernel/power/swap.c:390:29: warning: incorrect type in assignment (different base types) |
| kernel/power/swap.c:390:29: expected int ret |
| kernel/power/swap.c:390:29: got restricted blk_status_t |
| |
| This is due to function hib_wait_io() returns a 'blk_status_t' which is |
| a bitwise u8. Commit 5416da01ff6e ("PM: hibernate: Remove |
| blk_status_to_errno in hib_wait_io") seemed to have mixed up the return |
| type. However, the 4e4cbee93d56 ("block: switch bios to blk_status_t") |
| actually broke the behaviour by returning the wrong type. |
| |
| Rework so function hib_wait_io() returns a 'int' instead of |
| 'blk_status_t' and make sure to call function |
| blk_status_to_errno(hb->error)' when returning from function |
| hib_wait_io() a int gets returned. |
| |
| Fixes: 4e4cbee93d56 ("block: switch bios to blk_status_t") |
| Fixes: 5416da01ff6e ("PM: hibernate: Remove blk_status_to_errno in hib_wait_io") |
| Signed-off-by: Anders Roxell <anders.roxell@linaro.org> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| kernel/power/swap.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/kernel/power/swap.c b/kernel/power/swap.c |
| index d32cd03d5ff8c..bcc9769e8a3b5 100644 |
| --- a/kernel/power/swap.c |
| +++ b/kernel/power/swap.c |
| @@ -292,7 +292,7 @@ static int hib_submit_io(int op, int op_flags, pgoff_t page_off, void *addr, |
| return error; |
| } |
| |
| -static blk_status_t hib_wait_io(struct hib_bio_batch *hb) |
| +static int hib_wait_io(struct hib_bio_batch *hb) |
| { |
| wait_event(hb->wait, atomic_read(&hb->count) == 0); |
| return blk_status_to_errno(hb->error); |
| -- |
| 2.33.0 |
| |