Uninitialized variable in init DATA sections are relocated into init BSS sections to reduce kernel image size. Several KB can be reduced.
Signed-off-by: Huang Ying <[EMAIL PROTECTED]> --- arch/x86/kernel/acpi/boot.c | 14 +++++++------- arch/x86/kernel/aperture_64.c | 6 +++--- arch/x86/kernel/apic_32.c | 10 +++++----- arch/x86/kernel/apic_64.c | 2 +- arch/x86/kernel/cpu/mcheck/mce_32.c | 2 +- arch/x86/kernel/cpu/mcheck/mce_64.c | 2 +- arch/x86/kernel/e820_32.c | 8 ++++---- arch/x86/kernel/e820_64.c | 10 +++++----- arch/x86/kernel/early_printk.c | 2 +- arch/x86/kernel/efi.c | 4 ++-- arch/x86/kernel/efi_64.c | 4 ++-- arch/x86/kernel/io_apic_32.c | 4 ++-- arch/x86/kernel/io_apic_64.c | 2 +- arch/x86/kernel/io_delay.c | 2 +- arch/x86/kernel/nmi_32.c | 2 +- arch/x86/kernel/nmi_64.c | 2 +- arch/x86/kernel/pci-calgary_64.c | 6 +++--- arch/x86/kernel/setup64.c | 2 +- arch/x86/kernel/setup_32.c | 6 +++--- arch/x86/kernel/setup_64.c | 2 +- arch/x86/kernel/srat_32.c | 2 +- arch/x86/kernel/summit_32.c | 6 +++--- arch/x86/kernel/tsc_64.c | 2 +- arch/x86/mach-generic/probe.c | 2 +- arch/x86/mach-visws/setup.c | 2 +- arch/x86/mach-voyager/voyager_cat.c | 2 +- arch/x86/mm/init_32.c | 2 +- arch/x86/mm/init_64.c | 4 ++-- arch/x86/mm/ioremap.c | 10 +++++----- arch/x86/mm/numa_64.c | 8 ++++---- arch/x86/mm/srat_64.c | 10 +++++----- arch/x86/pci/mmconfig-shared.c | 4 ++-- 32 files changed, 73 insertions(+), 73 deletions(-) --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c @@ -259,7 +259,7 @@ EXPORT_SYMBOL(iounmap); #ifdef CONFIG_X86_32 -int __initdata early_ioremap_debug; +int __initbss early_ioremap_debug; static int __init early_ioremap_debug_setup(char *str) { @@ -269,9 +269,9 @@ static int __init early_ioremap_debug_se } early_param("early_ioremap_debug", early_ioremap_debug_setup); -static __initdata int after_paging_init; -static __initdata pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] - __attribute__((aligned(PAGE_SIZE))); +static __initbss int after_paging_init; +static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] + __section(.init.bss.page_aligned); static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) { @@ -385,7 +385,7 @@ static inline void __init early_clear_fi } -int __initdata early_ioremap_nested; +int __initbss early_ioremap_nested; static int __init check_early_ioremap_leak(void) { --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c @@ -485,7 +485,7 @@ EXPORT_SYMBOL_GPL(__supported_pte_mask); #ifdef CONFIG_X86_PAE -static int disable_nx __initdata; +static int disable_nx __initbss; /* * noexec = on|off --- a/arch/x86/kernel/aperture_64.c +++ b/arch/x86/kernel/aperture_64.c @@ -26,11 +26,11 @@ #include <asm/k8.h> int gart_iommu_aperture; -int gart_iommu_aperture_disabled __initdata = 0; -int gart_iommu_aperture_allowed __initdata = 0; +int gart_iommu_aperture_disabled __initbss; +int gart_iommu_aperture_allowed __initbss; int fallback_aper_order __initdata = 1; /* 64MB */ -int fallback_aper_force __initdata = 0; +int fallback_aper_force __initbss; int fix_aperture __initdata = 1; --- a/arch/x86/kernel/apic_32.c +++ b/arch/x86/kernel/apic_32.c @@ -55,7 +55,7 @@ * * -1=force-disable, +1=force-enable */ -static int enable_local_apic __initdata; +static int enable_local_apic __initbss; /* Local APIC timer verification ok */ static int local_apic_timer_verify_ok; @@ -320,10 +320,10 @@ static void __devinit setup_APIC_timer(v #define LAPIC_CAL_LOOPS (HZ/10) static __initdata int lapic_cal_loops = -1; -static __initdata long lapic_cal_t1, lapic_cal_t2; -static __initdata unsigned long long lapic_cal_tsc1, lapic_cal_tsc2; -static __initdata unsigned long lapic_cal_pm1, lapic_cal_pm2; -static __initdata unsigned long lapic_cal_j1, lapic_cal_j2; +static __initbss long lapic_cal_t1, lapic_cal_t2; +static __initbss unsigned long long lapic_cal_tsc1, lapic_cal_tsc2; +static __initbss unsigned long lapic_cal_pm1, lapic_cal_pm2; +static __initbss unsigned long lapic_cal_j1, lapic_cal_j2; /* * Temporary interrupt handler. --- a/arch/x86/kernel/apic_64.c +++ b/arch/x86/kernel/apic_64.c @@ -42,7 +42,7 @@ #include <asm/apic.h> int disable_apic_timer __cpuinitdata; -static int apic_calibrate_pmtmr __initdata; +static int apic_calibrate_pmtmr __initbss; int disable_apic; /* Local APIC timer works in C2 */ --- a/arch/x86/kernel/e820_32.c +++ b/arch/x86/kernel/e820_32.c @@ -21,10 +21,10 @@ struct change_member { struct e820entry *pbios; /* pointer to original bios entry */ unsigned long long addr; /* address for this change point */ }; -static struct change_member change_point_list[2*E820MAX] __initdata; -static struct change_member *change_point[2*E820MAX] __initdata; -static struct e820entry *overlap_list[E820MAX] __initdata; -static struct e820entry new_bios[E820MAX] __initdata; +static struct change_member change_point_list[2*E820MAX] __initbss; +static struct change_member *change_point[2*E820MAX] __initbss; +static struct e820entry *overlap_list[E820MAX] __initbss; +static struct e820entry new_bios[E820MAX] __initbss; /* For PCI or other memory-mapped resources */ unsigned long pci_mem_start = 0x10000000; #ifdef CONFIG_PCI --- a/arch/x86/kernel/e820_64.c +++ b/arch/x86/kernel/e820_64.c @@ -432,10 +432,10 @@ static int __init sanitize_e820_map(stru struct e820entry *pbios; /* pointer to original bios entry */ unsigned long long addr; /* address for this change point */ }; - static struct change_member change_point_list[2*E820MAX] __initdata; - static struct change_member *change_point[2*E820MAX] __initdata; - static struct e820entry *overlap_list[E820MAX] __initdata; - static struct e820entry new_bios[E820MAX] __initdata; + static struct change_member change_point_list[2*E820MAX] __initbss; + static struct change_member *change_point[2*E820MAX] __initbss; + static struct e820entry *overlap_list[E820MAX] __initbss; + static struct e820entry new_bios[E820MAX] __initbss; struct change_member *change_tmp; unsigned long current_type, last_type; unsigned long long last_addr; @@ -686,7 +686,7 @@ static int __init parse_memopt(char *p) } early_param("mem", parse_memopt); -static int userdef __initdata; +static int userdef __initbss; static int __init parse_memmap_opt(char *p) { --- a/arch/x86/kernel/early_printk.c +++ b/arch/x86/kernel/early_printk.c @@ -208,7 +208,7 @@ void early_printk(const char *fmt, ...) va_end(ap); } -static int __initdata keep_early; +static int __initbss keep_early; static int __init setup_early_printk(char *buf) { --- a/arch/x86/kernel/efi.c +++ b/arch/x86/kernel/efi.c @@ -54,8 +54,8 @@ EXPORT_SYMBOL(efi); struct efi_memory_map memmap; -static struct efi efi_phys __initdata; -static efi_system_table_t efi_systab __initdata; +static struct efi efi_phys __initbss; +static efi_system_table_t efi_systab __initbss; static int __init setup_noefi(char *arg) { --- a/arch/x86/kernel/efi_64.c +++ b/arch/x86/kernel/efi_64.c @@ -37,8 +37,8 @@ #include <asm/efi.h> #include <asm/cacheflush.h> -static pgd_t save_pgd __initdata; -static unsigned long efi_flags __initdata; +static pgd_t save_pgd __initbss; +static unsigned long efi_flags __initbss; static void __init early_mapping_set_exec(unsigned long start, unsigned long end, --- a/arch/x86/kernel/io_apic_32.c +++ b/arch/x86/kernel/io_apic_32.c @@ -71,7 +71,7 @@ int sis_apic_bug = -1; */ int nr_ioapic_registers[MAX_IO_APICS]; -static int disable_timer_pin_1 __initdata; +static int disable_timer_pin_1 __initbss; /* * Rough estimation of how many shared IRQs there are, can @@ -1861,7 +1861,7 @@ static void __init setup_ioapic_ids_from static void __init setup_ioapic_ids_from_mpc(void) { } #endif -int no_timer_check __initdata; +int no_timer_check __initbss; static int __init notimercheck(char *s) { --- a/arch/x86/kernel/io_apic_64.c +++ b/arch/x86/kernel/io_apic_64.c @@ -86,7 +86,7 @@ int sis_apic_bug; /* not actually suppor static int no_timer_check; -static int disable_timer_pin_1 __initdata; +static int disable_timer_pin_1 __initbss; int timer_over_8254 __initdata = 1; --- a/arch/x86/kernel/io_delay.c +++ b/arch/x86/kernel/io_delay.c @@ -14,7 +14,7 @@ int io_delay_type __read_mostly = CONFIG_DEFAULT_IO_DELAY_TYPE; -static int __initdata io_delay_override; +static int __initbss io_delay_override; /* * Paravirt wants native_io_delay to be a constant. --- a/arch/x86/kernel/nmi_32.c +++ b/arch/x86/kernel/nmi_32.c @@ -46,7 +46,7 @@ static unsigned int nmi_hz = HZ; static DEFINE_PER_CPU(short, wd_enabled); -static int endflag __initdata = 0; +static int endflag __initbss; #ifdef CONFIG_SMP /* The performance counters used by NMI_LOCAL_APIC don't trigger when --- a/arch/x86/kernel/nmi_64.c +++ b/arch/x86/kernel/nmi_64.c @@ -54,7 +54,7 @@ void nmi_watchdog_default(void) nmi_watchdog = NMI_NONE; } -static int endflag __initdata = 0; +static int endflag __initbss; #ifdef CONFIG_SMP /* The performance counters used by NMI_LOCAL_APIC don't trigger when --- a/arch/x86/kernel/pci-calgary_64.c +++ b/arch/x86/kernel/pci-calgary_64.c @@ -149,9 +149,9 @@ unsigned int specified_table_size = TCE_ static int translate_empty_slots __read_mostly = 0; static int calgary_detected __read_mostly = 0; -static struct rio_table_hdr *rio_table_hdr __initdata; -static struct scal_detail *scal_devs[MAX_NUMNODES] __initdata; -static struct rio_detail *rio_devs[MAX_NUMNODES * 4] __initdata; +static struct rio_table_hdr *rio_table_hdr __initbss; +static struct scal_detail *scal_devs[MAX_NUMNODES] __initbss; +static struct rio_detail *rio_devs[MAX_NUMNODES * 4] __initbss; struct calgary_bus_info { void *tce_space; --- a/arch/x86/kernel/setup64.c +++ b/arch/x86/kernel/setup64.c @@ -25,7 +25,7 @@ #include <asm/setup.h> #ifndef CONFIG_DEBUG_BOOT_PARAMS -struct boot_params __initdata boot_params; +struct boot_params __initbss boot_params; #else struct boot_params boot_params; #endif --- a/arch/x86/kernel/setup_32.c +++ b/arch/x86/kernel/setup_32.c @@ -195,10 +195,10 @@ unsigned long saved_videomode; #define RAMDISK_PROMPT_FLAG 0x8000 #define RAMDISK_LOAD_FLAG 0x4000 -static char __initdata command_line[COMMAND_LINE_SIZE]; +static char __initbss command_line[COMMAND_LINE_SIZE]; #ifndef CONFIG_DEBUG_BOOT_PARAMS -struct boot_params __initdata boot_params; +struct boot_params __initbss boot_params; #else struct boot_params boot_params; #endif @@ -227,7 +227,7 @@ static inline void copy_edd(void) } #endif -int __initdata user_defined_memmap = 0; +int __initbss user_defined_memmap; /* * "mem=nopentium" disables the 4MB page tables. --- a/arch/x86/kernel/setup_64.c +++ b/arch/x86/kernel/setup_64.c @@ -112,7 +112,7 @@ EXPORT_SYMBOL_GPL(edid_info); extern int root_mountflags; -char __initdata command_line[COMMAND_LINE_SIZE]; +char __initbss command_line[COMMAND_LINE_SIZE]; struct resource standard_io_resources[] = { { .name = "dma1", .start = 0x00, .end = 0x1f, --- a/arch/x86/kernel/srat_32.c +++ b/arch/x86/kernel/srat_32.c @@ -55,7 +55,7 @@ struct node_memory_chunk_s { static struct node_memory_chunk_s node_memory_chunk[MAXCHUNKS]; static int num_memory_chunks; /* total number of memory chunks */ -static u8 __initdata apicid_to_pxm[MAX_APICID]; +static u8 __initbss apicid_to_pxm[MAX_APICID]; /* Identify CPU proximity domains */ static void __init parse_cpu_affinity_structure(char *p) --- a/arch/x86/kernel/summit_32.c +++ b/arch/x86/kernel/summit_32.c @@ -31,9 +31,9 @@ #include <asm/io.h> #include <asm/mach-summit/mach_mpparse.h> -static struct rio_table_hdr *rio_table_hdr __initdata; -static struct scal_detail *scal_devs[MAX_NUMNODES] __initdata; -static struct rio_detail *rio_devs[MAX_NUMNODES*4] __initdata; +static struct rio_table_hdr *rio_table_hdr __initbss; +static struct scal_detail *scal_devs[MAX_NUMNODES] __initbss; +static struct rio_detail *rio_devs[MAX_NUMNODES*4] __initbss; static int __init setup_pci_node_map_for_wpeg(int wpeg_num, int last_bus) { --- a/arch/x86/kernel/tsc_64.c +++ b/arch/x86/kernel/tsc_64.c @@ -12,7 +12,7 @@ #include <asm/timex.h> #include <asm/timer.h> -static int notsc __initdata = 0; +static int notsc __initbss; unsigned int cpu_khz; /* TSC clocks / usec, not used here */ EXPORT_SYMBOL(cpu_khz); --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c @@ -40,7 +40,7 @@ #include <asm/io.h> #include <asm/mpspec.h> -static int __initdata acpi_force = 0; +static int __initbss acpi_force; #ifdef CONFIG_ACPI int acpi_disabled = 0; @@ -72,17 +72,17 @@ static inline int acpi_madt_oem_check(ch #define PREFIX "ACPI: " int acpi_noirq; /* skip ACPI IRQ initialization */ -int acpi_pci_disabled __initdata; /* skip ACPI PCI scan and IRQ initialization */ +int acpi_pci_disabled __initbss; /* skip ACPI PCI scan and IRQ initialization */ int acpi_ht __initdata = 1; /* enable HT */ int acpi_lapic; int acpi_ioapic; int acpi_strict; -u8 acpi_sci_flags __initdata; -int acpi_sci_override_gsi __initdata; -int acpi_skip_timer_override __initdata; -int acpi_use_timer_override __initdata; +u8 acpi_sci_flags __initbss; +int acpi_sci_override_gsi __initbss; +int acpi_skip_timer_override __initbss; +int acpi_use_timer_override __initbss; #ifdef CONFIG_X86_LOCAL_APIC static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE; @@ -602,7 +602,7 @@ static int __init acpi_parse_sbf(struct #ifdef CONFIG_HPET_TIMER #include <asm/hpet.h> -static struct __initdata resource *hpet_res; +static struct __initbss resource *hpet_res; static int __init acpi_parse_hpet(struct acpi_table_header *table) { --- a/arch/x86/kernel/cpu/mcheck/mce_32.c +++ b/arch/x86/kernel/cpu/mcheck/mce_32.c @@ -60,7 +60,7 @@ void mcheck_init(struct cpuinfo_x86 *c) } } -static unsigned long old_cr4 __initdata; +static unsigned long old_cr4 __initbss; void __init stop_mce(void) { --- a/arch/x86/kernel/cpu/mcheck/mce_64.c +++ b/arch/x86/kernel/cpu/mcheck/mce_64.c @@ -672,7 +672,7 @@ static struct miscdevice mce_log_device &mce_chrdev_ops, }; -static unsigned long old_cr4 __initdata; +static unsigned long old_cr4 __initbss; void __init stop_mce(void) { --- a/arch/x86/mach-generic/probe.c +++ b/arch/x86/mach-generic/probe.c @@ -30,7 +30,7 @@ static struct genapic *apic_probe[] __in NULL, }; -static int cmdline_apic __initdata; +static int cmdline_apic __initbss; static int __init parse_apic(char *arg) { int i; --- a/arch/x86/mach-visws/setup.c +++ b/arch/x86/mach-visws/setup.c @@ -146,7 +146,7 @@ unsigned long sgivwfb_mem_size; EXPORT_SYMBOL(sgivwfb_mem_phys); EXPORT_SYMBOL(sgivwfb_mem_size); -long long mem_size __initdata = 0; +long long mem_size __initbss; char * __init machine_specific_memory_setup(void) { --- a/arch/x86/mach-voyager/voyager_cat.c +++ b/arch/x86/mach-voyager/voyager_cat.c @@ -566,7 +566,7 @@ cat_subread(voyager_module_t * modp, voy } /* buffer for storing EPROM data read in during initialisation */ -static __initdata __u8 eprom_buf[0xFFFF]; +static __initbss __u8 eprom_buf[0xFFFF]; static voyager_module_t *voyager_initial_module; /* Initialise the cat bus components. We assume this is called by the --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -50,7 +50,7 @@ const struct dma_mapping_ops *dma_ops; EXPORT_SYMBOL(dma_ops); -static unsigned long dma_reserve __initdata; +static unsigned long dma_reserve __initbss; DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); @@ -231,7 +231,7 @@ __set_fixmap(enum fixed_addresses idx, u set_pte_phys(address, phys, prot); } -static unsigned long __initdata table_start; +static unsigned long __initbss table_start; static unsigned long __meminitdata table_end; static __meminit void *alloc_low_page(unsigned long *phys) --- a/arch/x86/mm/numa_64.c +++ b/arch/x86/mm/numa_64.c @@ -46,9 +46,9 @@ s16 apicid_to_node[MAX_LOCAL_APIC] __cpu cpumask_t node_to_cpumask_map[MAX_NUMNODES] __read_mostly; EXPORT_SYMBOL(node_to_cpumask_map); -int numa_off __initdata; -unsigned long __initdata nodemap_addr; -unsigned long __initdata nodemap_size; +int numa_off __initbss; +unsigned long __initbss nodemap_addr; +unsigned long __initbss nodemap_size; /* * Given a shift value, try to populate memnodemap[] @@ -272,7 +272,7 @@ void __init numa_init_array(void) #ifdef CONFIG_NUMA_EMU /* Numa emulation */ -char *cmdline __initdata; +char *cmdline __initbss; /* * Setups up nid to range from addr to addr + size. If the end --- a/arch/x86/mm/srat_64.c +++ b/arch/x86/mm/srat_64.c @@ -21,15 +21,15 @@ #include <asm/numa.h> #include <asm/e820.h> -int acpi_numa __initdata; +int acpi_numa __initbss; static struct acpi_table_slit *acpi_slit; -static nodemask_t nodes_parsed __initdata; -static struct bootnode nodes[MAX_NUMNODES] __initdata; +static nodemask_t nodes_parsed __initbss; +static struct bootnode nodes[MAX_NUMNODES] __initbss; static struct bootnode nodes_add[MAX_NUMNODES]; -static int found_add_area __initdata; -int hotadd_percent __initdata = 0; +static int found_add_area __initbss; +int hotadd_percent __initbss; /* Too small nodes confuse the VM badly. Usually they result from BIOS bugs. */ --- a/arch/x86/pci/mmconfig-shared.c +++ b/arch/x86/pci/mmconfig-shared.c @@ -23,7 +23,7 @@ #define MMCONFIG_APER_MAX (256 * 1024*1024) /* Indicate if the mmcfg resources have been placed into the resource table. */ -static int __initdata pci_mmcfg_resources_inserted; +static int __initbss pci_mmcfg_resources_inserted; static const char __init *pci_mmcfg_e7520(void) { @@ -315,7 +315,7 @@ reject: pci_mmcfg_config_num = 0; } -static int __initdata known_bridge; +static int __initbss known_bridge; void __init __pci_mmcfg_init(int type, int early) { -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/