From: Ingo Molnar <mingo@elte.hu>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org
Subject: Re: x86: fix macro with bad_bios_dmi_table
Date: Tue, 23 Sep 2008 10:33:45 +0200 [thread overview]
Message-ID: <20080923083345.GE23031@elte.hu> (raw)
In-Reply-To: <86802c440809230130n44ce9dechbe6b10ffe4685ee5@mail.gmail.com>
* Yinghai Lu <yinghai@kernel.org> wrote:
> On Tue, Sep 23, 2008 at 1:16 AM, Ingo Molnar <mingo@elte.hu> wrote:
> >
> > * Yinghai Lu <yhlu.kernel@gmail.com> wrote:
> >
> >> need one blank tail.
> >>
> >> fix the crash on ingo's test box.
> >
> > applied to tip/x86/memory-corruption-check, thanks Yinghai!
> >
> >> --- a/arch/x86/kernel/setup.c
> >> +++ b/arch/x86/kernel/setup.c
> >> @@ -760,8 +760,8 @@ static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
> >> DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"),
> >> },
> >> },
> >> - {}
> >> #endif
> >> + {}
> >> };
> >
> > i've seen such DMI crashes numerous times, caused by a missing NULL at
> > the end of the table. Is there no sane way to detect or robustly avoid
> > such run-off-the-end bugs?
> >
> > how about changing dmi_check_system(table) to a macro, which does
> > something like:
> >
> > __dmi_check_system(&(table), sizeof(table))
>
> ARRAY_SIZE()
yes.
> > and rename dmi_check_system() in drivers/firmware/dmi_scan.c to
> > __dmi_check_system() and add the size parameter? That way we could
> > remove the need for NULL termination and it's even a size optimization:
> > it shrinks those tables a tiny bit.
>
> # git grep dmi_system_id | grep "\[" | wc -l
> 62
what's the problem? I think in most cases dmi_check_system() is called
with an actual static table so most of the dmi_check_system() callsites
should work just fine and need not to be touched. (as we still keep the
same API - we just redirect it to __dmi_check_system())
Ingo
prev parent reply other threads:[~2008-09-23 8:34 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-23 7:35 x86: fix macro with bad_bios_dmi_table Yinghai Lu
2008-09-23 8:16 ` Ingo Molnar
2008-09-23 8:30 ` Yinghai Lu
2008-09-23 8:33 ` Ingo Molnar [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080923083345.GE23031@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.