summaryrefslogtreecommitdiff |
diff options
author | Olaf Hering <ohering@suse.de> | 2013-07-19 16:39:26 +0200 |
---|---|---|
committer | Olaf Hering <ohering@suse.de> | 2013-07-19 16:39:31 +0200 |
commit | 0cd5432073dfb37d5aabef9ceb75b06a5ee7daa1 (patch) | |
tree | 89d9c471b84b5031fe448aa556e88b5dbf48d779 | |
parent | dd2cffed48d1cd67f182e19fdf2b06b469715bcc (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
(bnc#829539).
-rw-r--r-- | patches.suse/suse-hv-Drivers-hv-balloon-Do-not-post-pressure-status-if-in.patch | 36 | ||||
-rw-r--r-- | series.conf | 1 |
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 |