From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:40354) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S9SAH-0007Bt-OM for qemu-devel@nongnu.org; Sun, 18 Mar 2012 22:17:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S9SAE-0006JQ-HK for qemu-devel@nongnu.org; Sun, 18 Mar 2012 22:17:41 -0400 Received: from e23smtp05.au.ibm.com ([202.81.31.147]:47253) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S9SAD-0006II-Vf for qemu-devel@nongnu.org; Sun, 18 Mar 2012 22:17:38 -0400 Received: from /spool/local by e23smtp05.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 19 Mar 2012 02:13:11 +1000 Date: Mon, 19 Mar 2012 13:17:06 +1100 From: David Gibson Message-ID: <20120319021706.GA32554@truffala.fritz.box> References: <1331859788-6522-1-git-send-email-david@gibson.dropbear.id.au> <20120318123840.GF29902@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120318123840.GF29902@redhat.com> Subject: Re: [Qemu-devel] [PATCH] Remove PCI class code from virtio balloon device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: qemu-trivial@nongnu.org, aliguori@us.ibm.com, Rusty Russell , qemu-devel@nongnu.org On Sun, Mar 18, 2012 at 02:38:42PM +0200, Michael S. Tsirkin wrote: > On Fri, Mar 16, 2012 at 12:03:08PM +1100, David Gibson wrote: > > Currently the virtio balloon device, when using the virtio-pci interface > > advertises itself with PCI class code MEMORY_RAM. This is wrong; the > > balloon is vaguely related to memory, but is nothing like a PCI memory > > device in the meaning of the class code, and this code is not required or > > suggested by the virtio PCI specification. > > > > Worse, this patch causes problems on the pseries machine, because the > > firmware, seeing this class code, advertises the device as memory in the > > device tree, and then a guest kernel bug causes it to see this "memory" > > before the real system memory, leading to a crash in early boot. > > > > This patch fixes the problem by removing the bogus PCI class code on the > > balloon device. > > > > Cc: Michael S. Tsirkin > > Cc: Rusty Russell > > > > Signed-off-by: David Gibson > > Well, this gives the class a legacy value 00, > and the PCI spec says we should not use this: > > D.1. > Base Class 00h > This base class is defined to provide backward compatibility for devices > that were built > before the Class Code field was defined. No new devices should use this > value and existing > devices should switch to a more appropriate value if possible. > For class codes with this base class value, there are two defined values > for the remaining > fields as shown in the table below. All other values are reserved. > Base Class > 00h > Sub-Class > Interface > 00h > 01h > VGA-compatible device > 00h > 00h > All currently implemented devices > except VGA-compatible devices > > You probably want this instead: > > #define PCI_CLASS_OTHERS 0xff Ah, thanks. I had mistakenly assumed that 0 meant "no class specified". I'll respin changing to PCI_CLASS_OTHERS. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson