Subject: Re: More on se0
To: Julian Coleman <J.D.Coleman@newcastle.ac.uk>
From: Leo Weppelman <leo@wau.mis.ah.nl>
List: port-atari
Date: 08/11/1998 15:12:02
On Mon 10 Aug 1998, Julian Coleman wrote:
> Well, I have a (more) working system. The se code calls the SCSI code
> with SCSI_NOSLEEP. In scsipi_done(), the wakeup() call is conditional on :
>
> if (!((xs->flags & (SCSI_NOSLEEP | SCSI_POLL)) == SCSI_NOSLEEP)) {
>
> so the wakeup doesn't get called. I removed the SCSI_NOSLEEP flag from
> se_ifstart() and se_recv() and ifconfig now returns. I must be still
> missing something, because how does this work on other parts - if_se.c
> and scsipi_base.c are MI?
Uhm, before the call to tsleep in the SUCCESSFULLY_QUEUED case, there are
the lines:
if ((xs->flags & (SCSI_NOSLEEP | SCSI_POLL)) == SCSI_NOSLEEP)
return (EJUSTRETURN);
In other words, it should never get to the point of calling tsleep...
Leo.