On Tuesday 17 November 2009 15:51:32 Alan Cox wrote: > +struct cmd_priv > +{ > + int dma_live; /* Channel using DMA */ > + int irq_t[2]; /* Register to check for IRQ */ > + int irq_m[2]; /* Bit to check */ > +}; irq_t and irq_m content will be identical for all host instances so you may as well add one instance for it, use ->private_data to store dma_live information and remove cmd_priv allocation > + /* If the other port is not live then issue the command */ > + if (alt == NULL || !alt->qc_active) { > + if (dma) > + priv->dma_live = qc->ap->port_no; > + return 0; > + } > + /* If there is a live DMA command then wait */ > + if (priv->dma_live != -1) > + return ATA_DEFER_PORT; > + if (dma) { > + /* Cannot overlap our DMA command */ > + if (alt->qc_active) > + return ATA_DEFER_PORT; no need to check alt->qc_active again here -- Bartlomiej Zolnierkiewicz -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html