diff options
author | Jason Wang <jasowang@redhat.com> | 2013-07-04 11:22:57 +0930 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2013-07-04 11:25:06 +0930 |
commit | 9b9cd8024a2882e896c65222aa421d461354e3f2 (patch) | |
tree | 16d4ce44ff3f326828e32c2b7c2073f12f37d9b1 /kernel/irq/spurious.c | |
parent | 0d69a65e97fc8090ee83c8639137b4b5c8ece237 (diff) | |
download | linux-9b9cd8024a2882e896c65222aa421d461354e3f2.tar.bz2 |
virtio-net: fix the race between channels setting and refill
Commit 55257d72bd1c51f25106350f4983ec19f62ed1fa (virtio-net: fill only rx queues
which are being used) tries to refill on demand when changing the number of
channels by call try_refill_recv() directly, this may race:
- the refill work who may do the refill in the same time
- the try_refill_recv() called in bh since napi was not disabled
Which may led guest complain during setting channels:
virtio_net virtio0: input.1:id 0 is not a head!
Solve this issue by scheduling a refill work which can guarantee the
serialization of refill.
Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'kernel/irq/spurious.c')
0 files changed, 0 insertions, 0 deletions