Skip to contentSkip to conversation

Dell Studio 1536 needs pci=nocrs to boot.

PATCH Dave Jones 4 participants 12 messages Dec 30, 2011 – Jan 11, 2012

Subsystems (3)
lore
Share & tools
lore

Dave Jones

author
#0 lore raw

Some machines don't boot unless passed pci=nocrs.
(See https://bugzilla.redhat.com/show_bug.cgi?id=770308 for details of
one report. Waiting on dmidecode output for others).

Currently there is a DMI whitelist, even though the default is on.

This patch extends that dmi list to add a blacklist to automatically apply disable it when necessary.

arch/x86/pci/acpi.c +18 -0
index 404f21a..2704a9c 100644
@@ -24,6 +24,12 @@ static int __init set_use_crs(const struct dmi_system_id *id)
 	return 0;
 }
 
+static int __init set_nouse_crs(const struct dmi_system_id *id)
+{
+	pci_use_crs = false;
+	return 0;
+}
+
 static const struct dmi_system_id pci_use_crs_table[] __initconst = {
 	/* http://bugzilla.kernel.org/show_bug.cgi?id=14183 */
 	{
@@ -54,6 +60,18 @@ static const struct dmi_system_id pci_use_crs_table[] __initconst = {
 			DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
 		},
 	},
+
+	/* Now for the blacklist.. */
+
+	/* https://bugzilla.redhat.com/show_bug.cgi?id=770308 */
+	{
+		.callback = set_nouse_crs,
+		.ident = "Dell Studio 1536",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_BOARD_NAME, "0M273C"),
+		},
+	},
 	{}
 };
 
Acked-by
#1 lore raw
Quoted 10 lines · Dave Jones

Some machines don't boot unless passed pci=nocrs.
(See https://bugzilla.redhat.com/show_bug.cgi?id=770308 for details of
one report. Waiting on dmidecode output for others).

Currently there is a DMI whitelist, even though the default is on.

This patch extends that dmi list to add a blacklist to automatically apply disable it when necessary.

Jesse, will you take this one?

Thanks,

Ingo

#2 lore raw
Quoted 9 lines · On Sun, 1 Jan 2012 15:53:54 +0100 Ingo Molnar <[email protected]> wrote:
Quoted 6 lines · Dave Jones

Some machines don't boot unless passed pci=nocrs.
(See https://bugzilla.redhat.com/show_bug.cgi?id=770308 for details of
one report. Waiting on dmidecode output for others).

Currently there is a DMI whitelist, even though the default is on.

Quoted 8 lines
Quoted 4 lines

This patch extends that dmi list to add a blacklist to automatically apply disable it when necessary.

Jesse, will you take this one?

Yeah, I can take it. Bjorn, any comment (I'll bounce over the original)?

Thanks,

Signature · 1 line
Jesse Barnes, Intel Open Source Technology Center
maintainer
#3 lore raw
Quoted 15 lines · Jesse Barnes
Quoted 12 lines · On Sun, 1 Jan 2012 15:53:54 +0100 Ingo Molnar <[email protected]> wrote:
Quoted 9 lines · Dave Jones

Some machines don't boot unless passed pci=nocrs.
(See https://bugzilla.redhat.com/show_bug.cgi?id=770308 for details of one report. Waiting on dmidecode output for others).

Currently there is a DMI whitelist, even though the default is on.

This patch extends that dmi list to add a blacklist to automatically apply disable it when necessary.

Quoted 8 lines
Quoted 5 lines
Quoted 1 line

Jesse, will you take this one?

Yeah, I can take it.  Bjorn, any comment (I'll bounce over the original)?

This is a band-aid, and we'll have to extend the blacklist for other machines, but it's the best we have right now, so I think it's the right thing to do.

It's probably the same as
https://bugzilla.kernel.org/show_bug.cgi?id=31602 (Dell 1546) and
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/647043

Bjorn

author
#4 lore raw
Quoted 25 lines · Bjorn Helgaas
Quoted 15 lines · Jesse Barnes
Quoted 12 lines · On Sun, 1 Jan 2012 15:53:54 +0100 Ingo Molnar <[email protected]> wrote:
Quoted 9 lines · Dave Jones

Some machines don't boot unless passed pci=nocrs.
(See https://bugzilla.redhat.com/show_bug.cgi?id=770308 for details of one report. Waiting on dmidecode output for others).

Currently there is a DMI whitelist, even though the default is on.

This patch extends that dmi list to add a blacklist to automatically apply disable it when necessary.

Quoted 8 lines
Quoted 5 lines
Quoted 1 line

Jesse, will you take this one?

Yeah, I can take it.  Bjorn, any comment (I'll bounce over the original)?

Quoted 7 lines

This is a band-aid, and we'll have to extend the blacklist for other machines, but it's the best we have right now, so I think it's the right thing to do.

It's probably the same as
https://bugzilla.kernel.org/show_bug.cgi?id=31602 (Dell 1546) and
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/647043

There's at least one more dell (Seems that entire 'studio' product line is affected) that I'm waiting on DMI data from.
Also a thinkpad that I have a patch pending for.

Dave

author
#8 lore raw

Add Dell Studio 1557 to pci=nocrs blacklist

In reply to Bjorn Helgaas

The Dell Studio 1557 also doesn't suspend correctly when CRS is enabled. Details at https://bugzilla.redhat.com/show_bug.cgi?id=769657

arch/x86/pci/acpi.c renamed from arch/x86/pci/acpi.c~ +10 -0
@@ -75,6 +75,16 @@ static const struct dmi_system_id pci_us
 	/* https://bugzilla.redhat.com/show_bug.cgi?id=769657 */
 	{
 		.callback = set_nouse_crs,
+		.ident = "Dell Studio 1557",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Studio 1557");
+			DMI_MATCH(DMI_BIOS_VERSION, "A09"),
+		},
+	},
+	/* https://bugzilla.redhat.com/show_bug.cgi?id=769657 */
+	{
+		.callback = set_nouse_crs,
 		.ident = "Thinkpad SL510",
 		.matches = {
 			DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
#9 lore raw

Re: Add Dell Studio 1557 to pci=nocrs blacklist

Quoted 16 lines · On Wed, 4 Jan 2012 11:33:12 -0500 Dave Jones <[email protected]> wrote:

The Dell Studio 1557 also doesn't suspend correctly when CRS is enabled. Details at https://bugzilla.redhat.com/show_bug.cgi?id=769657

arch/x86/pci/acpi.c renamed from arch/x86/pci/acpi.c~ +3 -0
@@ -75,6 +75,16 @@ static const struct dmi_system_id pci_us
 	/* https://bugzilla.redhat.com/show_bug.cgi?id=769657 */
 	{
 		.callback = set_nouse_crs,
+		.ident = "Dell Studio 1557",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "Dell Inc."),

arch/x86/pci/acpi.c static const struct dmi_system_id pci_us · line 90

Quoted 10 lines
arch/x86/pci/acpi.c renamed from arch/x86/pci/acpi.c~ +7 -0
+			DMI_MATCH(DMI_PRODUCT_NAME, "Studio 1557");
+			DMI_MATCH(DMI_BIOS_VERSION, "A09"),
+		},
+	},
+	/* https://bugzilla.redhat.com/show_bug.cgi?id=769657 */
+	{
+		.callback = set_nouse_crs,
 		.ident = "Thinkpad SL510",
 		.matches = {
 			DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),

Looks like this depends on a Thinkpad patch you haven't sent yet; did you mean to?

I've fixed it up by hand and applied both the 1536 and 1557 patches to my for-linus branch. I'll see if Linus wants to take it before he releases (doubtful, but it would be nice if these machines just worked with the new kernel).

Thanks,

Signature · 1 line
Jesse Barnes, Intel Open Source Technology Center
#10 lore raw

Re: Add Dell Studio 1557 to pci=nocrs blacklist

In reply to Dave Jones
Quoted 9 lines · Dave Jones

The Dell Studio 1557 also doesn't suspend correctly when CRS is enabled. Details at https://bugzilla.redhat.com/show_bug.cgi?id=769657

arch/x86/pci/acpi.c static const struct dmi_system_id pci_us · line 82

Quoted 8 lines
arch/x86/pci/acpi.c renamed from arch/x86/pci/acpi.c~ +5 -0
@@ -75,6 +75,16 @@ static const struct dmi_system_id pci_us
 	/* https://bugzilla.redhat.com/show_bug.cgi?id=769657 */
 	{
 		.callback = set_nouse_crs,
+		.ident = "Dell Studio 1557",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Studio 1557");
+			DMI_MATCH(DMI_BIOS_VERSION, "A09"),

Btw., should we perhaps match on all things 'Studio*'? For these two systems i'm sure there's 20 other models we have not covered yet ...

Thanks,

Ingo

maintainer
#5 lore raw
In reply to Dave Jones
Quoted 34 lines · Dave Jones

On Tue, Jan 03, 2012 at 10:55:00AM -0700, Bjorn Helgaas wrote:
 > On Tue, Jan 3, 2012 at 10:30 AM, Jesse Barnes <[email protected]> wrote:
 > > On Sun, 1 Jan 2012 15:53:54 +0100
 > > Ingo Molnar <[email protected]> wrote:
 > >
 > >>
 > >> * Dave Jones <[email protected]> wrote:
 > >>
 > >> > Some machines don't boot unless passed pci=nocrs.
 > >> > (See https://bugzilla.redhat.com/show_bug.cgi?id=770308 for details of > >> >   one report. Waiting on dmidecode output for others).
 > >> >
 > >> > Currently there is a DMI whitelist, even though the default is on. > >> >
 > >> > This patch extends that dmi list to add a blacklist to automatically > >> > apply disable it when necessary.
 > >> >
 > >> > Signed-off-by: Dave Jones <[email protected]>
 > >>
 > >> Acked-by: Ingo Molnar <[email protected]>
 > >>
 > >> Jesse, will you take this one?
 > >
 > > Yeah, I can take it.  Bjorn, any comment (I'll bounce over the
 > > original)?
 >
 > This is a band-aid, and we'll have to extend the blacklist for other > machines, but it's the best we have right now, so I think it's the > right thing to do.
 >
 > It's probably the same as
 > https://bugzilla.kernel.org/show_bug.cgi?id=31602 (Dell 1546) and > https://bugs.launchpad.net/ubuntu/+source/linux/+bug/647043

Quoted 3 lines

There's at least one more dell (Seems that entire 'studio' product line is affected) that I'm waiting on DMI data from.
Also a thinkpad that I have a patch pending for.

I think we should drop the Dell 1536 blacklist entry from this patch (adding set_nouse_crs() itself is fine and may be needed for other machines).

The patches here: https://lkml.org/lkml/2012/1/5/402 should cover the Dell 1536 issue as well as the Dell 1546 and any others with the same BIOS defect.

Bjorn

author
#6 lore raw
Quoted 11 lines · Bjorn Helgaas
Quoted 3 lines

There's at least one more dell (Seems that entire 'studio' product line is affected) that I'm waiting on DMI data from.
Also a thinkpad that I have a patch pending for.

I think we should drop the Dell 1536 blacklist entry from this patch (adding set_nouse_crs() itself is fine and may be needed for other machines).

The patches here: https://lkml.org/lkml/2012/1/5/402 should cover the Dell 1536 issue as well as the Dell 1546 and any others with the same BIOS defect.

Sounds good to me.

Dave

#7 lore raw
Quoted 10 lines · On Fri, 6 Jan 2012 12:57:58 -0500 Dave Jones <[email protected]> wrote:
Quoted 8 lines · Bjorn Helgaas
Quoted 3 lines

There's at least one more dell (Seems that entire 'studio' product line is affected) that I'm waiting on DMI data from.
Also a thinkpad that I have a patch pending for.

I think we should drop the Dell 1536 blacklist entry from this patch (adding set_nouse_crs() itself is fine and may be needed for other machines).

Quoted 5 lines
Quoted 3 lines

The patches here: https://lkml.org/lkml/2012/1/5/402 should cover the Dell 1536 issue as well as the Dell 1546 and any others with the same BIOS defect.

Sounds good to me.

Ok just did some patch mangling in linux-next. After a quick build test I'll push it out and you guys can make sure you're happy with things.

Thanks,

Signature · 1 line
Jesse Barnes, Intel Open Source Technology Center
maintainer
#11 lore raw

Re: Add Dell Studio 1557 to pci=nocrs blacklist

In reply to Ingo Molnar
Quoted 9 lines · Ingo Molnar
Quoted 6 lines · Dave Jones

The Dell Studio 1557 also doesn't suspend correctly when CRS is enabled. Details at https://bugzilla.redhat.com/show_bug.cgi?id=769657

Quoted 15 lines

arch/x86/pci/acpi.c      2012-01-04 11:23:42.403666272 -0500 static const struct dmi_system_id pci_us · line 82

Quoted 11 lines
arch/x86/pci/acpi.c      2012-01-04 11:23:42.403666272 -0500 renamed from arch/x86/pci/acpi.c~     2012-01-04 11:19:36.783664477 -0500 +5 -0
@@ -75,6 +75,16 @@ static const struct dmi_system_id pci_us
       /* https://bugzilla.redhat.com/show_bug.cgi?id=769657 */
       {
               .callback = set_nouse_crs,
+             .ident = "Dell Studio 1557",
+             .matches = {
+                     DMI_MATCH(DMI_BOARD_VENDOR, "Dell Inc."),
+                     DMI_MATCH(DMI_PRODUCT_NAME, "Studio 1557");
+                     DMI_MATCH(DMI_BIOS_VERSION, "A09"),

Btw., should we perhaps match on all things 'Studio*'? For these two systems i'm sure there's 20 other models we have not covered yet ...

+linux-pci

I think we should hold off on merging this patch upstream. We don't understand the root cause yet, and I haven't seen any evidence that setting "pci=nocrs" actually makes a difference in PCI resource allocation (https://bugzilla.redhat.com/show_bug.cgi?id=769657#c27)

Bjorn