diff options
Diffstat (limited to 'main/linux-grsec/0001-Staging-hv-fix-sleeping-while-atomic-issue.patch')
-rw-r--r-- | main/linux-grsec/0001-Staging-hv-fix-sleeping-while-atomic-issue.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/main/linux-grsec/0001-Staging-hv-fix-sleeping-while-atomic-issue.patch b/main/linux-grsec/0001-Staging-hv-fix-sleeping-while-atomic-issue.patch new file mode 100644 index 0000000000..1133c7591b --- /dev/null +++ b/main/linux-grsec/0001-Staging-hv-fix-sleeping-while-atomic-issue.patch @@ -0,0 +1,38 @@ +From 6ee51b8d69833b3cd00901999c36c59fbfde24aa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> +Date: Fri, 10 Dec 2010 16:23:26 +0200 +Subject: [PATCH] Staging: hv: fix sleeping while atomic issue +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +osd_schedule_callback() is called from VmbusOnMsgDPC() which runs +in a tasklet. Avoid possible sleeping by using GFP_ATOMIC for the +memory allocation. + +Seems to fix #16701. + +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16701 +Cc: Haiyang Zhang <haiyangz@microsoft.com> +Cc: Hank Janssen <hjanssen@microsoft.com> +Signed-off-by: Timo Teräs <timo.teras@iki.fi> +--- + drivers/staging/hv/osd.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/staging/hv/osd.c b/drivers/staging/hv/osd.c +index 8c3eb27..eb9b20d 100644 +--- a/drivers/staging/hv/osd.c ++++ b/drivers/staging/hv/osd.c +@@ -214,7 +214,7 @@ int osd_schedule_callback(struct workqueue_struct *wq, + { + struct osd_callback_struct *cb; + +- cb = kmalloc(sizeof(*cb), GFP_KERNEL); ++ cb = kmalloc(sizeof(*cb), GFP_ATOMIC); + if (!cb) { + printk(KERN_ERR "unable to allocate memory in osd_schedule_callback\n"); + return -1; +-- +1.7.1 + |