diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S index e2074cd4fff4dd4ba1d7cfcd5077318fbc3ec37c..58254fd1999d47a59f21ad78d7bf6a3c64b4e4ac 100644 --- a/arch/loongarch/kernel/head.S +++ b/arch/loongarch/kernel/head.S @@ -34,6 +34,7 @@ SYM_DATA(kernel_offset, .long kernel_offset - _text); __REF +.align 12 SYM_CODE_START(kernel_entry) # kernel entry point /* Config direct window and set PG */ diff --git a/arch/loongarch/power/suspend_asm.S b/arch/loongarch/power/suspend_asm.S index 781e38cd35e7e2a1889d69fb80bd1d5889674f7d..ceac577c3794a73df7ececdc7faf12b63e05568a 100644 --- a/arch/loongarch/power/suspend_asm.S +++ b/arch/loongarch/power/suspend_asm.S @@ -106,12 +106,16 @@ SYM_CODE_END(loongarch_suspend_enter) /* This is where we return upon wakeup. * Reload all of the registers and return. */ + .align 12 SYM_CODE_START(loongarch_wakeup_start) li.d t0, CSR_DMW0_INIT # UC, PLV0 csrwr t0, LOONGARCH_CSR_DMWIN0 li.d t0, CSR_DMW1_INIT # CA, PLV0 csrwr t0, LOONGARCH_CSR_DMWIN1 + la.abs t0, 0f + jirl zero, t0, 0 +0: la.pcrel t0, acpi_saved_sp ld.d sp, t0, 0 SETUP_WAKEUP