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 >