Commit d276960d authored by Nick Child's avatar Nick Child Committed by Michael Ellerman

powerpc/kernel: Add __init attribute to eligible functions

Some functions defined in `arch/powerpc/kernel` (and one in `arch/powerpc/
kexec`) are deserving of an `__init` macro attribute. These functions are
only called by other initialization functions and therefore should inherit
the attribute.
Also, change function declarations in header files to include `__init`.
Signed-off-by: default avatarNick Child <nick.child@ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211216220035.605465-2-nick.child@ibm.com
parent a8968521
...@@ -23,12 +23,12 @@ extern void btext_unmap(void); ...@@ -23,12 +23,12 @@ extern void btext_unmap(void);
extern void btext_drawchar(char c); extern void btext_drawchar(char c);
extern void btext_drawstring(const char *str); extern void btext_drawstring(const char *str);
extern void btext_drawhex(unsigned long v); void __init btext_drawhex(unsigned long v);
extern void btext_drawtext(const char *c, unsigned int len); void __init btext_drawtext(const char *c, unsigned int len);
extern void btext_clearscreen(void); void __init btext_clearscreen(void);
extern void btext_flushscreen(void); void __init btext_flushscreen(void);
extern void btext_flushline(void); void __init btext_flushline(void);
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif /* __PPC_BTEXT_H */ #endif /* __PPC_BTEXT_H */
...@@ -460,7 +460,7 @@ static inline void eeh_readsl(const volatile void __iomem *addr, void * buf, ...@@ -460,7 +460,7 @@ static inline void eeh_readsl(const volatile void __iomem *addr, void * buf,
} }
void eeh_cache_debugfs_init(void); void __init eeh_cache_debugfs_init(void);
#endif /* CONFIG_PPC64 */ #endif /* CONFIG_PPC64 */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
...@@ -137,10 +137,10 @@ struct fadump_ops { ...@@ -137,10 +137,10 @@ struct fadump_ops {
}; };
/* Helper functions */ /* Helper functions */
s32 fadump_setup_cpu_notes_buf(u32 num_cpus); s32 __init fadump_setup_cpu_notes_buf(u32 num_cpus);
void fadump_free_cpu_notes_buf(void); void fadump_free_cpu_notes_buf(void);
u32 *fadump_regs_to_elf_notes(u32 *buf, struct pt_regs *regs); u32 *__init fadump_regs_to_elf_notes(u32 *buf, struct pt_regs *regs);
void fadump_update_elfcore_header(char *bufp); void __init fadump_update_elfcore_header(char *bufp);
bool is_fadump_boot_mem_contiguous(void); bool is_fadump_boot_mem_contiguous(void);
bool is_fadump_reserved_mem_contiguous(void); bool is_fadump_reserved_mem_contiguous(void);
......
...@@ -84,7 +84,7 @@ extern int crash_shutdown_register(crash_shutdown_t handler); ...@@ -84,7 +84,7 @@ extern int crash_shutdown_register(crash_shutdown_t handler);
extern int crash_shutdown_unregister(crash_shutdown_t handler); extern int crash_shutdown_unregister(crash_shutdown_t handler);
extern void crash_kexec_secondary(struct pt_regs *regs); extern void crash_kexec_secondary(struct pt_regs *regs);
extern int overlaps_crashkernel(unsigned long start, unsigned long size); int __init overlaps_crashkernel(unsigned long start, unsigned long size);
extern void reserve_crashkernel(void); extern void reserve_crashkernel(void);
extern void machine_kexec_mask_interrupts(void); extern void machine_kexec_mask_interrupts(void);
......
...@@ -16,7 +16,7 @@ static inline bool is_kvm_guest(void) ...@@ -16,7 +16,7 @@ static inline bool is_kvm_guest(void)
return static_branch_unlikely(&kvm_guest); return static_branch_unlikely(&kvm_guest);
} }
int check_kvm_guest(void); int __init check_kvm_guest(void);
#else #else
static inline bool is_kvm_guest(void) { return false; } static inline bool is_kvm_guest(void) { return false; }
static inline int check_kvm_guest(void) { return 0; } static inline int check_kvm_guest(void) { return 0; }
......
...@@ -48,7 +48,7 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) ...@@ -48,7 +48,7 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
} }
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
extern void set_pci_dma_ops(const struct dma_map_ops *dma_ops); void __init set_pci_dma_ops(const struct dma_map_ops *dma_ops);
#else /* CONFIG_PCI */ #else /* CONFIG_PCI */
#define set_pci_dma_ops(d) #define set_pci_dma_ops(d)
#endif #endif
......
...@@ -55,7 +55,7 @@ void setup_entry_flush(bool enable); ...@@ -55,7 +55,7 @@ void setup_entry_flush(bool enable);
void setup_uaccess_flush(bool enable); void setup_uaccess_flush(bool enable);
void do_rfi_flush_fixups(enum l1d_flush_type types); void do_rfi_flush_fixups(enum l1d_flush_type types);
#ifdef CONFIG_PPC_BARRIER_NOSPEC #ifdef CONFIG_PPC_BARRIER_NOSPEC
void setup_barrier_nospec(void); void __init setup_barrier_nospec(void);
#else #else
static inline void setup_barrier_nospec(void) { } static inline void setup_barrier_nospec(void) { }
#endif #endif
...@@ -71,7 +71,7 @@ static inline void do_barrier_nospec_fixups_range(bool enable, void *start, void ...@@ -71,7 +71,7 @@ static inline void do_barrier_nospec_fixups_range(bool enable, void *start, void
#endif #endif
#ifdef CONFIG_PPC_FSL_BOOK3E #ifdef CONFIG_PPC_FSL_BOOK3E
void setup_spectre_v2(void); void __init setup_spectre_v2(void);
#else #else
static inline void setup_spectre_v2(void) {} static inline void setup_spectre_v2(void) {}
#endif #endif
......
...@@ -23,11 +23,11 @@ extern void udbg_printf(const char *fmt, ...) ...@@ -23,11 +23,11 @@ extern void udbg_printf(const char *fmt, ...)
__attribute__ ((format (printf, 1, 2))); __attribute__ ((format (printf, 1, 2)));
extern void udbg_progress(char *s, unsigned short hex); extern void udbg_progress(char *s, unsigned short hex);
extern void udbg_uart_init_mmio(void __iomem *addr, unsigned int stride); void __init udbg_uart_init_mmio(void __iomem *addr, unsigned int stride);
extern void udbg_uart_init_pio(unsigned long port, unsigned int stride); void __init udbg_uart_init_pio(unsigned long port, unsigned int stride);
extern void udbg_uart_setup(unsigned int speed, unsigned int clock); void __init udbg_uart_setup(unsigned int speed, unsigned int clock);
extern unsigned int udbg_probe_uart_speed(unsigned int clock); unsigned int __init udbg_probe_uart_speed(unsigned int clock);
struct device_node; struct device_node;
extern void udbg_scc_init(int force_scc); extern void udbg_scc_init(int force_scc);
......
...@@ -161,7 +161,7 @@ void btext_map(void) ...@@ -161,7 +161,7 @@ void btext_map(void)
boot_text_mapped = 1; boot_text_mapped = 1;
} }
static int btext_initialize(struct device_node *np) static int __init btext_initialize(struct device_node *np)
{ {
unsigned int width, height, depth, pitch; unsigned int width, height, depth, pitch;
unsigned long address = 0; unsigned long address = 0;
...@@ -292,7 +292,7 @@ void btext_update_display(unsigned long phys, int width, int height, ...@@ -292,7 +292,7 @@ void btext_update_display(unsigned long phys, int width, int height,
} }
EXPORT_SYMBOL(btext_update_display); EXPORT_SYMBOL(btext_update_display);
void btext_clearscreen(void) void __init btext_clearscreen(void)
{ {
unsigned int *base = (unsigned int *)calc_base(0, 0); unsigned int *base = (unsigned int *)calc_base(0, 0);
unsigned long width = ((dispDeviceRect[2] - dispDeviceRect[0]) * unsigned long width = ((dispDeviceRect[2] - dispDeviceRect[0]) *
...@@ -310,7 +310,7 @@ void btext_clearscreen(void) ...@@ -310,7 +310,7 @@ void btext_clearscreen(void)
rmci_maybe_off(); rmci_maybe_off();
} }
void btext_flushscreen(void) void __init btext_flushscreen(void)
{ {
unsigned int *base = (unsigned int *)calc_base(0, 0); unsigned int *base = (unsigned int *)calc_base(0, 0);
unsigned long width = ((dispDeviceRect[2] - dispDeviceRect[0]) * unsigned long width = ((dispDeviceRect[2] - dispDeviceRect[0]) *
...@@ -329,7 +329,7 @@ void btext_flushscreen(void) ...@@ -329,7 +329,7 @@ void btext_flushscreen(void)
__asm__ __volatile__ ("sync" ::: "memory"); __asm__ __volatile__ ("sync" ::: "memory");
} }
void btext_flushline(void) void __init btext_flushline(void)
{ {
unsigned int *base = (unsigned int *)calc_base(0, g_loc_Y << 4); unsigned int *base = (unsigned int *)calc_base(0, g_loc_Y << 4);
unsigned long width = ((dispDeviceRect[2] - dispDeviceRect[0]) * unsigned long width = ((dispDeviceRect[2] - dispDeviceRect[0]) *
...@@ -544,7 +544,7 @@ void btext_drawstring(const char *c) ...@@ -544,7 +544,7 @@ void btext_drawstring(const char *c)
btext_drawchar(*c++); btext_drawchar(*c++);
} }
void btext_drawtext(const char *c, unsigned int len) void __init btext_drawtext(const char *c, unsigned int len)
{ {
if (!boot_text_mapped) if (!boot_text_mapped)
return; return;
...@@ -552,7 +552,7 @@ void btext_drawtext(const char *c, unsigned int len) ...@@ -552,7 +552,7 @@ void btext_drawtext(const char *c, unsigned int len)
btext_drawchar(*c++); btext_drawchar(*c++);
} }
void btext_drawhex(unsigned long v) void __init btext_drawhex(unsigned long v)
{ {
if (!boot_text_mapped) if (!boot_text_mapped)
return; return;
......
...@@ -344,7 +344,7 @@ static int __init feat_enable_dscr(struct dt_cpu_feature *f) ...@@ -344,7 +344,7 @@ static int __init feat_enable_dscr(struct dt_cpu_feature *f)
return 1; return 1;
} }
static void hfscr_pmu_enable(void) static void __init hfscr_pmu_enable(void)
{ {
u64 hfscr = mfspr(SPRN_HFSCR); u64 hfscr = mfspr(SPRN_HFSCR);
hfscr |= PPC_BIT(60); hfscr |= PPC_BIT(60);
......
...@@ -280,7 +280,7 @@ static int eeh_addr_cache_show(struct seq_file *s, void *v) ...@@ -280,7 +280,7 @@ static int eeh_addr_cache_show(struct seq_file *s, void *v)
} }
DEFINE_SHOW_ATTRIBUTE(eeh_addr_cache); DEFINE_SHOW_ATTRIBUTE(eeh_addr_cache);
void eeh_cache_debugfs_init(void) void __init eeh_cache_debugfs_init(void)
{ {
debugfs_create_file_unsafe("eeh_address_cache", 0400, debugfs_create_file_unsafe("eeh_address_cache", 0400,
arch_debugfs_dir, NULL, arch_debugfs_dir, NULL,
......
...@@ -251,7 +251,7 @@ bool is_fadump_reserved_mem_contiguous(void) ...@@ -251,7 +251,7 @@ bool is_fadump_reserved_mem_contiguous(void)
} }
/* Print firmware assisted dump configurations for debugging purpose. */ /* Print firmware assisted dump configurations for debugging purpose. */
static void fadump_show_config(void) static void __init fadump_show_config(void)
{ {
int i; int i;
...@@ -353,7 +353,7 @@ static __init u64 fadump_calculate_reserve_size(void) ...@@ -353,7 +353,7 @@ static __init u64 fadump_calculate_reserve_size(void)
* Calculate the total memory size required to be reserved for * Calculate the total memory size required to be reserved for
* firmware-assisted dump registration. * firmware-assisted dump registration.
*/ */
static unsigned long get_fadump_area_size(void) static unsigned long __init get_fadump_area_size(void)
{ {
unsigned long size = 0; unsigned long size = 0;
...@@ -462,7 +462,7 @@ static int __init fadump_get_boot_mem_regions(void) ...@@ -462,7 +462,7 @@ static int __init fadump_get_boot_mem_regions(void)
* with the given memory range. * with the given memory range.
* False, otherwise. * False, otherwise.
*/ */
static bool overlaps_reserved_ranges(u64 base, u64 end, int *idx) static bool __init overlaps_reserved_ranges(u64 base, u64 end, int *idx)
{ {
bool ret = false; bool ret = false;
int i; int i;
...@@ -737,7 +737,7 @@ void crash_fadump(struct pt_regs *regs, const char *str) ...@@ -737,7 +737,7 @@ void crash_fadump(struct pt_regs *regs, const char *str)
fw_dump.ops->fadump_trigger(fdh, str); fw_dump.ops->fadump_trigger(fdh, str);
} }
u32 *fadump_regs_to_elf_notes(u32 *buf, struct pt_regs *regs) u32 *__init fadump_regs_to_elf_notes(u32 *buf, struct pt_regs *regs)
{ {
struct elf_prstatus prstatus; struct elf_prstatus prstatus;
...@@ -752,7 +752,7 @@ u32 *fadump_regs_to_elf_notes(u32 *buf, struct pt_regs *regs) ...@@ -752,7 +752,7 @@ u32 *fadump_regs_to_elf_notes(u32 *buf, struct pt_regs *regs)
return buf; return buf;
} }
void fadump_update_elfcore_header(char *bufp) void __init fadump_update_elfcore_header(char *bufp)
{ {
struct elf_phdr *phdr; struct elf_phdr *phdr;
...@@ -770,7 +770,7 @@ void fadump_update_elfcore_header(char *bufp) ...@@ -770,7 +770,7 @@ void fadump_update_elfcore_header(char *bufp)
return; return;
} }
static void *fadump_alloc_buffer(unsigned long size) static void *__init fadump_alloc_buffer(unsigned long size)
{ {
unsigned long count, i; unsigned long count, i;
struct page *page; struct page *page;
...@@ -792,7 +792,7 @@ static void fadump_free_buffer(unsigned long vaddr, unsigned long size) ...@@ -792,7 +792,7 @@ static void fadump_free_buffer(unsigned long vaddr, unsigned long size)
free_reserved_area((void *)vaddr, (void *)(vaddr + size), -1, NULL); free_reserved_area((void *)vaddr, (void *)(vaddr + size), -1, NULL);
} }
s32 fadump_setup_cpu_notes_buf(u32 num_cpus) s32 __init fadump_setup_cpu_notes_buf(u32 num_cpus)
{ {
/* Allocate buffer to hold cpu crash notes. */ /* Allocate buffer to hold cpu crash notes. */
fw_dump.cpu_notes_buf_size = num_cpus * sizeof(note_buf_t); fw_dump.cpu_notes_buf_size = num_cpus * sizeof(note_buf_t);
...@@ -1447,7 +1447,7 @@ static ssize_t release_mem_store(struct kobject *kobj, ...@@ -1447,7 +1447,7 @@ static ssize_t release_mem_store(struct kobject *kobj,
} }
/* Release the reserved memory and disable the FADump */ /* Release the reserved memory and disable the FADump */
static void unregister_fadump(void) static void __init unregister_fadump(void)
{ {
fadump_cleanup(); fadump_cleanup();
fadump_release_memory(fw_dump.reserve_dump_area_start, fadump_release_memory(fw_dump.reserve_dump_area_start,
...@@ -1547,7 +1547,7 @@ ATTRIBUTE_GROUPS(fadump); ...@@ -1547,7 +1547,7 @@ ATTRIBUTE_GROUPS(fadump);
DEFINE_SHOW_ATTRIBUTE(fadump_region); DEFINE_SHOW_ATTRIBUTE(fadump_region);
static void fadump_init_files(void) static void __init fadump_init_files(void)
{ {
int rc = 0; int rc = 0;
......
...@@ -540,7 +540,7 @@ static struct pstore_info nvram_pstore_info = { ...@@ -540,7 +540,7 @@ static struct pstore_info nvram_pstore_info = {
.write = nvram_pstore_write, .write = nvram_pstore_write,
}; };
static int nvram_pstore_init(void) static int __init nvram_pstore_init(void)
{ {
int rc = 0; int rc = 0;
...@@ -562,7 +562,7 @@ static int nvram_pstore_init(void) ...@@ -562,7 +562,7 @@ static int nvram_pstore_init(void)
return rc; return rc;
} }
#else #else
static int nvram_pstore_init(void) static int __init nvram_pstore_init(void)
{ {
return -1; return -1;
} }
...@@ -755,7 +755,7 @@ static unsigned char __init nvram_checksum(struct nvram_header *p) ...@@ -755,7 +755,7 @@ static unsigned char __init nvram_checksum(struct nvram_header *p)
* Per the criteria passed via nvram_remove_partition(), should this * Per the criteria passed via nvram_remove_partition(), should this
* partition be removed? 1=remove, 0=keep * partition be removed? 1=remove, 0=keep
*/ */
static int nvram_can_remove_partition(struct nvram_partition *part, static int __init nvram_can_remove_partition(struct nvram_partition *part,
const char *name, int sig, const char *exceptions[]) const char *name, int sig, const char *exceptions[])
{ {
if (part->header.signature != sig) if (part->header.signature != sig)
......
...@@ -62,7 +62,7 @@ EXPORT_SYMBOL(isa_mem_base); ...@@ -62,7 +62,7 @@ EXPORT_SYMBOL(isa_mem_base);
static const struct dma_map_ops *pci_dma_ops; static const struct dma_map_ops *pci_dma_ops;
void set_pci_dma_ops(const struct dma_map_ops *dma_ops) void __init set_pci_dma_ops(const struct dma_map_ops *dma_ops)
{ {
pci_dma_ops = dma_ops; pci_dma_ops = dma_ops;
} }
......
...@@ -37,7 +37,7 @@ int pcibios_assign_bus_offset = 1; ...@@ -37,7 +37,7 @@ int pcibios_assign_bus_offset = 1;
EXPORT_SYMBOL(isa_io_base); EXPORT_SYMBOL(isa_io_base);
EXPORT_SYMBOL(pci_dram_offset); EXPORT_SYMBOL(pci_dram_offset);
void pcibios_make_OF_bus_map(void); void __init pcibios_make_OF_bus_map(void);
static void fixup_cpc710_pci64(struct pci_dev* dev); static void fixup_cpc710_pci64(struct pci_dev* dev);
static u8* pci_to_OF_bus_map; static u8* pci_to_OF_bus_map;
...@@ -109,7 +109,7 @@ make_one_node_map(struct device_node* node, u8 pci_bus) ...@@ -109,7 +109,7 @@ make_one_node_map(struct device_node* node, u8 pci_bus)
} }
} }
void void __init
pcibios_make_OF_bus_map(void) pcibios_make_OF_bus_map(void)
{ {
int i; int i;
......
...@@ -447,7 +447,7 @@ static int __init early_init_dt_scan_chosen_ppc(unsigned long node, ...@@ -447,7 +447,7 @@ static int __init early_init_dt_scan_chosen_ppc(unsigned long node,
*/ */
#ifdef CONFIG_SPARSEMEM #ifdef CONFIG_SPARSEMEM
static bool validate_mem_limit(u64 base, u64 *size) static bool __init validate_mem_limit(u64 base, u64 *size)
{ {
u64 max_mem = 1UL << (MAX_PHYSMEM_BITS); u64 max_mem = 1UL << (MAX_PHYSMEM_BITS);
...@@ -458,7 +458,7 @@ static bool validate_mem_limit(u64 base, u64 *size) ...@@ -458,7 +458,7 @@ static bool validate_mem_limit(u64 base, u64 *size)
return true; return true;
} }
#else #else
static bool validate_mem_limit(u64 base, u64 *size) static bool __init validate_mem_limit(u64 base, u64 *size)
{ {
return true; return true;
} }
......
...@@ -672,7 +672,7 @@ static inline int __init prom_getproplen(phandle node, const char *pname) ...@@ -672,7 +672,7 @@ static inline int __init prom_getproplen(phandle node, const char *pname)
return call_prom("getproplen", 2, 1, node, ADDR(pname)); return call_prom("getproplen", 2, 1, node, ADDR(pname));
} }
static void add_string(char **str, const char *q) static void __init add_string(char **str, const char *q)
{ {
char *p = *str; char *p = *str;
...@@ -682,7 +682,7 @@ static void add_string(char **str, const char *q) ...@@ -682,7 +682,7 @@ static void add_string(char **str, const char *q)
*str = p; *str = p;
} }
static char *tohex(unsigned int x) static char *__init tohex(unsigned int x)
{ {
static const char digits[] __initconst = "0123456789abcdef"; static const char digits[] __initconst = "0123456789abcdef";
static char result[9] __prombss; static char result[9] __prombss;
...@@ -728,7 +728,7 @@ static int __init prom_setprop(phandle node, const char *nodename, ...@@ -728,7 +728,7 @@ static int __init prom_setprop(phandle node, const char *nodename,
#define prom_islower(c) ('a' <= (c) && (c) <= 'z') #define prom_islower(c) ('a' <= (c) && (c) <= 'z')
#define prom_toupper(c) (prom_islower(c) ? ((c) - 'a' + 'A') : (c)) #define prom_toupper(c) (prom_islower(c) ? ((c) - 'a' + 'A') : (c))
static unsigned long prom_strtoul(const char *cp, const char **endp) static unsigned long __init prom_strtoul(const char *cp, const char **endp)
{ {
unsigned long result = 0, base = 10, value; unsigned long result = 0, base = 10, value;
...@@ -753,7 +753,7 @@ static unsigned long prom_strtoul(const char *cp, const char **endp) ...@@ -753,7 +753,7 @@ static unsigned long prom_strtoul(const char *cp, const char **endp)
return result; return result;
} }
static unsigned long prom_memparse(const char *ptr, const char **retptr) static unsigned long __init prom_memparse(const char *ptr, const char **retptr)
{ {
unsigned long ret = prom_strtoul(ptr, retptr); unsigned long ret = prom_strtoul(ptr, retptr);
int shift = 0; int shift = 0;
...@@ -1786,7 +1786,7 @@ static void __init prom_close_stdin(void) ...@@ -1786,7 +1786,7 @@ static void __init prom_close_stdin(void)
} }
#ifdef CONFIG_PPC_SVM #ifdef CONFIG_PPC_SVM
static int prom_rtas_hcall(uint64_t args) static int __init prom_rtas_hcall(uint64_t args)
{ {
register uint64_t arg1 asm("r3") = H_RTAS; register uint64_t arg1 asm("r3") = H_RTAS;
register uint64_t arg2 asm("r4") = args; register uint64_t arg2 asm("r4") = args;
...@@ -3248,7 +3248,7 @@ static void __init prom_check_initrd(unsigned long r3, unsigned long r4) ...@@ -3248,7 +3248,7 @@ static void __init prom_check_initrd(unsigned long r3, unsigned long r4)
/* /*
* Perform the Enter Secure Mode ultracall. * Perform the Enter Secure Mode ultracall.
*/ */
static int enter_secure_mode(unsigned long kbase, unsigned long fdt) static int __init enter_secure_mode(unsigned long kbase, unsigned long fdt)
{ {
register unsigned long r3 asm("r3") = UV_ESM; register unsigned long r3 asm("r3") = UV_ESM;
register unsigned long r4 asm("r4") = kbase; register unsigned long r4 asm("r4") = kbase;
......
...@@ -455,7 +455,7 @@ static void rtas_event_scan(struct work_struct *w) ...@@ -455,7 +455,7 @@ static void rtas_event_scan(struct work_struct *w)
} }
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
static void retrieve_nvram_error_log(void) static void __init retrieve_nvram_error_log(void)
{ {
unsigned int err_type ; unsigned int err_type ;
int rc ; int rc ;
...@@ -473,12 +473,12 @@ static void retrieve_nvram_error_log(void) ...@@ -473,12 +473,12 @@ static void retrieve_nvram_error_log(void)
} }
} }
#else /* CONFIG_PPC64 */ #else /* CONFIG_PPC64 */
static void retrieve_nvram_error_log(void) static void __init retrieve_nvram_error_log(void)
{ {
} }
#endif /* CONFIG_PPC64 */ #endif /* CONFIG_PPC64 */
static void start_event_scan(void) static void __init start_event_scan(void)
{ {
printk(KERN_DEBUG "RTAS daemon started\n"); printk(KERN_DEBUG "RTAS daemon started\n");
pr_debug("rtasd: will sleep for %d milliseconds\n", pr_debug("rtasd: will sleep for %d milliseconds\n",
......
...@@ -44,7 +44,7 @@ static void enable_barrier_nospec(bool enable) ...@@ -44,7 +44,7 @@ static void enable_barrier_nospec(bool enable)
do_barrier_nospec_fixups(enable); do_barrier_nospec_fixups(enable);
} }
void setup_barrier_nospec(void) void __init setup_barrier_nospec(void)
{ {
bool enable; bool enable;
...@@ -132,7 +132,7 @@ early_param("nospectre_v2", handle_nospectre_v2); ...@@ -132,7 +132,7 @@ early_param("nospectre_v2", handle_nospectre_v2);
#endif /* CONFIG_PPC_FSL_BOOK3E || CONFIG_PPC_BOOK3S_64 */ #endif /* CONFIG_PPC_FSL_BOOK3E || CONFIG_PPC_BOOK3S_64 */
#ifdef CONFIG_PPC_FSL_BOOK3E #ifdef CONFIG_PPC_FSL_BOOK3E
void setup_spectre_v2(void) void __init setup_spectre_v2(void)
{ {
if (no_spectrev2 || cpu_mitigations_off()) if (no_spectrev2 || cpu_mitigations_off())
do_btb_flush_fixups(); do_btb_flush_fixups();
......
...@@ -499,7 +499,7 @@ void smp_release_cpus(void) ...@@ -499,7 +499,7 @@ void smp_release_cpus(void)
* routines and/or provided to userland * routines and/or provided to userland
*/ */
static void init_cache_info(struct ppc_cache_info *info, u32 size, u32 lsize, static void __init init_cache_info(struct ppc_cache_info *info, u32 size, u32 lsize,
u32 bsize, u32 sets) u32 bsize, u32 sets)
{ {
info->size = size; info->size = size;
......
...@@ -936,7 +936,8 @@ static struct thread_groups *__init get_thread_groups(int cpu, ...@@ -936,7 +936,8 @@ static struct thread_groups *__init get_thread_groups(int cpu,
return tg; return tg;
} }
static int update_mask_from_threadgroup(cpumask_var_t *mask, struct thread_groups *tg, int cpu, int cpu_group_start) static int __init update_mask_from_threadgroup(cpumask_var_t *mask, struct thread_groups *tg,
int cpu, int cpu_group_start)
{ {
int first_thread = cpu_first_thread_sibling(cpu); int first_thread = cpu_first_thread_sibling(cpu);
int i; int i;
...@@ -1682,7 +1683,7 @@ int setup_profiling_timer(unsigned int multiplier) ...@@ -1682,7 +1683,7 @@ int setup_profiling_timer(unsigned int multiplier)
} }
#endif #endif
static void fixup_topology(void) static void __init fixup_topology(void)
{ {
int i; int i;
......
...@@ -214,7 +214,7 @@ static ssize_t __used store_dscr_default(struct device *dev, ...@@ -214,7 +214,7 @@ static ssize_t __used store_dscr_default(struct device *dev,
static DEVICE_ATTR(dscr_default, 0600, static DEVICE_ATTR(dscr_default, 0600,
show_dscr_default, store_dscr_default); show_dscr_default, store_dscr_default);
static void sysfs_create_dscr_default(void) static void __init sysfs_create_dscr_default(void)
{ {
if (cpu_has_feature(CPU_FTR_DSCR)) { if (cpu_has_feature(CPU_FTR_DSCR)) {
int cpu; int cpu;
...@@ -744,12 +744,12 @@ static ssize_t show_svm(struct device *dev, struct device_attribute *attr, char ...@@ -744,12 +744,12 @@ static ssize_t show_svm(struct device *dev, struct device_attribute *attr, char
} }
static DEVICE_ATTR(svm, 0444, show_svm, NULL); static DEVICE_ATTR(svm, 0444, show_svm, NULL);
static void create_svm_file(void) static void __init create_svm_file(void)
{ {
device_create_file(cpu_subsys.dev_root, &dev_attr_svm); device_create_file(cpu_subsys.dev_root, &dev_attr_svm);
} }
#else #else
static void create_svm_file(void) static void __init create_svm_file(void)
{ {
} }
#endif /* CONFIG_PPC_SVM */ #endif /* CONFIG_PPC_SVM */
...@@ -1110,7 +1110,7 @@ EXPORT_SYMBOL_GPL(cpu_remove_dev_attr_group); ...@@ -1110,7 +1110,7 @@ EXPORT_SYMBOL_GPL(cpu_remove_dev_attr_group);
/* NUMA stuff */ /* NUMA stuff */
#ifdef CONFIG_NUMA #ifdef CONFIG_NUMA
static void register_nodes(void) static void __init register_nodes(void)
{ {
int i; int i;
...@@ -1134,7 +1134,7 @@ void sysfs_remove_device_from_node(struct device *dev, int nid) ...@@ -1134,7 +1134,7 @@ void sysfs_remove_device_from_node(struct device *dev, int nid)
EXPORT_SYMBOL_GPL(sysfs_remove_device_from_node); EXPORT_SYMBOL_GPL(sysfs_remove_device_from_node);
#else #else
static void register_nodes(void) static void __init register_nodes(void)
{ {
return; return;
} }
......
...@@ -84,7 +84,7 @@ static int udbg_uart_getc(void) ...@@ -84,7 +84,7 @@ static int udbg_uart_getc(void)
return udbg_uart_in(UART_RBR); return udbg_uart_in(UART_RBR);
} }
static void udbg_use_uart(void) static void __init udbg_use_uart(void)
{ {
udbg_putc = udbg_uart_putc; udbg_putc = udbg_uart_putc;
udbg_flush = udbg_uart_flush; udbg_flush = udbg_uart_flush;
...@@ -92,7 +92,7 @@ static void udbg_use_uart(void) ...@@ -92,7 +92,7 @@ static void udbg_use_uart(void)
udbg_getc_poll = udbg_uart_getc_poll; udbg_getc_poll = udbg_uart_getc_poll;
} }
void udbg_uart_setup(unsigned int speed, unsigned int clock) void __init udbg_uart_setup(unsigned int speed, unsigned int clock)
{ {
unsigned int dll, base_bauds; unsigned int dll, base_bauds;
...@@ -121,7 +121,7 @@ void udbg_uart_setup(unsigned int speed, unsigned int clock) ...@@ -121,7 +121,7 @@ void udbg_uart_setup(unsigned int speed, unsigned int clock)
udbg_uart_out(UART_FCR, 0x7); udbg_uart_out(UART_FCR, 0x7);
} }
unsigned int udbg_probe_uart_speed(unsigned int clock) unsigned int __init udbg_probe_uart_speed(unsigned int clock)
{ {
unsigned int dll, dlm, divisor, prescaler, speed; unsigned int dll, dlm, divisor, prescaler, speed;
u8 old_lcr; u8 old_lcr;
...@@ -172,7 +172,7 @@ static void udbg_uart_out_pio(unsigned int reg, u8 data) ...@@ -172,7 +172,7 @@ static void udbg_uart_out_pio(unsigned int reg, u8 data)
outb(data, udbg_uart.pio_base + (reg * udbg_uart_stride)); outb(data, udbg_uart.pio_base + (reg * udbg_uart_stride));
} }
void udbg_uart_init_pio(unsigned long port, unsigned int stride) void __init udbg_uart_init_pio(unsigned long port, unsigned int stride)
{ {
if (!port) if (!port)
return; return;
...@@ -194,7 +194,7 @@ static void udbg_uart_out_mmio(unsigned int reg, u8 data) ...@@ -194,7 +194,7 @@ static void udbg_uart_out_mmio(unsigned int reg, u8 data)
} }
void udbg_uart_init_mmio(void __iomem *addr, unsigned int stride) void __init udbg_uart_init_mmio(void __iomem *addr, unsigned int stride)
{ {
if (!addr) if (!addr)
return; return;
......
...@@ -185,7 +185,7 @@ void __init reserve_crashkernel(void) ...@@ -185,7 +185,7 @@ void __init reserve_crashkernel(void)
} }
} }
int overlaps_crashkernel(unsigned long start, unsigned long size) int __init overlaps_crashkernel(unsigned long start, unsigned long size)
{ {
return (start + size) > crashk_res.start && start <= crashk_res.end; return (start + size) > crashk_res.start && start <= crashk_res.end;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment