From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: 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 v2 1/2] acpi : cpu hot-remove returns error when cpu_down() fails
Date: Fri, 26 Oct 2012 18:25:42 +0900 [thread overview]
Message-ID: <508A5716.1090509@jp.fujitsu.com> (raw)
In-Reply-To: <5080D9AA.8070801@jp.fujitsu.com>
v1 -> v2
- update Rafael's comment.
>> 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 you defined ret here ...
>
>> + if (ret)
>> + return ret;
>> + }
>>
>> arch_unregister_cpu(pr->id);
>> acpi_unmap_lsapic(pr->id);
>> - return (0);
>> + return ret;
>
> ... this line wouldn't need to be changed.
---
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>
Reviewed-by: Toshi Kani <toshi.kani@hp.com>
Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
---
drivers/acpi/processor_driver.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
Index: linux-3.7-rc2/drivers/acpi/processor_driver.c
===================================================================
--- linux-3.7-rc2.orig/drivers/acpi/processor_driver.c 2012-10-21 04:11:32.000000000 +0900
+++ linux-3.7-rc2/drivers/acpi/processor_driver.c 2012-10-26 18:15:43.721665836 +0900
@@ -605,7 +605,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;
@@ -616,8 +616,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);
@@ -848,8 +849,13 @@ 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);
WARNING: multiple messages have this Message-ID (diff)
From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: <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 v2 1/2] acpi : cpu hot-remove returns error when cpu_down() fails
Date: Fri, 26 Oct 2012 18:25:42 +0900 [thread overview]
Message-ID: <508A5716.1090509@jp.fujitsu.com> (raw)
In-Reply-To: <5080D9AA.8070801@jp.fujitsu.com>
v1 -> v2
- update Rafael's comment.
>> 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 you defined ret here ...
>
>> + if (ret)
>> + return ret;
>> + }
>>
>> arch_unregister_cpu(pr->id);
>> acpi_unmap_lsapic(pr->id);
>> - return (0);
>> + return ret;
>
> ... this line wouldn't need to be changed.
---
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>
Reviewed-by: Toshi Kani <toshi.kani@hp.com>
Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
---
drivers/acpi/processor_driver.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
Index: linux-3.7-rc2/drivers/acpi/processor_driver.c
===================================================================
--- linux-3.7-rc2.orig/drivers/acpi/processor_driver.c 2012-10-21 04:11:32.000000000 +0900
+++ linux-3.7-rc2/drivers/acpi/processor_driver.c 2012-10-26 18:15:43.721665836 +0900
@@ -605,7 +605,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;
@@ -616,8 +616,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);
@@ -848,8 +849,13 @@ 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);
next prev parent reply other threads:[~2012-10-26 9:26 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-28 10:36 [PATCH 1/2] acpi : cpu hot-remove returns error when cpu_down() fails Yasuaki Ishimatsu
2012-09-28 10:36 ` Yasuaki Ishimatsu
2012-09-28 10:39 ` [PATCH 2/2] acpi : prevent cpu from becoming online Yasuaki Ishimatsu
2012-09-28 10:39 ` Yasuaki Ishimatsu
2012-10-19 1:06 ` [PATCH 1/2] acpi : cpu hot-remove returns error when cpu_down() fails Rafael J. Wysocki
2012-10-19 4:40 ` Yasuaki Ishimatsu
2012-10-19 4:40 ` Yasuaki Ishimatsu
2012-10-26 9:25 ` Yasuaki Ishimatsu [this message]
2012-10-26 9:25 ` [PATCH v2 " Yasuaki Ishimatsu
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=508A5716.1090509@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=rjw@sisk.pl \
--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: 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.