lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Tue, 30 Sep 2014 14:08:06 +0200
From:	Stanislaw Gruszka <sgruszka@...hat.com>
To:	Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
Cc:	David Vrabel <david.vrabel@...rix.com>,
	xen-devel@...ts.xenproject.org, linux-kernel@...r.kernel.org,
	boris.ostrovsky@...cle.com
Subject: Re: [PATCH] Revert "xen/acpi-processor: fix enabling interrupts on
 syscore_resume"

On Mon, Sep 29, 2014 at 01:55:17PM -0400, Konrad Rzeszutek Wilk wrote:
> On Mon, Sep 29, 2014 at 03:56:14PM +0100, David Vrabel wrote:
> > On 29/09/14 15:51, Konrad Rzeszutek Wilk wrote:
> > > This reverts commit cd979883b9ede90643e019f33cb317933eb867b4.
> > > 
> > > As it actually never gets called on the initial domain when
> > > resuming. That is after we suspend and go in resume, the
> > > do_suspend (from manage.c) is never called (it is if it
> > > was running as a guest)- so the 'resume' functionality of the driver
> > > was never called.
> > > 
> > > Which means that this whole patch was pointless (well, it did
> > > remove the WARNING splat).
> > > 
> > > This patch reverts the patch and allows the C and P states to
> > > be uploaded to the hypervisor on ACPI S3 resume of the
> > > initial domain. It sadly brings back the WARNING splat which
> > > will have to be dealt with at some point.
> > 
> > Incorrectly enabling interrupts in contexts where this is not permitted
> > is not just harmless "WARNING splat".
> > 
> > This has been broken since 3.15-rc1 without anyone else noticing so I
> > think we can afford to take a bit more time and fix the original bug
> > properly.
> 
> This patch should be a good start to discussing the fix.
> 
> From 3544815f7c44508e2c9a0c55caf4a32cc8283685 Mon Sep 17 00:00:00 2001
> From: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
> Date: Mon, 29 Sep 2014 13:48:57 -0400
> Subject: [PATCH] xen-acpi-processor: Use spinlock and GFP_ATOMIC to deal with
>  resume
> 
> hitting the IRQs being enabled during resume.
> 
> WARNING: CPU: 0 PID: 6733 at drivers/base/syscore.c:104 syscore_resume+0x9a/0xe0()
> Interrupts enabled after xen_acpi_processor_resume+0x0/0x34 [xen_acpi_processor]
> 
> Call Trace:
>  [<ffffffff81667a8b>] dump_stack+0x45/0x56
>  [<ffffffff8106921d>] warn_slowpath_common+0x7d/0xa0
>  [<ffffffff8106928c>] warn_slowpath_fmt+0x4c/0x50
>  [<ffffffffa0261bb0>] ? xen_upload_processor_pm_data+0x300/0x300 [xen_acpi_processor]
>  [<ffffffff814055fa>] syscore_resume+0x9a/0xe0
>  [<ffffffff810aef42>] suspend_devices_and_enter+0x402/0x470
>  [<ffffffff810af128>] pm_suspend+0x178/0x260
> 
> Converting the mutex to a spinlock and all of the GPF_KERNEL
> to GFP_ATOMIC take care of that.

This is not enough to make xen_upload_processor_pm_data() run in atomic
context. Via check_acpi_ids() it call acpi_walk_namespace() and
acpi_walk_namespace(), which are internal ACPICA functions that
take internal ACPICA  mutexes.

Stanislaw
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ