From patchwork Tue May 21 12:29:36 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Zyngier X-Patchwork-Id: 2597161 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id E8B39DFB79 for ; Tue, 21 May 2013 12:29:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753532Ab3EUM3q (ORCPT ); Tue, 21 May 2013 08:29:46 -0400 Received: from service87.mimecast.com ([91.220.42.44]:60821 "EHLO service87.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753264Ab3EUM3p (ORCPT ); Tue, 21 May 2013 08:29:45 -0400 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Tue, 21 May 2013 13:29:43 +0100 Received: from e102391-lin.cambridge.arm.com ([10.1.255.212]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.0); Tue, 21 May 2013 13:29:41 +0100 From: Marc Zyngier To: kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu Cc: Sasha Levin , Will Deacon Subject: [PATCH] kvm tools: add status notification hook to virtio-mmio Date: Tue, 21 May 2013 13:29:36 +0100 Message-Id: <1369139376-11921-1-git-send-email-marc.zyngier@arm.com> X-Mailer: git-send-email 1.8.2.3 X-OriginalArrivalTime: 21 May 2013 12:29:42.0042 (UTC) FILETIME=[DE63E7A0:01CE561E] X-MC-Unique: 113052113294309201 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Patch e03b449cbddf (kvm tools: add status notification hook for virtio) converted virtio-net to use a new notification mechanism, but unfortunately left virtio-mmio behind. The direct consequence is that both arm and arm64 guests are left without any form of networking. Not good. Bring virtio-mmio into this brave new notified world, and feel the power of being able to ping again. Cc: Sasha Levin Cc: Will Deacon Signed-off-by: Marc Zyngier Acked-by: Asias He --- tools/kvm/virtio/mmio.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/kvm/virtio/mmio.c b/tools/kvm/virtio/mmio.c index a4e4855..afa2692 100644 --- a/tools/kvm/virtio/mmio.c +++ b/tools/kvm/virtio/mmio.c @@ -144,16 +144,21 @@ static void virtio_mmio_config_out(u64 addr, void *data, u32 len, struct virtio_device *vdev) { struct virtio_mmio *vmmio = vdev->virtio; + struct kvm *kvm = vmmio->kvm; u32 val = 0; switch (addr) { case VIRTIO_MMIO_HOST_FEATURES_SEL: case VIRTIO_MMIO_GUEST_FEATURES_SEL: case VIRTIO_MMIO_QUEUE_SEL: - case VIRTIO_MMIO_STATUS: val = ioport__read32(data); *(u32 *)(((void *)&vmmio->hdr) + addr) = val; break; + case VIRTIO_MMIO_STATUS: + vmmio->hdr.status = ioport__read32(data); + if (vdev->ops->notify_status) + vdev->ops->notify_status(kvm, vmmio->dev, vmmio->hdr.status); + break; case VIRTIO_MMIO_GUEST_FEATURES: if (vmmio->hdr.guest_features_sel == 0) { val = ioport__read32(data);