[SeaBIOS] [PATCH] don't expose pvpanic device in the UI

Michael S. Tsirkin mst at redhat.com
Mon Aug 12 07:25:48 CEST 2013


On Mon, Aug 12, 2013 at 10:23:58AM +0800, Hu Tao wrote:
> On Fri, Aug 09, 2013 at 11:43:29AM +0200, Paolo Bonzini wrote:
> > Il 09/08/2013 11:02, Hu Tao ha scritto:
> > > On Fri, Aug 09, 2013 at 04:02:24PM +0800, Hu Tao wrote:
> > >> On Mon, Aug 05, 2013 at 09:26:32AM -0400, Paolo Bonzini wrote:
> > >>>>>>> This patch is a workaround to not show pvpanic in UI to avoid the
> > >>>>>>> problem in Windows.
> > >>>>>
> > >>>>> It's not a workaround, it is a proper bugfix.
> > >>>>>
> > >>>>> What versions of Windows did you test it on?  Did it hide the New
> > >>>>> Hardware wizard properly (I think it appears only on XP/2003)?
> > >>>>
> > >>>> Windows XP. I didn't see hardware wizard, maybe it is because I tested
> > >>>> the same VM before and XP remembered the device and wasn't boring to
> > >>>> prompt again.
> > >>>>
> > >>>> Tested in a freshly installed Windows XP, the device is hidden but
> > >>>> the hardware wizard is shown.
> > >>>
> > >>> Then unfortunately this patch alone is useless. :(
> > >>>
> > >>> What would work is treat this as a 2000/XP bug and use _OSI to probe
> > >>> for Vista/2008 or later ("Windows 2006" and "Windows 2006.1", says
> > >>> drivers/acpi/acpica/utosi.c).  Perhaps on top of this one.
> > >>
> > >> Tested on Windows Server 2008, Windows Server 2008 R2 and Windows Server
> > >> 2012. On Windows Server 2008, the New Hardware Wizward still shows up.
> > >> On the latter two, the New Hardware Wizward doesn't show up.
> > >> So we should test for "Windows 2009" and later? How can I know from
> > >> which version of Windows the New Hardware Wizward is fixed? I searched
> > >> on google but couldn't find a related page.
> > > 
> > > The patch for test is:
> > > 
> > > From 8fe044e39d6de0e1999e48cf4e2e371beec3b861 Mon Sep 17 00:00:00 2001
> > > From: Hu Tao <hutao at cn.fujitsu.com>
> > > Date: Fri, 9 Aug 2013 16:23:54 +0800
> > > Subject: [PATCH] pvpanic: disable pvpanic for some Windows versions
> > > 
> > > Signed-off-by: Hu Tao <hutao at cn.fujitsu.com>
> > > ---
> > >  src/acpi-dsdt.dsl | 19 +++++++++++++++++++
> > >  src/ssdt-misc.dsl |  4 ++++
> > >  2 files changed, 23 insertions(+)
> > > 
> > > diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
> > > index 158f6b4..e6cede7 100644
> > > --- a/src/acpi-dsdt.dsl
> > > +++ b/src/acpi-dsdt.dsl
> > > @@ -340,4 +340,23 @@ DefinitionBlock (
> > >          Method(_L0F) {
> > >          }
> > >      }
> > > +
> > > +    Scope(\_SB) {
> > > +        Name (TOOS, 0x00)
> > > +        Method (_INI, 0, NotSerialized)
> > > +        {
> > > +            If (\_OSI ("Windows 2006"))
> > 
> > So perhaps it should test 2009 here, given the result of your testing?
> 
> Yeah. I'll send an updated patch.
> Another question, this patch disables pvpanic for Windows 2008 and prior
> unconditionally, do we have to worry about the case that user wants
> pvpanic even for these OSes?

In fact, now that pvpanic is specified explicitly, there doesn't appear
to be any need for these patches.  Just implement a driver for all
OS-es.

> > Though IIRC the wizard in 2008 is much less intrusive than the one in
> > XP, and we will have a driver sooner or later, so it would be a fine
> > compromise.
> > 
> > Paolo
> > 
> > > +            {
> > > +                Store (0x01, TOOS)
> > > +            }
> > > +            ElseIf (\_OSI ("Windows 2000"))
> > > +            {
> > > +                Store (0x00, TOOS)
> > > +            }
> > > +            Else
> > > +            {
> > > +                Store (0x01, TOOS)
> > > +            }
> > > +        }
> > > +    }
> > >  }
> > > diff --git a/src/ssdt-misc.dsl b/src/ssdt-misc.dsl
> > > index 19a2058..62b13a2 100644
> > > --- a/src/ssdt-misc.dsl
> > > +++ b/src/ssdt-misc.dsl
> > > @@ -58,6 +58,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
> > >  
> > >      External(\_SB.PCI0, DeviceObj)
> > >      External(\_SB.PCI0.ISA, DeviceObj)
> > > +    External(\_SB.TOOS, IntObj)
> > >  
> > >      Scope(\_SB.PCI0.ISA) {
> > >          Device(PEVT) {
> > > @@ -71,6 +72,9 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
> > >              }
> > >  
> > >              Method(_STA, 0, NotSerialized) {
> > > +                If (LEqual(TOOS, Zero)) {
> > > +                    Return (0x00)
> > > +                }
> > >                  Store(PEST, Local0)
> > >                  If (LEqual(Local0, Zero)) {
> > >                      Return (0x00)
> > > 



More information about the SeaBIOS mailing list