On Fri, 14 Jan 2000, Sebastian Andersson wrote:
> I've managed to lock the scsi tape driver by doing this:
> mt status & mt status & mt status &
>
> Combinations of tar & mt or tar & mtx does the same thing...
>
> This is on Pentium single processor machines. It happened with kernels
> 2.0.36, 2.2.5 and with red hat's 2.2.12-20 kernel.
> On a SMP machine with red hat's 2.2.12-20 SMP kernel, it works correctly.
> They all have Adaptec 21?? cards with the aic7xxx driver.
>
> ps axl | grep mt gives (kernel: RH's 2.2.12-20):
> 0 0 341 323 0 0 1064 292 down_failed D ? 0:00 mt status
> 0 0 342 323 0 0 1064 292 down_failed D ? 0:00 mt status
> 0 0 362 361 0 0 1064 292 scsi_alloca D ? 0:00 mt status
> 0 0 391 377 0 0 1064 292 scsi_alloca D ? 0:00 mt status
>
...
The reason for this is that several processes can get into the
scsi_tape_open function in the driver simultaneously and this is not
allowed. There is an in_use flag which is set before the function
returns. However, the process may sleep before that when executing SCSI
commands ... Setting the flag must be moved earlier.
I will do patches for 2.2 and 2.3 tomorrow (the bug is also in the earlier
kernels). Before that I will try to find a brow paper bag ;-(
Kai
-
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/
This archive was generated by hypermail 2b29 : Sun Jan 23 2000 - 21:00:13 EST