[PATCH] libata: move err_mask to ata_queued_cmd
- remove err_mask from the parameter list of the complete functions - move err_mask to ata_queued_cmd - initialize qc->err_mask when needed - for each function call to ata_qc_complete(), replace the err_mask parameter with qc->err_mask. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> =============== Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This commit is contained in:
@@ -401,7 +401,8 @@ static void pdc_eng_timeout(struct ata_port *ap)
|
||||
case ATA_PROT_NODATA:
|
||||
printk(KERN_ERR "ata%u: command timeout\n", ap->id);
|
||||
drv_stat = ata_wait_idle(ap);
|
||||
ata_qc_complete(qc, __ac_err_mask(drv_stat));
|
||||
qc->err_mask |= __ac_err_mask(drv_stat);
|
||||
ata_qc_complete(qc);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -410,7 +411,8 @@ static void pdc_eng_timeout(struct ata_port *ap)
|
||||
printk(KERN_ERR "ata%u: unknown timeout, cmd 0x%x stat 0x%x\n",
|
||||
ap->id, qc->tf.command, drv_stat);
|
||||
|
||||
ata_qc_complete(qc, ac_err_mask(drv_stat));
|
||||
qc->err_mask |= ac_err_mask(drv_stat);
|
||||
ata_qc_complete(qc);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -422,21 +424,21 @@ out:
|
||||
static inline unsigned int pdc_host_intr( struct ata_port *ap,
|
||||
struct ata_queued_cmd *qc)
|
||||
{
|
||||
unsigned int handled = 0, err_mask = 0;
|
||||
unsigned int handled = 0;
|
||||
u32 tmp;
|
||||
void __iomem *mmio = (void __iomem *) ap->ioaddr.cmd_addr + PDC_GLOBAL_CTL;
|
||||
|
||||
tmp = readl(mmio);
|
||||
if (tmp & PDC_ERR_MASK) {
|
||||
err_mask = AC_ERR_DEV;
|
||||
qc->err_mask |= AC_ERR_DEV;
|
||||
pdc_reset_port(ap);
|
||||
}
|
||||
|
||||
switch (qc->tf.protocol) {
|
||||
case ATA_PROT_DMA:
|
||||
case ATA_PROT_NODATA:
|
||||
err_mask |= ac_err_mask(ata_wait_idle(ap));
|
||||
ata_qc_complete(qc, err_mask);
|
||||
qc->err_mask |= ac_err_mask(ata_wait_idle(ap));
|
||||
ata_qc_complete(qc);
|
||||
handled = 1;
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user