Re: [BUG] kvm: dereference srcu-protected pointer without srcu_read_lock()held

From: Avi Kivity
Date: Mon Apr 19 2010 - 06:08:40 EST


On 04/19/2010 12:58 PM, Lai Jiangshan wrote:
Applied the patch I just sent and let CONFIG_PROVE_RCU=y,
we can got the following dmesg. And we found that it is
because some codes in KVM dereferences srcu-protected pointer without
srcu_read_lock() held or update-side lock held.

It is not hard to fix, the problem is that:
Where is the most proper place to put a srcu_read_lock()?

I can not determine the answer, so I report this bug
instead of fixing it.


I think the else branch in complete_pio() should work. Marcelo?

Longer term I'd like to see the lock taken at the high levels (ioctls, in virt/kvm) and dropped only for guest entry and when we explicitly sleep (hlt emulation).

Note: complete_pio() is gone in the current code.

--
error compiling committee.c: too many arguments to function

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