All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com,
	x86@kernel.org, imammedo@redhat.com, bp@suse.de,
	paul.gortmaker@windriver.com, JBeulich@suse.com,
	prarit@redhat.com, drjones@redhat.com, toshi.kani@hp.com,
	riel@redhat.com, gong.chen@linux.intel.com, andi@firstfloor.org,
	lenb@kernel.org, rjw@rjwysocki.net, linux-acpi@vger.kernel.org
Subject: [PATCH v5 2/4] acpi_processor: do not mark present at boot but not onlined CPU as onlined
Date: Mon,  5 May 2014 22:49:49 +0200	[thread overview]
Message-ID: <1399322991-19329-3-git-send-email-imammedo@redhat.com> (raw)
In-Reply-To: <1399322991-19329-1-git-send-email-imammedo@redhat.com>

acpi_processor_add() assumes that present at boot CPUs
are always onlined, it is not so if a CPU failed to become
onlined. As result acpi_processor_add() will mark such CPU
device as onlined in sysfs and following attempts to
online/offline it using /sys/device/system/cpu/cpuX/online
attribute will fail.

Do not poke into device internals in acpi_processor_add()
and touch "struct device { .offline }" attribute, since
for CPUs onlined at boot it's set by:
  topology_init() -> arch_register_cpu() -> register_cpu()
before ACPI device tree is parsed, and for hotplugged
CPUs it's set when userspace onlines CPU via sysfs.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Acked-by: Toshi Kani <toshi.kani@hp.com>
---
v2:
 - fix regression in v1 leading to NULL pointer dereference
   on CPU unplug, do not remove "pr->dev = dev;"
---
 drivers/acpi/acpi_processor.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c
index b06f5f5..52c81c4 100644
--- a/drivers/acpi/acpi_processor.c
+++ b/drivers/acpi/acpi_processor.c
@@ -405,7 +405,6 @@ static int acpi_processor_add(struct acpi_device *device,
 		goto err;
 
 	pr->dev = dev;
-	dev->offline = pr->flags.need_hotplug_init;
 
 	/* Trigger the processor driver's .probe() if present. */
 	if (device_attach(dev) >= 0)
-- 
1.7.1


  parent reply	other threads:[~2014-05-05 20:51 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-05 20:49 [PATCH v5 0/4] x86: fix hang when AP bringup is too slow Igor Mammedov
2014-05-05 20:49 ` [PATCH v5 1/4] x86: fix list/memory corruption on CPU hotplug Igor Mammedov
2014-05-05 20:49 ` Igor Mammedov [this message]
2014-05-07 23:48   ` [PATCH v5 2/4] acpi_processor: do not mark present at boot but not onlined CPU as onlined Rafael J. Wysocki
2014-05-08  6:09     ` Ingo Molnar
2014-05-08 11:33       ` Rafael J. Wysocki
2014-05-08 11:17         ` Ingo Molnar
2014-05-05 20:49 ` [PATCH v5 3/4] x86: log error on secondary CPU wakeup failure at ERR level Igor Mammedov
2014-05-05 20:49 ` [PATCH v5 4/4] x86: initialize secondary CPU only if master CPU will wait for it Igor Mammedov
2014-05-05 21:35   ` Toshi Kani
2014-06-04 13:21 ` [PATCH v5 0/4] x86: fix hang when AP bringup is too slow Igor Mammedov
2014-06-05 12:29   ` Ingo Molnar
2014-06-05 13:12     ` Igor Mammedov

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=1399322991-19329-3-git-send-email-imammedo@redhat.com \
    --to=imammedo@redhat.com \
    --cc=JBeulich@suse.com \
    --cc=andi@firstfloor.org \
    --cc=bp@suse.de \
    --cc=drjones@redhat.com \
    --cc=gong.chen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paul.gortmaker@windriver.com \
    --cc=prarit@redhat.com \
    --cc=riel@redhat.com \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    --cc=toshi.kani@hp.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.