2023-01-14 22:29:20

by Fedor Pchelkin

[permalink] [raw]
Subject: [PATCH 5.10 0/1] block: replace WARN_ONCE with pr_warn in bio_check_ro

Syzkaller reports warning in submit_bio_checks in 5.10 stable releases.
The issue has been fixed by the following patch which can be cleanly
applied to 5.10 branch.

bio->bi_bdev from original patch is not compatible with 5.10 so adapted
the print message to work with 5.10 cleanly.

Found by Linux Verification Center (linuxtesting.org) with Syzkaller.


2023-01-14 22:51:04

by Fedor Pchelkin

[permalink] [raw]
Subject: [PATCH 5.10 1/1] block: fix and cleanup bio_check_ro

From: Christoph Hellwig <[email protected]>

commit 57e95e4670d1126c103305bcf34a9442f49f6d6a upstream.

Don't use a WARN_ONCE when printing a potentially user triggered
condition.

Signed-off-by: Christoph Hellwig <[email protected]>
Reviewed-by: Chaitanya Kulkarni <[email protected]>
Reviewed-by: Johannes Thumshirn <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jens Axboe <[email protected]>
Signed-off-by: Fedor Pchelkin <[email protected]>
---
block/blk-core.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 26664f2a139e..921d436fa3c6 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -701,8 +701,7 @@ static inline bool bio_check_ro(struct bio *bio, struct hd_struct *part)
if (op_is_flush(bio->bi_opf) && !bio_sectors(bio))
return false;

- WARN_ONCE(1,
- "Trying to write to read-only block-device %s (partno %d)\n",
+ pr_warn("Trying to write to read-only block-device %s (partno %d)\n",
bio_devname(bio, b), part->partno);
/* Older lvm-tools actually trigger this */
return false;
--
2.34.1

2023-01-15 08:22:57

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 5.10 1/1] block: fix and cleanup bio_check_ro

On Sun, Jan 15, 2023 at 01:27:09AM +0300, Fedor Pchelkin wrote:
> From: Christoph Hellwig <[email protected]>
>
> commit 57e95e4670d1126c103305bcf34a9442f49f6d6a upstream.
>
> Don't use a WARN_ONCE when printing a potentially user triggered
> condition.
>
> Signed-off-by: Christoph Hellwig <[email protected]>
> Reviewed-by: Chaitanya Kulkarni <[email protected]>
> Reviewed-by: Johannes Thumshirn <[email protected]>
> Link: https://lore.kernel.org/r/[email protected]
> Signed-off-by: Jens Axboe <[email protected]>
> Signed-off-by: Fedor Pchelkin <[email protected]>
> ---
> block/blk-core.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/block/blk-core.c b/block/blk-core.c
> index 26664f2a139e..921d436fa3c6 100644
> --- a/block/blk-core.c
> +++ b/block/blk-core.c
> @@ -701,8 +701,7 @@ static inline bool bio_check_ro(struct bio *bio, struct hd_struct *part)
> if (op_is_flush(bio->bi_opf) && !bio_sectors(bio))
> return false;
>
> - WARN_ONCE(1,
> - "Trying to write to read-only block-device %s (partno %d)\n",
> + pr_warn("Trying to write to read-only block-device %s (partno %d)\n",
> bio_devname(bio, b), part->partno);
> /* Older lvm-tools actually trigger this */
> return false;
> --
> 2.34.1
>

Again, we CAN NOT take patches for older kernels and not for newer ones,
that one will cause regressions when people upgrade to newer kernels.

So I'm dropping all of your patches from my queue, please resend them so
that all trees are properly covered. As-is, I can not take the, and
most importantly, you do not want me to accept such a thing!

thanks,

greg k-h