Messages in this thread |  | | Date | Tue, 3 Sep 2002 18:52:51 -0400 | From | Doug Ledford <> | Subject | Re: aic7xxx sets CDR offline, how to reset? |
| |
On Tue, Sep 03, 2002 at 06:42:16PM -0400, Doug Ledford wrote: > > Case 2: you want to do an abort, but you need to preserve ordering around > any possible REQ_BARRIERs on the bus. This requires that we keep a > REQ_BARRIER count for the device, it is after all possible that we could > have multiple barriers active at once, so as each command is put on the > active_list, if it is a barrier, then we increment SDpnt->barrier_count > and as we complete commands (at the interrupt context completion, not the > final completion) if it is a barrier command we decrement the count. > > [ oops we timed out ] > while(SDpnt->barrier_count && cmd) { > // when the aborted command is returned via the done() > // it will remove it from the active_list, so don't remove > // it here > abort_cmd = list_get_tail(SDpnt->active_list); > if(hostt->abort(abort_cmd) != SUCCESS) { > [ oops, go on to more drastic action ] > } else { > if(abort_cmd->type == BARRIER) > SDpnt->barrier_count--;
Oops, delete those last two lines....the done() function decrements the barrier_count for us.
> if(abort_cmd == cmd) > cmd = NULL; > } > } > if(cmd) { > if(hostt->abort(cmd) != SUCCESS) > [ oops, go on to more drastic action ] > }
-- Doug Ledford <dledford@redhat.com> 919-754-3700 x44233 Red Hat, Inc. 1801 Varsity Dr. Raleigh, NC 27606 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |