Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlaf Hering <ohering@suse.de>2013-07-19 16:39:26 +0200
committerOlaf Hering <ohering@suse.de>2013-07-19 16:39:31 +0200
commit0cd5432073dfb37d5aabef9ceb75b06a5ee7daa1 (patch)
tree89d9c471b84b5031fe448aa556e88b5dbf48d779
parentdd2cffed48d1cd67f182e19fdf2b06b469715bcc (diff)
Drivers: hv: balloon: Do not post pressure status if interruptedrpm-3.10.1-3.5.g0cd5432--openSUSE-13.1-Milestone4rpm-3.10.1-3.5.g0cd5432
-rw-r--r--patches.suse/suse-hv-Drivers-hv-balloon-Do-not-post-pressure-status-if-in.patch36
-rw-r--r--series.conf1
2 files changed, 37 insertions, 0 deletions
diff --git a/patches.suse/suse-hv-Drivers-hv-balloon-Do-not-post-pressure-status-if-in.patch b/patches.suse/suse-hv-Drivers-hv-balloon-Do-not-post-pressure-status-if-in.patch
new file mode 100644
index 0000000000..f22d8e648a
--- /dev/null
+++ b/patches.suse/suse-hv-Drivers-hv-balloon-Do-not-post-pressure-status-if-in.patch
@@ -0,0 +1,36 @@
+From: "K. Y. Srinivasan" <kys@microsoft.com>
+Date: Sun, 14 Jul 2013 22:38:12 -0700
+Patch-mainline: <submitted lkml 2013-07-14>
+Subject: Drivers: hv: balloon: Do not post pressure status if interrupted
+References: bnc#829539
+
+When we are posting pressure status, we may get interrupted and handle
+the un-balloon operation. In this case just don't post the status as we
+know the pressure status is stale.
+
+Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
+Cc: Stable <stable@vger.kernel.org>
+Acked-by: <ohering@suse.de>
+---
+ drivers/hv/hv_balloon.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
+index 61b7351..deb5c25 100644
+--- a/drivers/hv/hv_balloon.c
++++ b/drivers/hv/hv_balloon.c
+@@ -975,6 +975,14 @@ static void post_status(struct hv_dynmem_device *dm)
+ dm->num_pages_ballooned +
+ compute_balloon_floor();
+
++ /*
++ * If our transaction ID is no longer current, just don't
++ * send the status. This can happen if we were interrupted
++ * after we picked our transaction ID.
++ */
++ if (status.hdr.trans_id != atomic_read(&trans_id))
++ return;
++
+ vmbus_sendpacket(dm->dev->channel, &status,
+ sizeof(struct dm_status),
+ (unsigned long)NULL,
diff --git a/series.conf b/series.conf
index 10071a2480..2eb174b758 100644
--- a/series.conf
+++ b/series.conf
@@ -239,6 +239,7 @@
########################################################
patches.suse/suse-hv-Drivers-hv-util-Fix-a-bug-in-version-negotiation-cod.patch
patches.suse/suse-hv-Drivers-hv-balloon-Fix-a-bug-in-the-hot-add-code.patch
+ patches.suse/suse-hv-Drivers-hv-balloon-Do-not-post-pressure-status-if-in.patch
########################################################
# Networking, IPv6