All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: linux-kernel@vger.kernel.org, ebiederm@xmission.com
Cc: mingo@kernel.org, tglx@linutronix.de, x86@kernel.org,
	douly.fnst@cn.fujitsu.com, joro@8bytes.org, uobergfe@redhat.com,
	prarit@redhat.com, Baoquan He <bhe@redhat.com>
Subject: [PATCH v5 2/6] x86/apic: Replace disable_IO_APIC for KEXEC_JUMP
Date: Wed, 14 Feb 2018 13:46:52 +0800	[thread overview]
Message-ID: <20180214054656.3780-3-bhe@redhat.com> (raw)
In-Reply-To: <20180214054656.3780-1-bhe@redhat.com>

Later disable_IO_APIC() will be broken down into clear_IO_APIC()
and restore_boot_irq_mode(). These two functions will be called
separately where they are needed to fix a regression introduced
by commit 522e66464467 ("x86/apic: Disable I/O APIC before
shutdown of the local APIC").

While KEXEC_JUMP code doesn't call lapic_shutdown() before jump
like kexec/kdump, so it's not impacted by commit 522e66464467.

Hence here change clear_IO_APIC() as public, and replace disable_IO_APIC()
with clear_IO_APIC() and restore_boot_irq_mode() to keep KEXEC_JUMP
code unchanged in essence. No functional change.

Signed-off-by: Baoquan He <bhe@redhat.com>
---
v4->v5:
  Make this patch to replace disable_IO_APIC() with clear_IO_APIC
  and restore_boot_irq_mode() for KEXEC_JUMP path only. This makes
  patch easier to review according to Eric's suggestion..

 arch/x86/include/asm/io_apic.h     | 1 +
 arch/x86/kernel/apic/io_apic.c     | 2 +-
 arch/x86/kernel/machine_kexec_32.c | 3 ++-
 arch/x86/kernel/machine_kexec_64.c | 3 ++-
 4 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index 558d1a6a13ad..0fa95bfacb39 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -193,6 +193,7 @@ static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg)
 extern void setup_IO_APIC(void);
 extern void enable_IO_APIC(void);
 extern void disable_IO_APIC(void);
+extern void clear_IO_APIC(void);
 extern void restore_boot_irq_mode(void);
 extern int IO_APIC_get_PCI_irq_vector(int bus, int devfn, int pin);
 extern void print_IO_APICs(void);
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 7b73b6b9b4b6..2d7cd2db77f5 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -587,7 +587,7 @@ static void clear_IO_APIC_pin(unsigned int apic, unsigned int pin)
 		       mpc_ioapic_id(apic), pin);
 }
 
-static void clear_IO_APIC (void)
+void clear_IO_APIC (void)
 {
 	int apic, pin;
 
diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
index edfede768688..4cd79d88a4ac 100644
--- a/arch/x86/kernel/machine_kexec_32.c
+++ b/arch/x86/kernel/machine_kexec_32.c
@@ -199,7 +199,8 @@ void machine_kexec(struct kimage *image)
 		 * one form or other. kexec jump path also need
 		 * one.
 		 */
-		disable_IO_APIC();
+		clear_IO_APIC();
+		restore_boot_irq_mode();
 #endif
 	}
 
diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
index 1f790cf9d38f..2ab14b9c1a89 100644
--- a/arch/x86/kernel/machine_kexec_64.c
+++ b/arch/x86/kernel/machine_kexec_64.c
@@ -297,7 +297,8 @@ void machine_kexec(struct kimage *image)
 		 * one form or other. kexec jump path also need
 		 * one.
 		 */
-		disable_IO_APIC();
+		clear_IO_APIC();
+		restore_boot_irq_mode();
 #endif
 	}
 
-- 
2.13.6

  parent reply	other threads:[~2018-02-14  5:47 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-14  5:46 [PATCH v5 0/6] x86/apic: Fix restoring boot irq mode in reboot and kexec/kdump Baoquan He
2018-02-14  5:46 ` [PATCH v5 1/6] x86/apic: Split out restore_boot_irq_mode from disable_IO_APIC Baoquan He
2018-02-17 11:41   ` [tip:x86/apic] x86/apic: Split out restore_boot_irq_mode() from disable_IO_APIC() tip-bot for Baoquan He
2018-02-14  5:46 ` Baoquan He [this message]
2018-02-17 11:41   ` [tip:x86/apic] x86/apic: Split disable_IO_APIC() into two functions to fix CONFIG_KEXEC_JUMP=y tip-bot for Baoquan He
2018-02-14  5:46 ` [PATCH v5 3/6] x86/apic: Fix restoring boot irq mode in reboot and kexec/kdump Baoquan He
2018-02-17 11:42   ` [tip:x86/apic] x86/apic: Fix restoring boot IRQ " tip-bot for Baoquan He
2018-02-14  5:46 ` [PATCH v5 4/6] x86/apic: Remove useless disable_IO_APIC Baoquan He
2018-02-17 11:42   ` [tip:x86/apic] x86/apic: Remove the (now) unused disable_IO_APIC() function tip-bot for Baoquan He
2018-02-14  5:46 ` [PATCH v5 5/6] x86/apic: Rename variable/function related to x86_io_apic_ops Baoquan He
2018-02-17 11:43   ` [tip:x86/apic] x86/apic: Rename variables and functions " tip-bot for Baoquan He
2018-02-14  5:46 ` [PATCH v5 6/6] x86/apic: Set up through-local-APIC on boot CPU if 'noapic' specified Baoquan He
2018-02-17 11:43   ` [tip:x86/apic] x86/apic: Set up through-local-APIC mode on the " tip-bot for Baoquan He
2018-02-16  9:38 ` [PATCH v5 0/6] x86/apic: Fix restoring boot irq mode in reboot and kexec/kdump Ingo Molnar
2018-02-16 10:24   ` Baoquan He
2018-02-17 10:46     ` Ingo Molnar
2018-02-17 11:28       ` Baoquan He
2018-02-16 19:16   ` Eric W. Biederman
2018-02-17 10:17     ` Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180214054656.3780-3-bhe@redhat.com \
    --to=bhe@redhat.com \
    --cc=douly.fnst@cn.fujitsu.com \
    --cc=ebiederm@xmission.com \
    --cc=joro@8bytes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=prarit@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=uobergfe@redhat.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.