Re: [patch 0/9] x86, xsave: xsave/xrstor support

From: Rene Herman
Date: Fri Aug 01 2008 - 10:27:24 EST


This is a multi-part message in MIME format.On 01-08-08 11:51, Ingo Molnar wrote:

find attached below a newer version of the original list i published half a year ago:

http://people.redhat.com/mingo/auto-qa-patches/Kconfig-qa.patch

these are just pragmatic local hacks to get things going. (There are more per machine quirks as well.)

i have not used a BROKEN annotation because CONFIG_BROKEN is impractical: it just kills code altogether, indiscriminately. There's no way for users to enable CONFIG_BROKEN in the upstream kernel - nothing selects it and it's not an interactive option either.

So by all means if we mark a driver or a kernel feature as CONFIG_BROKEN, it's killed altogether for all practical purposes.

What we'd need is some more gradual approach: for example a way to mark "drivers that are not expected to boot on a whitebox PC", without removing them altogether via a CONFIG_BROKEN dependency - often it's hardware that cannot be probed safely.

For real ISA at the least, the best fix I feel is just not go grabbing resources without anything (ie, ISAPnP) or anyone (ie, the user) telling us that's where the hardware's at.

For example, for the first real ISA driver in the list:

Index: linux/drivers/i2c/busses/Kconfig
===================================================================
--- linux.orig/drivers/i2c/busses/Kconfig
+++ linux/drivers/i2c/busses/Kconfig
@@ -610,6 +610,11 @@ config I2C_ELEKTOR
config I2C_PCA_ISA
tristate "PCA9564 on an ISA bus"
depends on ISA
+
+ # takes away IRQ10 on venus and thus breaks e1000
+ depends on BROKEN_BOOT_ALLOWED
+ select BROKEN_BOOT
+

The attached would be my preffered approach to this.

(to avoid an IRQ 0 discussion -- the middle hunk is unrelated, just makes it consistent with the rest of the file)

(and this uses the isa_bus match() method as intended; the idea of the isa_bus is to make it look at least somewhat like a sane bus such as PCI which includes only failing a load if there's no way a later bind could conceivably succeed. somewhat debatable merit sometimes, but such is the device model, and it's actually fairly nice once you get used to it for quickly switching drivers for a single piece of hardware)

A user of this hardware is a one-time

$ echo options i2c-pca-isa base=0x330 irq=10 >> /etc/modprobe.conf

away from the old behaviour. Given the hackish nature of all this kind of hardware these days its users tend to not mind. In fact, what with getting old hardware to play nice with modern systems, I myself at least very much welcome having to be explicit about these things.

(and just saw the CC list on this thing while adding Wolfram. ouch. will be dropping all from any followups...)

Rene.