From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> To: srivatsa.bhat@linux.vnet.ibm.com, toshi.kani@hp.com, lenb@kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 1/3] acpi : cpu hot-remove returns error when cpu_down() fails Date: Fri, 13 Jul 2012 17:48:26 +0900 [thread overview] Message-ID: <4FFFE0DA.3050806@jp.fujitsu.com> (raw) Even if cpu_down() fails, acpi_processor_remove() continues to remove the cpu. But in this case, it should return error number since some process may run on the cpu. If the cpu has a running process and the cpu is turned the power off, the system may not work well. Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> --- drivers/acpi/processor_driver.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) Index: linux-3.5-rc6/drivers/acpi/processor_driver.c =================================================================== --- linux-3.5-rc6.orig/drivers/acpi/processor_driver.c 2012-07-08 09:23:56.000000000 +0900 +++ linux-3.5-rc6/drivers/acpi/processor_driver.c 2012-07-13 15:11:06.135541317 +0900 @@ -610,7 +610,7 @@ err_free_pr: static int acpi_processor_remove(struct acpi_device *device, int type) { struct acpi_processor *pr = NULL; - + int ret; if (!device || !acpi_driver_data(device)) return -EINVAL; @@ -621,8 +621,9 @@ static int acpi_processor_remove(struct goto free; if (type == ACPI_BUS_REMOVAL_EJECT) { - if (acpi_processor_handle_eject(pr)) - return -EINVAL; + ret = acpi_processor_handle_eject(pr); + if (ret) + return ret; } acpi_processor_power_exit(pr, device); @@ -841,12 +842,17 @@ static acpi_status acpi_processor_hotadd static int acpi_processor_handle_eject(struct acpi_processor *pr) { - if (cpu_online(pr->id)) - cpu_down(pr->id); + int ret = 0; + + if (cpu_online(pr->id)) { + ret = cpu_down(pr->id); + if (ret) + return ret; + } arch_unregister_cpu(pr->id); acpi_unmap_lsapic(pr->id); - return (0); + return ret; } #else static acpi_status acpi_processor_hotadd_init(struct acpi_processor *pr)
WARNING: multiple messages have this Message-ID (diff)
From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> To: <srivatsa.bhat@linux.vnet.ibm.com>, <toshi.kani@hp.com>, <lenb@kernel.org>, <linux-acpi@vger.kernel.org>, <linux-kernel@vger.kernel.org> Subject: [PATCH v4 1/3] acpi : cpu hot-remove returns error when cpu_down() fails Date: Fri, 13 Jul 2012 17:48:26 +0900 [thread overview] Message-ID: <4FFFE0DA.3050806@jp.fujitsu.com> (raw) Even if cpu_down() fails, acpi_processor_remove() continues to remove the cpu. But in this case, it should return error number since some process may run on the cpu. If the cpu has a running process and the cpu is turned the power off, the system may not work well. Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> --- drivers/acpi/processor_driver.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) Index: linux-3.5-rc6/drivers/acpi/processor_driver.c =================================================================== --- linux-3.5-rc6.orig/drivers/acpi/processor_driver.c 2012-07-08 09:23:56.000000000 +0900 +++ linux-3.5-rc6/drivers/acpi/processor_driver.c 2012-07-13 15:11:06.135541317 +0900 @@ -610,7 +610,7 @@ err_free_pr: static int acpi_processor_remove(struct acpi_device *device, int type) { struct acpi_processor *pr = NULL; - + int ret; if (!device || !acpi_driver_data(device)) return -EINVAL; @@ -621,8 +621,9 @@ static int acpi_processor_remove(struct goto free; if (type == ACPI_BUS_REMOVAL_EJECT) { - if (acpi_processor_handle_eject(pr)) - return -EINVAL; + ret = acpi_processor_handle_eject(pr); + if (ret) + return ret; } acpi_processor_power_exit(pr, device); @@ -841,12 +842,17 @@ static acpi_status acpi_processor_hotadd static int acpi_processor_handle_eject(struct acpi_processor *pr) { - if (cpu_online(pr->id)) - cpu_down(pr->id); + int ret = 0; + + if (cpu_online(pr->id)) { + ret = cpu_down(pr->id); + if (ret) + return ret; + } arch_unregister_cpu(pr->id); acpi_unmap_lsapic(pr->id); - return (0); + return ret; } #else static acpi_status acpi_processor_hotadd_init(struct acpi_processor *pr)
next reply other threads:[~2012-07-13 8:48 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-07-13 8:48 Yasuaki Ishimatsu [this message] 2012-07-13 8:48 ` [PATCH v4 1/3] acpi : cpu hot-remove returns error when cpu_down() fails Yasuaki Ishimatsu 2012-07-13 8:51 ` [PATCH v4 2/3] acpi : prevent cpu from becoming online Yasuaki Ishimatsu 2012-07-13 8:51 ` Yasuaki Ishimatsu 2012-07-13 15:25 ` Toshi Kani 2012-07-13 8:53 ` [PATCH v4 3/3] acpi : acpi_bus_trim() stops removing devices when failing to remove the device Yasuaki Ishimatsu 2012-07-13 8:53 ` Yasuaki Ishimatsu 2012-07-13 15:54 ` Toshi Kani 2012-07-13 15:20 ` [PATCH v4 1/3] acpi : cpu hot-remove returns error when cpu_down() fails Toshi Kani
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=4FFFE0DA.3050806@jp.fujitsu.com \ --to=isimatu.yasuaki@jp.fujitsu.com \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=srivatsa.bhat@linux.vnet.ibm.com \ --cc=toshi.kani@hp.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.