* [PATCH, resend] ACPI/HEST: avoid stack traces when encountering duplicate source IDs
@ 2010-12-07 14:58 Jan Beulich
2010-12-08 0:36 ` Huang Ying
0 siblings, 1 reply; 3+ messages in thread
From: Jan Beulich @ 2010-12-07 14:58 UTC (permalink / raw)
To: Len Brown; +Cc: ying.huang, linux-acpi
Rather than trying to create duplicate platform devices, check for
duplication up front.
Generally the kernel doesn't require uniqueness of the source IDs
other than for obtaining unique platform device names (and making log
message non-ambiguous) - therefore, it would be possible to simply
replace eventual duplicate IDs with kernel assigned ones.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: Huang Ying <ying.huang@intel.com>
---
drivers/acpi/apei/hest.c | 11 +++++++++++
1 file changed, 11 insertions(+)
--- linux-2.6.37-rc5/drivers/acpi/apei/hest.c
+++ 2.6.37-rc5-acpi-hest-unique/drivers/acpi/apei/hest.c
@@ -139,6 +139,7 @@ static int hest_parse_ghes(struct acpi_h
{
struct platform_device *ghes_dev;
struct ghes_arr *ghes_arr = data;
+ unsigned int i;
int rc;
if (hest_hdr->type != ACPI_HEST_TYPE_GENERIC_ERROR)
@@ -146,6 +147,16 @@ static int hest_parse_ghes(struct acpi_h
if (!((struct acpi_hest_generic *)hest_hdr)->enabled)
return 0;
+ for (i = 0; i < ghes_arr->count; ++i) {
+ const struct acpi_hest_header *h;
+
+ h = *(void **)dev_get_platdata(&ghes_arr->ghes_devs[i]->dev);
+ if (hest_hdr->source_id == h->source_id) {
+ pr_warn("Duplicate generic error source ID %#x\n",
+ hest_hdr->source_id);
+ return -EEXIST;
+ }
+ }
ghes_dev = platform_device_alloc("GHES", hest_hdr->source_id);
if (!ghes_dev)
return -ENOMEM;
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH, resend] ACPI/HEST: avoid stack traces when encountering duplicate source IDs
2010-12-07 14:58 [PATCH, resend] ACPI/HEST: avoid stack traces when encountering duplicate source IDs Jan Beulich
@ 2010-12-08 0:36 ` Huang Ying
2010-12-08 7:37 ` Jan Beulich
0 siblings, 1 reply; 3+ messages in thread
From: Huang Ying @ 2010-12-08 0:36 UTC (permalink / raw)
To: Jan Beulich; +Cc: Brown, Len, linux-acpi@vger.kernel.org
On Tue, 2010-12-07 at 22:58 +0800, Jan Beulich wrote:
> Rather than trying to create duplicate platform devices, check for
> duplication up front.
>
> Generally the kernel doesn't require uniqueness of the source IDs
> other than for obtaining unique platform device names (and making log
> message non-ambiguous) - therefore, it would be possible to simply
> replace eventual duplicate IDs with kernel assigned ones.
Do you have a machine with duplicated source ID in HEST?
> Signed-off-by: Jan Beulich <jbeulich@novell.com>
> Cc: Huang Ying <ying.huang@intel.com>
>
> ---
> drivers/acpi/apei/hest.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> --- linux-2.6.37-rc5/drivers/acpi/apei/hest.c
> +++ 2.6.37-rc5-acpi-hest-unique/drivers/acpi/apei/hest.c
> @@ -139,6 +139,7 @@ static int hest_parse_ghes(struct acpi_h
> {
> struct platform_device *ghes_dev;
> struct ghes_arr *ghes_arr = data;
> + unsigned int i;
> int rc;
>
> if (hest_hdr->type != ACPI_HEST_TYPE_GENERIC_ERROR)
> @@ -146,6 +147,16 @@ static int hest_parse_ghes(struct acpi_h
>
> if (!((struct acpi_hest_generic *)hest_hdr)->enabled)
> return 0;
> + for (i = 0; i < ghes_arr->count; ++i) {
> + const struct acpi_hest_header *h;
> +
> + h = *(void **)dev_get_platdata(&ghes_arr->ghes_devs[i]->dev);
> + if (hest_hdr->source_id == h->source_id) {
> + pr_warn("Duplicate generic error source ID %#x\n",
I think we can add FW_WARN prefix here.
Best Regards,
Huang Ying
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH, resend] ACPI/HEST: avoid stack traces when encountering duplicate source IDs
2010-12-08 0:36 ` Huang Ying
@ 2010-12-08 7:37 ` Jan Beulich
0 siblings, 0 replies; 3+ messages in thread
From: Jan Beulich @ 2010-12-08 7:37 UTC (permalink / raw)
To: Huang Ying; +Cc: Len Brown, linux-acpi@vger.kernel.org
>>> On 08.12.10 at 01:36, Huang Ying <ying.huang@intel.com> wrote:
> On Tue, 2010-12-07 at 22:58 +0800, Jan Beulich wrote:
>> Rather than trying to create duplicate platform devices, check for
>> duplication up front.
>>
>> Generally the kernel doesn't require uniqueness of the source IDs
>> other than for obtaining unique platform device names (and making log
>> message non-ambiguous) - therefore, it would be possible to simply
>> replace eventual duplicate IDs with kernel assigned ones.
>
> Do you have a machine with duplicated source ID in HEST?
Yes (all IDs are identical), albeit one for which I'm not sure it (or
its BIOS) are really fully production level. It's in any case quite
a bit older than the code in Linux.
Jan
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-12-08 7:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-07 14:58 [PATCH, resend] ACPI/HEST: avoid stack traces when encountering duplicate source IDs Jan Beulich
2010-12-08 0:36 ` Huang Ying
2010-12-08 7:37 ` Jan Beulich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox