lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <07e0d775-6bb7-051b-9ec9-71153efbdf21@xen0n.name>
Date:   Fri, 2 Dec 2022 16:25:09 +0800
From:   WANG Xuerui <kernel@...0n.name>
To:     Bibo Mao <maobibo@...ngson.cn>, Huacai Chen <chenhuacai@...nel.org>
Cc:     loongarch@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] LoongArch: export symbol with function
 smp_send_reschedule

On 2022/12/2 15:58, Bibo Mao wrote:
> Function smp_send_reschedule is standard kernel ABI, which is
> defined header file include/linux/smp.h, however on LoongArch
> it is defined as inline function, so that kernel module can
> not use this function.
> 
> Now define smp_send_reschedule as general function, and add
> EXPORT_SYMBOL_GPL on this function, so that kernel modules can
> use it.
> 
> Signed-off-by: Bibo Mao <maobibo@...ngson.cn>
> ---
>   arch/loongarch/include/asm/smp.h | 10 ----------
>   arch/loongarch/kernel/smp.c      | 11 +++++++++++
>   2 files changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/loongarch/include/asm/smp.h b/arch/loongarch/include/asm/smp.h
> index 3dd172d9ffea..d82687390b4a 100644
> --- a/arch/loongarch/include/asm/smp.h
> +++ b/arch/loongarch/include/asm/smp.h
> @@ -78,16 +78,6 @@ extern void calculate_cpu_foreign_map(void);
>    */
>   extern void show_ipi_list(struct seq_file *p, int prec);
>   
> -/*
> - * This function sends a 'reschedule' IPI to another CPU.
> - * it goes straight through and wastes no time serializing
> - * anything. Worst case is that we lose a reschedule ...
> - */
> -static inline void smp_send_reschedule(int cpu)
> -{
> -	loongson_send_ipi_single(cpu, SMP_RESCHEDULE);
> -}
> -
>   static inline void arch_send_call_function_single_ipi(int cpu)
>   {
>   	loongson_send_ipi_single(cpu, SMP_CALL_FUNCTION);
> diff --git a/arch/loongarch/kernel/smp.c b/arch/loongarch/kernel/smp.c
> index 6ed72f7ff278..51dd3c3f06cb 100644
> --- a/arch/loongarch/kernel/smp.c
> +++ b/arch/loongarch/kernel/smp.c
> @@ -141,6 +141,17 @@ void loongson_send_ipi_single(int cpu, unsigned int action)
>   	ipi_write_action(cpu_logical_map(cpu), (u32)action);
>   }
>   
> +/*
> + * This function sends a 'reschedule' IPI to another CPU.
> + * it goes straight through and wastes no time serializing
> + * anything. Worst case is that we lose a reschedule ...
> + */
> +void smp_send_reschedule(int cpu)
> +{
> +	loongson_send_ipi_single(cpu, SMP_RESCHEDULE);
> +}
> +EXPORT_SYMBOL_GPL(smp_send_reschedule);
> +

While the change is in itself okay (one less case of mips legacy, 
getting in line with ia64, powerpc and riscv that all EXPORT_SYMBOL_GPL 
this), I'd suggest you batch this patch with the subsequent changes you 
plan to enable with this one, so reviewers would have more context and 
hopefully avoid churn. (I, by my familiarity with Loongson and LoongArch 
development, know you're probably aiming to use this with KVM, but 
others probably don't know, and again it's always better to have more 
context.)

>   void loongson_send_ipi_mask(const struct cpumask *mask, unsigned int action)
>   {
>   	unsigned int i;

-- 
WANG "xen0n" Xuerui

Linux/LoongArch mailing list: https://lore.kernel.org/loongarch/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ