Re: [PATCH v2 4/4] LoongArch: Override higher address bits in JUMP_VIRT_ADDR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, Jiaxun,

On Wed, May 22, 2024 at 2:30 PM Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> wrote:
>
> In JUMP_VIRT_ADDR we are performing an or calculation on
> address value directly from pcaddi.
>
> This will only work if we are currently running from direct
> 1:1 mapping addresses or firmware's DMW is configured exactly
> same as kernel. Still, we should not rely on such assumption.
>
> Fix by overriding higher bits in address comes from pcaddi,
> so we can get rid of or operator.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>
> ---
> v2: Overriding address with bstrins
> ---
>  arch/loongarch/include/asm/stackframe.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/loongarch/include/asm/stackframe.h b/arch/loongarch/include/asm/stackframe.h
> index 45b507a7b06f..51dec8b17d16 100644
> --- a/arch/loongarch/include/asm/stackframe.h
> +++ b/arch/loongarch/include/asm/stackframe.h
> @@ -42,7 +42,7 @@
>         .macro JUMP_VIRT_ADDR temp1 temp2
>         li.d    \temp1, CACHE_BASE
>         pcaddi  \temp2, 0
> -       or      \temp1, \temp1, \temp2
> +       bstrins.d       \temp1, \temp2, (DMW_PABITS - 1), 0
>         jirl    zero, \temp1, 0xc
>         .endm
Can we align the first parameter about the first parameter?

Huacai
>
>
> --
> 2.43.0
>





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux