From: Christoph Hellwig <hch@infradead.org>
To: Suraj Sonawane <surajsonawane0215@gmail.com>
Cc: Keith Busch <kbusch@kernel.org>,
hch@infradead.org, axboe@kernel.dk, linux-block@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: Explanation on Uninitialized Variable bio in blk_rq_prep_clone
Date: Sun, 6 Oct 2024 22:50:48 -0700 [thread overview]
Message-ID: <ZwN2uFsOxO3jL-EY@infradead.org> (raw)
In-Reply-To: <d4463564-7593-4956-a598-c7ec8fa8f851@gmail.com>
On Sun, Oct 06, 2024 at 12:33:58PM +0530, Suraj Sonawane wrote:
> > If it fails, then bio is initialized to NULL.
> You're correct, bio_alloc_clone returns NULL if it fails, so there’s no
> uninitialized bio after that. My initial explanation wasn’t fully accurate,
> but initializing bio to NULL is just a safety measure for any unexpected
> issues later on. Or i am just trying to solve this issue by smatch tool:
> block/blk-mq.c:3199 blk_rq_prep_clone() error: uninitialized symbol 'bio'.
Please do this kind of research and clearly state it in the
commit log.
Now the actual useful cleanup here would be to:
- move the bio_put to the bio_ctr error handling, which is the only
case where it can happen
- move the bio variable into the __rq_for_each_bio scope, which
also removed the need to zero it at the end of the loop
That makes the easier to reason about, which should make whatever
static checker you have happy, and also allows humans to read it more
nicely.
next prev parent reply other threads:[~2024-10-07 5:50 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-04 10:08 [PATCH] block: Fix uninitialized symbol 'bio' " SurajSonawane2415
2024-10-04 12:22 ` Christoph Hellwig
2024-10-04 14:10 ` Explanation on Uninitialized Variable bio " SurajSonawane2415
2024-10-04 14:15 ` Hannes Reinecke
2024-10-04 14:33 ` John Garry
2024-10-04 14:40 ` Keith Busch
2024-10-06 6:58 ` Suraj Sonawane
2024-10-06 7:11 ` Suraj Sonawane
2024-10-04 14:39 ` Keith Busch
2024-10-06 7:03 ` Suraj Sonawane
2024-10-07 5:50 ` Christoph Hellwig [this message]
2024-10-07 19:58 ` [PATCH v2] block: Fix uninitialized symbol 'bio' " SurajSonawane2415
2024-10-08 4:23 ` Christoph Hellwig
2024-10-08 12:04 ` [PATCH v3] " SurajSonawane2415
2024-10-08 12:06 ` Christoph Hellwig
2024-10-08 14:52 ` Keith Busch
2024-10-08 15:35 ` Keith Busch
2024-10-08 17:52 ` [PATCH v4] " SurajSonawane2415
2024-10-09 7:30 ` Christoph Hellwig
2024-10-09 11:00 ` Suraj Sonawane
2024-10-09 11:37 ` Christoph Hellwig
2024-10-09 11:40 ` Suraj Sonawane
2024-11-15 16:07 ` Suraj Sonawane
2024-11-15 16:10 ` Jens Axboe
2024-11-16 11:32 ` Suraj Sonawane
2024-11-18 6:28 ` Christoph Hellwig
2024-11-19 16:53 ` Suraj Sonawane
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZwN2uFsOxO3jL-EY@infradead.org \
--to=hch@infradead.org \
--cc=axboe@kernel.dk \
--cc=kbusch@kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=surajsonawane0215@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®