mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 17:52:52 +00:00
L4Linux: Make block driver MP safe
Release block-request-queue-spin lock when blocking during packet allocations, this is necessary to re-enable VCPU IRQs. Fixes issue #395
This commit is contained in:
parent
c06dc73738
commit
7822c4e9a4
@ -93,9 +93,16 @@ static void genode_blk_request(struct request_queue *q)
|
||||
local_irq_restore(flags);
|
||||
local_irq_enable();
|
||||
|
||||
/* block until new responses are available */
|
||||
dev->stopped = 1;
|
||||
|
||||
/*
|
||||
* This function is called with the request queue lock held, unlock to
|
||||
* enable VCPU IRQs
|
||||
*/
|
||||
spin_unlock_irq(q->queue_lock);
|
||||
/* block until new responses are available */
|
||||
down(&dev->queue_wait);
|
||||
spin_lock_irq(q->queue_lock);
|
||||
|
||||
/* start_queue needs disabled interrupts */
|
||||
local_irq_save(flags);
|
||||
|
Loading…
x
Reference in New Issue
Block a user