Re: [PATCH v17 2/6] crash: add a new kexec flag for hotplug support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Baoquan,

On 29/02/24 12:58, Baoquan He wrote:
On 02/26/24 at 02:11pm, Sourabh Jain wrote:
......snip...
diff --git a/kernel/crash_core.c b/kernel/crash_core.c
index 70fa8111a9d6..630c4fd7ea39 100644
--- a/kernel/crash_core.c
+++ b/kernel/crash_core.c
@@ -496,7 +496,7 @@ static DEFINE_MUTEX(__crash_hotplug_lock);
   * It reflects the kernel's ability/permission to update the crash
   * elfcorehdr directly.
      ~~~~~~~~~ this should be updated too.

Yes, it should.

Thanks,
Sourabh

   */
-int crash_check_update_elfcorehdr(void)
+int crash_check_hotplug_support(void)
  {
  	int rc = 0;
@@ -508,10 +508,7 @@ int crash_check_update_elfcorehdr(void)
  		return 0;
  	}
  	if (kexec_crash_image) {
-		if (kexec_crash_image->file_mode)
-			rc = 1;
-		else
-			rc = kexec_crash_image->update_elfcorehdr;
+		rc = kexec_crash_image->hotplug_support;
  	}
  	/* Release lock now that update complete */
  	kexec_unlock();
@@ -552,8 +549,8 @@ static void crash_handle_hotplug_event(unsigned int hp_action, unsigned int cpu,
image = kexec_crash_image; - /* Check that updating elfcorehdr is permitted */
-	if (!(image->file_mode || image->update_elfcorehdr))
+	/* Check that kexec segments update is permitted */
+	if (!image->hotplug_support)
  		goto out;
if (hp_action == KEXEC_CRASH_HP_ADD_CPU ||
diff --git a/kernel/kexec.c b/kernel/kexec.c
index bab542fc1463..a6b3f96bb50c 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -135,8 +135,8 @@ static int do_kexec_load(unsigned long entry, unsigned long nr_segments,
  		image->preserve_context = 1;
#ifdef CONFIG_CRASH_HOTPLUG
-	if (flags & KEXEC_UPDATE_ELFCOREHDR)
-		image->update_elfcorehdr = 1;
+	if ((flags & KEXEC_ON_CRASH) && arch_crash_hotplug_support(image, flags))
+		image->hotplug_support = 1;
  #endif
ret = machine_kexec_prepare(image);
diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
index 2d1db05fbf04..3d64290d24c9 100644
--- a/kernel/kexec_file.c
+++ b/kernel/kexec_file.c
@@ -376,6 +376,11 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd,
  	if (ret)
  		goto out;
+#ifdef CONFIG_CRASH_HOTPLUG
+	if ((flags & KEXEC_FILE_ON_CRASH) && arch_crash_hotplug_support(image, flags))
+		image->hotplug_support = 1;
+#endif
+
  	ret = machine_kexec_prepare(image);
  	if (ret)
  		goto out;
Other than the tiny part, the overall looks good to me.

Acked-by: Baoquan He <bhe@xxxxxxxxxx>



_______________________________________________
kexec mailing list
kexec@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/kexec



[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux