]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Revert "riscv: kdump: fix crashkernel reserving problem on RISC-V"
authorMingzheng Xing <xingmingzheng@iscas.ac.cn>
Tue, 30 Apr 2024 03:24:03 +0000 (11:24 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 May 2024 14:32:50 +0000 (16:32 +0200)
This reverts commit 1d6cd2146c2b58bc91266db1d5d6a5f9632e14c0 which was
mistakenly added into v6.6.y and the commit corresponding to the 'Fixes:'
tag is invalid. For more information, see link [1].

This will result in the loss of Crashkernel data in /proc/iomem, and kdump
failed:

```
Memory for crashkernel is not reserved
Please reserve memory by passing"crashkernel=Y@X" parameter to kernel
Then try to loading kdump kernel
```

After revert, kdump works fine. Tested on QEMU riscv.

Link: https://lore.kernel.org/linux-riscv/ZSiQRDGLZk7lpakE@MiWiFi-R3L-srv
Cc: Baoquan He <bhe@redhat.com>
Cc: Chen Jiahao <chenjiahao16@huawei.com>
Signed-off-by: Mingzheng Xing <xingmingzheng@iscas.ac.cn>
Acked-by: Baoquan He <bhe@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/riscv/kernel/setup.c

index aac853ae4eb74e8e228551eb94720611e241c32c..e600aab116a4093a5a45285f3e14e32e917f54ba 100644 (file)
@@ -173,6 +173,19 @@ static void __init init_resources(void)
        if (ret < 0)
                goto error;
 
+#ifdef CONFIG_KEXEC_CORE
+       if (crashk_res.start != crashk_res.end) {
+               ret = add_resource(&iomem_resource, &crashk_res);
+               if (ret < 0)
+                       goto error;
+       }
+       if (crashk_low_res.start != crashk_low_res.end) {
+               ret = add_resource(&iomem_resource, &crashk_low_res);
+               if (ret < 0)
+                       goto error;
+       }
+#endif
+
 #ifdef CONFIG_CRASH_DUMP
        if (elfcorehdr_size > 0) {
                elfcorehdr_res.start = elfcorehdr_addr;