Re: [PATCH 1/5] ACPI, APEI, Fix APEI related table size checking

From: Huang Ying
Date: Sun Sep 26 2010 - 01:30:52 EST


On Tue, 2010-09-21 at 20:39 +0800, Andi Kleen wrote:
> On Sun, Sep 19, 2010 at 11:00:31AM +0800, Huang Ying wrote:
> > From: Yinghai Lu <yinghai@xxxxxxxxxx>
> >
> > Both ERST and EINJ table size checking is fixed.
>
> Needs a better description.
> > ---
> > drivers/acpi/apei/einj.c | 3 ++-
> > drivers/acpi/apei/erst.c | 3 ++-
> > 2 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
> > index 465c885..b184baa 100644
> > --- a/drivers/acpi/apei/einj.c
> > +++ b/drivers/acpi/apei/einj.c
> > @@ -426,7 +426,8 @@ DEFINE_SIMPLE_ATTRIBUTE(error_inject_fops, NULL,
> >
> > static int einj_check_table(struct acpi_table_einj *einj_tab)
> > {
> > - if (einj_tab->header_length != sizeof(struct acpi_table_einj))
> > + if (einj_tab->header_length !=
> > + (sizeof(struct acpi_table_einj) - sizeof(einj_tab->header)))
>
> I don't understand these changes. So on any system where the old check worked
> before it won't work anymore? Since the code has been presumably tested
> before this would break systems, won't it?
>
> Same with the other changes.

Yes. It seems that old check works on my testing machine but not on
Yinghai's machine, while the new check works on Yinghai's machine and
not on my testing machine.

So I think it is better to remove the checks. Apparently, Windows does
not check that.

Best Regards,
Huang Ying



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/