|
@@ -3503,7 +3503,7 @@ struct ata_queued_cmd *ata_qc_new_init(struct ata_port *ap,
|
|
|
static void __ata_qc_complete(struct ata_queued_cmd *qc)
|
|
|
{
|
|
|
struct ata_port *ap = qc->ap;
|
|
|
- unsigned int tag, do_clear = 0;
|
|
|
+ unsigned int tag;
|
|
|
|
|
|
qc->flags = 0;
|
|
|
tag = qc->tag;
|
|
@@ -3511,17 +3511,8 @@ static void __ata_qc_complete(struct ata_queued_cmd *qc)
|
|
|
if (tag == ap->active_tag)
|
|
|
ap->active_tag = ATA_TAG_POISON;
|
|
|
qc->tag = ATA_TAG_POISON;
|
|
|
- do_clear = 1;
|
|
|
- }
|
|
|
-
|
|
|
- if (qc->waiting) {
|
|
|
- struct completion *waiting = qc->waiting;
|
|
|
- qc->waiting = NULL;
|
|
|
- complete(waiting);
|
|
|
- }
|
|
|
-
|
|
|
- if (likely(do_clear))
|
|
|
clear_bit(tag, &ap->qactive);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -3537,7 +3528,6 @@ static void __ata_qc_complete(struct ata_queued_cmd *qc)
|
|
|
void ata_qc_free(struct ata_queued_cmd *qc)
|
|
|
{
|
|
|
assert(qc != NULL); /* ata_qc_from_tag _might_ return NULL */
|
|
|
- assert(qc->waiting == NULL); /* nothing should be waiting */
|
|
|
|
|
|
__ata_qc_complete(qc);
|
|
|
}
|