Skip to contentSkip to conversation

pci, add FW_BUG warning to pci= kernel option

PATCH In review Prarit Bhargava 2 participants 5 messages Nov 1, 2014 – Nov 18, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 pci, add FW_BUG warning to pci= kernel option

The kernel should boot PCI without the use of kernel parameters. Display a FW_BUG warning when pci= is used.

---
 drivers/pci/pci.c |    2 ++
 1 file changed, 2 insertions(+)
drivers/pci/pci.c +2 -0
index 625a4ac..5172060b 100644
@@ -4515,6 +4515,8 @@ static int __init pci_setup(char *str)
 		}
 		str = k;
 	}
+	add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
+	pr_crit(FW_BUG "The PCI configuration has been overridden thorugh the use of pci=.  Please report the issue you are attempting to resolve to your hardware vendor.\n");
 	return 0;
 }
 early_param("pci", pci_setup);
Signature · 1 line
1.7.9.3
maintainer
#1 lore raw

[+cc lkml, linux-arch, Linus]

Quoted 15 lines · Prarit Bhargava

The kernel should boot PCI without the use of kernel parameters. Display a FW_BUG warning when pci= is used.

---
 drivers/pci/pci.c |    2 ++
 1 file changed, 2 insertions(+)
drivers/pci/pci.c +0 -0
index 625a4ac..5172060b 100644

drivers/pci/pci.c static int __init pci_setup(char *str) · line 4519

Quoted 5 lines
drivers/pci/pci.c +2 -0
@@ -4515,6 +4515,8 @@ static int __init pci_setup(char *str)
 		}
 		str = k;
 	}
+	add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
+	pr_crit(FW_BUG "The PCI configuration has been overridden thorugh the use of pci=.  Please report the issue you are attempting to resolve to your hardware vendor.\n");

My goal is to be able to boot without any "pci=" parameters, so from that perspective, I like this.

When people have a problem booting Linux, they often try a variety of things like "pci=assign-busses", "pci=nocrs", "pci=nomsi", "pci=nommconf", "pci=noacpi", etc. If they find something that works, there's a tendency to treat that as a "solution." I'd rather that they report it, so we can try to fix the bug or add a quirk so the *next* person won't have to figure out the right parameters to use.

My worry is that there are a few things where Linux isn't smart enough to do the right thing automatically, and I don't think we'll have a good solution in the near future. For example:

    pci=norom
    pci=pcie_bus_perf,pcie_bus_safe,etc.
    pci=cbiosize=...
    pci=cbmemsize=...
    pci=resource_alignment=...
    pci=hpiosize=...
    pci=hpmemsize=...
    pci=realloc

I don't like the fact that these options exist, but I suspect there are users that do depend on them and might find this warning too aggressive.

So I'm interested in opinions on whether this is a good idea at all and whether we should exclude some options from the warning/tainting.

Bjorn

Quoted 10 lines
drivers/pci/pci.c +0 -0
 	return 0;
 }
 early_param("pci", pci_setup);
Signature · 6 lines
1.7.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
maintainer
#2 lore raw
Quoted 47 lines · Bjorn Helgaas

[+cc lkml, linux-arch, Linus]

Quoted 15 lines · Prarit Bhargava

The kernel should boot PCI without the use of kernel parameters. Display a FW_BUG warning when pci= is used.

---
 drivers/pci/pci.c |    2 ++
 1 file changed, 2 insertions(+)
drivers/pci/pci.c +0 -0
index 625a4ac..5172060b 100644

drivers/pci/pci.c static int __init pci_setup(char *str) · line 4519

Quoted 5 lines
drivers/pci/pci.c +2 -0
@@ -4515,6 +4515,8 @@ static int __init pci_setup(char *str)
              }
              str = k;
      }
+     add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
+     pr_crit(FW_BUG "The PCI configuration has been overridden thorugh the use of pci=.  Please report the issue you are attempting to resolve to your hardware vendor.\n");

My goal is to be able to boot without any "pci=" parameters, so from that perspective, I like this.

When people have a problem booting Linux, they often try a variety of things like "pci=assign-busses", "pci=nocrs", "pci=nomsi", "pci=nommconf", "pci=noacpi", etc. If they find something that works, there's a tendency to treat that as a "solution." I'd rather that they report it, so we can try to fix the bug or add a quirk so the *next* person won't have to figure out the right parameters to use.

My worry is that there are a few things where Linux isn't smart enough to do the right thing automatically, and I don't think we'll have a good solution in the near future. For example:

    pci=norom
    pci=pcie_bus_perf,pcie_bus_safe,etc.
    pci=cbiosize=...
    pci=cbmemsize=...
    pci=resource_alignment=...
    pci=hpiosize=...
    pci=hpmemsize=...
    pci=realloc
Quoted 5 lines

I don't like the fact that these options exist, but I suspect there are users that do depend on them and might find this warning too aggressive.

So I'm interested in opinions on whether this is a good idea at all and whether we should exclude some options from the warning/tainting.

Hi Prarit,

We didn't get any nibbles :)

I don't think we can realistically taint the kernel for *all* "pci=" options. So if you want to pursue this, maybe you could enhance this so we can have a whitelist of options that we will support without tainting. Then we can argue about what should be on the list and go from there. Does that seem reasonable?

This is a somewhat more aggressive use of tainting than we've had in the past, so we might have to iterate on this a bit.

Bjorn

#3 lore raw
Quoted 56 lines · Bjorn Helgaas
Quoted 47 lines · Bjorn Helgaas

[+cc lkml, linux-arch, Linus]

Quoted 15 lines · Prarit Bhargava

The kernel should boot PCI without the use of kernel parameters. Display a FW_BUG warning when pci= is used.

---
 drivers/pci/pci.c |    2 ++
 1 file changed, 2 insertions(+)
drivers/pci/pci.c +0 -0
index 625a4ac..5172060b 100644

drivers/pci/pci.c static int __init pci_setup(char *str) · line 4519

Quoted 5 lines
drivers/pci/pci.c +2 -0
@@ -4515,6 +4515,8 @@ static int __init pci_setup(char *str)
              }
              str = k;
      }
+     add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
+     pr_crit(FW_BUG "The PCI configuration has been overridden thorugh the use of pci=.  Please report the issue you are attempting to resolve to your hardware vendor.\n");

My goal is to be able to boot without any "pci=" parameters, so from that perspective, I like this.

When people have a problem booting Linux, they often try a variety of things like "pci=assign-busses", "pci=nocrs", "pci=nomsi", "pci=nommconf", "pci=noacpi", etc. If they find something that works, there's a tendency to treat that as a "solution." I'd rather that they report it, so we can try to fix the bug or add a quirk so the *next* person won't have to figure out the right parameters to use.

My worry is that there are a few things where Linux isn't smart enough to do the right thing automatically, and I don't think we'll have a good solution in the near future. For example:

    pci=norom
    pci=pcie_bus_perf,pcie_bus_safe,etc.
    pci=cbiosize=...
    pci=cbmemsize=...
    pci=resource_alignment=...
    pci=hpiosize=...
    pci=hpmemsize=...
    pci=realloc
Quoted 5 lines

I don't like the fact that these options exist, but I suspect there are users that do depend on them and might find this warning too aggressive.

So I'm interested in opinions on whether this is a good idea at all and whether we should exclude some options from the warning/tainting.

Hi Prarit,

Quoted 7 lines

We didn't get any nibbles :)

I don't think we can realistically taint the kernel for *all* "pci=" options. So if you want to pursue this, maybe you could enhance this so we can have a whitelist of options that we will support without tainting. Then we can argue about what should be on the list and go from there. Does that seem reasonable?

Sorry for the lower-case typing. I broke my elbow and am down to one hand.

bjorn, yep sounds reasonable. i'll do this (slowly unfortunately because of my arm) ...

P.

Quoted 10 lines

This is a somewhat more aggressive use of tainting than we've had in the past, so we might have to iterate on this a bit.

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

maintainer
#4 lore raw
Quoted 4 lines · Prarit Bhargava

Sorry for the lower-case typing. I broke my elbow and am down to one hand.

bjorn, yep sounds reasonable. i'll do this (slowly unfortunately because of my arm) ...

Ouch, sorry to hear that. We need to get working on that direct mind-computer interface :) Hope your elbow heals well!

Bjorn