Messages in this thread |  | | | Date | Fri, 11 Jan 2008 00:34:46 -0800 | | From | "Yinghai Lu" <> | | Subject | Re: [PATCH] x86-64: disable the GART early v2 |
On Jan 11, 2008 12:14 AM, Ingo Molnar <mingo@elte.hu> wrote:
>
> * Yinghai Lu <Yinghai.Lu@Sun.COM> wrote:
>
> > --- a/arch/x86/kernel/aperture_64.c
> > +++ b/arch/x86/kernel/aperture_64.c
> > @@ -218,6 +218,73 @@ static __u32 __init search_agp_bridge(u32 *order, int *valid_agp)
> > return 0;
> > }
> >
> > +void __init early_gart_iommu_disable(void)
> > +{
> > + /*
> > + * disable it in case it is enabled before, esp for kexec/kdump,
> > + * previous kernel already enable that. otherwise memset called
> > + * by allocate_aperture/__alloc_bootmem_nopanic cause restart.
> > + * or second kernel have different position for GART hole. and new
> > + * kernel could use hole as RAM that is still used by GART set by
> > + * first kernel
> > + */
>
> hm, i'm wondering, instead of modifying the GART, why dont we simply
> _detect_ whatever GART settings we have inherited, and propagate that
> into our e820 maps? I.e. if there's inconsistency, then punch that out
> from the memory maps and just dont use that memory.
>
> that way it would not matter whether the GART settings came from a [old
> or crashing] Linux kernel that has not called gart_iommu_shutdown(), or
> whether it's a BIOS that has set up an aperture hole inconsistent with
> the memory map it passed. (or the memory map we _think_ i tried to pass
> us)
>
good, i will update the patch to check that hole with e820 map.
that also make code short so don't need to check if agp is there or not.
YH
|  |