linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] Power management and ACPI fixes for v3.10-rc5
@ 2013-06-07 12:51 Rafael J. Wysocki
  2013-06-07 22:23 ` Tony Luck
  0 siblings, 1 reply; 6+ messages in thread
From: Rafael J. Wysocki @ 2013-06-07 12:51 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: LKML, Linux PM list, ACPI Devel Maling List

Hi Linus,

Please pull from the git repository at

  git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git pm+acpi-3.10-rc5

to receive power management and ACPI fixes for v3.10-rc5 with top-most
commit c6617b39c39d8735c912bb4efd2f735fedff5052

  Merge branch 'pm-fixes'

on top of commit d683b96b072dc4680fc74964eca77e6a23d1fa6e

  Linux 3.10-rc4

These fixes emerged after my previous pull request.  They fix one recent
regression, a few regressions introduced in 3.9 and 3.8, and a couple of
long-standing issues.  A couple of blacklist entries for systems known
to misbehave are added too.

Included are:

- Fix for an ACPI PM regression introduced in 3.9 causing Toshiba
  P870-303 to crash during boot. From yours truly.

- ACPI fix for an issue causing some drivers to attempt to bind to
  devices they shouldn't touch introduced in 3.9 (a broken BIOS is
  requisite to trigger this). From Aaron Lu.

- Fix for a recent cpufreq regression related to a possible race with
  CPU offline. From Michael Wang.

- Fix for an ACPI cpufreq regression introduced in 3.8 causing turbo
  frequencies to be underutilized in some cases. From Ross Lagerwall.

- cpufreq-cpu0 driver fix related to incorrect clock ACPI usage from
  Guennadi Liakhovetski.

- HP WMI driver fix for an issue causing GPS initialization and
  poweroff failures on HP Elitebook 6930p.  From Lan Tianyu.

- APEI (ACPI Platform Error Interface) fix for an issue in the error
  code path in ghes_probe(). From Wei Yongjun.

- New ACPI video driver blacklist entries for HP m4 and HP Pavilion
  g6 from Alex Hung and Ash Willis.

Thanks!


---------------

Aaron Lu (1):
      ACPI / scan: do not match drivers against objects having scan handlers

Alex Hung (1):
      ACPI / video: ignore BIOS initial backlight value for HP m4

Ash Willis (1):
      ACPI / video: ignore BIOS initial backlight value for HP Pavilion g6

Guennadi Liakhovetski (1):
      cpufreq: cpufreq-cpu0: use the exact frequency for clk_set_rate()

Michael Wang (1):
      cpufreq: protect 'policy->cpus' from offlining during __gov_queue_work()

Rafael J. Wysocki (1):
      ACPI / PM: Do not execute _PS0 for devices without _PSC during initialization

Ross Lagerwall (1):
      acpi-cpufreq: set current frequency based on target P-State

Wei Yongjun (1):
      ACPI / APEI: fix error return code in ghes_probe()

Lan Tianyu (1):
      x86 / platform / hp_wmi: Fix bluetooth_rfkill misuse in hp_wmi_rfkill_setup()

---------------

 drivers/acpi/apei/ghes.c           |    7 ++++---
 drivers/acpi/device_pm.c           |   10 ++++++----
 drivers/acpi/scan.c                |    4 ++++
 drivers/acpi/video.c               |   16 ++++++++++++++++
 drivers/cpufreq/acpi-cpufreq.c     |    4 ++--
 drivers/cpufreq/cpufreq-cpu0.c     |    5 +++--
 drivers/cpufreq/cpufreq_governor.c |    3 +++
 drivers/platform/x86/hp-wmi.c      |    2 +-
 8 files changed, 39 insertions(+), 12 deletions(-)

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [GIT PULL] Power management and ACPI fixes for v3.10-rc5
  2013-06-07 12:51 [GIT PULL] Power management and ACPI fixes for v3.10-rc5 Rafael J. Wysocki
@ 2013-06-07 22:23 ` Tony Luck
  2013-06-07 23:02   ` Tony Luck
  2013-06-08  0:55   ` [PATCH, revert] ACPI / scan: Revert scan handler check in acpi_bus_match() Rafael J. Wysocki
  0 siblings, 2 replies; 6+ messages in thread
From: Tony Luck @ 2013-06-07 22:23 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Linus Torvalds, LKML, Linux PM list, ACPI Devel Maling List

On Fri, Jun 7, 2013 at 5:51 AM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> Aaron Lu (1):
>       ACPI / scan: do not match drivers against objects having scan handlers

This patch showed up in linux-next tag next-20130605 and appears to be the
cause of a boot failure on my ia64 HP rx2600 system.  It panics with
the message:

Kernel panic - not syncing: Unable to find SBA IOMMU: Try a generic or
DIG kernel

Reverting this from next-20130605 fixes my problem and I can boot again.

So please don't pull.

-Tony

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [GIT PULL] Power management and ACPI fixes for v3.10-rc5
  2013-06-07 22:23 ` Tony Luck
@ 2013-06-07 23:02   ` Tony Luck
  2013-06-07 23:19     ` Rafael J. Wysocki
  2013-06-07 23:54     ` acpi_sba_ioc_driver breakage (was: Re: [GIT PULL] Power management and ACPI fixes for v3.10-rc5) Rafael J. Wysocki
  2013-06-08  0:55   ` [PATCH, revert] ACPI / scan: Revert scan handler check in acpi_bus_match() Rafael J. Wysocki
  1 sibling, 2 replies; 6+ messages in thread
From: Tony Luck @ 2013-06-07 23:02 UTC (permalink / raw)
  To: Rafael J. Wysocki, Aaron Lu
  Cc: Linus Torvalds, LKML, Linux PM list, ACPI Devel Maling List

On Fri, Jun 7, 2013 at 3:23 PM, Tony Luck <tony.luck@gmail.com> wrote:
> So please don't pull.

Bother. I see I was a few hours late finding this, and commit 9f29ab11ddb
is already in Linus' tree.

That's what happens when I get busy and skip a couple of days testing
linux-next :-(

So my problem comes from
arch/ia64/hp/common/sba_iommu.c

where the code in sba_init() says:

        acpi_bus_register_driver(&acpi_sba_ioc_driver);
        if (!ioc_list) {

but because of this change we never managed to call ioc_init()
so ioc_list doesn't get set up, and we die.
Before this commit, the call chain looked like this:

 [<a0000001011c3710>] ioc_init+0x40/0xd00
 [<a0000001011c4560>] acpi_sba_ioc_add+0x190/0x1c0
 [<a0000001005b3b40>] acpi_device_probe+0xa0/0x280
 [<a000000100850060>] really_probe+0xe0/0x520
 [<a0000001008504d0>] driver_probe_device+0x30/0x60
 [<a000000100850610>] __driver_attach+0x110/0x160
 [<a00000010084c550>] bus_for_each_dev+0x110/0x180
 [<a00000010084fcc0>] driver_attach+0x40/0x60
 [<a00000010084da90>] bus_add_driver+0x230/0x580
 [<a000000100851090>] driver_register+0xf0/0x400
 [<a0000001005b8670>] acpi_bus_register_driver+0x50/0x80
 [<a0000001011c45c0>] sba_init+0x30/0x2d0

Is my problem that this driver has (or attaches) a "scan handler"
where it shouldn't ... and I just need to stop it doing that?

-Tony

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [GIT PULL] Power management and ACPI fixes for v3.10-rc5
  2013-06-07 23:02   ` Tony Luck
@ 2013-06-07 23:19     ` Rafael J. Wysocki
  2013-06-07 23:54     ` acpi_sba_ioc_driver breakage (was: Re: [GIT PULL] Power management and ACPI fixes for v3.10-rc5) Rafael J. Wysocki
  1 sibling, 0 replies; 6+ messages in thread
From: Rafael J. Wysocki @ 2013-06-07 23:19 UTC (permalink / raw)
  To: Tony Luck
  Cc: Aaron Lu, Linus Torvalds, LKML, Linux PM list, ACPI Devel Maling List

On Friday, June 07, 2013 04:02:11 PM Tony Luck wrote:
> On Fri, Jun 7, 2013 at 3:23 PM, Tony Luck <tony.luck@gmail.com> wrote:
> > So please don't pull.
> 
> Bother. I see I was a few hours late finding this, and commit 9f29ab11ddb
> is already in Linus' tree.
> 
> That's what happens when I get busy and skip a couple of days testing
> linux-next :-(
> 
> So my problem comes from
> arch/ia64/hp/common/sba_iommu.c
> 
> where the code in sba_init() says:
> 
>         acpi_bus_register_driver(&acpi_sba_ioc_driver);
>         if (!ioc_list) {
> 
> but because of this change we never managed to call ioc_init()
> so ioc_list doesn't get set up, and we die.
> Before this commit, the call chain looked like this:
> 
>  [<a0000001011c3710>] ioc_init+0x40/0xd00
>  [<a0000001011c4560>] acpi_sba_ioc_add+0x190/0x1c0
>  [<a0000001005b3b40>] acpi_device_probe+0xa0/0x280
>  [<a000000100850060>] really_probe+0xe0/0x520
>  [<a0000001008504d0>] driver_probe_device+0x30/0x60
>  [<a000000100850610>] __driver_attach+0x110/0x160
>  [<a00000010084c550>] bus_for_each_dev+0x110/0x180
>  [<a00000010084fcc0>] driver_attach+0x40/0x60
>  [<a00000010084da90>] bus_add_driver+0x230/0x580
>  [<a000000100851090>] driver_register+0xf0/0x400
>  [<a0000001005b8670>] acpi_bus_register_driver+0x50/0x80
>  [<a0000001011c45c0>] sba_init+0x30/0x2d0
> 
> Is my problem that this driver has (or attaches) a "scan handler"
> where it shouldn't ... and I just need to stop it doing that?

Looking into that.

Thanks,
Rafael

^ permalink raw reply	[flat|nested] 6+ messages in thread

* acpi_sba_ioc_driver breakage (was: Re: [GIT PULL] Power management and ACPI fixes for v3.10-rc5)
  2013-06-07 23:02   ` Tony Luck
  2013-06-07 23:19     ` Rafael J. Wysocki
@ 2013-06-07 23:54     ` Rafael J. Wysocki
  1 sibling, 0 replies; 6+ messages in thread
From: Rafael J. Wysocki @ 2013-06-07 23:54 UTC (permalink / raw)
  To: Tony Luck
  Cc: Aaron Lu, Linus Torvalds, LKML, Linux PM list, ACPI Devel Maling List

On Friday, June 07, 2013 04:02:11 PM Tony Luck wrote:
> On Fri, Jun 7, 2013 at 3:23 PM, Tony Luck <tony.luck@gmail.com> wrote:
> > So please don't pull.
> 
> Bother. I see I was a few hours late finding this, and commit 9f29ab11ddb
> is already in Linus' tree.
> 
> That's what happens when I get busy and skip a couple of days testing
> linux-next :-(
> 
> So my problem comes from
> arch/ia64/hp/common/sba_iommu.c
> 
> where the code in sba_init() says:
> 
>         acpi_bus_register_driver(&acpi_sba_ioc_driver);
>         if (!ioc_list) {
> 
> but because of this change we never managed to call ioc_init()
> so ioc_list doesn't get set up, and we die.
> Before this commit, the call chain looked like this:
> 
>  [<a0000001011c3710>] ioc_init+0x40/0xd00
>  [<a0000001011c4560>] acpi_sba_ioc_add+0x190/0x1c0
>  [<a0000001005b3b40>] acpi_device_probe+0xa0/0x280
>  [<a000000100850060>] really_probe+0xe0/0x520
>  [<a0000001008504d0>] driver_probe_device+0x30/0x60
>  [<a000000100850610>] __driver_attach+0x110/0x160
>  [<a00000010084c550>] bus_for_each_dev+0x110/0x180
>  [<a00000010084fcc0>] driver_attach+0x40/0x60
>  [<a00000010084da90>] bus_add_driver+0x230/0x580
>  [<a000000100851090>] driver_register+0xf0/0x400
>  [<a0000001005b8670>] acpi_bus_register_driver+0x50/0x80
>  [<a0000001011c45c0>] sba_init+0x30/0x2d0
> 
> Is my problem that this driver has (or attaches) a "scan handler"
> where it shouldn't ... and I just need to stop it doing that?

The driver doesn't, but the device it attempts to bind to does.
It looks like that device object has multiple device IDs and one of them
matches one of the existing ACPI scan handlers, but I need a confirmation.

Can you please send me the output of

$ find /sys/devices/LNXSYSTM\:00/ -name modalias -print -exec cat {} \;

from the affected system?

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH, revert] ACPI / scan: Revert scan handler check in acpi_bus_match()
  2013-06-07 22:23 ` Tony Luck
  2013-06-07 23:02   ` Tony Luck
@ 2013-06-08  0:55   ` Rafael J. Wysocki
  1 sibling, 0 replies; 6+ messages in thread
From: Rafael J. Wysocki @ 2013-06-08  0:55 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Tony Luck, LKML, Linux PM list, ACPI Devel Maling List

On Friday, June 07, 2013 03:23:44 PM Tony Luck wrote:
> On Fri, Jun 7, 2013 at 5:51 AM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > Aaron Lu (1):
> >       ACPI / scan: do not match drivers against objects having scan handlers
> 
> This patch showed up in linux-next tag next-20130605 and appears to be the
> cause of a boot failure on my ia64 HP rx2600 system.  It panics with
> the message:
> 
> Kernel panic - not syncing: Unable to find SBA IOMMU: Try a generic or
> DIG kernel
> 
> Reverting this from next-20130605 fixes my problem and I can boot again.
> 
> So please don't pull.

Sorry about this.

I don't think we will find out what's wrong here before -rc5, so please apply
the appended revert.

Rafael


---
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Subject: ACPI / scan: Revert scan handler check in acpi_bus_match()

Commit 9f29ab1 (ACPI / scan: do not match drivers against objects
having scan handlers) introduced a boot regression on Tony's
ia64 HP rx2600.  Tony says:

  "It panics with the message:

   Kernel panic - not syncing: Unable to find SBA IOMMU: Try a generic or DIG kernel

   [...] my problem comes from arch/ia64/hp/common/sba_iommu.c
   where the code in sba_init() says:

        acpi_bus_register_driver(&acpi_sba_ioc_driver);
        if (!ioc_list) {

   but because of this change we never managed to call ioc_init()
   so ioc_list doesn't get set up, and we die."

Revert commit 9f29ab1 to avoid this breakage and we'll fix the
problem it attempted to address later.

Reported-by: Tony Luck <tony.luck@gmail.com>
Cc: 3.9+ <stable@vger.kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/acpi/scan.c |    4 ----
 1 file changed, 4 deletions(-)

Index: linux-pm/drivers/acpi/scan.c
===================================================================
--- linux-pm.orig/drivers/acpi/scan.c
+++ linux-pm/drivers/acpi/scan.c
@@ -857,10 +857,6 @@ static int acpi_bus_match(struct device
 	struct acpi_device *acpi_dev = to_acpi_device(dev);
 	struct acpi_driver *acpi_drv = to_acpi_driver(drv);
 
-	/* Skip ACPI device objects with scan handlers attached. */
-	if (acpi_dev->handler)
-		return 0;
-
 	return acpi_dev->flags.match_driver
 		&& !acpi_match_device_ids(acpi_dev, acpi_drv->ids);
 }


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-06-08  0:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-07 12:51 [GIT PULL] Power management and ACPI fixes for v3.10-rc5 Rafael J. Wysocki
2013-06-07 22:23 ` Tony Luck
2013-06-07 23:02   ` Tony Luck
2013-06-07 23:19     ` Rafael J. Wysocki
2013-06-07 23:54     ` acpi_sba_ioc_driver breakage (was: Re: [GIT PULL] Power management and ACPI fixes for v3.10-rc5) Rafael J. Wysocki
2013-06-08  0:55   ` [PATCH, revert] ACPI / scan: Revert scan handler check in acpi_bus_match() Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).