From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> To: linux-kernel@vger.kernel.org Cc: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, rt@linutronix.de, tglx@linutronix.de, Sebastian Andrzej Siewior <bigeasy@linutronix.de>, Tony Luck <tony.luck@intel.com>, Fenghua Yu <fenghua.yu@intel.com>, linux-ia64@vger.kernel.org Subject: [PATCH 04/21] ia64: mca: Convert to hotplug state machine Date: Tue, 6 Sep 2016 19:04:40 +0200 [thread overview] Message-ID: <20160906170457.32393-5-bigeasy@linutronix.de> (raw) In-Reply-To: <20160906170457.32393-1-bigeasy@linutronix.de> Install the callbacks via the state machine and let the core invoke the callbacks on the already online CPUs. Cc: Tony Luck <tony.luck@intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: linux-ia64@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- arch/ia64/kernel/mca.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index eb9220cde76c..c2858865b146 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c @@ -1890,7 +1890,7 @@ ia64_mca_cpu_init(void *cpu_data) PAGE_KERNEL))); } -static void ia64_mca_cmc_vector_adjust(void *dummy) +static int ia64_mca_cpu_online(unsigned int cpu) { unsigned long flags; @@ -1898,25 +1898,9 @@ static void ia64_mca_cmc_vector_adjust(void *dummy) if (!cmc_polling_enabled) ia64_mca_cmc_vector_enable(NULL); local_irq_restore(flags); + return 0; } -static int mca_cpu_callback(struct notifier_block *nfb, - unsigned long action, - void *hcpu) -{ - switch (action) { - case CPU_ONLINE: - case CPU_ONLINE_FROZEN: - ia64_mca_cmc_vector_adjust(NULL); - break; - } - return NOTIFY_OK; -} - -static struct notifier_block mca_cpu_notifier = { - .notifier_call = mca_cpu_callback -}; - /* * ia64_mca_init * @@ -2111,15 +2095,13 @@ ia64_mca_late_init(void) if (!mca_init) return 0; - register_hotcpu_notifier(&mca_cpu_notifier); - /* Setup the CMCI/P vector and handler */ setup_timer(&cmc_poll_timer, ia64_mca_cmc_poll, 0UL); /* Unmask/enable the vector */ cmc_polling_enabled = 0; - schedule_work(&cmc_enable_work); - + cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "ia64/mca:online", + ia64_mca_cpu_online, NULL); IA64_MCA_DEBUG("%s: CMCI/P setup and enabled.\n", __func__); #ifdef CONFIG_ACPI -- 2.9.3
WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> To: linux-kernel@vger.kernel.org Cc: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, rt@linutronix.de, tglx@linutronix.de, Sebastian Andrzej Siewior <bigeasy@linutronix.de>, Tony Luck <tony.luck@intel.com>, Fenghua Yu <fenghua.yu@intel.com>, linux-ia64@vger.kernel.org Subject: [PATCH 04/21] ia64: mca: Convert to hotplug state machine Date: Tue, 06 Sep 2016 17:04:40 +0000 [thread overview] Message-ID: <20160906170457.32393-5-bigeasy@linutronix.de> (raw) In-Reply-To: <20160906170457.32393-1-bigeasy@linutronix.de> Install the callbacks via the state machine and let the core invoke the callbacks on the already online CPUs. Cc: Tony Luck <tony.luck@intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: linux-ia64@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- arch/ia64/kernel/mca.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index eb9220cde76c..c2858865b146 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c @@ -1890,7 +1890,7 @@ ia64_mca_cpu_init(void *cpu_data) PAGE_KERNEL))); } -static void ia64_mca_cmc_vector_adjust(void *dummy) +static int ia64_mca_cpu_online(unsigned int cpu) { unsigned long flags; @@ -1898,25 +1898,9 @@ static void ia64_mca_cmc_vector_adjust(void *dummy) if (!cmc_polling_enabled) ia64_mca_cmc_vector_enable(NULL); local_irq_restore(flags); + return 0; } -static int mca_cpu_callback(struct notifier_block *nfb, - unsigned long action, - void *hcpu) -{ - switch (action) { - case CPU_ONLINE: - case CPU_ONLINE_FROZEN: - ia64_mca_cmc_vector_adjust(NULL); - break; - } - return NOTIFY_OK; -} - -static struct notifier_block mca_cpu_notifier = { - .notifier_call = mca_cpu_callback -}; - /* * ia64_mca_init * @@ -2111,15 +2095,13 @@ ia64_mca_late_init(void) if (!mca_init) return 0; - register_hotcpu_notifier(&mca_cpu_notifier); - /* Setup the CMCI/P vector and handler */ setup_timer(&cmc_poll_timer, ia64_mca_cmc_poll, 0UL); /* Unmask/enable the vector */ cmc_polling_enabled = 0; - schedule_work(&cmc_enable_work); - + cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "ia64/mca:online", + ia64_mca_cpu_online, NULL); IA64_MCA_DEBUG("%s: CMCI/P setup and enabled.\n", __func__); #ifdef CONFIG_ACPI -- 2.9.3
next prev parent reply other threads:[~2016-09-06 17:08 UTC|newest] Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-09-06 17:04 cpu hotplug: convert more drivers (batch #3) Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 01/21] arm64: FP/SIMD: Convert to hotplug state machine Sebastian Andrzej Siewior 2016-09-06 17:04 ` Sebastian Andrzej Siewior 2016-09-06 18:14 ` Will Deacon 2016-09-06 18:14 ` Will Deacon 2016-09-19 19:51 ` [tip:smp/hotplug] arm64/FP/SIMD: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 02/21] ARM: shmobile: " Sebastian Andrzej Siewior 2016-09-06 17:04 ` Sebastian Andrzej Siewior 2016-09-06 17:04 ` Sebastian Andrzej Siewior 2016-09-06 18:05 ` Geert Uytterhoeven 2016-09-06 18:05 ` Geert Uytterhoeven 2016-09-06 18:05 ` Geert Uytterhoeven 2016-09-06 18:05 ` Geert Uytterhoeven 2016-09-07 13:58 ` Sebastian Andrzej Siewior 2016-09-07 13:58 ` Sebastian Andrzej Siewior 2016-09-07 13:58 ` Sebastian Andrzej Siewior 2016-09-07 13:58 ` Sebastian Andrzej Siewior 2016-09-19 19:52 ` [tip:smp/hotplug] ARM/shmobile: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 03/21] ARM: OMAP: wakeupgen: " Sebastian Andrzej Siewior 2016-09-06 17:04 ` Sebastian Andrzej Siewior 2016-09-13 22:24 ` Tony Lindgren 2016-09-13 22:24 ` Tony Lindgren 2016-09-19 19:52 ` [tip:smp/hotplug] ARM/OMAP/wakeupgen: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` Sebastian Andrzej Siewior [this message] 2016-09-06 17:04 ` [PATCH 04/21] ia64: mca: " Sebastian Andrzej Siewior 2016-09-19 19:53 ` [tip:smp/hotplug] ia64/mca: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 05/21] sh: SH-X3 SMP: " Sebastian Andrzej Siewior 2016-09-06 17:04 ` Sebastian Andrzej Siewior 2016-09-19 19:53 ` [tip:smp/hotplug] sh/SH-X3 " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 06/21] x86: microcode: " Sebastian Andrzej Siewior 2016-09-07 11:36 ` Borislav Petkov 2016-09-07 14:51 ` Sebastian Andrzej Siewior 2016-09-07 16:02 ` Borislav Petkov 2016-09-07 16:45 ` [PATCH 06/21 v2] " Sebastian Andrzej Siewior 2016-09-19 19:54 ` [tip:smp/hotplug] x86/microcode: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 07/21] lib: irq_poll: " Sebastian Andrzej Siewior 2016-09-19 19:54 ` [tip:smp/hotplug] lib/irq_poll: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 08/21] block: softirq: " Sebastian Andrzej Siewior 2016-09-19 19:55 ` [tip:smp/hotplug] block/softirq: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 09/21] oprofile: timer: " Sebastian Andrzej Siewior 2016-09-19 19:55 ` [tip:smp/hotplug] oprofile/timer: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 10/21] virtio scsi: " Sebastian Andrzej Siewior 2016-09-06 17:04 ` Sebastian Andrzej Siewior 2016-09-19 19:56 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 11/21] ACPI: processor: " Sebastian Andrzej Siewior 2016-09-06 21:08 ` Rafael J. Wysocki 2016-09-07 14:01 ` Sebastian Andrzej Siewior 2016-09-07 15:59 ` Rafael J. Wysocki 2016-09-19 19:56 ` [tip:smp/hotplug] ACPI/processor: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 12/21] cpufreq: " Sebastian Andrzej Siewior 2016-09-06 21:27 ` Rafael J. Wysocki 2016-09-07 14:18 ` Sebastian Andrzej Siewior 2016-09-07 15:58 ` Rafael J. Wysocki 2016-09-19 19:56 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior 2016-09-20 14:56 ` [PATCH] cpufreq: fix up conversion " Sebastian Andrzej Siewior 2016-09-20 15:07 ` [tip:smp/hotplug] cpufreq: Fix " tip-bot for Sebastian Andrzej Siewior 2016-09-20 16:08 ` Borislav Petkov 2016-09-20 16:17 ` [PATCH] cpufreq: fix " Rafael J. Wysocki 2016-09-06 17:04 ` [PATCH 13/21] padata: Convert " Sebastian Andrzej Siewior 2016-09-19 19:57 ` [tip:smp/hotplug] " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 14/21] fault-injection: cpu: " Sebastian Andrzej Siewior 2016-09-19 19:57 ` [tip:smp/hotplug] fault-injection/cpu: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 15/21] mips: octeon: smp: " Sebastian Andrzej Siewior 2016-09-07 8:24 ` Matt Redfearn 2016-09-07 8:24 ` Matt Redfearn 2016-09-07 14:27 ` Sebastian Andrzej Siewior 2016-09-08 8:34 ` Matt Redfearn 2016-09-08 8:34 ` Matt Redfearn 2016-09-19 15:10 ` Ralf Baechle 2016-09-19 19:58 ` [tip:smp/hotplug] mips/octeon/smp: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 16/21] mips: loongson: smp: " Sebastian Andrzej Siewior 2016-09-19 15:10 ` Ralf Baechle 2016-09-19 19:58 ` [tip:smp/hotplug] mips/loongson/smp: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 17/21] s390: mm: pfault: " Sebastian Andrzej Siewior 2016-09-19 19:59 ` [tip:smp/hotplug] s390/mm/pfault: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 18/21] x86: apic: uv: " Sebastian Andrzej Siewior 2016-09-19 19:59 ` [tip:smp/hotplug] x86/apic/uv: " tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 19/21] blk: mq: reserve hotplug ID states for block Sebastian Andrzej Siewior 2016-09-19 20:03 ` [tip:smp/hotplug] blk/mq: Reserve hotplug ID states for block multiqueue tip-bot for Sebastian Andrzej Siewior 2016-09-19 21:24 ` [tip:smp/hotplug] blk/mq: Reserve hotplug " tip-bot for Sebastian Andrzej Siewior 2016-09-21 7:45 ` tip-bot for Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 20/21] blk: mq: cpu-notif: Convert to hotplug state machine Sebastian Andrzej Siewior 2016-09-06 17:04 ` [PATCH 21/21] blk: mq: " Sebastian Andrzej Siewior
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=20160906170457.32393-5-bigeasy@linutronix.de \ --to=bigeasy@linutronix.de \ --cc=fenghua.yu@intel.com \ --cc=linux-ia64@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@redhat.com \ --cc=peterz@infradead.org \ --cc=rt@linutronix.de \ --cc=tglx@linutronix.de \ --cc=tony.luck@intel.com \ /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: linkBe 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.