All of lore.kernel.org
 help / color / mirror / Atom feed
* [Drbd-dev] [PATCH drbd-9.0] compat: __vmalloc() pgprot argument was removed in v5.8
@ 2020-10-11 16:07 Lukas Wunner
  2020-10-11 18:39 ` Elimar Riesebieter
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Lukas Wunner @ 2020-10-11 16:07 UTC (permalink / raw)
  To: Philipp Reisner, Lars Ellenberg
  Cc: Michael Hierweck, Elimar Riesebieter, drbd-dev

Commit torvalds/linux@88dca4ca5a93 removed the pgprot argument from
__vmalloc().  There's a single invocation in drbd_bitmap.c.  Drop the
argument to stay as close as possible to upstream and apply a cocci
patch for older kernels which reinstates the additional argument.

Reported-by: Michael Hierweck <michael.hierweck@hostsharing.net>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
---
 drbd/drbd-kernel-compat/cocci/__vmalloc__no_has_2_params.cocci | 3 +++
 drbd/drbd-kernel-compat/gen_patch_names.c                      | 3 +++
 drbd/drbd-kernel-compat/tests/__vmalloc_has_2_params.c         | 8 ++++++++
 drbd/drbd_bitmap.c                                             | 3 +--
 4 files changed, 15 insertions(+), 2 deletions(-)
 create mode 100644 drbd/drbd-kernel-compat/cocci/__vmalloc__no_has_2_params.cocci
 create mode 100644 drbd/drbd-kernel-compat/tests/__vmalloc_has_2_params.c

diff --git a/drbd/drbd-kernel-compat/cocci/__vmalloc__no_has_2_params.cocci b/drbd/drbd-kernel-compat/cocci/__vmalloc__no_has_2_params.cocci
new file mode 100644
index 0000000..335581d
--- /dev/null
+++ b/drbd/drbd-kernel-compat/cocci/__vmalloc__no_has_2_params.cocci
@@ -0,0 +1,3 @@
+@@ expression S, G; @@
+- __vmalloc(S, G)
++ __vmalloc(S, G, PAGE_KERNEL)
diff --git a/drbd/drbd-kernel-compat/gen_patch_names.c b/drbd/drbd-kernel-compat/gen_patch_names.c
index 8d5af81..86e9d02 100644
--- a/drbd/drbd-kernel-compat/gen_patch_names.c
+++ b/drbd/drbd-kernel-compat/gen_patch_names.c
@@ -323,6 +323,9 @@ int main(int argc, char **argv)
 	patch(1, "part_stat_h", true, false,
 	      COMPAT_HAVE_PART_STAT_H, "present");
 
+	patch(1, "__vmalloc", true, false,
+	      COMPAT___VMALLOC_HAS_2_PARAMS, "has_2_params");
+
 /* #define BLKDEV_ISSUE_ZEROOUT_EXPORTED */
 /* #define BLKDEV_ZERO_NOUNMAP */
 
diff --git a/drbd/drbd-kernel-compat/tests/__vmalloc_has_2_params.c b/drbd/drbd-kernel-compat/tests/__vmalloc_has_2_params.c
new file mode 100644
index 0000000..00e2c28
--- /dev/null
+++ b/drbd/drbd-kernel-compat/tests/__vmalloc_has_2_params.c
@@ -0,0 +1,8 @@
+/* { "version": "v5.8-rc1", "commit": "88dca4ca5a93d2c09e5bbc6a62fbfc3af83c4fca", "comment": "pgprot argument to __vmalloc was removed", "author": "Christoph Hellwig <hch@lst.de>", "date": "Mon Jun 1 21:51:40 2020 -0700" } */
+
+#include <linux/vmalloc.h>
+
+void foo(void)
+{
+	__vmalloc(0, 0);
+}
diff --git a/drbd/drbd_bitmap.c b/drbd/drbd_bitmap.c
index 4dbed26..e23ed5a 100644
--- a/drbd/drbd_bitmap.c
+++ b/drbd/drbd_bitmap.c
@@ -366,9 +366,7 @@ static struct page **bm_realloc_pages(struct drbd_bitmap *b, unsigned long want)
 	new_pages = kzalloc(bytes, GFP_NOIO | __GFP_NOWARN);
 	if (!new_pages) {
 		new_pages = __vmalloc(bytes,
-				GFP_NOIO | __GFP_HIGHMEM | __GFP_ZERO,
-				PAGE_KERNEL);
+				      GFP_NOIO | __GFP_HIGHMEM | __GFP_ZERO);
 		if (!new_pages)
 			return NULL;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-10-23  7:23 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-11 16:07 [Drbd-dev] [PATCH drbd-9.0] compat: __vmalloc() pgprot argument was removed in v5.8 Lukas Wunner
2020-10-11 18:39 ` Elimar Riesebieter
2020-10-11 18:47   ` Elimar Riesebieter
2020-10-11 18:55     ` Lukas Wunner
2020-10-11 18:51   ` Lukas Wunner
2020-10-11 19:20     ` Elimar Riesebieter
2020-10-11 19:30     ` Elimar Riesebieter
2020-10-12  0:54       ` Lukas Wunner
2020-10-12 11:14         ` Elimar Riesebieter
2020-10-23  7:23           ` Lukas Wunner
2020-10-12 10:57 ` Elimar Riesebieter
2020-10-20 14:06 ` Christoph Böhmwalder

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.