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

powerpc/powernv: Add __init attribute to eligible functions

Some functions defined in 'arch/powerpc/platforms/powernv' 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-12-nick.child@ibm.com
parent b346f571
...@@ -85,7 +85,7 @@ extern struct pnv_idle_states_t *pnv_idle_states; ...@@ -85,7 +85,7 @@ extern struct pnv_idle_states_t *pnv_idle_states;
extern int nr_pnv_idle_states; extern int nr_pnv_idle_states;
unsigned long pnv_cpu_offline(unsigned int cpu); unsigned long pnv_cpu_offline(unsigned int cpu);
int validate_psscr_val_mask(u64 *psscr_val, u64 *psscr_mask, u32 flags); int __init validate_psscr_val_mask(u64 *psscr_val, u64 *psscr_mask, u32 flags);
static inline void report_invalid_psscr_val(u64 psscr_val, int err) static inline void report_invalid_psscr_val(u64 psscr_val, int err)
{ {
switch (err) { switch (err) {
......
...@@ -314,7 +314,7 @@ extern int early_init_dt_scan_opal(unsigned long node, const char *uname, ...@@ -314,7 +314,7 @@ extern int early_init_dt_scan_opal(unsigned long node, const char *uname,
int depth, void *data); int depth, void *data);
extern int early_init_dt_scan_recoverable_ranges(unsigned long node, extern int early_init_dt_scan_recoverable_ranges(unsigned long node,
const char *uname, int depth, void *data); const char *uname, int depth, void *data);
extern void opal_configure_cores(void); void __init opal_configure_cores(void);
extern int opal_get_chars(uint32_t vtermno, char *buf, int count); extern int opal_get_chars(uint32_t vtermno, char *buf, int count);
extern int opal_put_chars(uint32_t vtermno, const char *buf, int total_len); extern int opal_put_chars(uint32_t vtermno, const char *buf, int total_len);
......
...@@ -62,7 +62,7 @@ static bool deepest_stop_found; ...@@ -62,7 +62,7 @@ static bool deepest_stop_found;
static unsigned long power7_offline_type; static unsigned long power7_offline_type;
static int pnv_save_sprs_for_deep_states(void) static int __init pnv_save_sprs_for_deep_states(void)
{ {
int cpu; int cpu;
int rc; int rc;
...@@ -1123,7 +1123,7 @@ unsigned long pnv_cpu_offline(unsigned int cpu) ...@@ -1123,7 +1123,7 @@ unsigned long pnv_cpu_offline(unsigned int cpu)
* stop instruction * stop instruction
*/ */
int validate_psscr_val_mask(u64 *psscr_val, u64 *psscr_mask, u32 flags) int __init validate_psscr_val_mask(u64 *psscr_val, u64 *psscr_mask, u32 flags)
{ {
int err = 0; int err = 0;
...@@ -1317,7 +1317,7 @@ static void __init pnv_probe_idle_states(void) ...@@ -1317,7 +1317,7 @@ static void __init pnv_probe_idle_states(void)
* which is the number of cpuidle states discovered through device-tree. * which is the number of cpuidle states discovered through device-tree.
*/ */
static int pnv_parse_cpuidle_dt(void) static int __init pnv_parse_cpuidle_dt(void)
{ {
struct device_node *np; struct device_node *np;
int nr_idle_states, i; int nr_idle_states, i;
......
...@@ -89,7 +89,7 @@ static inline int is_opalcore_usable(void) ...@@ -89,7 +89,7 @@ static inline int is_opalcore_usable(void)
return (oc_conf && oc_conf->opalcorebuf != NULL) ? 1 : 0; return (oc_conf && oc_conf->opalcorebuf != NULL) ? 1 : 0;
} }
static Elf64_Word *append_elf64_note(Elf64_Word *buf, char *name, static Elf64_Word *__init append_elf64_note(Elf64_Word *buf, char *name,
u32 type, void *data, u32 type, void *data,
size_t data_len) size_t data_len)
{ {
...@@ -108,7 +108,7 @@ static Elf64_Word *append_elf64_note(Elf64_Word *buf, char *name, ...@@ -108,7 +108,7 @@ static Elf64_Word *append_elf64_note(Elf64_Word *buf, char *name,
return buf; return buf;
} }
static void fill_prstatus(struct elf_prstatus *prstatus, int pir, static void __init fill_prstatus(struct elf_prstatus *prstatus, int pir,
struct pt_regs *regs) struct pt_regs *regs)
{ {
memset(prstatus, 0, sizeof(struct elf_prstatus)); memset(prstatus, 0, sizeof(struct elf_prstatus));
...@@ -134,7 +134,7 @@ static void fill_prstatus(struct elf_prstatus *prstatus, int pir, ...@@ -134,7 +134,7 @@ static void fill_prstatus(struct elf_prstatus *prstatus, int pir,
} }
} }
static Elf64_Word *auxv_to_elf64_notes(Elf64_Word *buf, static Elf64_Word *__init auxv_to_elf64_notes(Elf64_Word *buf,
u64 opal_boot_entry) u64 opal_boot_entry)
{ {
Elf64_Off *bufp = (Elf64_Off *)oc_conf->auxv_buf; Elf64_Off *bufp = (Elf64_Off *)oc_conf->auxv_buf;
......
...@@ -112,7 +112,7 @@ static void opal_fadump_update_config(struct fw_dump *fadump_conf, ...@@ -112,7 +112,7 @@ static void opal_fadump_update_config(struct fw_dump *fadump_conf,
* This function is called in the capture kernel to get configuration details * This function is called in the capture kernel to get configuration details
* from metadata setup by the first kernel. * from metadata setup by the first kernel.
*/ */
static void opal_fadump_get_config(struct fw_dump *fadump_conf, static void __init opal_fadump_get_config(struct fw_dump *fadump_conf,
const struct opal_fadump_mem_struct *fdm) const struct opal_fadump_mem_struct *fdm)
{ {
unsigned long base, size, last_end, hole_size; unsigned long base, size, last_end, hole_size;
......
...@@ -105,7 +105,7 @@ static struct bin_attribute opal_msglog_attr = { ...@@ -105,7 +105,7 @@ static struct bin_attribute opal_msglog_attr = {
.read = opal_msglog_read .read = opal_msglog_read
}; };
struct memcons *memcons_init(struct device_node *node, const char *mc_prop_name) struct memcons *__init memcons_init(struct device_node *node, const char *mc_prop_name)
{ {
u64 mcaddr; u64 mcaddr;
struct memcons *mc; struct memcons *mc;
...@@ -133,7 +133,7 @@ struct memcons *memcons_init(struct device_node *node, const char *mc_prop_name) ...@@ -133,7 +133,7 @@ struct memcons *memcons_init(struct device_node *node, const char *mc_prop_name)
return NULL; return NULL;
} }
u32 memcons_get_size(struct memcons *mc) u32 __init memcons_get_size(struct memcons *mc)
{ {
return be32_to_cpu(mc->ibuf_size) + be32_to_cpu(mc->obuf_size); return be32_to_cpu(mc->ibuf_size) + be32_to_cpu(mc->obuf_size);
} }
......
...@@ -53,7 +53,7 @@ static bool detect_epow(void) ...@@ -53,7 +53,7 @@ static bool detect_epow(void)
} }
/* Check for existing EPOW, DPO events */ /* Check for existing EPOW, DPO events */
static bool poweroff_pending(void) static bool __init poweroff_pending(void)
{ {
int rc; int rc;
__be64 opal_dpo_timeout; __be64 opal_dpo_timeout;
......
...@@ -129,7 +129,7 @@ static ssize_t powercap_store(struct kobject *kobj, ...@@ -129,7 +129,7 @@ static ssize_t powercap_store(struct kobject *kobj,
return ret; return ret;
} }
static void powercap_add_attr(int handle, const char *name, static void __init powercap_add_attr(int handle, const char *name,
struct powercap_attr *attr) struct powercap_attr *attr)
{ {
attr->handle = handle; attr->handle = handle;
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include <asm/firmware.h> #include <asm/firmware.h>
#include <asm/machdep.h> #include <asm/machdep.h>
static void opal_to_tm(u32 y_m_d, u64 h_m_s_ms, struct rtc_time *tm) static void __init opal_to_tm(u32 y_m_d, u64 h_m_s_ms, struct rtc_time *tm)
{ {
tm->tm_year = ((bcd2bin(y_m_d >> 24) * 100) + tm->tm_year = ((bcd2bin(y_m_d >> 24) * 100) +
bcd2bin((y_m_d >> 16) & 0xff)) - 1900; bcd2bin((y_m_d >> 16) & 0xff)) - 1900;
......
...@@ -126,7 +126,7 @@ static void add_attr(int handle, struct sg_attr *attr, int index) ...@@ -126,7 +126,7 @@ static void add_attr(int handle, struct sg_attr *attr, int index)
attr->attr.store = ops_info[index].store; attr->attr.store = ops_info[index].store;
} }
static int add_attr_group(const __be32 *ops, int len, struct sensor_group *sg, static int __init add_attr_group(const __be32 *ops, int len, struct sensor_group *sg,
u32 handle) u32 handle)
{ {
int i, j; int i, j;
...@@ -144,7 +144,7 @@ static int add_attr_group(const __be32 *ops, int len, struct sensor_group *sg, ...@@ -144,7 +144,7 @@ static int add_attr_group(const __be32 *ops, int len, struct sensor_group *sg,
return sysfs_create_group(sg_kobj, &sg->sg); return sysfs_create_group(sg_kobj, &sg->sg);
} }
static int get_nr_attrs(const __be32 *ops, int len) static int __init get_nr_attrs(const __be32 *ops, int len)
{ {
int i, j; int i, j;
int nr_attrs = 0; int nr_attrs = 0;
......
...@@ -73,7 +73,7 @@ static struct task_struct *kopald_tsk; ...@@ -73,7 +73,7 @@ static struct task_struct *kopald_tsk;
static struct opal_msg *opal_msg; static struct opal_msg *opal_msg;
static u32 opal_msg_size __ro_after_init; static u32 opal_msg_size __ro_after_init;
void opal_configure_cores(void) void __init opal_configure_cores(void)
{ {
u64 reinit_flags = 0; u64 reinit_flags = 0;
...@@ -779,7 +779,7 @@ bool opal_mce_check_early_recovery(struct pt_regs *regs) ...@@ -779,7 +779,7 @@ bool opal_mce_check_early_recovery(struct pt_regs *regs)
return !!recover_addr; return !!recover_addr;
} }
static int opal_sysfs_init(void) static int __init opal_sysfs_init(void)
{ {
opal_kobj = kobject_create_and_add("opal", firmware_kobj); opal_kobj = kobject_create_and_add("opal", firmware_kobj);
if (!opal_kobj) { if (!opal_kobj) {
...@@ -937,7 +937,7 @@ static void __init opal_dump_region_init(void) ...@@ -937,7 +937,7 @@ static void __init opal_dump_region_init(void)
"rc = %d\n", rc); "rc = %d\n", rc);
} }
static void opal_pdev_init(const char *compatible) static void __init opal_pdev_init(const char *compatible)
{ {
struct device_node *np; struct device_node *np;
...@@ -981,7 +981,7 @@ void opal_wake_poller(void) ...@@ -981,7 +981,7 @@ void opal_wake_poller(void)
wake_up_process(kopald_tsk); wake_up_process(kopald_tsk);
} }
static void opal_init_heartbeat(void) static void __init opal_init_heartbeat(void)
{ {
/* Old firwmware, we assume the HVC heartbeat is sufficient */ /* Old firwmware, we assume the HVC heartbeat is sufficient */
if (of_property_read_u32(opal_node, "ibm,heartbeat-ms", if (of_property_read_u32(opal_node, "ibm,heartbeat-ms",
......
...@@ -2265,7 +2265,7 @@ static const struct irq_domain_ops pnv_irq_domain_ops = { ...@@ -2265,7 +2265,7 @@ static const struct irq_domain_ops pnv_irq_domain_ops = {
.free = pnv_irq_domain_free, .free = pnv_irq_domain_free,
}; };
static int pnv_msi_allocate_domains(struct pci_controller *hose, unsigned int count) static int __init pnv_msi_allocate_domains(struct pci_controller *hose, unsigned int count)
{ {
struct pnv_phb *phb = hose->private_data; struct pnv_phb *phb = hose->private_data;
struct irq_domain *parent = irq_get_default_host(); struct irq_domain *parent = irq_get_default_host();
...@@ -2298,7 +2298,7 @@ static int pnv_msi_allocate_domains(struct pci_controller *hose, unsigned int co ...@@ -2298,7 +2298,7 @@ static int pnv_msi_allocate_domains(struct pci_controller *hose, unsigned int co
return 0; return 0;
} }
static void pnv_pci_init_ioda_msis(struct pnv_phb *phb) static void __init pnv_pci_init_ioda_msis(struct pnv_phb *phb)
{ {
unsigned int count; unsigned int count;
const __be32 *prop = of_get_property(phb->hose->dn, const __be32 *prop = of_get_property(phb->hose->dn,
......
...@@ -39,7 +39,7 @@ bool cpu_core_split_required(void); ...@@ -39,7 +39,7 @@ bool cpu_core_split_required(void);
struct memcons; struct memcons;
ssize_t memcons_copy(struct memcons *mc, char *to, loff_t pos, size_t count); ssize_t memcons_copy(struct memcons *mc, char *to, loff_t pos, size_t count);
u32 memcons_get_size(struct memcons *mc); u32 __init memcons_get_size(struct memcons *mc);
struct memcons *memcons_init(struct device_node *node, const char *mc_prop_name); struct memcons *__init memcons_init(struct device_node *node, const char *mc_prop_name);
#endif /* _POWERNV_H */ #endif /* _POWERNV_H */
...@@ -80,7 +80,7 @@ static int powernv_get_random_darn(unsigned long *v) ...@@ -80,7 +80,7 @@ static int powernv_get_random_darn(unsigned long *v)
return 1; return 1;
} }
static int initialise_darn(void) static int __init initialise_darn(void)
{ {
unsigned long val; unsigned long val;
int i; int i;
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#include "powernv.h" #include "powernv.h"
static bool fw_feature_is(const char *state, const char *name, static bool __init fw_feature_is(const char *state, const char *name,
struct device_node *fw_features) struct device_node *fw_features)
{ {
struct device_node *np; struct device_node *np;
...@@ -55,7 +55,7 @@ static bool fw_feature_is(const char *state, const char *name, ...@@ -55,7 +55,7 @@ static bool fw_feature_is(const char *state, const char *name,
return rc; return rc;
} }
static void init_fw_feat_flags(struct device_node *np) static void __init init_fw_feat_flags(struct device_node *np)
{ {
if (fw_feature_is("enabled", "inst-spec-barrier-ori31,31,0", np)) if (fw_feature_is("enabled", "inst-spec-barrier-ori31,31,0", np))
security_ftr_set(SEC_FTR_SPEC_BAR_ORI31); security_ftr_set(SEC_FTR_SPEC_BAR_ORI31);
...@@ -98,7 +98,7 @@ static void init_fw_feat_flags(struct device_node *np) ...@@ -98,7 +98,7 @@ static void init_fw_feat_flags(struct device_node *np)
security_ftr_clear(SEC_FTR_BNDS_CHK_SPEC_BAR); security_ftr_clear(SEC_FTR_BNDS_CHK_SPEC_BAR);
} }
static void pnv_setup_security_mitigations(void) static void __init pnv_setup_security_mitigations(void)
{ {
struct device_node *np, *fw_features; struct device_node *np, *fw_features;
enum l1d_flush_type type; enum l1d_flush_type type;
......
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