Messages in this thread Patch in this message | | | Date | Tue, 26 Sep 2006 11:56:29 -0400 | From | Jeff Garzik <> | Subject | Re: pata_serverworks oopses in latest -git |
| |
Alan Cox wrote: > Ar Maw, 2006-09-26 am 14:00 +0200, ysgrifennodd Diego Calleja: >> When trying to test the new libata PATA drivers in the latest -git tree, I >> got this when udev tried to load the module: > > Yes something seems to be very ill in the -git tree but I'm not sure > what has changed in the libata core to trigger all this at the moment.
One thing I notice in pata_serverworks.c is the lack of an ->irq_clear() hook, which is called unconditionally in ata_device_add(). It's a bit strange that it wasn't caught before, since ->irq_clear() has been called unconditionally for a great many kernel releases.
Diego, does the attached patch help?
Jeff
diff --git a/drivers/ata/pata_serverworks.c b/drivers/ata/pata_serverworks.c index af45611..9c1719c 100644 --- a/drivers/ata/pata_serverworks.c +++ b/drivers/ata/pata_serverworks.c @@ -356,6 +356,8 @@ static struct ata_port_operations server .data_xfer = ata_pio_data_xfer, .irq_handler = ata_interrupt, + .irq_clear = ata_bmdma_irq_clear, + .port_start = ata_port_start, .port_stop = ata_port_stop, .host_stop = ata_host_stop @@ -389,6 +391,8 @@ static struct ata_port_operations server .data_xfer = ata_pio_data_xfer, .irq_handler = ata_interrupt, + .irq_clear = ata_bmdma_irq_clear, + .port_start = ata_port_start, .port_stop = ata_port_stop, .host_stop = ata_host_stop | |