Re: [PATCH 1/4] mce: Slim up struct mce

Ingo Molnar
2012-03-03T07:37:38Z

* Luck, Tony <tony.luck@intel.com> wrote:

> > Drop unused ->apicid, make ->socketid __u16 since it is
> > copied from struct cpuinfo_86.phys_proc_id, reorder members
> > and adjust padding so that it remains packed and on a
> > 64-byte boundary.
>
> This structure is user visible via /dev/mcelog. The mcelog(8)
> daemon has been coded to cope with extra fields being added to
> the end of the structure (an old daemon that doesn't know what
> they are will just skip over them). But things will break if
> you change the offsets of any fields that it does know about.

Please separate out a 'struct mce_legacy' data type that
contains the /dev/mcelog format, and use it in the place that
outputs to /dev/mcelog (and convert from 'struct mce' to 'struct
mce_legacy' and back when interacting with /dev/mcelog).

This keeps 'struct mce' kernel internal and flexible. A pure
kernel internal structure should never have been exported like
this to begin with, doing that results in problems like this.

Thanks,

Ingo