lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <86802c440709221820y5dfdca5fmd74da31146bf78d9@mail.gmail.com>
Date:	Sat, 22 Sep 2007 18:20:18 -0700
From:	"Yinghai Lu" <yhlu.kernel@...il.com>
To:	"Robert Hancock" <hancockr@...w.ca>
Cc:	"Andrew Morton" <akpm@...ux-foundation.org>,
	"H. Peter Anvin" <hpa@...or.com>,
	"Thomas Gleixner" <tglx@...utronix.de>, "Andi Kleen" <ak@...e.de>,
	rajesh.shah@...el.com, jbarnes@...tuousgeek.org, greg@...ah.com,
	patches@...-64.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] [9/50] i386: validate against ACPI motherboard resources

On 9/22/07, Robert Hancock <hancockr@...w.ca> wrote:
> Yinghai Lu wrote:
> > On 9/22/07, Robert Hancock <hancockr@...w.ca> wrote:
> >> Thomas Gleixner wrote:
> >>> On Sat, 2007-09-22 at 10:28 -0600, Robert Hancock wrote:
> >>>> Yinghai Lu wrote:
> >>>>> No!
> >>>>>
> >>>>> MMCONFIG will not work with acpi=off any more.
> >>>> I don't think this is unreasonable. The ACPI MCFG table is how we are
> >>>> supposed to learn about the area in the first place. If we can't get the
> >>>> table location via an approved mechanism, and can't validate it doesn't
> >>>> overlap with another memory reservation or something, I really don't
> >>>> think we should be using it.
> >>> We all know how correct ACPI tables are. Specifications are nice,
> >>> reality tells a different story.
> >> MMCONFIG can't be used without ACPI in any case unless we know where the
> >>   table is using chipset-specific knowledge (i.e. reading the registers
> >> directly). Doing that without being told that this area is really
> >> intended to be used, via the ACPI table, is dangerous, i.e. we don't
> >> necessarily know if the MMCONFIG is broken on the platform in some way
> >> we can't detect.
> >
> > the BIOS get these info from the chipset too.
> > for AMD Fam 10h opteron, we can read that MSR for MMCONFIG base.
> >
> >>>> I don't think it's much of an issue anyway - the chances that somebody
> >>>> will want to run without ACPI on a system with MCFG are pretty low given
> >>>> that you'll end up losing a bunch of functionality (not least of which
> >>>> is multi-cores).
> >>> acpi=off is an often used debug switch and it _is_ quite useful. Taking
> >>> away debug functionality is not a good idea.
> >> If someone has to turn ACPI off, disabling MMCONFIG is probably the
> >> least of their worries..
> >
> > MMCONFIG has nothing to do ACPI..., just becase MCFG in the ACPI, we
> > must use ACPI for MMCONFIG?
>
> config PCI_MMCONFIG
>           bool
>           depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
>           default y
>
> We already depend on ACPI for MMCONFIG support at compile time. This
> patch does not change that.
>
> We could conceivably skip the validation if ACPI was disabled, though
> this would only make a difference in the few cases where we can detect
> the MMCONFIG area without it (looks like currently only Intel E7520 and
> 945, at least in mainline).

can you make pci_mmcfg_late_init take one parameter about if acpi is
there or not?

so in acpi_init will be

diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 9ba778a..a4a6a6f 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -746,6 +746,7 @@ static int __init acpi_init(void)

        if (acpi_disabled) {
                printk(KERN_INFO PREFIX "Interpreter disabled.\n");
+               pci_mmcfg_late_init(0);
                return -ENODEV;
        }

@@ -757,6 +758,7 @@ static int __init acpi_init(void)
        result = acpi_bus_init();

        if (!result) {
+               pci_mmcfg_late_init(1);
 #ifdef CONFIG_PM_LEGACY
                if (!PM_IS_ACTIVE())
                        pm_active = 1;
@@ -767,8 +769,10 @@ static int __init acpi_init(void)
                        result = -ENODEV;
                }
 #endif
-       } else
+       } else {
+               pci_mmcfg_late_init(0);
                disable_acpi();
+       }

        return result;
 }

YH
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ