On Fri, 2003-04-25 at 13:52, Benjamin Herrenschmidt wrote:
> > If you add REQ_DRIVE_INTERNAL, and kill the other ones I mentioned, fine
> > with me then.
> >
> > rq->flags & REQ_DRIVE_INTERNAL
> > rq->cmd[0] == PM
> > pm stuf
> > rq->cmd[0] = taskfile
> > taskfile
> >
> > etc. Make sense?
>
> As I just wrote, I'd rather go the whole way then and break up flags
> (which is a very bad name btw) into req_type & req_subtype, though
> that would mean a bit of driver fixing....
Also, I noticed that my patch has a nice bug in the resume path, I
use ide_preempt, which doesn't wait for the request to complete,
but the request & struct state are allocated on the stack... ouch...
It would be interesting to not wait for completion of the resume
still here, there's no reason why resume of the disk can't be done
asynchronously since we only release the request queue once completed,
so I probably need to allocate the suspend request and release it from
interrupt.
Also, having a separate structure pointed to by ->special only makes
this more complicated, there are plenty of fields in struct request
that I could indeed use for my state information (like the cmd[] stuff)
Ben.
-
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/
This archive was generated by hypermail 2b29 : Wed Apr 30 2003 - 22:00:20 EST