Workaround for HVM suspend issue
(cherry picked from commit 56ea7eaf76
)
This commit is contained in:
parent
9248d5d924
commit
2c4bf83c10
52
patches.xen/Revert-xen-avoid-deadlock-in-xenbus-driver.patch
Normal file
52
patches.xen/Revert-xen-avoid-deadlock-in-xenbus-driver.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
From 7eed8836d3046a93848b891399ebbeee1d56e4f5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Gaiser <simon@invisiblethingslab.com>
|
||||||
|
Date: Tue, 30 Jan 2018 07:34:49 +0100
|
||||||
|
Subject: [PATCH 2/4] Revert "xen: avoid deadlock in xenbus driver"
|
||||||
|
|
||||||
|
This reverts commit 1a3fc2c402810bf336882e695abd1678dbc8d279.
|
||||||
|
---
|
||||||
|
drivers/xen/xenbus/xenbus_comms.c | 21 +++++++++++----------
|
||||||
|
1 file changed, 11 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/xen/xenbus/xenbus_comms.c b/drivers/xen/xenbus/xenbus_comms.c
|
||||||
|
index 5b081a01779d..856ada5d39c9 100644
|
||||||
|
--- a/drivers/xen/xenbus/xenbus_comms.c
|
||||||
|
+++ b/drivers/xen/xenbus/xenbus_comms.c
|
||||||
|
@@ -299,7 +299,17 @@ static int process_msg(void)
|
||||||
|
mutex_lock(&xb_write_mutex);
|
||||||
|
list_for_each_entry(req, &xs_reply_list, list) {
|
||||||
|
if (req->msg.req_id == state.msg.req_id) {
|
||||||
|
- list_del(&req->list);
|
||||||
|
+ if (req->state == xb_req_state_wait_reply) {
|
||||||
|
+ req->msg.type = state.msg.type;
|
||||||
|
+ req->msg.len = state.msg.len;
|
||||||
|
+ req->body = state.body;
|
||||||
|
+ req->state = xb_req_state_got_reply;
|
||||||
|
+ list_del(&req->list);
|
||||||
|
+ req->cb(req);
|
||||||
|
+ } else {
|
||||||
|
+ list_del(&req->list);
|
||||||
|
+ kfree(req);
|
||||||
|
+ }
|
||||||
|
err = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -307,15 +317,6 @@ static int process_msg(void)
|
||||||
|
mutex_unlock(&xb_write_mutex);
|
||||||
|
if (err)
|
||||||
|
goto out;
|
||||||
|
-
|
||||||
|
- if (req->state == xb_req_state_wait_reply) {
|
||||||
|
- req->msg.type = state.msg.type;
|
||||||
|
- req->msg.len = state.msg.len;
|
||||||
|
- req->body = state.body;
|
||||||
|
- req->state = xb_req_state_got_reply;
|
||||||
|
- req->cb(req);
|
||||||
|
- } else
|
||||||
|
- kfree(req);
|
||||||
|
}
|
||||||
|
|
||||||
|
mutex_unlock(&xs_response_mutex);
|
||||||
|
--
|
||||||
|
2.15.1
|
||||||
|
|
34
patches.xen/Revert-xen-avoid-deadlock-in-xenbus.patch
Normal file
34
patches.xen/Revert-xen-avoid-deadlock-in-xenbus.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From f9d9d4c0a6bf6d693d882ea99f0e57b0241b3370 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Gaiser <simon@invisiblethingslab.com>
|
||||||
|
Date: Tue, 30 Jan 2018 07:34:40 +0100
|
||||||
|
Subject: [PATCH 1/4] Revert "xen: avoid deadlock in xenbus"
|
||||||
|
|
||||||
|
This reverts commit 529871bb3c0675d0b425e2070d5a739db097be98.
|
||||||
|
---
|
||||||
|
drivers/xen/xenbus/xenbus_xs.c | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
|
||||||
|
index 3e59590c7254..e46080214955 100644
|
||||||
|
--- a/drivers/xen/xenbus/xenbus_xs.c
|
||||||
|
+++ b/drivers/xen/xenbus/xenbus_xs.c
|
||||||
|
@@ -857,8 +857,6 @@ static int xenwatch_thread(void *unused)
|
||||||
|
struct list_head *ent;
|
||||||
|
struct xs_watch_event *event;
|
||||||
|
|
||||||
|
- xenwatch_pid = current->pid;
|
||||||
|
-
|
||||||
|
for (;;) {
|
||||||
|
wait_event_interruptible(watch_events_waitq,
|
||||||
|
!list_empty(&watch_events));
|
||||||
|
@@ -927,6 +925,7 @@ int xs_init(void)
|
||||||
|
task = kthread_run(xenwatch_thread, NULL, "xenwatch");
|
||||||
|
if (IS_ERR(task))
|
||||||
|
return PTR_ERR(task);
|
||||||
|
+ xenwatch_pid = task->pid;
|
||||||
|
|
||||||
|
/* shutdown watches for kexec boot */
|
||||||
|
xs_reset_watches();
|
||||||
|
--
|
||||||
|
2.15.1
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,30 @@
|
|||||||
|
From 9622a541f049137fef086e45cc6ddf4dd56bb99e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simon Gaiser <simon@invisiblethingslab.com>
|
||||||
|
Date: Tue, 30 Jan 2018 07:38:17 +0100
|
||||||
|
Subject: [PATCH 3/4] Revert "xenbus: remove transaction holder from list
|
||||||
|
before freeing"
|
||||||
|
|
||||||
|
This reverts commit ac4cde398a96c1d28b1c28a0f69b6efd892a1c8a.
|
||||||
|
---
|
||||||
|
drivers/xen/xenbus/xenbus_dev_frontend.c | 4 +---
|
||||||
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/xen/xenbus/xenbus_dev_frontend.c b/drivers/xen/xenbus/xenbus_dev_frontend.c
|
||||||
|
index f3b089b7c0b6..1f4733b80c87 100644
|
||||||
|
--- a/drivers/xen/xenbus/xenbus_dev_frontend.c
|
||||||
|
+++ b/drivers/xen/xenbus/xenbus_dev_frontend.c
|
||||||
|
@@ -442,10 +442,8 @@ static int xenbus_write_transaction(unsigned msg_type,
|
||||||
|
return xenbus_command_reply(u, XS_ERROR, "ENOENT");
|
||||||
|
|
||||||
|
rc = xenbus_dev_request_and_reply(&u->u.msg, u);
|
||||||
|
- if (rc && trans) {
|
||||||
|
- list_del(&trans->list);
|
||||||
|
+ if (rc)
|
||||||
|
kfree(trans);
|
||||||
|
- }
|
||||||
|
|
||||||
|
out:
|
||||||
|
return rc;
|
||||||
|
--
|
||||||
|
2.15.1
|
||||||
|
|
@ -28,6 +28,12 @@ patches.xen/xen-pciback-add-attribute-to-allow-MSI-enable-flag-w.patch
|
|||||||
# Fix for grant-table in PVH/HVM in 4.14
|
# Fix for grant-table in PVH/HVM in 4.14
|
||||||
patches.xen/xen-Fix-set-clear-_foreign_p2m_mapping-on-autotransl.patch
|
patches.xen/xen-Fix-set-clear-_foreign_p2m_mapping-on-autotransl.patch
|
||||||
|
|
||||||
|
# Workaround for HVM suspend issue with >= 4.11
|
||||||
|
patches.xen/Revert-xen-avoid-deadlock-in-xenbus.patch
|
||||||
|
patches.xen/Revert-xen-avoid-deadlock-in-xenbus-driver.patch
|
||||||
|
patches.xen/Revert-xenbus-remove-transaction-holder-from-list-be.patch
|
||||||
|
patches.xen/Revert-xen-optimize-xenbus-driver-for-multiple-concu.patch
|
||||||
|
|
||||||
# Hardware-specific fixes, backported from newer kernel and/or developers branches
|
# Hardware-specific fixes, backported from newer kernel and/or developers branches
|
||||||
patches.backports/v2-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch
|
patches.backports/v2-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch
|
||||||
patches.backports/Input-synaptics---add-Intertouch-support-on-X1-Carbon-6th-and-X280.patch
|
patches.backports/Input-synaptics---add-Intertouch-support-on-X1-Carbon-6th-and-X280.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user