From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dor Laor Subject: [Virtio-for-kvm] [PATCH 5/7] userspace virtio Date: Fri, 21 Dec 2007 16:44:20 +0200 Message-ID: <476BD144.7050702@qumranet.com> Reply-To: dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-devel , virtualization , Anthony Liguori , Rusty Russell , Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org From 35a03164c1b4d138e55898853212bded14cf4ec7 Mon Sep 17 00:00:00 2001 From: Dor Laor Date: Mon, 17 Dec 2007 01:43:28 +0200 Subject: [PATCH] Check for device status on tx. Allow tx only if VIRTIO_CONFIG_S_DRIVER_OK. It can prevent an smp race of tx and driver unload. Signed-off-by: Dor Laor --- qemu/hw/virtio-net.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/qemu/hw/virtio-net.c b/qemu/hw/virtio-net.c index 3320dd8..f6f1f28 100644 --- a/qemu/hw/virtio-net.c +++ b/qemu/hw/virtio-net.c @@ -140,6 +140,9 @@ static void virtio_net_handle_tx(VirtIODevice *vdev, VirtQueue *vq) VirtIONet *n = to_virtio_net(vdev); VirtQueueElement elem; + if (!(n->vdev.status & VIRTIO_CONFIG_S_DRIVER_OK)) + return; + while (virtqueue_pop(vq, &elem)) { int i; size_t len = 0; -- 1.5.3.3 ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/