Commit eba117f
ACPI / EC: Work around method reentrancy limit in ACPICA for _Qxx
commit e1191bd upstream.
A regression is caused by the following commit:
Commit: 02b771b
Subject: ACPI / EC: Fix an issue caused by the serialized _Qxx evaluations
In this commit, using system workqueue causes that the maximum parallel
executions of _Qxx can exceed 255. This violates the method reentrancy
limit in ACPICA and generates the following error log:
ACPI Error: Method reached maximum reentrancy limit (255) (20150818/dsmethod-341)
This patch creates a seperate workqueue and limits the number of parallel
_Qxx evaluations down to a configurable value (can be tuned against number
of online CPUs).
Since EC events are handled after driver probe, we can create the workqueue
in acpi_ec_init().
Fixes: 02b771b (ACPI / EC: Fix an issue caused by the serialized _Qxx evaluations)
Link: https://bugzilla.kernel.org/show_bug.cgi?id=135691
Reported-and-tested-by: Helen Buus <ubuntu@hbuus.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>1 parent 6dda994 commit eba117f
1 file changed
+37
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| 104 | + | |
104 | 105 | | |
105 | 106 | | |
106 | 107 | | |
| |||
121 | 122 | | |
122 | 123 | | |
123 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
124 | 129 | | |
125 | 130 | | |
126 | 131 | | |
| |||
174 | 179 | | |
175 | 180 | | |
176 | 181 | | |
| 182 | + | |
177 | 183 | | |
178 | 184 | | |
179 | 185 | | |
| |||
1098 | 1104 | | |
1099 | 1105 | | |
1100 | 1106 | | |
1101 | | - | |
| 1107 | + | |
1102 | 1108 | | |
1103 | 1109 | | |
1104 | 1110 | | |
| |||
1660 | 1666 | | |
1661 | 1667 | | |
1662 | 1668 | | |
| 1669 | + | |
| 1670 | + | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
| 1674 | + | |
| 1675 | + | |
| 1676 | + | |
| 1677 | + | |
| 1678 | + | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
| 1687 | + | |
1663 | 1688 | | |
1664 | 1689 | | |
1665 | | - | |
| 1690 | + | |
1666 | 1691 | | |
| 1692 | + | |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
1667 | 1696 | | |
1668 | 1697 | | |
1669 | | - | |
1670 | | - | |
| 1698 | + | |
| 1699 | + | |
1671 | 1700 | | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
1672 | 1704 | | |
1673 | 1705 | | |
1674 | 1706 | | |
| |||
1678 | 1710 | | |
1679 | 1711 | | |
1680 | 1712 | | |
| 1713 | + | |
1681 | 1714 | | |
1682 | 1715 | | |
0 commit comments