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.