x86/kexec: Use named labels in swap_pages in relocate_kernel_64.S

Make the code a little more readable.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Kai Huang <kai.huang@intel.com>
Cc: Baoquan He <bhe@redhat.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Dave Young <dyoung@redhat.com>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Link: https://lore.kernel.org/r/20241205153343.3275139-4-dwmw2@infradead.org
This commit is contained in:
David Woodhouse 2024-12-05 15:05:09 +00:00 committed by Ingo Molnar
parent 207bdf7f72
commit 46d4e205e2

View File

@ -279,31 +279,31 @@ SYM_CODE_START_LOCAL_NOALIGN(swap_pages)
movq %rdi, %rcx /* Put the indirection_page in %rcx */
xorl %edi, %edi
xorl %esi, %esi
jmp 1f
jmp .Lstart /* Should start with an indirection record */
0: /* top, read another word for the indirection page */
.Lloop: /* top, read another word for the indirection page */
movq (%rbx), %rcx
addq $8, %rbx
1:
.Lstart:
testb $0x1, %cl /* is it a destination page? */
jz 2f
jz .Lnotdest
movq %rcx, %rdi
andq $0xfffffffffffff000, %rdi
jmp 0b
2:
jmp .Lloop
.Lnotdest:
testb $0x2, %cl /* is it an indirection page? */
jz 2f
jz .Lnotind
movq %rcx, %rbx
andq $0xfffffffffffff000, %rbx
jmp 0b
2:
jmp .Lloop
.Lnotind:
testb $0x4, %cl /* is it the done indicator? */
jz 2f
jmp 3f
2:
jz .Lnotdone
jmp .Ldone
.Lnotdone:
testb $0x8, %cl /* is it the source indicator? */
jz 0b /* Ignore it otherwise */
jz .Lloop /* Ignore it otherwise */
movq %rcx, %rsi /* For ever source page do a copy */
andq $0xfffffffffffff000, %rsi
@ -328,8 +328,8 @@ SYM_CODE_START_LOCAL_NOALIGN(swap_pages)
rep ; movsq
lea PAGE_SIZE(%rax), %rsi
jmp 0b
3:
jmp .Lloop
.Ldone:
ANNOTATE_UNRET_SAFE
ret
int3