Re: [PATCH] ata_piix: use piix_host_stop() in ich_pata_ops

From: Catalin Marinas
Date: Thu Dec 14 2006 - 18:43:16 EST


On 13/12/06, Catalin Marinas <catalin.marinas@xxxxxxxxx> wrote:
On 11/12/06, Tejun Heo <htejun@xxxxxxxxx> wrote:
> piix_init_one() allocates host private data which should be freed by
> piix_host_stop(). ich_pata_ops wasn't converted to piix_host_stop()
> while merging, leaking 4 bytes on driver detach. Fix it.

I tried your patch last night but the leak is still reported. I need
to investigate further and put some printk's in the piix_host_stop
function to check whether the freeing really takes place.

The piix_host_stop() isn't actually called on my machine, so this is
not the cause of the leak.

What causes the leak seem to be the error returned by
ata_pci_init_one() called from piix_init_one(). These are the related
kernel messages:

ata_piix 0000:00:1f.1: version 2.00ac7
ACPI: PCI Interrupt 0000:00:1f.1[A] -> GSI 16 (level, low) -> IRQ 18
PCI: Unable to reserve I/O region #1:8@1f0 for device 0000:00:1f.1
ata_piix: probe of 0000:00:1f.1 failed with error -16

I think the call to ata_pci_init_one() should be followed by some
clean-up in case it fails. There is also another return without
clean-up in piix_init_one() after the call to piix_disable_ahci(). I
don't have time to try this now.

--
Catalin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/