[2449] in linux-scsi channel archive
foo_command() recursion vs foo_queuecommand()
daemon@ATHENA.MIT.EDU (Andrea Arcangeli)
Sat Sep 13 04:04:36 1997
Date: Fri, 12 Sep 1997 16:35:37 +0200 (CEST)
From: Andrea Arcangeli <arcangeli@mbox.queen.it>
Reply-To: Andrea Arcangeli <arcangeli@mbox.queen.it>
To: linux-scsi@vger.rutgers.edu
I am haking ppa driver. For some motivation I need to use the command
interface instead of the queueucommand interface (that, in the case of
ppa, need to be handled by a timer interrupt). Doing this I get recursion
and the kernel soft reset.
1. There' s a way to avoid recursion and be allowed to use ppa_command()
instead of ppa_queuecommand()? The strange think is that if I use the
command interface in read-only all is fine. Only when I try to write on
disk I get the reset.
The recursion is something similar:
do_sd_request()
requeue_sd_request()*
scsi_do_cmd()
internal_cmnd()
ppa_command()
scsi_done()
rw_intr()
requeue_sd_request()*
scsi_do_cmd()
..
..
..............reset()..
Obviously using ppa_queuecommand(), that return without wait for other
calls, when the scsi_done() is executed all precedent calls are just
returned and all is fine in writing too.
2. The writing is slower that the reading. The reset in writing maybe
caused by a major timeout?
3. Does other scsi lowlevel device works fine with command and
queuecommand interfaces?
Andrea Arcangeli
FYI, Andrea in Italy is a male name.
(I am tired of being mistaken for a female :)