From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Lalancette Subject: [PATCH]: Fix silly output for virtio devices in /proc/interrupts Date: Wed, 21 May 2008 14:51:45 +0200 Message-ID: <48341AE1.5000803@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070404080508030207080503" To: kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([66.187.233.31]:34331 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753675AbYEUMwx (ORCPT ); Wed, 21 May 2008 08:52:53 -0400 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id m4LCqqGC000655 for ; Wed, 21 May 2008 08:52:52 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [10.11.255.20]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m4LCqpNC022234 for ; Wed, 21 May 2008 08:52:51 -0400 Received: from localhost.localdomain (sebastian-int.corp.redhat.com [172.16.52.221]) by pobox.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m4LCqnXX007705 for ; Wed, 21 May 2008 08:52:51 -0400 Sender: kvm-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------070404080508030207080503 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit register_virtio_device() is doing something silly by overwriting what the caller put into .bus_id. This causes the interrupt line for all virtio devices to show up as "0", "1", etc. in /proc/interrupts. The attached patch fixes it. Signed-off-by: Chris Lalancette --------------070404080508030207080503 Content-Type: text/x-patch; name="virtio-blk-fix-proc-interrupts.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="virtio-blk-fix-proc-interrupts.patch" commit cb97605728fc1d7a15ddc6ab689e8bcd23871133 Author: Chris Lalancette Date: Thu May 15 09:04:55 2008 -0400 register_virtio_device was doing something silly, in that it was overwriting what the calling driver stuck into .bus_id" for the name. This caused problems in the output of /proc/interrupts, since when you request_irq(), it doesn't actually copy the devname you pass in but just stores a pointer to the data. The fix is to just not have register_virtio_device do anything with the bus_id, and assume the higher level driver set it up properly. diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index 138a7f0..1556ac2 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -128,7 +128,6 @@ int register_virtio_device(struct virtio_device *dev) int err; dev->dev.bus = &virtio_bus; - sprintf(dev->dev.bus_id, "%u", dev->index); /* We always start by resetting the device, in case a previous * driver messed it up. This also tests that code path a little. */ --------------070404080508030207080503--