Received: by 10.223.185.116 with SMTP id b49csp2002562wrg; Sat, 24 Feb 2018 08:43:24 -0800 (PST) X-Google-Smtp-Source: AH8x225iJR448wtuaN86jtMH+Gl0ciDuhjibKYtilGZUaJX/L0bzDMgKb9cPMteo/rSLske923Y2 X-Received: by 10.98.202.23 with SMTP id n23mr5402649pfg.52.1519490604116; Sat, 24 Feb 2018 08:43:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519490604; cv=none; d=google.com; s=arc-20160816; b=Mav1O8/eRYpop8/7praqzfbQ3Gdg80TC8yS5wyR7Wc0VB4iFrS8OcWmB0NaUY923LU HKfsVURK9F+mWDJ2rQIVk6ANk4cl1rtbypmPwGhmfVWGuLYuJwNaIYVMKJVeavCfMP8b l+XdULTdCdBzIaIWsClfDz8PClFT5brvwZzUNvwT85Io+l2nqyJsHkKmZHO8v22F4SOh zeEKbX1R+6+GiIl+b2LQwyw+qvLX/q/5hoPnfVqtiO/PE2jBFdVxpQtv/qXD0AV63XG0 yQDDpvz5wm/n/9OFSCJUMfJLa524QOquXnHvj5Zz7f/AYvLBdsZfASY+ud13Vw+g/6zT tEcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=78C5U3XGbhL7n6VBOnUHUxeHiPxsbTQ8jPUANsMQkks=; b=pB/3ExoouhHP0LZ/3ZGce4DrtMFbt3Lf0VqYIVMTJmVQIl9jOsCk4vI4FHUvGphawo 4w/FvlRQ+KJel1QZ2GSrjWjLLXMelhkclWSvJrLtlKs9bDMf1lrvJ5HMumtXad3Spa11 h99olhVeur/tW5zrEFCm/D+u2Kb+Z9Nsw9ljMz7EJtlAkmEmM55x+GyX5zaFnpq5Lycz nDgm0pb0IV3eS7uD8WuVkiW5RAYDTV9m1QRdG+SYPXIBGhVYyulIZmeRRLaTJnBL9EQE wOFe+oc1SKXU6kFAZHo/Ti/hoAX5I29GkCdvoVuQQxj8uhWnVg13W/S0IaHOij0e3Dtu T3KA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XqRYDVoU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 64-v6si3757855ply.277.2018.02.24.08.43.10; Sat, 24 Feb 2018 08:43:24 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XqRYDVoU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751557AbeBXQlZ (ORCPT + 99 others); Sat, 24 Feb 2018 11:41:25 -0500 Received: from mail-io0-f193.google.com ([209.85.223.193]:40298 "EHLO mail-io0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751417AbeBXQlX (ORCPT ); Sat, 24 Feb 2018 11:41:23 -0500 Received: by mail-io0-f193.google.com with SMTP id v6so11845294iog.7 for ; Sat, 24 Feb 2018 08:41:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=78C5U3XGbhL7n6VBOnUHUxeHiPxsbTQ8jPUANsMQkks=; b=XqRYDVoUbAtnVpQicVtoMJqddG+hrXaJXBmHYoGo3YpvXxzVkpBC6EBfWRnqqw+ZgX s8ILotgXcXZ7G3B7jxU+2jw9xEdr59DeC7DVZ25trwoFEQPsy9YGxxJy88sWmw2P/9I2 aMla6dZDYJRzBFdzSSn/5cVwXvBQNZjGU7rLA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=78C5U3XGbhL7n6VBOnUHUxeHiPxsbTQ8jPUANsMQkks=; b=Zn/ovgo4+MXjKKLJicwQB7FJQYLNluOs+V7sEIPMGzKsQbS6ffTY4aNxjuioEwNE4C RyEyIcdOIuto7M2DLuIL6gPWPeZjioIWJu4O+z3oR1TPevNvQc49fJQfk8Ehdq23+W8A tqNLoPTeefQ/WErv56/VenHqJVFiK3J4GcMV/GPhXePQUZoNRVm2/NhfnsmiE3IUZYaA JQRQYgYImsFqR6ab5z5giWx7GKGfuXsklfYedQ4IeoHXrXO47o65t+bwKEZbtG513H2J pVU1FOfUzmhEeoIs+iehBR2ryTjeEfkl3j+OzK6XToF+vgvBfm9fjcwlwBsDic3RtV41 /EnA== X-Gm-Message-State: APf1xPBMSjqJ3R4PP+hobp6Cg5Yz//9KN4LagasDBVkTsDPnNQUabttC a5W3vUDGBdK5EGzaR6UA9m3T7aXe/xk26xXAXeHU4g== X-Received: by 10.107.41.16 with SMTP id p16mr6001009iop.173.1519490482811; Sat, 24 Feb 2018 08:41:22 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.138.209 with HTTP; Sat, 24 Feb 2018 08:41:22 -0800 (PST) In-Reply-To: <20180223200333.6410-5-Yazen.Ghannam@amd.com> References: <20180223200333.6410-1-Yazen.Ghannam@amd.com> <20180223200333.6410-5-Yazen.Ghannam@amd.com> From: Ard Biesheuvel Date: Sat, 24 Feb 2018 16:41:22 +0000 Message-ID: Subject: Re: [PATCH 4/8] efi: Decode UEFI-defined IA32/X64 Error Structure GUIDs To: Yazen Ghannam Cc: linux-efi@vger.kernel.org, Linux Kernel Mailing List , Borislav Petkov , "the arch/x86 maintainers" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 23 February 2018 at 20:03, Yazen Ghannam wrote: > From: Yazen Ghannam > > For easier handling, match the known IA32/X64 error structure GUIDs to > enums. > > Also, print out the name of the matching Error Structure Type. > > GUIDs taken from UEFI 2.7 section N.2.4.2.1 IA32/X64 Processor Error > Information Structure. > > Cc: # 4.16.x > Signed-off-by: Yazen Ghannam > --- > drivers/firmware/efi/cper-x86.c | 41 +++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 41 insertions(+) > > diff --git a/drivers/firmware/efi/cper-x86.c b/drivers/firmware/efi/cper-x86.c > index 9d608f742c98..3b86223bdb67 100644 > --- a/drivers/firmware/efi/cper-x86.c > +++ b/drivers/firmware/efi/cper-x86.c > @@ -14,17 +14,53 @@ > #define VALID_CPUID_INFO BIT_ULL(1) > #define VALID_PROC_ERR_INFO_NUM(bits) ((bits & GENMASK_ULL(7, 2)) >> 2) > > +#define INFO_ERR_STRUCT_TYPE_CACHE \ > + GUID_INIT(0xA55701F5, 0xE3EF, 0x43DE, 0xAC, 0x72, 0x24, 0x9B, \ > + 0x57, 0x3F, 0xAD, 0x2C) > +#define INFO_ERR_STRUCT_TYPE_TLB \ > + GUID_INIT(0xFC06B535, 0x5E1F, 0x4562, 0x9F, 0x25, 0x0A, 0x3B, \ > + 0x9A, 0xDB, 0x63, 0xC3) > +#define INFO_ERR_STRUCT_TYPE_BUS \ > + GUID_INIT(0x1CF3F8B3, 0xC5B1, 0x49a2, 0xAA, 0x59, 0x5E, 0xEF, \ > + 0x92, 0xFF, 0xA6, 0x3C) > +#define INFO_ERR_STRUCT_TYPE_MS \ > + GUID_INIT(0x48AB7F57, 0xDC34, 0x4f6c, 0xA7, 0xD3, 0xB0, 0xB5, \ > + 0xB0, 0xA7, 0x43, 0x14) > + > #define INFO_VALID_CHECK_INFO BIT_ULL(0) > #define INFO_VALID_TARGET_ID BIT_ULL(1) > #define INFO_VALID_REQUESTOR_ID BIT_ULL(2) > #define INFO_VALID_RESPONDER_ID BIT_ULL(3) > #define INFO_VALID_IP BIT_ULL(4) > > +enum err_types { > + ERR_TYPE_CACHE = 0, > + ERR_TYPE_TLB, > + ERR_TYPE_BUS, > + ERR_TYPE_MS, > + N_ERR_TYPES > +}; > + > +static enum err_types cper_get_err_type(const guid_t *err_type) > +{ > + if (guid_equal(err_type, &INFO_ERR_STRUCT_TYPE_CACHE)) > + return ERR_TYPE_CACHE; > + else if (guid_equal(err_type, &INFO_ERR_STRUCT_TYPE_TLB)) > + return ERR_TYPE_TLB; > + else if (guid_equal(err_type, &INFO_ERR_STRUCT_TYPE_BUS)) > + return ERR_TYPE_BUS; > + else if (guid_equal(err_type, &INFO_ERR_STRUCT_TYPE_MS)) > + return ERR_TYPE_MS; > + else > + return N_ERR_TYPES; > +} > + > void cper_print_proc_ia(const char *pfx, const struct cper_sec_proc_ia *proc) > { > int i; > struct cper_ia_err_info *err_info; > char newpfx[64]; > + enum err_types err_type; > Can you make this an u8 please? The signedness of an enum is not well defined, and you only check the upper bound below. > printk("%sValidation Bits: 0x%016llx\n", pfx, proc->validation_bits); > > @@ -46,6 +82,11 @@ void cper_print_proc_ia(const char *pfx, const struct cper_sec_proc_ia *proc) > printk("%sError Structure Type: %pUl\n", newpfx, > &err_info->err_type); > > + err_type = cper_get_err_type(&err_info->err_type); > + printk("%sError Structure Type: %s\n", newpfx, > + err_type < ARRAY_SIZE(cper_proc_error_type_strs) ? > + cper_proc_error_type_strs[err_type] : "unknown"); > + > printk("%sValidation Bits: 0x%016llx\n", > newpfx, err_info->validation_bits); > > -- > 2.14.1 >