Re: 2.6.38.2 breaks suspend to disk

From: Stefano Stabellini
Date: Fri Apr 01 2011 - 14:14:21 EST


On Fri, 1 Apr 2011, H. Peter Anvin wrote:
> On 04/01/2011 09:06 AM, Yinghai Lu wrote:
> > Index: linux-2.6/arch/x86/kernel/setup.c
> > ===================================================================
> > --- linux-2.6.orig/arch/x86/kernel/setup.c
> > +++ linux-2.6/arch/x86/kernel/setup.c
> > @@ -294,10 +294,17 @@ static void __init init_gbpages(void)
> > else
> > direct_gbpages = 0;
> > }
> > +static void __init store_mmu_cr4(void)
> > +{
> > + mmu_cr4_features = read_cr4();
> > +}
> > #else
> > static inline void init_gbpages(void)
> > {
> > }
> > +static void __init store_mmu_cr4(void)
> > +{
> > +}
> > static void __init cleanup_highmap(void)
> > {
> > }
> > @@ -929,6 +936,8 @@ void __init setup_arch(char **cmdline_p)
> > /* max_pfn_mapped is updated here */
> > max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT);
> > max_pfn_mapped = max_low_pfn_mapped;
> > + /* after init_memory_mapping updating cr4*/
> > + store_mmu_cr4();
> >
> > #ifdef CONFIG_X86_64
> > if (max_pfn > max_low_pfn) {
>
> This looks really, really, really wrong.
>
> Why the heck should we save and restore CR4 only for x86-64?

AFAICT it has always been the case since the beginning of time (Initial
git repository build).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/