[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 10/11] move various bits into .init.* sections
This also includes the removal of some entirely unused functions. The patch builds upon the makefile adjustments done in the earlier sent patch titled "move more kernel decompression bits to .init.* sections". Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- 2011-03-09.orig/xen/arch/ia64/xen/hpsimserial.c +++ 2011-03-09/xen/arch/ia64/xen/hpsimserial.c @@ -6,6 +6,7 @@ */ #include <linux/config.h> +#include <xen/init.h> #include <xen/sched.h> #include <xen/serial.h> #include "hpsim_ssc.h" @@ -17,7 +18,7 @@ static void hp_ski_putc(struct serial_po static struct uart_driver hp_ski = { .putc = hp_ski_putc }; -void hpsim_serial_init(void) +void __init hpsim_serial_init(void) { serial_register_uart(0, &hp_ski, 0); } --- 2011-03-09.orig/xen/arch/ia64/xen/xensetup.c +++ 2011-03-09/xen/arch/ia64/xen/xensetup.c @@ -711,7 +711,7 @@ void arch_get_xen_caps(xen_capabilities_ } } -int xen_in_range(paddr_t start, paddr_t end) +int __init xen_in_range(paddr_t start, paddr_t end) { paddr_t xs = __pa(&_start); paddr_t xe = __pa(&_end); --- 2011-03-09.orig/xen/arch/x86/Makefile +++ 2011-03-09/xen/arch/x86/Makefile @@ -16,10 +16,10 @@ obj-y += copy_page.o obj-y += compat.o obj-y += debug.o obj-y += delay.o -obj-y += dmi_scan.o +obj-bin-y += dmi_scan.init.o obj-y += domctl.o obj-y += domain.o -obj-y += domain_build.o +obj-bin-y += domain_build.init.o obj-y += e820.o obj-y += extable.o obj-y += flushtlb.o --- 2011-03-09.orig/xen/arch/x86/acpi/cpufreq/powernow.c +++ 2011-03-09/xen/arch/x86/acpi/cpufreq/powernow.c @@ -24,6 +24,7 @@ #include <xen/types.h> #include <xen/errno.h> +#include <xen/init.h> #include <xen/delay.h> #include <xen/cpumask.h> #include <xen/timer.h> @@ -311,7 +312,7 @@ static struct cpufreq_driver powernow_cp .exit = powernow_cpufreq_cpu_exit }; -unsigned int powernow_register_driver() +unsigned int __init powernow_register_driver() { unsigned int i, ret = 0; --- 2011-03-09.orig/xen/arch/x86/apic.c +++ 2011-03-09/xen/arch/x86/apic.c @@ -164,18 +164,6 @@ static bool_t __read_mostly using_apic_t static bool_t __read_mostly enabled_via_apicbase; -void enable_NMI_through_LVT0 (void * dummy) -{ - unsigned int v, ver; - - ver = apic_read(APIC_LVR); - ver = GET_APIC_VERSION(ver); - v = APIC_DM_NMI; /* unmask and set to NMI */ - if (!APIC_INTEGRATED(ver)) /* 82489DX */ - v |= APIC_LVT_LEVEL_TRIGGER; - apic_write_around(APIC_LVT0, v); -} - int get_physical_broadcast(void) { if (modern_apic()) @@ -809,29 +797,6 @@ int lapic_resume(void) /* - * If Linux enabled the LAPIC against the BIOS default - * disable it down before re-entering the BIOS on shutdown. - * Otherwise the BIOS may get confused and not power-off. - * Additionally clear all LVT entries before disable_local_APIC - * for the case where Linux didn't enable the LAPIC. - */ -void lapic_shutdown(void) -{ - unsigned long flags; - - if (!cpu_has_apic) - return; - - local_irq_save(flags); - clear_local_APIC(); - - if (enabled_via_apicbase) - disable_local_APIC(); - - local_irq_restore(flags); -} - -/* * Detect and enable local APICs on non-SMP boards. * Original code written by Keir Fraser. */ --- 2011-03-09.orig/xen/arch/x86/cpu/mcheck/Makefile +++ 2011-03-09/xen/arch/x86/cpu/mcheck/Makefile @@ -4,7 +4,7 @@ obj-y += amd_k8.o obj-y += amd_f10.o obj-y += mctelem.o obj-y += mce.o -obj-y += mce-apei.o +#obj-y += mce-apei.o obj-y += mce_intel.o obj-y += mce_amd_quirks.o obj-y += non-fatal.o --- 2011-03-09.orig/xen/arch/x86/dmi_scan.c +++ 2011-03-09/xen/arch/x86/dmi_scan.c @@ -150,7 +150,7 @@ static int __init dmi_iterate(void (*dec return -1; } -static char *dmi_ident[DMI_STRING_MAX]; +static char *__initdata dmi_ident[DMI_STRING_MAX]; /* * Save a DMI string @@ -456,7 +456,7 @@ void __init dmi_scan_machine(void) * returns non zero or we hit the end. Callback function is called for * each successfull match. Returns the number of matches. */ -int dmi_check_system(struct dmi_system_id *list) +int __init dmi_check_system(struct dmi_system_id *list) { int i, count = 0; struct dmi_system_id *d = list; @@ -480,18 +480,10 @@ fail: d++; return count; } -EXPORT_SYMBOL(dmi_check_system); - -/** - * dmi_get_system_info - return DMI data value - * @field: data index (see enum dmi_filed) - * - * Returns one DMI data value, can be used to perform - * complex DMI data checks. - */ -char * dmi_get_system_info(int field) +void __init dmi_end_boot(void) { - return dmi_ident[field]; -} + unsigned int i; -EXPORT_SYMBOL(dmi_get_system_info); + for ( i = 0; i < DMI_STRING_MAX; ++i ) + xfree(dmi_ident[i]); +} --- 2011-03-09.orig/xen/arch/x86/irq.c +++ 2011-03-09/xen/arch/x86/irq.c @@ -237,7 +237,7 @@ int irq_to_vector(int irq) return vector; } -static void init_one_irq_desc(struct irq_desc *desc) +static void __init init_one_irq_desc(struct irq_desc *desc) { desc->status = IRQ_DISABLED; desc->handler = &no_irq_type; @@ -254,14 +254,14 @@ static void init_one_irq_status(int irq) irq_status[irq] = IRQ_UNUSED; } -static void init_one_irq_cfg(struct irq_cfg *cfg) +static void __init init_one_irq_cfg(struct irq_cfg *cfg) { cfg->vector = IRQ_VECTOR_UNASSIGNED; cpus_clear(cfg->cpu_mask); cpus_clear(cfg->old_cpu_mask); } -int init_irq_data(void) +int __init init_irq_data(void) { struct irq_desc *desc; struct irq_cfg *cfg; --- 2011-03-09.orig/xen/arch/x86/mm/mem_sharing.c +++ 2011-03-09/xen/arch/x86/mm/mem_sharing.c @@ -124,7 +124,7 @@ static inline struct gfn_info* gfn_get_i spin_unlock(&shr_lock.lock); \ } while (0) -static void mem_sharing_hash_init(void) +static void __init mem_sharing_hash_init(void) { int i; @@ -827,7 +827,7 @@ int mem_sharing_domctl(struct domain *d, return rc; } -void mem_sharing_init(void) +void __init mem_sharing_init(void) { printk("Initing memory sharing.\n"); mem_sharing_hash_init(); --- 2011-03-09.orig/xen/arch/x86/numa.c +++ 2011-03-09/xen/arch/x86/numa.c @@ -212,7 +212,7 @@ void __init numa_init_array(void) static int numa_fake __initdata = 0; /* Numa emulation */ -static int numa_emulation(u64 start_pfn, u64 end_pfn) +static int __init numa_emulation(u64 start_pfn, u64 end_pfn) { int i; struct node nodes[MAX_NUMNODES]; --- 2011-03-09.orig/xen/arch/x86/setup.c +++ 2011-03-09/xen/arch/x86/setup.c @@ -1328,6 +1328,8 @@ void __init __start_xen(unsigned long mb /* Hide UART from DOM0 if we're using it */ serial_endboot(); + dmi_end_boot(); + domain_unpause_by_systemcontroller(dom0); reset_stack_and_jump(init_done); @@ -1360,7 +1362,7 @@ void arch_get_xen_caps(xen_capabilities_ } } -int xen_in_range(unsigned long mfn) +int __init xen_in_range(unsigned long mfn) { paddr_t start, end; int i; --- 2011-03-09.orig/xen/arch/x86/tboot.c +++ 2011-03-09/xen/arch/x86/tboot.c @@ -70,8 +70,8 @@ typedef struct __packed { uint32_t vtd_dmars_off; } sinit_mle_data_t; -static void tboot_copy_memory(unsigned char *va, uint32_t size, - unsigned long pa) +static void __init tboot_copy_memory(unsigned char *va, uint32_t size, + unsigned long pa) { unsigned long map_base = 0; unsigned char *map_addr = NULL; --- 2011-03-09.orig/xen/arch/x86/time.c +++ 2011-03-09/xen/arch/x86/time.c @@ -394,7 +394,7 @@ static struct platform_timesource __init * PLATFORM TIMER 3: IBM 'CYCLONE' TIMER */ -int use_cyclone; +bool_t __initdata use_cyclone; /* * Although the counter is read via a 64-bit register, I believe it is actually --- 2011-03-09.orig/xen/crypto/rijndael.c +++ 2011-03-09/xen/crypto/rijndael.c @@ -806,6 +806,8 @@ rijndaelKeySetupEnc(u32 rk[/*4*(Nr + 1)* return 0; } +#ifdef NEED_RIJNDAEL_DECRYPT + /** * Expand the cipher key into the decryption key schedule. * @@ -854,6 +856,8 @@ rijndaelKeySetupDec(u32 rk[/*4*(Nr + 1)* return Nr; } +#endif /* NEED_RIJNDAEL_DECRYPT */ + void rijndaelEncrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 pt[16], u8 ct[16]) @@ -1038,6 +1042,8 @@ rijndaelEncrypt(const u32 rk[/*4*(Nr + 1 PUTU32(ct + 12, s3); } +#ifdef NEED_RIJNDAEL_DECRYPT + static void rijndaelDecrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 ct[16], u8 pt[16]) @@ -1222,6 +1228,10 @@ rijndaelDecrypt(const u32 rk[/*4*(Nr + 1 PUTU32(pt + 12, s3); } +#endif /* NEED_RIJNDAEL_DECRYPT */ + +#ifdef NEED_RIJNDAEL_WRAPPERS + /* setup key context for encryption only */ int rijndael_set_key_enc_only(rijndael_ctx *ctx, const u_char *key, int bits) @@ -1267,3 +1277,5 @@ rijndael_encrypt(rijndael_ctx *ctx, cons { rijndaelEncrypt(ctx->ek, ctx->Nr, src, dst); } + +#endif /* NEED_RIJNDAEL_WRAPPERS */ --- 2011-03-09.orig/xen/crypto/vmac.c +++ 2011-03-09/xen/crypto/vmac.c @@ -722,7 +722,7 @@ static void poly_step_func(uint64_t *ahi /* ----------------------------------------------------------------------- */ -void vhash_abort(vmac_ctx_t *ctx) +static void vhash_abort(vmac_ctx_t *ctx) { ctx->polytmp[0] = ctx->polykey[0] ; ctx->polytmp[1] = ctx->polykey[1] ; --- 2011-03-09.orig/xen/drivers/char/serial.c +++ 2011-03-09/xen/drivers/char/serial.c @@ -253,7 +253,7 @@ char serial_getc(int handle) return c & 0x7f; } -int serial_parse_handle(char *conf) +int __init serial_parse_handle(char *conf) { int handle; @@ -288,7 +288,7 @@ int serial_parse_handle(char *conf) return -1; } -void serial_set_rx_handler(int handle, serial_rx_fn fn) +void __init serial_set_rx_handler(int handle, serial_rx_fn fn) { struct serial_port *port; unsigned long flags; @@ -420,15 +420,6 @@ void serial_end_log_everything(int handl spin_unlock_irqrestore(&port->tx_lock, flags); } -int serial_tx_space(int handle) -{ - struct serial_port *port; - if ( handle == -1 ) - return serial_txbufsz; - port = &com[handle & SERHND_IDX]; - return serial_txbufsz - (port->txbufp - port->txbufc); -} - void __devinit serial_init_preirq(void) { int i; @@ -476,7 +467,8 @@ void serial_resume(void) serial_init_postirq(); } -void serial_register_uart(int idx, struct uart_driver *driver, void *uart) +void __init serial_register_uart(int idx, struct uart_driver *driver, + void *uart) { /* Store UART-specific info. */ com[idx].driver = driver; --- 2011-03-09.orig/xen/drivers/cpufreq/cpufreq.c +++ 2011-03-09/xen/drivers/cpufreq/cpufreq.c @@ -76,7 +76,7 @@ struct cpufreq_governor *__find_governor return NULL; } -int cpufreq_register_governor(struct cpufreq_governor *governor) +int __init cpufreq_register_governor(struct cpufreq_governor *governor) { if (!governor) return -EINVAL; @@ -88,24 +88,6 @@ int cpufreq_register_governor(struct cpu return 0; } -int cpufreq_unregister_governor(struct cpufreq_governor *governor) -{ - struct cpufreq_policy *policy = this_cpu(cpufreq_cpu_policy); - - if (!governor || !policy) - return -EINVAL; - - /* error if unregister current cpufreq governor */ - if (governor == policy->governor) - return -EBUSY; - - if (__find_governor(governor->name) == NULL) - return -ENOENT; - - list_del(&governor->governor_list); - return 0; -} - int cpufreq_limit_change(unsigned int cpu) { struct processor_performance *perf = &processor_pminfo[cpu]->perf; --- 2011-03-09.orig/xen/drivers/cpufreq/cpufreq_misc_governors.c +++ 2011-03-09/xen/drivers/cpufreq/cpufreq_misc_governors.c @@ -103,12 +103,6 @@ static int __init cpufreq_gov_userspace_ } __initcall(cpufreq_gov_userspace_init); -static void __exit cpufreq_gov_userspace_exit(void) -{ - cpufreq_unregister_governor(&cpufreq_gov_userspace); -} -__exitcall(cpufreq_gov_userspace_exit); - /* * cpufreq performance governor @@ -148,12 +142,6 @@ static int __init cpufreq_gov_performanc } __initcall(cpufreq_gov_performance_init); -static void __exit cpufreq_gov_performance_exit(void) -{ - cpufreq_unregister_governor(&cpufreq_gov_performance); -} -__exitcall(cpufreq_gov_performance_exit); - /* * cpufreq powersave governor @@ -192,9 +180,3 @@ static int __init cpufreq_gov_powersave_ return cpufreq_register_governor(&cpufreq_gov_powersave); } __initcall(cpufreq_gov_powersave_init); - -static void __exit cpufreq_gov_powersave_exit(void) -{ - cpufreq_unregister_governor(&cpufreq_gov_powersave); -} -__exitcall(cpufreq_gov_powersave_exit); --- 2011-03-09.orig/xen/drivers/cpufreq/cpufreq_ondemand.c +++ 2011-03-09/xen/drivers/cpufreq/cpufreq_ondemand.c @@ -348,12 +348,6 @@ static int __init cpufreq_gov_dbs_init(v } __initcall(cpufreq_gov_dbs_init); -static void __exit cpufreq_gov_dbs_exit(void) -{ - cpufreq_unregister_governor(&cpufreq_gov_dbs); -} -__exitcall(cpufreq_gov_dbs_exit); - void cpufreq_dbs_timer_suspend(void) { int cpu; --- 2011-03-09.orig/xen/drivers/passthrough/pci.c +++ 2011-03-09/xen/drivers/passthrough/pci.c @@ -369,7 +369,7 @@ out: /* * detect pci device, return 0 if it exists, or return 0 */ -int pci_device_detect(u8 bus, u8 dev, u8 func) +int __init pci_device_detect(u8 bus, u8 dev, u8 func) { u32 vendor; --- 2011-03-09.orig/xen/drivers/passthrough/vtd/dmar.c +++ 2011-03-09/xen/drivers/passthrough/vtd/dmar.c @@ -49,7 +49,8 @@ static LIST_HEAD_READ_MOSTLY(acpi_rhsa_u static struct acpi_table_header *__read_mostly dmar_table; static u64 __read_mostly igd_drhd_address; -void dmar_scope_add_buses(struct dmar_scope *scope, u16 sec_bus, u16 sub_bus) +static void __init dmar_scope_add_buses(struct dmar_scope *scope, u16 sec_bus, + u16 sub_bus) { sub_bus &= 0xff; if (sec_bus > sub_bus) @@ -59,16 +60,6 @@ void dmar_scope_add_buses(struct dmar_sc set_bit(sec_bus++, scope->buses); } -void dmar_scope_remove_buses(struct dmar_scope *scope, u16 sec_bus, u16 sub_bus) -{ - sub_bus &= 0xff; - if (sec_bus > sub_bus) - return; - - while ( sec_bus <= sub_bus ) - clear_bit(sec_bus++, scope->buses); -} - static int __init acpi_register_drhd_unit(struct acpi_drhd_unit *drhd) { /* --- 2011-03-09.orig/xen/drivers/passthrough/vtd/dmar.h +++ 2011-03-09/xen/drivers/passthrough/vtd/dmar.h @@ -84,8 +84,6 @@ struct acpi_rhsa_unit { struct acpi_drhd_unit * acpi_find_matched_drhd_unit(struct pci_dev *pdev); struct acpi_atsr_unit * acpi_find_matched_atsr_unit(u8 bus, u8 devfn); -void dmar_scope_add_buses(struct dmar_scope *scope, u16 sec, u16 sub); -void dmar_scope_remove_buses(struct dmar_scope *scope, u16 sec, u16 sub); #define DMAR_TYPE 1 #define RMRR_TYPE 2 --- 2011-03-09.orig/xen/drivers/passthrough/vtd/ia64/vtd.c +++ 2011-03-09/xen/drivers/passthrough/vtd/ia64/vtd.c @@ -65,7 +65,7 @@ void flush_all_cache() ia64_sal_cache_flush(3); } -void * map_to_nocache_virt(int nr_iommus, u64 maddr) +void *__init map_to_nocache_virt(int nr_iommus, u64 maddr) { return (void *) ( maddr + __IA64_UNCACHED_OFFSET); } --- 2011-03-09.orig/xen/drivers/passthrough/vtd/x86/vtd.c +++ 2011-03-09/xen/drivers/passthrough/vtd/x86/vtd.c @@ -62,7 +62,7 @@ void flush_all_cache() wbinvd(); } -void *map_to_nocache_virt(int nr_iommus, u64 maddr) +void *__init map_to_nocache_virt(int nr_iommus, u64 maddr) { set_fixmap_nocache(FIX_IOMMU_REGS_BASE_0 + nr_iommus, maddr); return (void *)fix_to_virt(FIX_IOMMU_REGS_BASE_0 + nr_iommus); --- 2011-03-09.orig/xen/include/acpi/cpufreq/cpufreq.h +++ 2011-03-09/xen/include/acpi/cpufreq/cpufreq.h @@ -104,7 +104,6 @@ extern struct cpufreq_governor cpufreq_g extern struct cpufreq_governor cpufreq_gov_powersave; extern int cpufreq_register_governor(struct cpufreq_governor *governor); -extern int cpufreq_unregister_governor(struct cpufreq_governor *governor); extern struct cpufreq_governor *__find_governor(const char *governor); #define CPUFREQ_DEFAULT_GOVERNOR &cpufreq_gov_dbs --- 2011-03-09.orig/xen/include/asm-x86/apic.h +++ 2011-03-09/xen/include/asm-x86/apic.h @@ -182,7 +182,6 @@ extern void clear_local_APIC(void); extern void connect_bsp_APIC (void); extern void disconnect_bsp_APIC (int virt_wire_setup); extern void disable_local_APIC (void); -extern void lapic_shutdown (void); extern int verify_local_APIC (void); extern void cache_APIC_registers (void); extern void sync_Arb_IDs (void); @@ -206,7 +205,6 @@ extern int lapic_suspend(void); extern int lapic_resume(void); extern int check_nmi_watchdog (void); -extern void enable_NMI_through_LVT0 (void * dummy); extern unsigned int nmi_watchdog; #define NMI_NONE 0 @@ -215,7 +213,6 @@ extern unsigned int nmi_watchdog; #define NMI_INVALID 3 #else /* !CONFIG_X86_LOCAL_APIC */ -static inline void lapic_shutdown(void) { } static inline int lapic_suspend(void) {return 0;} static inline int lapic_resume(void) {return 0;} --- 2011-03-09.orig/xen/include/asm-x86/mach-default/mach_mpparse.h +++ 2011-03-09/xen/include/asm-x86/mach-default/mach_mpparse.h @@ -1,14 +1,14 @@ #ifndef __ASM_MACH_MPPARSE_H #define __ASM_MACH_MPPARSE_H -static inline int mps_oem_check(struct mp_config_table *mpc, char *oem, - char *productid) +static inline int __init mps_oem_check(struct mp_config_table *mpc, char *oem, + char *productid) { return 0; } /* Hook from generic ACPI tables.c */ -static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) +static inline int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) { return 0; } --- 2011-03-09.orig/xen/include/asm-x86/mach-summit/mach_mpparse.h +++ 2011-03-09/xen/include/asm-x86/mach-summit/mach_mpparse.h @@ -1,7 +1,7 @@ #ifndef __ASM_MACH_MPPARSE_H #define __ASM_MACH_MPPARSE_H -extern int use_cyclone; +extern bool_t use_cyclone; #ifdef CONFIG_X86_SUMMIT_NUMA extern void setup_summit(void); @@ -10,8 +10,8 @@ extern void setup_summit(void); #endif extern int usb_early_handoff; -static inline int mps_oem_check(struct mp_config_table *mpc, char *oem, - char *productid) +static inline int __init mps_oem_check(struct mp_config_table *mpc, char *oem, + char *productid) { if (!strncmp(oem, "IBM ENSW", 8) && (!strncmp(productid, "VIGIL SMP", 9) @@ -26,7 +26,7 @@ static inline int mps_oem_check(struct m } /* Hook from generic ACPI tables.c */ -static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) +static inline int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) { if (!strncmp(oem_id, "IBM", 3) && (!strncmp(oem_table_id, "SERVIGIL", 8) --- 2011-03-09.orig/xen/include/crypto/vmac.h +++ 2011-03-09/xen/include/crypto/vmac.h @@ -163,12 +163,6 @@ uint64_t vhash(unsigned char m[], void vmac_set_key(unsigned char user_key[], vmac_ctx_t *ctx); -/* -------------------------------------------------------------------------- - * This function aborts current hash and resets ctx, ready for a new message. - * ----------------------------------------------------------------------- */ - -void vhash_abort(vmac_ctx_t *ctx); - /* --------------------------------------------------------------------- */ #ifdef __cplusplus --- 2011-03-09.orig/xen/include/xen/dmi.h +++ 2011-03-09/xen/include/xen/dmi.h @@ -33,8 +33,8 @@ struct dmi_system_id { #define DMI_MATCH(a,b) { a, b } extern int dmi_check_system(struct dmi_system_id *list); -extern char * dmi_get_system_info(int field); extern void dmi_scan_machine(void); extern int dmi_get_table(u32 *base, u32 *len); +extern void dmi_end_boot(void); #endif /* __DMI_H__ */ --- 2011-03-09.orig/xen/include/xen/serial.h +++ 2011-03-09/xen/include/xen/serial.h @@ -102,9 +102,6 @@ void serial_end_sync(int handle); void serial_start_log_everything(int handle); void serial_end_log_everything(int handle); -/* Return number of bytes headroom in transmit buffer. */ -int serial_tx_space(int handle); - /* Return irq number for specified serial port (identified by index). */ int serial_irq(int idx); Attachment:
misc-init.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |