[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4870D46C.7000604@gmail.com>
Date: Sun, 06 Jul 2008 23:19:24 +0900
From: Tejun Heo <htejun@...il.com>
To: Komuro <komurojun-mbn@...ty.com>
CC: Jeff Garzik <jeff@...zik.org>,
linux-pcmcia <linux-pcmcia@...ts.infradead.org>,
linux-kernel@...r.kernel.org,
Dominik Brodowski <linux@...inikbrodowski.net>,
linux-ide@...r.kernel.org,
Kristoffer Ericson <kristoffer.ericson@...il.com>,
jgarzik@...hat.com, rjw@...k.pl
Subject: Re: [KERNEL 2.6.26-rc4] bugreport : pata_pcmcia with Sandisk Extreme
III 8GB
Hello, Komuro.
Komuro wrote:
> 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 */
Hmmm... Strange. From ata_port_alloc(),
struct ata_port *ata_port_alloc(struct ata_host *host)
{
struct ata_port *ap;
DPRINTK("ENTER\n");
ap = kzalloc(sizeof(*ap), GFP_KERNEL);
if (!ap)
return NULL;
ap->pflags |= ATA_PFLAG_INITIALIZING;
ap->lock = &host->lock;
^^^^^^^^^^^^^^^^^^^^^^^
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?
Thanks.
--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists