All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabiano Rosas <farosas@linux.ibm.com>
To: "Cédric Le Goater" <clg@kaod.org>, linuxppc-dev@lists.ozlabs.org
Cc: "Cédric Le Goater" <clg@kaod.org>, stable@vger.kernel.org
Subject: Re: [PATCH] powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan
Date: Fri, 22 Jan 2021 10:25:34 -0300	[thread overview]
Message-ID: <8735ytaysx.fsf@linux.ibm.com> (raw)
In-Reply-To: <20210122075029.797013-1-clg@kaod.org>

Cédric Le Goater <clg@kaod.org> writes:

> The "ibm,arch-vec-5-platform-support" property is a list of pairs of
> bytes representing the options and values supported by the platform
> firmware. At boot time, Linux scans this list and activates the
> available features it recognizes : Radix and XIVE.
>
> A recent change modified the number of entries to loop on and 8 bytes,
> 4 pairs of { options, values } entries are always scanned. This is
> fine on KVM but not on PowerVM which can advertises less. As a
> consequence on this platform, Linux reads extra entries pointing to
> random data, interprets these as available features and tries to
> activate them, leading to a firmware crash in
> ibm,client-architecture-support.
>
> Fix that by using the property length of "ibm,arch-vec-5-platform-support".
>
> Cc: stable@vger.kernel.org # v4.20+
> Fixes: ab91239942a9 ("powerpc/prom: Remove VLA in prom_check_platform_support()")
> Signed-off-by: Cédric Le Goater <clg@kaod.org>

Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com>

> ---
>  arch/powerpc/kernel/prom_init.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
> index e9d4eb6144e1..ccf77b985c8f 100644
> --- a/arch/powerpc/kernel/prom_init.c
> +++ b/arch/powerpc/kernel/prom_init.c
> @@ -1331,14 +1331,10 @@ static void __init prom_check_platform_support(void)
>  		if (prop_len > sizeof(vec))
>  			prom_printf("WARNING: ibm,arch-vec-5-platform-support longer than expected (len: %d)\n",
>  				    prop_len);
> -		prom_getprop(prom.chosen, "ibm,arch-vec-5-platform-support",
> -			     &vec, sizeof(vec));
> -		for (i = 0; i < sizeof(vec); i += 2) {
> -			prom_debug("%d: index = 0x%x val = 0x%x\n", i / 2
> -								  , vec[i]
> -								  , vec[i + 1]);
> -			prom_parse_platform_support(vec[i], vec[i + 1],
> -						    &supported);
> +		prom_getprop(prom.chosen, "ibm,arch-vec-5-platform-support", &vec, sizeof(vec));
> +		for (i = 0; i < prop_len; i += 2) {
> +			prom_debug("%d: index = 0x%x val = 0x%x\n", i / 2, vec[i], vec[i + 1]);
> +			prom_parse_platform_support(vec[i], vec[i + 1], &supported);
>  		}
>  	}

  reply	other threads:[~2021-01-22 13:29 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-22  7:50 [PATCH] powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan Cédric Le Goater
2021-01-22  7:50 ` Cédric Le Goater
2021-01-22 13:25 ` Fabiano Rosas [this message]
2021-02-03 11:40 ` 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=8735ytaysx.fsf@linux.ibm.com \
    --to=farosas@linux.ibm.com \
    --cc=clg@kaod.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=stable@vger.kernel.org \
    /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.