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] [thread-next>] [day] [month] [year] [list]
Date:	Wed,  3 Aug 2016 16:01:09 +0800
From:	Lv Zheng <lv.zheng@...el.com>
To:	"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>,
	"Rafael J. Wysocki" <rjw@...ysocki.net>,
	Len Brown <len.brown@...el.com>
Cc:	Lv Zheng <lv.zheng@...el.com>, Lv Zheng <zetalog@...il.com>,
	<linux-kernel@...r.kernel.org>, linux-acpi@...r.kernel.org
Subject: [PATCH v3 0/5] ACPI / EC: Move the event handling out of the noirq stage

There is a known issue in the EC driver.

1. During the suspend/resume process, the EC driver is required to work
   even in the noirq stage. And currently the event handling is
   disabled/enabled in the noirq stage.
2. Unfortunately, the EC driver only implements the polling mode for
   handling the transactions, and is not prepared to handle events in the
   polling mode.
The result of the above conflict is: if an SCI_EVT is indicated during the
noirq stage (especially after resuming), the EC driver is not able to
detect the SCI_EVT unless:
1. GPE STS not cleared: When the GPE is enabled, advance_transaction() will
                        be invoked to poll SCI_EVT.
2. EC transaction occurred: When an EC transaction ocurred,
                            advance_transaction() will be invoked in the
                            polling mode.
If an SCI_EVT ocurred during noirq stage and the above 2 triggering sources
cannot handle it, then a problem could be seen by the users:
 If SCI_EVT is left set after resuming and there is still no EC
 transactions, this event cannot be handled.

This patchset tries to disable/enable the event handling out of the noirq
stage to fix this issue.

Though it is always correct to enable the event handling in a later stage
during resuming as long as the event won't be lost, it may not be correct
to disable the event handling in an earlier stage during suspending. This
patchset thus put a boot parameter for the suspending part tuning in order
to be able to respond to the possible regressions.

Since the event handling is disabled for a longer period during
suspend/resume, this patchset can also tune the suspend/resume speed
faster.

Lv Zheng (5):
  ACPI / EC: Add EC_FLAGS_QUERY_ENABLED to reveal a hidden logic
  ACPI / EC: Fix an issue that SCI_EVT cannot be detected after event
    is enabled
  ACPI / EC: Add PM operations to improve event handling for resume
    process
  ACPI / EC: Add PM operations to improve event handling for suspend
    process
  ACPI / EC: Enable event freeze mode to improve event handling
    efficiency for suspend process

 drivers/acpi/ec.c       |  177 +++++++++++++++++++++++++++++++++++------------
 drivers/acpi/internal.h |    1 -
 drivers/acpi/sleep.c    |    4 +-
 3 files changed, 136 insertions(+), 46 deletions(-)

-- 
1.7.10

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ