lkml.org 
[lkml]   [2002]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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/

\
 
 \ /
  Last update: 2005-03-22 13:28    [W:0.087 / U:0.504 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site