Re: [PATCH 6/8] x86/platform/uv: Decode UVsystab Info

From: Greg KH
Date: Thu Sep 05 2019 - 10:16:40 EST


On Thu, Sep 05, 2019 at 08:02:58AM -0500, Mike Travis wrote:
> Decode the hubless UVsystab passed from BIOS to the kernel saving
> pertinent info in a similar manner that hubbed UVsystabs are decoded.
>
> Signed-off-by: Mike Travis <mike.travis@xxxxxxx>
> Reviewed-by: Steve Wahl <steve.wahl@xxxxxxx>
> Reviewed-by: Dimitri Sivanich <dimitri.sivanich@xxxxxxx>
> To: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> To: Ingo Molnar <mingo@xxxxxxxxxx>
> To: H. Peter Anvin <hpa@xxxxxxxxx>
> To: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> To: Borislav Petkov <bp@xxxxxxxxx>
> To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
> Cc: Dimitri Sivanich <dimitri.sivanich@xxxxxxx>
> Cc: Russ Anderson <russ.anderson@xxxxxxx>
> Cc: Hedi Berriche <hedi.berriche@xxxxxxx>
> Cc: Steve Wahl <steve.wahl@xxxxxxx>
> Cc: x86@xxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Cc: stable@xxxxxxxxxxxxxxx
> ---
> arch/x86/kernel/apic/x2apic_uv_x.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)

If you are trying to get one of my automated "WTF: patch XXXX was
seriously submitted to be applied to the stable tree?" emails, you are
on track for it...

Please go read the documentation link I sent you last time and figure
out how you can justify any of this patch series for a stable kernel
tree.

Also, nit:

> --- linux.orig/arch/x86/kernel/apic/x2apic_uv_x.c
> +++ linux/arch/x86/kernel/apic/x2apic_uv_x.c
> @@ -1303,7 +1303,8 @@ static int __init decode_uv_systab(void)
> struct uv_systab *st;
> int i;
>
> - if (uv_hub_info->hub_revision < UV4_HUB_REVISION_BASE)
> + /* Select only UV4 (hubbed or hubless) and higher */
> + if (is_uv_hubbed(-2) < uv(4) && is_uv_hubless(-2) < uv(4))
> return 0; /* No extended UVsystab required */
>
> st = uv_systab;
> @@ -1554,8 +1555,19 @@ static __init int uv_system_init_hubless
>
> /* Init kernel/BIOS interface */
> rc = uv_bios_init();
> + if (rc < 0) {
> + pr_err("UV: BIOS init error:%d\n", rc);

Why isn't that function printing an error?


> + return rc;
> + }
> +
> + /* Process UVsystab */
> + rc = decode_uv_systab();
> + if (rc < 0) {
> + pr_err("UV: UVsystab decode error:%d\n", rc);

Same here, have the function itself print the error, makes this type of
stuff much cleaner.

greg k-h