From: Jason Wang Date: Thu, 4 Jul 2013 01:52:57 +0000 (+0930) Subject: virtio-net: fix the race between channels setting and refill X-Git-Tag: v3.11-rc1~45^2~5 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b9cd8024a2882e896c65222aa421d461354e3f2;p=pandora-kernel.git 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 Cc: Rusty Russell Cc: Michael S. Tsirkin Signed-off-by: Jason Wang Signed-off-by: Rusty Russell --- Reading git-diff-tree failed