Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d214918 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'topic/slab/earlyboot-v2' of...

Merge branch 'topic/slab/earlyboot-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6

* 'topic/slab/earlyboot-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
  slab: setup cpu caches later on when interrupts are enabled
  slab,slub: don't enable interrupts during early boot
  slab: fix gfp flag in setup_cpu_cache()
  x86: make zap_low_mapping could be used early
  irq: slab alloc for default irq_affinity
  memcg: fix page_cgroup fatal error in FLATMEM
parents c9b8af00 8429db5c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -172,6 +172,6 @@ static inline void flush_tlb_kernel_range(unsigned long start,
	flush_tlb_all();
}

extern void zap_low_mappings(void);
extern void zap_low_mappings(bool early);

#endif /* _ASM_X86_TLBFLUSH_H */
+1 −1
Original line number Diff line number Diff line
@@ -873,7 +873,7 @@ int __cpuinit native_cpu_up(unsigned int cpu)

	err = do_boot_cpu(apicid, cpu);

	zap_low_mappings();
	zap_low_mappings(false);
	low_mappings = 0;
#else
	err = do_boot_cpu(apicid, cpu);
+7 −3
Original line number Diff line number Diff line
@@ -564,7 +564,7 @@ static inline void save_pg_dir(void)
}
#endif /* !CONFIG_ACPI_SLEEP */

void zap_low_mappings(void)
void zap_low_mappings(bool early)
{
	int i;

@@ -581,6 +581,10 @@ void zap_low_mappings(void)
		set_pgd(swapper_pg_dir+i, __pgd(0));
#endif
	}

	if (early)
		__flush_tlb();
	else
		flush_tlb_all();
}

@@ -956,7 +960,7 @@ void __init mem_init(void)
		test_wp_bit();

	save_pg_dir();
	zap_low_mappings();
	zap_low_mappings(true);
}

#ifdef CONFIG_MEMORY_HOTPLUG
+3 −0
Original line number Diff line number Diff line
@@ -85,6 +85,9 @@ struct vm_area_struct;
			__GFP_NOWARN|__GFP_REPEAT|__GFP_NOFAIL|\
			__GFP_NORETRY|__GFP_NOMEMALLOC)

/* Control slab gfp mask during early boot */
#define SLAB_GFP_BOOT_MASK __GFP_BITS_MASK & ~(__GFP_WAIT|__GFP_IO|__GFP_FS)

/* Control allocation constraints */
#define GFP_CONSTRAINT_MASK (__GFP_HARDWALL|__GFP_THISNODE)

+17 −1
Original line number Diff line number Diff line
@@ -18,7 +18,19 @@ struct page_cgroup {
};

void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat);
void __init page_cgroup_init(void);

#ifdef CONFIG_SPARSEMEM
static inline void __init page_cgroup_init_flatmem(void)
{
}
extern void __init page_cgroup_init(void);
#else
void __init page_cgroup_init_flatmem(void);
static inline void __init page_cgroup_init(void)
{
}
#endif

struct page_cgroup *lookup_page_cgroup(struct page *page);

enum {
@@ -87,6 +99,10 @@ static inline void page_cgroup_init(void)
{
}

static inline void __init page_cgroup_init_flatmem(void)
{
}

#endif

#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
Loading