From: Eric Biggers <ebiggers@kernel.org>
To: Wu Bo <bo.wu@vivo.com>
Cc: Alasdair Kergon <agk@redhat.com>,
Mike Snitzer <snitzer@kernel.org>,
Mikulas Patocka <mpatocka@redhat.com>,
dm-devel@lists.linux.dev, linux-kernel@vger.kernel.org,
Wu Bo <wubo.oduw@gmail.com>
Subject: Re: [PATCH 1/2] dm verity: init fec io before cleaning it
Date: Tue, 21 Nov 2023 14:57:02 -0800 [thread overview]
Message-ID: <20231121225702.GA2172@sol.localdomain> (raw)
In-Reply-To: <419e7aa58f67d90020512892f7652623e8c9f059.1700555778.git.bo.wu@vivo.com>
On Tue, Nov 21, 2023 at 01:55:28AM -0700, Wu Bo wrote:
> If BIO error, it may goto verity_finish_io() before
> verity_fec_init_io(). Therefor, the fec_io->rs is not initialized and
> may crash when doing memory freeing in verity_fec_finish_io().
>
> Crash call stack:
> die+0x90/0x2b8
> __do_kernel_fault+0x260/0x298
> do_bad_area+0x2c/0xdc
> do_translation_fault+0x3c/0x54
> do_mem_abort+0x54/0x118
> el1_abort+0x38/0x5c
> el1h_64_sync_handler+0x50/0x90
> el1h_64_sync+0x64/0x6c
> free_rs+0x18/0xac
> fec_rs_free+0x10/0x24
> mempool_free+0x58/0x148
> verity_fec_finish_io+0x4c/0xb0
> verity_end_io+0xb8/0x150
>
> Signed-off-by: Wu Bo <bo.wu@vivo.com>
What commit introduced this bug? It looks like it was commit 5721d4e5a9cd ("dm
verity: Add optional "try_verify_in_tasklet" feature"), which moved the call to
verity_fec_init_io() from verity_map() to verity_work(). Do you agree? Should
the call to verity_fec_init_io() perhaps be moved back to verity_map(), instead
of putting it in verity_end_io()? Or maybe another call to verity_fec_init_io()
should be added only just before the call to verity_finish_io() in
verity_end_io(), given that it's not needed in the tasklet case?
In any case, please also add a Fixes tag with the appropriate commit, as well as
a "Cc stable" tag.
- Eric
next prev parent reply other threads:[~2023-11-21 22:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-21 8:55 [PATCH 0/2] dm verity: fix FEC stuck during lower dm suspend Wu Bo
2023-11-21 8:55 ` [PATCH 1/2] dm verity: init fec io before cleaning it Wu Bo
2023-11-21 22:57 ` Eric Biggers [this message]
2023-11-21 8:55 ` [PATCH 2/2] dm verity: don't verity if readahead failed Wu Bo
2023-11-21 23:01 ` Eric Biggers
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=20231121225702.GA2172@sol.localdomain \
--to=ebiggers@kernel.org \
--cc=agk@redhat.com \
--cc=bo.wu@vivo.com \
--cc=dm-devel@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=mpatocka@redhat.com \
--cc=snitzer@kernel.org \
--cc=wubo.oduw@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.