lkml.org 
[lkml]   [1999]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Oops while booting

    On Wed, 6 Jan 1999, Manfred Spraul wrote:

    > I had the same problem: there it a bug/incompatiblity between the ncr53c8xx
    > & the scsi handler:
    > (read the thread "Oops after scsi-reset (ncr53c8xx)" in linux-kernel).
    >
    > Could you please remove the following lines from drivers/scsi/ncr53c8xx.c:
    > function ncr_reset_bus(), lines 5458-5459.
    >
    > if (!found && sync_reset && !retrieve_from_waiting_list(0, np, cmd)) {
    > /* cmd->result = ScsiResult(DID_RESET, 0); <<<<<<<these 2 lines!
    > ncr_queue_done_cmd(np, cmd); <<<<<<<<<<<<< */
    > }
    >
    > That fixed the problem on my machine. Please send me an email if this fixed
    > your problem!
    > Please note that I've not checked any side effects, but the resulting driver
    > runs without any problems.
    >
    > Explanation: scsi_old_done() sees that some devices do not respond to
    > request sense, and calls scsi_reset(SCpnt, SCSI_RESET_SYNCHRONOUS). This
    > function assumes that the Scsi_cmnd->scsi_done() is NOT called, but the
    > ncr53c8xx calls this function, and some time later the system crashes
    > because the same command is processed twice. (see the warning in
    > scsi_obsolete.c, function scsi_old_done())

    Your explain what happens, but I think it is scsi_obsolete.c that broke
    the previous behaviour of scsi.c. The ncr53c8xx driver is fine with
    respect to what the SCSI_RESET_SYNCHRONOUS flag is supposed to expect from
    low level drivers, in my opinion.

    The SCSI_RESET_SYNCHRONOUS flag tells low level drivers to call the done()
    routine even if the command is not actually queued to it.
    So, scsi_obsolete.c is wrong when trying to REDO this command but should
    just return, IMO, as this was coded in 2.0 kernel/scsi.c

    > > If none of the above actions are taken, the drive in question
    > > will hang. If more than one of the above actions are taken by
    > > scsi_done, then unpredictable behavior will result.

    Indeed.

    Regards,
    Gerard.


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/

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