Skip to content

Commit a00e022

Browse files
jones-drewAlexandre Ghiti
authored andcommitted
riscv: Annotate unaligned access init functions
Several functions used in unaligned access probing are only run at init time. Annotate them appropriately. Fixes: f413aae ("riscv: Set unaligned access speed at compile time") Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com> Signed-off-by: Andrew Jones <ajones@ventanamicro.com> Link: https://lore.kernel.org/r/20250304120014.143628-11-ajones@ventanamicro.com Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
1 parent 4701f33 commit a00e022

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

arch/riscv/include/asm/cpufeature.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ void __init riscv_user_isa_enable(void);
6363
#define __RISCV_ISA_EXT_SUPERSET_VALIDATE(_name, _id, _sub_exts, _validate) \
6464
_RISCV_ISA_EXT_DATA(_name, _id, _sub_exts, ARRAY_SIZE(_sub_exts), _validate)
6565

66-
bool check_unaligned_access_emulated_all_cpus(void);
66+
bool __init check_unaligned_access_emulated_all_cpus(void);
6767
#if defined(CONFIG_RISCV_SCALAR_MISALIGNED)
6868
void check_unaligned_access_emulated(struct work_struct *work __always_unused);
6969
void unaligned_emulation_finish(void);
@@ -76,7 +76,7 @@ static inline bool unaligned_ctl_available(void)
7676
}
7777
#endif
7878

79-
bool check_vector_unaligned_access_emulated_all_cpus(void);
79+
bool __init check_vector_unaligned_access_emulated_all_cpus(void);
8080
#if defined(CONFIG_RISCV_VECTOR_MISALIGNED)
8181
void check_vector_unaligned_access_emulated(struct work_struct *work __always_unused);
8282
DECLARE_PER_CPU(long, vector_misaligned_access);

arch/riscv/kernel/traps_misaligned.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,7 @@ void check_vector_unaligned_access_emulated(struct work_struct *work __always_un
605605
kernel_vector_end();
606606
}
607607

608-
bool check_vector_unaligned_access_emulated_all_cpus(void)
608+
bool __init check_vector_unaligned_access_emulated_all_cpus(void)
609609
{
610610
int cpu;
611611

@@ -625,7 +625,7 @@ bool check_vector_unaligned_access_emulated_all_cpus(void)
625625
return true;
626626
}
627627
#else
628-
bool check_vector_unaligned_access_emulated_all_cpus(void)
628+
bool __init check_vector_unaligned_access_emulated_all_cpus(void)
629629
{
630630
return false;
631631
}
@@ -659,7 +659,7 @@ void check_unaligned_access_emulated(struct work_struct *work __always_unused)
659659
}
660660
}
661661

662-
bool check_unaligned_access_emulated_all_cpus(void)
662+
bool __init check_unaligned_access_emulated_all_cpus(void)
663663
{
664664
int cpu;
665665

@@ -684,7 +684,7 @@ bool unaligned_ctl_available(void)
684684
return unaligned_ctl;
685685
}
686686
#else
687-
bool check_unaligned_access_emulated_all_cpus(void)
687+
bool __init check_unaligned_access_emulated_all_cpus(void)
688688
{
689689
return false;
690690
}

arch/riscv/kernel/unaligned_access_speed.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ static int check_unaligned_access(void *param)
121121
return 0;
122122
}
123123

124-
static void check_unaligned_access_nonboot_cpu(void *param)
124+
static void __init check_unaligned_access_nonboot_cpu(void *param)
125125
{
126126
unsigned int cpu = smp_processor_id();
127127
struct page **pages = param;
@@ -175,7 +175,7 @@ static void set_unaligned_access_static_branches(void)
175175
modify_unaligned_access_branches(&fast_and_online, num_online_cpus());
176176
}
177177

178-
static int lock_and_set_unaligned_access_static_branch(void)
178+
static int __init lock_and_set_unaligned_access_static_branch(void)
179179
{
180180
cpus_read_lock();
181181
set_unaligned_access_static_branches();
@@ -218,7 +218,7 @@ static int riscv_offline_cpu(unsigned int cpu)
218218
}
219219

220220
/* Measure unaligned access speed on all CPUs present at boot in parallel. */
221-
static int check_unaligned_access_speed_all_cpus(void)
221+
static int __init check_unaligned_access_speed_all_cpus(void)
222222
{
223223
unsigned int cpu;
224224
unsigned int cpu_count = num_possible_cpus();
@@ -264,7 +264,7 @@ static int check_unaligned_access_speed_all_cpus(void)
264264
return 0;
265265
}
266266
#else /* CONFIG_RISCV_PROBE_UNALIGNED_ACCESS */
267-
static int check_unaligned_access_speed_all_cpus(void)
267+
static int __init check_unaligned_access_speed_all_cpus(void)
268268
{
269269
return 0;
270270
}
@@ -379,7 +379,7 @@ static int riscv_online_cpu_vec(unsigned int cpu)
379379
}
380380

381381
/* Measure unaligned access speed on all CPUs present at boot in parallel. */
382-
static int vec_check_unaligned_access_speed_all_cpus(void *unused __always_unused)
382+
static int __init vec_check_unaligned_access_speed_all_cpus(void *unused __always_unused)
383383
{
384384
schedule_on_each_cpu(check_vector_unaligned_access);
385385

@@ -393,13 +393,13 @@ static int vec_check_unaligned_access_speed_all_cpus(void *unused __always_unuse
393393
return 0;
394394
}
395395
#else /* CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS */
396-
static int vec_check_unaligned_access_speed_all_cpus(void *unused __always_unused)
396+
static int __init vec_check_unaligned_access_speed_all_cpus(void *unused __always_unused)
397397
{
398398
return 0;
399399
}
400400
#endif
401401

402-
static int check_unaligned_access_all_cpus(void)
402+
static int __init check_unaligned_access_all_cpus(void)
403403
{
404404
bool all_cpus_emulated, all_cpus_vec_unsupported;
405405

0 commit comments

Comments
 (0)