From: Michael Neuling <mikey@neuling.org>
To: Daniel Axtens <dja@axtens.net>
Cc: linuxppc-dev@ozlabs.org, mpe@ellerman.id.au,
benh@kernel.crashing.org, imunsie@au.ibm.com
Subject: Re: [PATCH] cxl: Check if afu is not null in cxl_slbia
Date: Fri, 10 Jul 2015 09:50:02 +1000 [thread overview]
Message-ID: <1436485802.10184.15.camel@neuling.org> (raw)
In-Reply-To: <1436483065-9202-1-git-send-email-dja@axtens.net>
On Fri, 2015-07-10 at 09:04 +1000, Daniel Axtens wrote:
> The pointer to an AFU in the adapter's list of AFUs can be null
> if we're in the process of removing AFUs. The afu_list_lock
> doesn't guard against this.
>=20
> Say we have 2 slices, and we're in the process of removing cxl.
> - We remove the AFUs in order (see cxl_remove). In cxl_remove_afu
> for AFU 0, we take the lock, set adapter->afu[0] =3D NULL, and
> release the lock.
> - Then we get an slbia. In cxl_slbia we take the lock, and set
> afu =3D adapter->afu[0], which is NULL.
> - Therefore our attempt to check afu->enabled will blow up.
>=20
> Therefore, check if afu is a null pointer before dereferencing it.
>=20
> cc: STABLE
FYI This needs to be (see Documentation/stable_kernel_rules.txt):
Cc: stable@vger.kernel.org
Other than that, looks good. Thanks.
Acked-by: Michael Neuling <mikey@neuling.org>
> Signed-off-by: Daniel Axtens <dja@axtens.net>
> ---
> drivers/misc/cxl/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>=20
> diff --git a/drivers/misc/cxl/main.c b/drivers/misc/cxl/main.c
> index 11a2044d6b0f..5bcd676bfd59 100644
> --- a/drivers/misc/cxl/main.c
> +++ b/drivers/misc/cxl/main.c
> @@ -86,7 +86,7 @@ static inline void cxl_slbia_core(struct mm_struct *mm)
> spin_lock(&adapter->afu_list_lock);
> for (slice =3D 0; slice < adapter->slices; slice++) {
> afu =3D adapter->afu[slice];
> - if (!afu->enabled)
> + if (!afu || !afu->enabled)
> continue;
> rcu_read_lock();
> idr_for_each_entry(&afu->contexts_idr, ctx, id)
next prev parent reply other threads:[~2015-07-09 23:50 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-09 23:04 [PATCH] cxl: Check if afu is not null in cxl_slbia Daniel Axtens
2015-07-09 23:50 ` Michael Neuling [this message]
2015-07-10 0:09 ` Ian Munsie
2015-07-10 6:55 ` Michael Ellerman
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=1436485802.10184.15.camel@neuling.org \
--to=mikey@neuling.org \
--cc=benh@kernel.crashing.org \
--cc=dja@axtens.net \
--cc=imunsie@au.ibm.com \
--cc=linuxppc-dev@ozlabs.org \
--cc=mpe@ellerman.id.au \
/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.