Re: Problem linux-2.1.115 cm206/cm260

Mike Jagdis (mike@roan.co.uk)
Wed, 9 Sep 1998 14:43:59 +0100 (GMT/BST)


On Wed, 9 Sep 1998, Norbert Berzen wrote:

> the machine read some data and then it simply hung without
> any logs generated by the kernel and/or driver.

This sounds like the same problem I had with sbpcd. I sent Linus
a fix for that earlier this week.

> 1) Did someone experience similar problems?

Ayuh...

> 2) Is the total lock of the machine (without any logs)
> an indication of disabled interrupts. `cli()'
> without corresponding `sti()'?

In this case it's exactly the opposite :-). Several of the cdrom
drivers use sti() in their request handlers to allow interrupts
to occur. The problem is that the block request queues are now
protected by the io_request_lock spinlock. So we enable interrupts
but don't drop the lock, some other device interrupts, the handler
wants to look at the request queue - and blocks waiting for the
spinlock to be released. Navel watcher :-).

If this is the problem you need to change the sti() to do a
spin_unlock_irq(&io_request_lock) and you probably should do
a spin_lock_irq(&io_request_lock) before exiting the request
handler.

Mike

-- 
.----------------------------------------------------------------------.
|  Mike Jagdis                  |  Internet:  mailto:mike@roan.co.uk   |
|  Roan Technology Ltd.         |                                      |
|  54A Peach Street, Wokingham  |  Telephone:  +44 118 989 0403        |
|  RG40 1XG, ENGLAND            |  Fax:        +44 118 989 1195        |
`----------------------------------------------------------------------'

- 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/faq.html