Re: [PATCH] libata: fix non-uniform ports handling

From: Andrew Morton
Date: Fri Sep 15 2006 - 18:30:12 EST


On Sat, 16 Sep 2006 03:04:15 +0900
Tejun Heo <htejun@xxxxxxxxx> wrote:

> @@ -5269,11 +5269,19 @@ void ata_port_init(struct ata_port *ap,
> ap->host = host;
> ap->dev = ent->dev;
> ap->port_no = port_no;
> - ap->pio_mask = ent->pio_mask;
> - ap->mwdma_mask = ent->mwdma_mask;
> - ap->udma_mask = ent->udma_mask;
> - ap->flags |= ent->port_flags;
> - ap->ops = ent->port_ops;
> + if (port_no == 1 && ent->pinfo2) {
> + ap->pio_mask = ent->pinfo2->pio_mask;
> + ap->mwdma_mask = ent->pinfo2->mwdma_mask;
> + ap->udma_mask = ent->pinfo2->udma_mask;
> + ap->flags |= ent->pinfo2->flags;
> + ap->ops = ent->pinfo2->port_ops;
> + } else {
> + ap->pio_mask = ent->pio_mask;
> + ap->mwdma_mask = ent->mwdma_mask;
> + ap->udma_mask = ent->udma_mask;
> + ap->flags |= ent->port_flags;
> + ap->ops = ent->port_ops;
> + }


Same problem: the git-libata-all which I pulled 30 seconds ago
has:

ap->flags |= ent->port_flags | ent->_port_flags[port_no];

and not

ap->flags |= ent->port_flags;

which is what your patch expects.

Oh well, hopefully Jeff will sort it out.
-
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/