<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in machine_kexec.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>bad6722e - kexec: Consolidate machine_kexec_mask_interrupts() implementation</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#bad6722e</link>
        <description>kexec: Consolidate machine_kexec_mask_interrupts() implementationConsolidate the machine_kexec_mask_interrupts implementation into a commonfunction located in a new file: kernel/irq/kexec.c. This removes duplicateimplementations from architecture-specific files in arch/arm, arch/arm64,arch/powerpc, and arch/riscv, reducing code duplication and improvingmaintainability.The new implementation retains architecture-specific behavior forCONFIG_GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD, which was previously implementedfor ARM64. When enabled (currently for ARM64), it clears the active stateof interrupts forwarded to virtual machines (VMs) before handling otherinterrupt masking operations.Signed-off-by: Eliav Farber &lt;farbere@amazon.com&gt;Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Link: https://lore.kernel.org/all/20241204142003.32859-2-farbere@amazon.com

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Wed, 04 Dec 2024 14:20:02 +0000</pubDate>
        <dc:creator>Eliav Farber &lt;farbere@amazon.com&gt;</dc:creator>
    </item>
<item>
        <title>40254101 - arm64, crash: wrap crash dumping code into crash related ifdefs</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#40254101</link>
        <description>arm64, crash: wrap crash dumping code into crash related ifdefsNow crash codes under kernel/ folder has been split out from kexeccode, crash dumping can be separated from kexec reboot in configitems on arm64 with some adjustments.Here wrap up crash dumping codes with CONFIG_CRASH_DUMP ifdeffery.[bhe@redhat.com: fix building error in generic codes]  Link: https://lkml.kernel.org/r/20240129135033.157195-2-bhe@redhat.comLink: https://lkml.kernel.org/r/20240124051254.67105-8-bhe@redhat.comSigned-off-by: Baoquan He &lt;bhe@redhat.com&gt;Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;Cc: Eric W. Biederman &lt;ebiederm@xmission.com&gt;Cc: Hari Bathini &lt;hbathini@linux.ibm.com&gt;Cc: Pingfan Liu &lt;piliu@redhat.com&gt;Cc: Klara Modin &lt;klarasmodin@gmail.com&gt;Cc: Michael Kelley &lt;mhklinux@outlook.com&gt;Cc: Nathan Chancellor &lt;nathan@kernel.org&gt;Cc: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;Cc: Yang Li &lt;yang.lee@linux.alibaba.com&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Wed, 24 Jan 2024 05:12:47 +0000</pubDate>
        <dc:creator>Baoquan He &lt;bhe@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>6f8c1da0 - kexec_file, arm64: print out debugging message if required</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#6f8c1da0</link>
        <description>kexec_file, arm64: print out debugging message if requiredThen when specifying &apos;-d&apos; for kexec_file_load interface, loaded locationsof kernel/initrd/cmdline etc can be printed out to help debug.Here replace pr_debug() with the newly added kexec_dprintk() in kexec_fileloading related codes.And also remove the kimage-&gt;segment[] printing because the generic codehas done the printing.Link: https://lkml.kernel.org/r/20231213055747.61826-5-bhe@redhat.comSigned-off-by: Baoquan He &lt;bhe@redhat.com&gt;Cc: Conor Dooley &lt;conor@kernel.org&gt;Cc: Joe Perches &lt;joe@perches.com&gt;Cc: Nathan Chancellor &lt;nathan@kernel.org&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Wed, 13 Dec 2023 05:57:44 +0000</pubDate>
        <dc:creator>Baoquan He &lt;bhe@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>b7b4ce84 - arm64: kexec: include reboot.h</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#b7b4ce84</link>
        <description>arm64: kexec: include reboot.hInclude reboot.h in machine_kexec.c for declaration ofmachine_crash_shutdown.gcc-12 with W=1 reports: arch/arm64/kernel/machine_kexec.c:257:6: warning: no previous prototype for &apos;machine_crash_shutdown&apos; [-Wmissing-prototypes]   257 | void machine_crash_shutdown(struct pt_regs *regs)No functional changes intended.Compile tested only.Signed-off-by: Simon Horman &lt;horms@kernel.org&gt;Link: https://lore.kernel.org/r/20230418-arm64-kexec-include-reboot-v1-1-8453fd4fb3fb@kernel.orgSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Tue, 18 Apr 2023 11:54:00 +0000</pubDate>
        <dc:creator>Simon Horman &lt;horms@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>0d124e96 - arm64: kdump : take off the protection on crashkernel memory region</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#0d124e96</link>
        <description>arm64: kdump : take off the protection on crashkernel memory regionProblem:=======On arm64, block and section mapping is supported to build page tables.However, currently it enforces to take base page mapping for the wholelinear mapping if CONFIG_ZONE_DMA or CONFIG_ZONE_DMA32 is enabled andcrashkernel kernel parameter is set. This will cause longer time of thelinear mapping process during bootup and severe performance degradationduring running time.Root cause:==========On arm64, crashkernel reservation relies on knowing the upper limit oflow memory zone because it needs to reserve memory in the zone so thatdevices&apos; DMA addressing in kdump kernel can be satisfied. However, theupper limit of low memory on arm64 is variant. And the upper limit canonly be decided late till bootmem_init() is called [1].And we need to map the crashkernel region with base page granularity whendoing linear mapping, because kdump needs to protect the crashkernel regionvia set_memory_valid(,0) after kdump kernel loading. However, arm64 doesn&apos;tsupport well on splitting the built block or section mapping due to somecpu reststriction [2]. And unfortunately, the linear mapping is done beforebootmem_init().To resolve the above conflict on arm64, the compromise is enforcing totake base page mapping for the entire linear mapping if crashkernel isset, and CONFIG_ZONE_DMA or CONFIG_ZONE_DMA32 is enabed. Henceperformance is sacrificed.Solution:=========Comparing with the base page mapping for the whole linear region, it&apos;sbetter to take off the protection on crashkernel memory region for thetime being because the anticipated stamping on crashkernel memory regioncould only happen in a chance in one million, while the base page mappingfor the whole linear region is mitigating arm64 systems with crashkernelset always.[1]https://lore.kernel.org/all/YrIIJkhKWSuAqkCx@arm.com/T/#u[2]https://lore.kernel.org/linux-arm-kernel/20190911182546.17094-1-nsaenzjulienne@suse.de/T/Signed-off-by: Baoquan He &lt;bhe@redhat.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Acked-by: Mike Rapoport (IBM) &lt;rppt@kernel.org&gt;Reviewed-by: Zhen Lei &lt;thunder.leizhen@huawei.com&gt;Link: https://lore.kernel.org/r/20230407011507.17572-2-bhe@redhat.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Fri, 07 Apr 2023 01:15:05 +0000</pubDate>
        <dc:creator>Baoquan He &lt;bhe@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>6915cffd - arm64: kexec: remove unnecessary (void*) conversions</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#6915cffd</link>
        <description>arm64: kexec: remove unnecessary (void*) conversionsPointer variables of void * type do not require type cast.Signed-off-by: Yu Zhe &lt;yuzhe@nfschina.com&gt;Link: https://lore.kernel.org/r/20230303025715.32570-1-yuzhe@nfschina.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Fri, 03 Mar 2023 02:57:15 +0000</pubDate>
        <dc:creator>Yu Zhe &lt;yuzhe@nfschina.com&gt;</dc:creator>
    </item>
<item>
        <title>607289a7 - treewide: Drop function_nocfi</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#607289a7</link>
        <description>treewide: Drop function_nocfiWith -fsanitize=kcfi, we no longer need function_nocfi() asthe compiler won&apos;t change function references to point to ajump table. Remove all implementations and uses of the macro.Signed-off-by: Sami Tolvanen &lt;samitolvanen@google.com&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Tested-by: Kees Cook &lt;keescook@chromium.org&gt;Tested-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Acked-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Tested-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;Link: https://lore.kernel.org/r/20220908215504.3686827-14-samitolvanen@google.com

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 08 Sep 2022 21:54:55 +0000</pubDate>
        <dc:creator>Sami Tolvanen &lt;samitolvanen@google.com&gt;</dc:creator>
    </item>
<item>
        <title>944a45ab - arm64: kdump: Reimplement crashkernel=X</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#944a45ab</link>
        <description>arm64: kdump: Reimplement crashkernel=XThere are following issues in arm64 kdump:1. We use crashkernel=X to reserve crashkernel in DMA zone, whichwill fail when there is not enough low memory.2. If reserving crashkernel above DMA zone, in this case, crash dumpkernel will fail to boot because there is no low memory availablefor allocation.To solve these issues, introduce crashkernel=X,[high,low].The &quot;crashkernel=X,high&quot; is used to select a region above DMA zone, andthe &quot;crashkernel=Y,low&quot; is used to allocate specified size low memory.Signed-off-by: Chen Zhou &lt;chenzhou10@huawei.com&gt;Co-developed-by: Zhen Lei &lt;thunder.leizhen@huawei.com&gt;Signed-off-by: Zhen Lei &lt;thunder.leizhen@huawei.com&gt;Link: https://lore.kernel.org/r/20220506114402.365-4-thunder.leizhen@huawei.comSigned-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Fri, 06 May 2022 11:43:59 +0000</pubDate>
        <dc:creator>Chen Zhou &lt;chenzhou10@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>7afccde3 - arm64: kexec: reduce calls to page_address()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#7afccde3</link>
        <description>arm64: kexec: reduce calls to page_address()In kexec_page_alloc(), page_address() is called twice.This patch add a new variable to help to reduce callsto page_address().Signed-off-by: Rongwei Wang &lt;rongwei.wang@linux.alibaba.com&gt;Link: https://lore.kernel.org/r/20211125170600.1608-3-rongwei.wang@linux.alibaba.comSigned-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 25 Nov 2021 17:06:00 +0000</pubDate>
        <dc:creator>Rongwei Wang &lt;rongwei.wang@linux.alibaba.com&gt;</dc:creator>
    </item>
<item>
        <title>2f218324 - arm64: kexec: use __pa_symbol(empty_zero_page)</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#2f218324</link>
        <description>arm64: kexec: use __pa_symbol(empty_zero_page)In machine_kexec_post_load() we use __pa() on `empty_zero_page`, so thatwe can use the physical address during arm64_relocate_new_kernel() toswitch TTBR1 to a new set of tables. While `empty_zero_page` is part ofthe old kernel, we won&apos;t clobber it until after this switch, so using itis benign.However, `empty_zero_page` is part of the kernel image rather than alinear map address, so it is not correct to use __pa(x), and we shouldinstead use __pa_symbol(x) or __pa(lm_alias(x)). Otherwise, when thekernel is built with DEBUG_VIRTUAL, we&apos;ll encounter splats as below, asI&apos;ve seen when fuzzing v5.16-rc3 with Syzkaller:| ------------[ cut here ]------------| virt_to_phys used for non-linear address: 000000008492561a (empty_zero_page+0x0/0x1000)| WARNING: CPU: 3 PID: 11492 at arch/arm64/mm/physaddr.c:15 __virt_to_phys+0x120/0x1c0 arch/arm64/mm/physaddr.c:12| CPU: 3 PID: 11492 Comm: syz-executor.0 Not tainted 5.16.0-rc3-00001-g48bd452a045c #1| Hardware name: linux,dummy-virt (DT)| pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)| pc : __virt_to_phys+0x120/0x1c0 arch/arm64/mm/physaddr.c:12| lr : __virt_to_phys+0x120/0x1c0 arch/arm64/mm/physaddr.c:12| sp : ffff80001af17bb0| x29: ffff80001af17bb0 x28: ffff1cc65207b400 x27: ffffb7828730b120| x26: 0000000000000e11 x25: 0000000000000000 x24: 0000000000000001| x23: ffffb7828963e000 x22: ffffb78289644000 x21: 0000600000000000| x20: 000000000000002d x19: 0000b78289644000 x18: 0000000000000000| x17: 74706d6528206131 x16: 3635323934383030 x15: 303030303030203a| x14: 1ffff000035e2eb8 x13: ffff6398d53f4f0f x12: 1fffe398d53f4f0e| x11: 1fffe398d53f4f0e x10: ffff6398d53f4f0e x9 : ffffb7827c6f76dc| x8 : ffff1cc6a9fa7877 x7 : 0000000000000001 x6 : ffff6398d53f4f0f| x5 : 0000000000000000 x4 : 0000000000000000 x3 : ffff1cc66f2a99c0| x2 : 0000000000040000 x1 : d7ce7775b09b5d00 x0 : 0000000000000000| Call trace:|  __virt_to_phys+0x120/0x1c0 arch/arm64/mm/physaddr.c:12|  machine_kexec_post_load+0x284/0x670 arch/arm64/kernel/machine_kexec.c:150|  do_kexec_load+0x570/0x670 kernel/kexec.c:155|  __do_sys_kexec_load kernel/kexec.c:250 [inline]|  __se_sys_kexec_load kernel/kexec.c:231 [inline]|  __arm64_sys_kexec_load+0x1d8/0x268 kernel/kexec.c:231|  __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]|  invoke_syscall+0x90/0x2e0 arch/arm64/kernel/syscall.c:52|  el0_svc_common.constprop.2+0x1e4/0x2f8 arch/arm64/kernel/syscall.c:142|  do_el0_svc+0xf8/0x150 arch/arm64/kernel/syscall.c:181|  el0_svc+0x60/0x248 arch/arm64/kernel/entry-common.c:603|  el0t_64_sync_handler+0x90/0xb8 arch/arm64/kernel/entry-common.c:621|  el0t_64_sync+0x180/0x184 arch/arm64/kernel/entry.S:572| irq event stamp: 2428| hardirqs last  enabled at (2427): [&lt;ffffb7827c6f2308&gt;] __up_console_sem+0xf0/0x118 kernel/printk/printk.c:255| hardirqs last disabled at (2428): [&lt;ffffb7828223df98&gt;] el1_dbg+0x28/0x80 arch/arm64/kernel/entry-common.c:375| softirqs last  enabled at (2424): [&lt;ffffb7827c411c00&gt;] softirq_handle_end kernel/softirq.c:401 [inline]| softirqs last  enabled at (2424): [&lt;ffffb7827c411c00&gt;] __do_softirq+0xa28/0x11e4 kernel/softirq.c:587| softirqs last disabled at (2417): [&lt;ffffb7827c59015c&gt;] do_softirq_own_stack include/asm-generic/softirq_stack.h:10 [inline]| softirqs last disabled at (2417): [&lt;ffffb7827c59015c&gt;] invoke_softirq kernel/softirq.c:439 [inline]| softirqs last disabled at (2417): [&lt;ffffb7827c59015c&gt;] __irq_exit_rcu kernel/softirq.c:636 [inline]| softirqs last disabled at (2417): [&lt;ffffb7827c59015c&gt;] irq_exit_rcu+0x53c/0x688 kernel/softirq.c:648| ---[ end trace 0ca578534e7ca938 ]---With or without DEBUG_VIRTUAL __pa() will fall back to __kimg_to_phys()for non-linear addresses, and will happen to do the right thing in thiscase, even with the warning. But we should not depend upon this, and tokeep the warning useful we should fix this case.Fix this issue by using __pa_symbol(), which handles kernel imageaddresses (and checks its input is a kernel image address). This matcheswhat we do elsewhere, e.g. in arch/arm64/include/asm/pgtable.h:| #define ZERO_PAGE(vaddr)       phys_to_page(__pa_symbol(empty_zero_page))Fixes: 3744b5280e67 (&quot;arm64: kexec: install a copy of the linear-map&quot;)Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Cc: James Morse &lt;james.morse@arm.com&gt;Cc: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Cc: Will Deacon &lt;will@kernel.org&gt;Reviewed-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Link: https://lore.kernel.org/r/20211130121849.3319010-1-mark.rutland@arm.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Tue, 30 Nov 2021 12:18:49 +0000</pubDate>
        <dc:creator>Mark Rutland &lt;mark.rutland@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>7a2512fa - arm64: kexec: remove cpu-reset.h</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#7a2512fa</link>
        <description>arm64: kexec: remove cpu-reset.hThis header contains only cpu_soft_restart() which is never used directlyanymore. So, remove this header, and rename the helper to becpu_soft_restart().Suggested-by: James Morse &lt;james.morse@arm.com&gt;Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-15-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:12 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
<item>
        <title>939f1b95 - arm64: kexec: remove the pre-kexec PoC maintenance</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#939f1b95</link>
        <description>arm64: kexec: remove the pre-kexec PoC maintenanceNow that kexec does its relocations with the MMU enabled, we no longerneed to clean the relocation data to the PoC.Suggested-by: James Morse &lt;james.morse@arm.com&gt;Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-14-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:11 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
<item>
        <title>efc2d0f2 - arm64: kexec: keep MMU enabled during kexec relocation</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#efc2d0f2</link>
        <description>arm64: kexec: keep MMU enabled during kexec relocationNow, that we have linear map page tables configured, keep MMU enabledto allow faster relocation of segments to final destination.Cavium ThunderX2:Kernel Image size: 38M Iniramfs size: 46M Total relocation size: 84MMMU-disabled:relocation	7.489539915sMMU-enabled:relocation	0.03946095sBroadcom Stingray:The performance data: for a moderate size kernel + initramfs: 25M therelocation was taking 0.382s, with enabled MMU it now takes0.019s only or x20 improvement.The time is proportional to the size of relocation, therefore if initramfsis larger, 100M it could take over a second.Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Tested-by: Pingfan Liu &lt;piliu@redhat.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-13-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:10 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
<item>
        <title>3744b528 - arm64: kexec: install a copy of the linear-map</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#3744b528</link>
        <description>arm64: kexec: install a copy of the linear-mapTo perform the kexec relocation with the MMU enabled, we need a copyof the linear map.Create one, and install it from the relocation code. This has to be donefrom the assembly code as it will be idmapped with TTBR0. The kernelruns in TTRB1, so can&apos;t use the break-before-make sequence on the mappingit is executing from.The makes no difference yet as the relocation code runs with the MMUdisabled.Suggested-by: James Morse &lt;james.morse@arm.com&gt;Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-12-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:09 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
<item>
        <title>19a046f0 - arm64: kexec: use ld script for relocation function</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#19a046f0</link>
        <description>arm64: kexec: use ld script for relocation functionCurrently, relocation code declares start and end variableswhich are used to compute its size.The better way to do this is to use ld script, and put relocationfunction in its own section.Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-11-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:08 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
<item>
        <title>ba959fe9 - arm64: kexec: relocate in EL1 mode</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#ba959fe9</link>
        <description>arm64: kexec: relocate in EL1 modeSince we are going to keep MMU enabled during relocation, we need tokeep EL1 mode throughout the relocation.Keep EL1 enabled, and switch EL2 only before entering the new world.Suggested-by: James Morse &lt;james.morse@arm.com&gt;Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-10-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:07 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
<item>
        <title>08eae0ef - arm64: kexec: configure EL2 vectors for kexec</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#08eae0ef</link>
        <description>arm64: kexec: configure EL2 vectors for kexecIf we have a EL2 mode without VHE, the EL2 vectors are needed in orderto switch to EL2 and jump to new world with hypervisor privileges.In preparation to MMU enabled relocation, configure our EL2 table now.Kexec uses #HVC_SOFT_RESTART to branch to the new world, so extendel1_sync vector that is provided by trans_pgd_copy_el2_vectors() tosupport this case.Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-9-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:06 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
<item>
        <title>878fdbd7 - arm64: kexec: pass kimage as the only argument to relocation function</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#878fdbd7</link>
        <description>arm64: kexec: pass kimage as the only argument to relocation functionCurrently, kexec relocation function (arm64_relocate_new_kernel) acceptsthe following arguments:head:		start of array that contains relocation information.entry:		entry point for new kernel or purgatory.dtb_mem:	first and only argument to entry.The number of arguments cannot be easily expended, because thisfunction is also called from HVC_SOFT_RESTART, which preserves onlythree arguments. And, also arm64_relocate_new_kernel is written inassembly but called without stack, thus no place to move extra argumentsto free registers.Soon, we will need to pass more arguments: once we enable MMU wewill need to pass information about page tables.Pass kimage to arm64_relocate_new_kernel, and teach it to get therequired fields from kimage.Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-8-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:05 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
<item>
        <title>5bb6834f - arm64: kexec: skip relocation code for inplace kexec</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#5bb6834f</link>
        <description>arm64: kexec: skip relocation code for inplace kexecIn case of kdump or when segments are already in place the relocationis not needed, therefore the setup of relocation function and call toit can be skipped.Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Suggested-by: James Morse &lt;james.morse@arm.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-6-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:03 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
<item>
        <title>0d8732e4 - arm64: kexec: flush image and lists during kexec load time</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm64/kernel/machine_kexec.c#0d8732e4</link>
        <description>arm64: kexec: flush image and lists during kexec load timeCurrently, during kexec load we are copying relocation function andflushing it. However, we can also flush kexec relocation buffers andif new kernel image is already in place (i.e. crash kernel), we canalso flush the new kernel image itself.Signed-off-by: Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Link: https://lore.kernel.org/r/20210930143113.1502553-5-pasha.tatashin@soleen.comSigned-off-by: Will Deacon &lt;will@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm64/kernel/machine_kexec.c</description>
        <pubDate>Thu, 30 Sep 2021 14:31:02 +0000</pubDate>
        <dc:creator>Pasha Tatashin &lt;pasha.tatashin@soleen.com&gt;</dc:creator>
    </item>
</channel>
</rss>
