Messages in this thread Patch in this message | | | Date | Fri, 30 Apr 2004 14:26:41 -0400 (EDT) | From | Pavel Roskin <> | Subject | [PATCH] Crash in atmel_cs due to fake device |
| |
Hi, Simon and everybody!
Since PCMCIA devices are not devices for the kernel, atmel_cs uses a fake device for calling request_firmware(). The fake device has .bus_id initialized, but it's not enough for Linux 2.6.6-rc3. The kernel would oops while trying to create a link from /sys/class/firmware/pcmcia/device to the location of the device in sysfs.
To work around this problem, .kobj.k_name should be defined in the fake device. I know, it's ugly as hell, but I don't see a better solution until PCMCIA device drivers are converted to the device model.
The patch has been compile tested only, but I have tested a similar patch with another driver, which is not in the kernel yet (spectrum_cs). I'm quite sure that atmel_cs is affected by this problem.
============================= --- linux.orig/drivers/net/wireless/atmel_cs.c +++ linux/drivers/net/wireless/atmel_cs.c @@ -350,6 +350,9 @@ static struct { /* This is strictly temporary, until PCMCIA devices get integrated into the device model. */ static struct device atmel_device = { .bus_id = "pcmcia", + .kobj = { + .k_name = "atmel_cs" + } };
static void atmel_config(dev_link_t *link) ============================= -- Regards, Pavel Roskin - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |