Commit 2bc0414e authored by Andi Kleen's avatar Andi Kleen Committed by Linus Torvalds
Browse files

[PATCH] x86_64: Only use asm/sections.h to declare section symbols



Adding __initdata_* to asm-generic/sections.h
Replaces a lot of open coded externs in arch/x86_64/*
I had to change __bss_end to __bss_stop to match the other architectures.

Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 6b75aeed
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -23,8 +23,7 @@
#include <asm/e820.h>
#include <asm/proto.h>
#include <asm/bootsetup.h>

extern char _end[];
#include <asm/sections.h>

/* 
 * PFN of last memory page.
+2 −4
Original line number Diff line number Diff line
@@ -20,14 +20,14 @@
#include <asm/setup.h>
#include <asm/desc.h>
#include <asm/pgtable.h>
#include <asm/sections.h>

/* Don't add a printk in there. printk relies on the PDA which is not initialized 
   yet. */
static void __init clear_bss(void)
{
	extern char __bss_start[], __bss_end[];
	memset(__bss_start, 0,
	       (unsigned long) __bss_end - (unsigned long) __bss_start);
	       (unsigned long) __bss_stop - (unsigned long) __bss_start);
}

#define NEW_CL_POINTER		0x228	/* Relative to real mode data */
@@ -76,8 +76,6 @@ static void __init setup_boot_cpu_data(void)
	boot_cpu_data.x86_mask = eax & 0xf;
}

extern char _end[];

void __init x86_64_start_kernel(char * real_mode_data)
{
	char *s;
+1 −1
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@
#include <asm/setup.h>
#include <asm/mach_apic.h>
#include <asm/numa.h>
#include <asm/sections.h>

/*
 * Machine setup..
@@ -103,7 +104,6 @@ struct edid_info edid_info;
struct e820map e820;

extern int root_mountflags;
extern char _text, _etext, _edata, _end;

char command_line[COMMAND_LINE_SIZE];

+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ SECTIONS
	*(.bss.page_aligned)	
	*(.bss)
	}
  __bss_end = .;
  __bss_stop = .;

  . = ALIGN(PAGE_SIZE);
  . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
+2 −8
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#include <asm/mmu_context.h>
#include <asm/proto.h>
#include <asm/smp.h>
#include <asm/sections.h>

#ifndef Dprintk
#define Dprintk(x...)
@@ -45,8 +46,6 @@
extern int swiotlb;
#endif

extern char _stext[];

static unsigned long dma_reserve __initdata;

DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
@@ -88,9 +87,6 @@ void show_mem(void)

/* References to section boundaries */

extern char _text, _etext, _edata, __bss_start, _end[];
extern char __init_begin, __init_end;

int after_bootmem;

static void *spp_getpage(void)
@@ -491,8 +487,6 @@ void __init mem_init(void)
#endif
}

extern char __initdata_begin[], __initdata_end[];

void free_initmem(void)
{
	unsigned long addr;
@@ -506,7 +500,7 @@ void free_initmem(void)
		totalram_pages++;
	}
	memset(__initdata_begin, 0xba, __initdata_end - __initdata_begin);
	printk ("Freeing unused kernel memory: %luk freed\n", (&__init_end - &__init_begin) >> 10);
	printk ("Freeing unused kernel memory: %luk freed\n", (__init_end - __init_begin) >> 10);
}

#ifdef CONFIG_BLK_DEV_INITRD
Loading