[KERNEL 2.6.26-rc4] bugreport : pata_pcmcia with Sandisk Extreme III 8GB

Komuro komurojun-mbn at nifty.com
Mon Jul 7 08:42:53 EDT 2008


Hi,

> How come ap->lock can get set to bogus address?  Can you please printk
> &host->lock and ap->lock after ata_host_alloc() without the patch?

Here is the output of printk.
Strangely, without the patch, the pata_pcmcia problem happens again.


ata_piix 0000:00:1f.1: version 2.12
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
ACPI: PCI Interrupt 0000:00:1f.1[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11
&host->lock = d6c288b4
ap->lock = d6c288b4
ap->lock = d6c288b4
PCI: Setting latency timer of device 0000:00:1f.1 to 64
scsi0 : ata_piix
scsi1 : ata_piix
....

pcmcia: registering new device pcmcia1.0
&host->lock = d70ee534
ap->lock = d70ee534
scsi2 : pata_pcmcia


	host = devres_alloc(ata_host_release, sz, GFP_KERNEL);
	if (!host)
		goto err_out;

	devres_add(dev, host);
	dev_set_drvdata(dev, host);

	spin_lock_init(&host->lock);
	printk("&host->lock = %x\n", &host->lock);
	host->dev = dev;
	host->n_ports = max_ports;

	/* allocate ports bound to this host */
	for (i = 0; i < max_ports; i++) {
		struct ata_port *ap;

		ap = ata_port_alloc(host);
		if (!ap)
			goto err_out;

		ap->port_no = i;
		/*
		ap->lock = &ap->__lock;
		spin_lock_init(ap->lock);
		*/
		printk("ap->lock = %x\n", ap->lock);
		host->ports[i] = ap;
	}

Best Regards
Komuro




More information about the linux-pcmcia mailing list