From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables Date: Mon, 19 Sep 2011 13:04:35 +0300 Message-ID: <20110919100434.GA6764@redhat.com> References: <20110919065307.22802.51309.stgit@t> <20110919065347.22802.53640.stgit@t> <20110919093644.GC4501@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: seabios@seabios.org, kvm@vger.kernel.org, jasowang@redhat.com, mtosatti@redhat.com, alex.williamson@redhat.com, kevin@koconnor.net To: Amos Kong Return-path: Received: from mx1.redhat.com ([209.132.183.28]:60371 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752558Ab1ISKDl (ORCPT ); Mon, 19 Sep 2011 06:03:41 -0400 Content-Disposition: inline In-Reply-To: <20110919093644.GC4501@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Mon, Sep 19, 2011 at 12:36:44PM +0300, Michael S. Tsirkin wrote: > On Mon, Sep 19, 2011 at 02:53:47PM +0800, Amos Kong wrote: > > Only func 0 is registered to guest driver (we can > > only found func 0 in slot->funcs list of driver), > > the other functions could not be cleaned when > > hot-removing the whole slot. This patch adds > > device per function in ACPI DSDT tables. > > > > Have tested with linux/winxp/win7, hot-adding/hot-remving, > > single/multiple function device, they are all fine. > > > > Signed-off-by: Amos Kong > > On top of my previous patch, the below saves another 6K by moving the > method to the correct scope. The code for hotplug handling > also gets better organized this way which is nice. > > Signed-off-by: Michael S. Tsirkin We naturally should cleanup the old macro, it's unused now, even though this doe snot save space :) diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl index 36467ea..646f146 100644 --- a/src/acpi-dsdt.dsl +++ b/src/acpi-dsdt.dsl @@ -523,7 +523,7 @@ DefinitionBlock ( Notify(S##nr##5, 1) \ Notify(S##nr##6, 1) \ Notify(S##nr##7, 1) \ - } \ + } \ If (And(PCID, ShiftLeft(1, nr))) { \ Notify(S##nr##0, 3) \ Notify(S##nr##1, 3) \ @@ -910,28 +910,6 @@ DefinitionBlock ( Return(0x01) } -#define gen_pci_hotplug(nr) \ - If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) { \ - Notify(\_SB.PCI0.S##nr##0, 1) \ - Notify(\_SB.PCI0.S##nr##1, 1) \ - Notify(\_SB.PCI0.S##nr##2, 1) \ - Notify(\_SB.PCI0.S##nr##3, 1) \ - Notify(\_SB.PCI0.S##nr##4, 1) \ - Notify(\_SB.PCI0.S##nr##5, 1) \ - Notify(\_SB.PCI0.S##nr##6, 1) \ - Notify(\_SB.PCI0.S##nr##7, 1) \ - } \ - If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) { \ - Notify(\_SB.PCI0.S##nr##0, 3) \ - Notify(\_SB.PCI0.S##nr##1, 3) \ - Notify(\_SB.PCI0.S##nr##2, 3) \ - Notify(\_SB.PCI0.S##nr##3, 3) \ - Notify(\_SB.PCI0.S##nr##4, 3) \ - Notify(\_SB.PCI0.S##nr##5, 3) \ - Notify(\_SB.PCI0.S##nr##6, 3) \ - Notify(\_SB.PCI0.S##nr##7, 3) \ - } - Method(_L01) { \_SB.PCI0.HPLG() Return (0x01)