Re: [PATCH] ACPI / APEI: Fix parsing HEST that includes Deferred Machine Check subtable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday, January 14, 2019 11:43:50 AM CET Borislav Petkov wrote:
> On Mon, Nov 12, 2018 at 07:00:55PM +0000, Ghannam, Yazen wrote:
> > From: Yazen Ghannam <yazen.ghannam@xxxxxxx>
> > 
> > ACPI 6.2 includes a new definition for a Deferred Machine Check "DMC"
> > subtable.
> > 
> > The definition of this subtable was included in following commit:
> > 
> > c042933df2b1 ("ACPICA: Add support for new HEST subtable")
> > 
> > However, the HEST parsing function was not updated to include this new
> > subtable. Therefore, Linux will fail to parse the HEST on systems that
> > include a DMC entry.
> > 
> > Add the length check for the new DMC subtable so that HEST parsing
> > doesn't fail on systems that include it.
> > 
> > Signed-off-by: Yazen Ghannam <yazen.ghannam@xxxxxxx>
> > ---
> >  drivers/acpi/apei/hest.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c
> > index b1e9f81ebeea..0935a0ef37e5 100644
> > --- a/drivers/acpi/apei/hest.c
> > +++ b/drivers/acpi/apei/hest.c
> > @@ -53,6 +53,7 @@ static const int hest_esrc_len_tab[ACPI_HEST_TYPE_RESERVED] = {
> >  	[ACPI_HEST_TYPE_AER_BRIDGE] = sizeof(struct acpi_hest_aer_bridge),
> >  	[ACPI_HEST_TYPE_GENERIC_ERROR] = sizeof(struct acpi_hest_generic),
> >  	[ACPI_HEST_TYPE_GENERIC_ERROR_V2] = sizeof(struct acpi_hest_generic_v2),
> > +	[ACPI_HEST_TYPE_IA32_DEFERRED_CHECK] = -1,
> >  };
> >  
> >  static int hest_esrc_len(struct acpi_hest_header *hest_hdr)
> > @@ -75,6 +76,11 @@ static int hest_esrc_len(struct acpi_hest_header *hest_hdr)
> >  		mc = (struct acpi_hest_ia_machine_check *)hest_hdr;
> >  		len = sizeof(*mc) + mc->num_hardware_banks *
> >  			sizeof(struct acpi_hest_ia_error_bank);
> > +	} else if (hest_type == ACPI_HEST_TYPE_IA32_DEFERRED_CHECK) {
> > +		struct acpi_hest_ia_deferred_check *mc;
> > +		mc = (struct acpi_hest_ia_deferred_check *)hest_hdr;
> > +		len = sizeof(*mc) + mc->num_hardware_banks *
> > +			sizeof(struct acpi_hest_ia_error_bank);
> >  	}
> >  	BUG_ON(len == -1);
> >  
> 
> Reviewed-by: Borislav Petkov <bp@xxxxxxx>

Patch applied, thanks!




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux