Hi, Tejun

The patch below fixes the pata_pcmcia problem.

I think the ap->lock points to bogus address.

Any comment?

--- linux-2.6.26-rc8/drivers/ata/libata-core.c.orig     2008-07-06 
10:05:46.000000000 +0900
+++ linux-2.6.26-rc8/drivers/ata/libata-core.c  2008-07-06 10:09:16.000000000 
+0900
@@ -5304,6 +5304,8 @@ struct ata_host *ata_host_alloc(struct d
                        goto err_out;
 
                ap->port_no = i;
+               ap->lock = &ap->__lock;
+               spin_lock_init(ap->lock);
                host->ports[i] = ap;
        }
 
--- linux-2.6.26-rc8/include/linux/libata.h.orig        2008-07-06 
10:03:54.000000000 +0900
+++ linux-2.6.26-rc8/include/linux/libata.h     2008-07-06 10:04:35.000000000 
+0900
@@ -639,6 +639,7 @@ struct ata_port {
        struct Scsi_Host        *scsi_host; /* our co-allocated scsi host */
        struct ata_port_operations *ops;
        spinlock_t              *lock;
+       spinlock_t              __lock;
        unsigned long           flags;  /* ATA_FLAG_xxx */
        unsigned int            pflags; /* ATA_PFLAG_xxx */
        unsigned int            print_id; /* user visible unique port ID */

Best Regards
Komuro


_______________________________________________
Linux PCMCIA reimplementation list
http://lists.infradead.org/mailman/listinfo/linux-pcmcia

Reply via email to