RE: "can't evaluate _CRS: 1" messages since b355cee [ACPI / resources: ignore invalid ACPI device resources]

From: Zhang, Rui
Date: Tue Mar 11 2014 - 10:49:21 EST




> -----Original Message-----
> From: Rafael J. Wysocki [mailto:rjw@xxxxxxxxxxxxx]
> Sent: Tuesday, March 11, 2014 9:23 PM
> To: Zhang, Rui
> Cc: Markus Trippelsdorf; linux-acpi@xxxxxxxxxxxxxxx; Wysocki, Rafael J;
> linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: "can't evaluate _CRS: 1" messages since b355cee [ACPI /
> resources: ignore invalid ACPI device resources]
> Importance: High
>
> On Tuesday, March 11, 2014 12:59:47 PM Zhang, Rui wrote:
> > I think the reason problem is that:
> > 1. there are zero length IO/Memory resources for these machines, and
> for those resources
> > a) w/o commit b355cee88e3b1a193f0e9a81db810f6f83ad728b,
> acpi_dev_resource_memory/io returns true
> > b) w commit b355cee88e3b1a193f0e9a81db810f6f83ad728b,
> > acpi_dev_resource_memory/io returns false 2. in
> pnpacpi_allocated_resource(), when acpi_dev_resource_memory/io()
> returns false, it translates into "the resource is not IO/Memory
> resource".
> >
> > IMO, the root cause is that the BOOL return value of
> > acpi_dev_resource_memory/io() can not represent the following three
> > situations
> > 1) a valid IO/Memory resource
> > 2) an invalid IO/Memory resource
> > 3) not an IO/Memory resource
>
> Well, can we make acpi_dev_resource_memory/io return an int, then, so
> that it can cover all of the cases it needs to cover correctly and so
> that we can get rid of those confusing messages?
>
After a second thought, I think it would be overkill to make acpi_dev_resource_memory/io return an int.
Because we need really a lot of code to associate with this change, say, we need to check all the three different situations and followed by different actions.
The simplest way to fix the problem is to invoke acpi_dev_resource_memory/io for ACPI memory/io resources only.
What do you think?

Thanks,
rui

> Rafael
>
>
> > > -----Original Message-----
> > > From: linux-acpi-owner@xxxxxxxxxxxxxxx [mailto:linux-acpi-
> > > owner@xxxxxxxxxxxxxxx] On Behalf Of Rafael J. Wysocki
> > > Sent: Tuesday, March 11, 2014 9:00 PM
> > > To: Markus Trippelsdorf
> > > Cc: linux-acpi@xxxxxxxxxxxxxxx; Zhang, Rui; Wysocki, Rafael J;
> > > linux- kernel@xxxxxxxxxxxxxxx
> > > Subject: Re: "can't evaluate _CRS: 1" messages since b355cee [ACPI
> /
> > > resources: ignore invalid ACPI device resources]
> > > Importance: High
> > >
> > > On Tuesday, March 11, 2014 09:44:09 AM Markus Trippelsdorf wrote:
> > > > Since:
> > > > commit b355cee88e3b1a193f0e9a81db810f6f83ad728b
> > > > Author: Zhang Rui <rui.zhang@xxxxxxxxx>
> > > > Date: Thu Feb 27 11:37:15 2014 +0800
> > > >
> > > > ACPI / resources: ignore invalid ACPI device resources
> > > >
> > > > The following error message is printed three times during boot on
> > > > my
> > > > machine: "can't evaluate _CRS: 1"
> > >
> > > It may be catching a BIOS bug actually.
> > >
> > > Please attach the output of acpidump from that system.
> > >
> > > > Here's the dmesg diff:
> > > >
> > > > @@ -308,6 +308,8 @@
> > > > Switched to clocksource hpet
> > > > pnp: PnP ACPI init
> > > > ACPI: bus type PNP registered
> > > > +pnp 00:00: unknown resource type 10 in _CRS pnp 00:00: can't
> > > evaluate
> > > > +_CRS: 1
> > > > system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
> > > > pnp
> > > > 00:01: [dma 4] pnp 00:01: Plug and Play ACPI device, IDs PNP0200
> > > > (active) @@ -318,6 +320,8 @@ system 00:06: [mem
> > > > 0xfec00000-0xfec00fff] could not be reserved system 00:06: [mem
> > > > 0xfee00000-0xfee00fff] has been reserved system 00:06: Plug and
> > > > Play ACPI device, IDs PNP0c02 (active)
> > > > +pnp 00:07: unknown resource type 4 in _CRS pnp 00:07: can't
> > > > +evaluate
> > > > +_CRS: 1
> > > > system 00:07: [io 0x04d0-0x04d1] has been reserved system
> 00:07:
> > > > [io 0x040b] has been reserved system 00:07: [io 0x04d6] has
> > > > been reserved @@ -334,19 +338,9 @@ system 00:07: [io
> > > > 0x0cd8-0x0cdf] has been reserved system 00:07: [io
> > > > 0x0b00-0x0b3f] has been reserved system 00:07: [io 0x0800-0x089f]
> could not be reserved -system 00:07:
> > > > [io 0x0b00-0x0b0f] has been reserved -system 00:07: [io
> > > > 0x0b20-0x0b3f] has been reserved -system 00:07: [io
> > > > 0x0900-0x090f] has been reserved -system 00:07: [io
> > > > 0x0910-0x091f] has been
> > > reserved
> > > > -system 00:07: [io 0xfe00-0xfefe] has been reserved -system
> 00:07:
> > > > [mem 0xdff00000-0xdfffffff] has been reserved -system 00:07: [mem
> > > > 0xffb80000-0xffbfffff] has been reserved -system 00:07: [mem
> > > > 0xfec10000-0xfec1001f] has been reserved system 00:07: Plug and
> > > > Play ACPI device, IDs PNP0c02 (active) -system 00:08: [io
> > > > 0x0230-0x023f] has been reserved -system 00:08: [io
> > > > 0x0290-0x029f] has been
> > > reserved
> > > > -system 00:08: [io 0x0f40-0x0f4f] has been reserved -system
> 00:08:
> > > > [io 0x0a30-0x0a3f] has been reserved
> > > > +pnp 00:08: unknown resource type 4 in _CRS pnp 00:08: can't
> > > > +evaluate
> > > > +_CRS: 1
> > > > system 00:08: Plug and Play ACPI device, IDs PNP0c02 (active)
> > > system
> > > > 00:09: [mem 0xe0000000-0xefffffff] has been reserved system
> 00:09:
> > > > Plug and Play ACPI device, IDs PNP0c02 (active)
> > > >
> > > >
> > >
> > > --
> > > I speak only for myself.
> > > Rafael J. Wysocki, Intel Open Source Technology Center.
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-
> acpi"
> > > in the body of a message to majordomo@xxxxxxxxxxxxxxx More
> majordomo
> > > info at http://vger.kernel.org/majordomo-info.html
> >
N‹§²æ¸›yú²X¬¶ÇvØ–)Þ{.nlj·¥Š{±‘êX§¶›¡Ü}©ž²ÆzÚj:+v‰¨¾«‘êZ+€Êzf£¢·hšˆ§~†­†Ûÿû®w¥¢¸?™¨è&¢)ßf”ùy§m…á«a¶Úÿ 0¶ìå