On 9/5/2019 7:16 AM, Greg KH wrote:
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@hpe.com Reviewed-by: Steve Wahl steve.wahl@hpe.com Reviewed-by: Dimitri Sivanich dimitri.sivanich@hpe.com To: Thomas Gleixner tglx@linutronix.de To: Ingo Molnar mingo@redhat.com To: H. Peter Anvin hpa@zytor.com To: Andrew Morton akpm@linux-foundation.org To: Borislav Petkov bp@alien8.de To: Christoph Hellwig hch@infradead.org Cc: Dimitri Sivanich dimitri.sivanich@hpe.com Cc: Russ Anderson russ.anderson@hpe.com Cc: Hedi Berriche hedi.berriche@hpe.com Cc: Steve Wahl steve.wahl@hpe.com Cc: x86@kernel.org Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org
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.
Is it because it has fixes for new hardware? If so, then I'll quit submitting them to stable (we've had requests from distros for all updates be in the stable tree for acceptance). Otherwise I thought it does comply with:
" - To have the patch automatically included in the stable tree, add the tag Cc: stable@vger.kernel.org in the sign-off area. Once the patch is merged it will be applied to the stable tree without anything else needing to be done by the author or subsystem maintainer."
Or is there some other reason that I'm not understanding?
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.
You're right this would be much cleaner. Mostly this was done because of the rarity of an error here, and the specifics (BIOS failures) usually cannot be dealt with by users. The system log is captured as part of the error and packaged with other fault details that are analyzed internally.
But I will make the changes you are suggesting. And thanks.
greg k-h