From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KYLxv-0001Xm-0w for qemu-devel@nongnu.org; Wed, 27 Aug 2008 10:25:43 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KYLxq-0001QL-QH for qemu-devel@nongnu.org; Wed, 27 Aug 2008 10:25:42 -0400 Received: from [199.232.76.173] (port=34148 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KYLxq-0001Pe-B9 for qemu-devel@nongnu.org; Wed, 27 Aug 2008 10:25:38 -0400 Received: from mx2.redhat.com ([66.187.237.31]:39945) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KYLxp-0000gc-Sk for qemu-devel@nongnu.org; Wed, 27 Aug 2008 10:25:38 -0400 Message-ID: <48B56265.60408@redhat.com> Date: Wed, 27 Aug 2008 16:19:17 +0200 From: Gerd Hoffmann MIME-Version: 1.0 Subject: Re: [Qemu-devel] [patch 2/2] add default pci subsystem id for all devices. References: <48B3DE05.3000009@redhat.com> <200808271310.30313.paul@codesourcery.com> <48B552B9.3040002@redhat.com> <200808271452.15987.paul@codesourcery.com> In-Reply-To: <200808271452.15987.paul@codesourcery.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: qemu-devel@nongnu.org Paul Brook wrote: > On Wednesday 27 August 2008, Gerd Hoffmann wrote: >> Paul Brook wrote: >>> On Tuesday 26 August 2008, Gerd Hoffmann wrote: >>>> This sets a default PCI subsystem ID for all emulated PCI devices. >>>> PCI specs require this, so do it. Individual devices can overwrite >>>> it of course. The defaults are global variables so they can easily >>>> be changed (before device creation) >>> This is just asking for trouble. Having devices set magic global >>> variables before they create the device is a truly horrible API. >> The global variables are just for the *default* value, i.e. what devices >> get prefilled by pci_register_device(). If a pci device wants set >> specific subsystem IDs it can just do so in the init function where the >> other config space fields are filled. There is no need for devices to >> ever fiddle with the global variables. > > That's not what your comment says. Why are they extern variables if other > modules aren't supposed to modify them? The wording in the resent patch should be more clear. The intention is to be able to change the default subsystem id based on the machine type. pci drivers can easily set that directly, they don't need this. cheers, Gerd