+++ /dev/null
-From c46ecce431ebe6b1a9551d1f530eb432dae5c39b Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Mon, 10 Jul 2017 15:51:52 -0700
-Subject: lib/interval_tree_test.c: allow full tree search
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit c46ecce431ebe6b1a9551d1f530eb432dae5c39b upstream.
-
-... such that a user can specify visiting all the nodes in the tree
-(intersects with the world). This is a nice opposite from the very
-basic default query which is a single point.
-
-Link: http://lkml.kernel.org/r/20170518174936.20265-5-dave@stgolabs.net
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/interval_tree_test.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
---- a/lib/interval_tree_test.c
-+++ b/lib/interval_tree_test.c
-@@ -15,6 +15,7 @@ __param(int, perf_loops, 100000, "Number
-
- __param(int, nsearches, 100, "Number of searches to the interval tree");
- __param(int, search_loops, 10000, "Number of iterations searching the tree");
-+__param(bool, search_all, false, "Searches will iterate all nodes in the tree");
-
-
- static struct rb_root root = RB_ROOT;
-@@ -24,13 +25,13 @@ static u32 *queries = NULL;
- static struct rnd_state rnd;
-
- static inline unsigned long
--search(unsigned long query, struct rb_root *root)
-+search(struct rb_root *root, unsigned long start, unsigned long last)
- {
- struct interval_tree_node *node;
- unsigned long results = 0;
-
-- for (node = interval_tree_iter_first(root, query, query); node;
-- node = interval_tree_iter_next(node, query, query))
-+ for (node = interval_tree_iter_first(root, start, last); node;
-+ node = interval_tree_iter_next(node, start, last))
- results++;
- return results;
- }
-@@ -99,8 +100,12 @@ static int interval_tree_test_init(void)
-
- results = 0;
- for (i = 0; i < search_loops; i++)
-- for (j = 0; j < nsearches; j++)
-- results += search(queries[j], &root);
-+ for (j = 0; j < nsearches; j++) {
-+ unsigned long start = search_all ? 0 : queries[j];
-+ unsigned long last = search_all ? max_endpoint : queries[j];
-+
-+ results += search(&root, start, last);
-+ }
-
- time2 = get_cycles();
- time = time2 - time1;
+++ /dev/null
-From a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Mon, 10 Jul 2017 15:51:46 -0700
-Subject: lib/interval_tree_test.c: make test options module parameters
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b upstream.
-
-Allows for more flexible debugging.
-
-Link: http://lkml.kernel.org/r/20170518174936.20265-3-dave@stgolabs.net
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/interval_tree_test.c | 57 ++++++++++++++++++++++++++++++++---------------
- 1 file changed, 40 insertions(+), 17 deletions(-)
-
---- a/lib/interval_tree_test.c
-+++ b/lib/interval_tree_test.c
-@@ -1,16 +1,25 @@
- #include <linux/module.h>
-+#include <linux/moduleparam.h>
- #include <linux/interval_tree.h>
- #include <linux/random.h>
-+#include <linux/slab.h>
- #include <asm/timex.h>
-
--#define NODES 100
--#define PERF_LOOPS 100000
--#define SEARCHES 100
--#define SEARCH_LOOPS 10000
-+#define __param(type, name, init, msg) \
-+ static type name = init; \
-+ module_param(name, type, 0444); \
-+ MODULE_PARM_DESC(name, msg);
-+
-+__param(int, nnodes, 100, "Number of nodes in the interval tree");
-+__param(int, perf_loops, 100000, "Number of iterations modifying the tree");
-+
-+__param(int, nsearches, 100, "Number of searches to the interval tree");
-+__param(int, search_loops, 10000, "Number of iterations searching the tree");
-+
-
- static struct rb_root root = RB_ROOT;
--static struct interval_tree_node nodes[NODES];
--static u32 queries[SEARCHES];
-+static struct interval_tree_node *nodes = NULL;
-+static u32 *queries = NULL;
-
- static struct rnd_state rnd;
-
-@@ -29,7 +38,8 @@ search(unsigned long query, struct rb_ro
- static void init(void)
- {
- int i;
-- for (i = 0; i < NODES; i++) {
-+
-+ for (i = 0; i < nnodes; i++) {
- u32 a = prandom_u32_state(&rnd);
- u32 b = prandom_u32_state(&rnd);
- if (a <= b) {
-@@ -40,7 +50,7 @@ static void init(void)
- nodes[i].last = a;
- }
- }
-- for (i = 0; i < SEARCHES; i++)
-+ for (i = 0; i < nsearches; i++)
- queries[i] = prandom_u32_state(&rnd);
- }
-
-@@ -50,6 +60,16 @@ static int interval_tree_test_init(void)
- unsigned long results;
- cycles_t time1, time2, time;
-
-+ nodes = kmalloc(nnodes * sizeof(struct interval_tree_node), GFP_KERNEL);
-+ if (!nodes)
-+ return -ENOMEM;
-+
-+ queries = kmalloc(nsearches * sizeof(int), GFP_KERNEL);
-+ if (!queries) {
-+ kfree(nodes);
-+ return -ENOMEM;
-+ }
-+
- printk(KERN_ALERT "interval tree insert/remove");
-
- prandom_seed_state(&rnd, 3141592653589793238ULL);
-@@ -57,39 +77,42 @@ static int interval_tree_test_init(void)
-
- time1 = get_cycles();
-
-- for (i = 0; i < PERF_LOOPS; i++) {
-- for (j = 0; j < NODES; j++)
-+ for (i = 0; i < perf_loops; i++) {
-+ for (j = 0; j < nnodes; j++)
- interval_tree_insert(nodes + j, &root);
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- interval_tree_remove(nodes + j, &root);
- }
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, PERF_LOOPS);
-+ time = div_u64(time, perf_loops);
- printk(" -> %llu cycles\n", (unsigned long long)time);
-
- printk(KERN_ALERT "interval tree search");
-
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- interval_tree_insert(nodes + j, &root);
-
- time1 = get_cycles();
-
- results = 0;
-- for (i = 0; i < SEARCH_LOOPS; i++)
-- for (j = 0; j < SEARCHES; j++)
-+ for (i = 0; i < search_loops; i++)
-+ for (j = 0; j < nsearches; j++)
- results += search(queries[j], &root);
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, SEARCH_LOOPS);
-- results = div_u64(results, SEARCH_LOOPS);
-+ time = div_u64(time, search_loops);
-+ results = div_u64(results, search_loops);
- printk(" -> %llu cycles (%lu results)\n",
- (unsigned long long)time, results);
-
-+ kfree(queries);
-+ kfree(nodes);
-+
- return -EAGAIN; /* Fail will directly unload the module */
- }
-
+++ /dev/null
-From 0b548e33e6cb2bff240fdaf1783783be15c29080 Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Fri, 17 Nov 2017 15:28:27 -0800
-Subject: lib/rbtree-test: lower default params
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit 0b548e33e6cb2bff240fdaf1783783be15c29080 upstream.
-
-Fengguang reported soft lockups while running the rbtree and interval
-tree test modules. The logic for these tests all occur in init phase,
-and we currently are pounding with the default values for number of
-nodes and number of iterations of each test. Reduce the latter by two
-orders of magnitude. This does not influence the value of the tests in
-that one thousand times by default is enough to get the picture.
-
-Link: http://lkml.kernel.org/r/20171109161715.xai2dtwqw2frhkcm@linux-n805
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Reported-by: Fengguang Wu <fengguang.wu@intel.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/interval_tree_test.c | 4 ++--
- lib/rbtree_test.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
---- a/lib/interval_tree_test.c
-+++ b/lib/interval_tree_test.c
-@@ -11,10 +11,10 @@
- MODULE_PARM_DESC(name, msg);
-
- __param(int, nnodes, 100, "Number of nodes in the interval tree");
--__param(int, perf_loops, 100000, "Number of iterations modifying the tree");
-+__param(int, perf_loops, 1000, "Number of iterations modifying the tree");
-
- __param(int, nsearches, 100, "Number of searches to the interval tree");
--__param(int, search_loops, 10000, "Number of iterations searching the tree");
-+__param(int, search_loops, 1000, "Number of iterations searching the tree");
- __param(bool, search_all, false, "Searches will iterate all nodes in the tree");
-
-
---- a/lib/rbtree_test.c
-+++ b/lib/rbtree_test.c
-@@ -11,7 +11,7 @@
- MODULE_PARM_DESC(name, msg);
-
- __param(int, nnodes, 100, "Number of nodes in the rb-tree");
--__param(int, perf_loops, 100000, "Number of iterations modifying the rb-tree");
-+__param(int, perf_loops, 1000, "Number of iterations modifying the rb-tree");
- __param(int, check_loops, 100, "Number of iterations modifying and verifying the rb-tree");
-
- struct test_node {
+++ /dev/null
-From 223f8911eace60c787f8767c25148b80ece9732a Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Fri, 8 Sep 2017 16:14:46 -0700
-Subject: lib/rbtree_test.c: make input module parameters
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit 223f8911eace60c787f8767c25148b80ece9732a upstream.
-
-Allows for more flexible debugging.
-
-Link: http://lkml.kernel.org/r/20170719014603.19029-5-dave@stgolabs.net
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/rbtree_test.c | 55 +++++++++++++++++++++++++++++++++---------------------
- 1 file changed, 34 insertions(+), 21 deletions(-)
-
---- a/lib/rbtree_test.c
-+++ b/lib/rbtree_test.c
-@@ -1,11 +1,18 @@
- #include <linux/module.h>
-+#include <linux/moduleparam.h>
- #include <linux/rbtree_augmented.h>
- #include <linux/random.h>
-+#include <linux/slab.h>
- #include <asm/timex.h>
-
--#define NODES 100
--#define PERF_LOOPS 100000
--#define CHECK_LOOPS 100
-+#define __param(type, name, init, msg) \
-+ static type name = init; \
-+ module_param(name, type, 0444); \
-+ MODULE_PARM_DESC(name, msg);
-+
-+__param(int, nnodes, 100, "Number of nodes in the rb-tree");
-+__param(int, perf_loops, 100000, "Number of iterations modifying the rb-tree");
-+__param(int, check_loops, 100, "Number of iterations modifying and verifying the rb-tree");
-
- struct test_node {
- u32 key;
-@@ -17,7 +24,7 @@ struct test_node {
- };
-
- static struct rb_root root = RB_ROOT;
--static struct test_node nodes[NODES];
-+static struct test_node *nodes = NULL;
-
- static struct rnd_state rnd;
-
-@@ -95,7 +102,7 @@ static void erase_augmented(struct test_
- static void init(void)
- {
- int i;
-- for (i = 0; i < NODES; i++) {
-+ for (i = 0; i < nnodes; i++) {
- nodes[i].key = prandom_u32_state(&rnd);
- nodes[i].val = prandom_u32_state(&rnd);
- }
-@@ -177,6 +184,10 @@ static int __init rbtree_test_init(void)
- int i, j;
- cycles_t time1, time2, time;
-
-+ nodes = kmalloc(nnodes * sizeof(*nodes), GFP_KERNEL);
-+ if (!nodes)
-+ return -ENOMEM;
-+
- printk(KERN_ALERT "rbtree testing");
-
- prandom_seed_state(&rnd, 3141592653589793238ULL);
-@@ -184,27 +195,27 @@ static int __init rbtree_test_init(void)
-
- time1 = get_cycles();
-
-- for (i = 0; i < PERF_LOOPS; i++) {
-- for (j = 0; j < NODES; j++)
-+ for (i = 0; i < perf_loops; i++) {
-+ for (j = 0; j < nnodes; j++)
- insert(nodes + j, &root);
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- erase(nodes + j, &root);
- }
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, PERF_LOOPS);
-+ time = div_u64(time, perf_loops);
- printk(" -> %llu cycles\n", (unsigned long long)time);
-
-- for (i = 0; i < CHECK_LOOPS; i++) {
-+ for (i = 0; i < check_loops; i++) {
- init();
-- for (j = 0; j < NODES; j++) {
-+ for (j = 0; j < nnodes; j++) {
- check(j);
- insert(nodes + j, &root);
- }
-- for (j = 0; j < NODES; j++) {
-- check(NODES - j);
-+ for (j = 0; j < nnodes; j++) {
-+ check(nnodes - j);
- erase(nodes + j, &root);
- }
- check(0);
-@@ -216,32 +227,34 @@ static int __init rbtree_test_init(void)
-
- time1 = get_cycles();
-
-- for (i = 0; i < PERF_LOOPS; i++) {
-- for (j = 0; j < NODES; j++)
-+ for (i = 0; i < perf_loops; i++) {
-+ for (j = 0; j < nnodes; j++)
- insert_augmented(nodes + j, &root);
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- erase_augmented(nodes + j, &root);
- }
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, PERF_LOOPS);
-+ time = div_u64(time, perf_loops);
- printk(" -> %llu cycles\n", (unsigned long long)time);
-
-- for (i = 0; i < CHECK_LOOPS; i++) {
-+ for (i = 0; i < check_loops; i++) {
- init();
-- for (j = 0; j < NODES; j++) {
-+ for (j = 0; j < nnodes; j++) {
- check_augmented(j);
- insert_augmented(nodes + j, &root);
- }
-- for (j = 0; j < NODES; j++) {
-- check_augmented(NODES - j);
-+ for (j = 0; j < nnodes; j++) {
-+ check_augmented(nnodes - j);
- erase_augmented(nodes + j, &root);
- }
- check_augmented(0);
- }
-
-+ kfree(nodes);
-+
- return -EAGAIN; /* Fail will directly unload the module */
- }
-
debugobjects-avoid-recursive-calls-with-kmemleak.patch
ocfs2-fix-potential-use-after-free.patch
pstore-convert-console-write-to-use-write_buf.patch
-lib-interval_tree_test.c-make-test-options-module-parameters.patch
-lib-interval_tree_test.c-allow-full-tree-search.patch
-lib-rbtree_test.c-make-input-module-parameters.patch
-lib-rbtree-test-lower-default-params.patch
+++ /dev/null
-From c46ecce431ebe6b1a9551d1f530eb432dae5c39b Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Mon, 10 Jul 2017 15:51:52 -0700
-Subject: lib/interval_tree_test.c: allow full tree search
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit c46ecce431ebe6b1a9551d1f530eb432dae5c39b upstream.
-
-... such that a user can specify visiting all the nodes in the tree
-(intersects with the world). This is a nice opposite from the very
-basic default query which is a single point.
-
-Link: http://lkml.kernel.org/r/20170518174936.20265-5-dave@stgolabs.net
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/interval_tree_test.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
---- a/lib/interval_tree_test.c
-+++ b/lib/interval_tree_test.c
-@@ -15,6 +15,7 @@ __param(int, perf_loops, 100000, "Number
-
- __param(int, nsearches, 100, "Number of searches to the interval tree");
- __param(int, search_loops, 10000, "Number of iterations searching the tree");
-+__param(bool, search_all, false, "Searches will iterate all nodes in the tree");
-
-
- static struct rb_root root = RB_ROOT;
-@@ -24,13 +25,13 @@ static u32 *queries = NULL;
- static struct rnd_state rnd;
-
- static inline unsigned long
--search(unsigned long query, struct rb_root *root)
-+search(struct rb_root *root, unsigned long start, unsigned long last)
- {
- struct interval_tree_node *node;
- unsigned long results = 0;
-
-- for (node = interval_tree_iter_first(root, query, query); node;
-- node = interval_tree_iter_next(node, query, query))
-+ for (node = interval_tree_iter_first(root, start, last); node;
-+ node = interval_tree_iter_next(node, start, last))
- results++;
- return results;
- }
-@@ -99,8 +100,12 @@ static int interval_tree_test_init(void)
-
- results = 0;
- for (i = 0; i < search_loops; i++)
-- for (j = 0; j < nsearches; j++)
-- results += search(queries[j], &root);
-+ for (j = 0; j < nsearches; j++) {
-+ unsigned long start = search_all ? 0 : queries[j];
-+ unsigned long last = search_all ? max_endpoint : queries[j];
-+
-+ results += search(&root, start, last);
-+ }
-
- time2 = get_cycles();
- time = time2 - time1;
+++ /dev/null
-From a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Mon, 10 Jul 2017 15:51:46 -0700
-Subject: lib/interval_tree_test.c: make test options module parameters
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b upstream.
-
-Allows for more flexible debugging.
-
-Link: http://lkml.kernel.org/r/20170518174936.20265-3-dave@stgolabs.net
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/interval_tree_test.c | 57 ++++++++++++++++++++++++++++++++---------------
- 1 file changed, 40 insertions(+), 17 deletions(-)
-
---- a/lib/interval_tree_test.c
-+++ b/lib/interval_tree_test.c
-@@ -1,16 +1,25 @@
- #include <linux/module.h>
-+#include <linux/moduleparam.h>
- #include <linux/interval_tree.h>
- #include <linux/random.h>
-+#include <linux/slab.h>
- #include <asm/timex.h>
-
--#define NODES 100
--#define PERF_LOOPS 100000
--#define SEARCHES 100
--#define SEARCH_LOOPS 10000
-+#define __param(type, name, init, msg) \
-+ static type name = init; \
-+ module_param(name, type, 0444); \
-+ MODULE_PARM_DESC(name, msg);
-+
-+__param(int, nnodes, 100, "Number of nodes in the interval tree");
-+__param(int, perf_loops, 100000, "Number of iterations modifying the tree");
-+
-+__param(int, nsearches, 100, "Number of searches to the interval tree");
-+__param(int, search_loops, 10000, "Number of iterations searching the tree");
-+
-
- static struct rb_root root = RB_ROOT;
--static struct interval_tree_node nodes[NODES];
--static u32 queries[SEARCHES];
-+static struct interval_tree_node *nodes = NULL;
-+static u32 *queries = NULL;
-
- static struct rnd_state rnd;
-
-@@ -29,7 +38,8 @@ search(unsigned long query, struct rb_ro
- static void init(void)
- {
- int i;
-- for (i = 0; i < NODES; i++) {
-+
-+ for (i = 0; i < nnodes; i++) {
- u32 a = prandom_u32_state(&rnd);
- u32 b = prandom_u32_state(&rnd);
- if (a <= b) {
-@@ -40,7 +50,7 @@ static void init(void)
- nodes[i].last = a;
- }
- }
-- for (i = 0; i < SEARCHES; i++)
-+ for (i = 0; i < nsearches; i++)
- queries[i] = prandom_u32_state(&rnd);
- }
-
-@@ -50,6 +60,16 @@ static int interval_tree_test_init(void)
- unsigned long results;
- cycles_t time1, time2, time;
-
-+ nodes = kmalloc(nnodes * sizeof(struct interval_tree_node), GFP_KERNEL);
-+ if (!nodes)
-+ return -ENOMEM;
-+
-+ queries = kmalloc(nsearches * sizeof(int), GFP_KERNEL);
-+ if (!queries) {
-+ kfree(nodes);
-+ return -ENOMEM;
-+ }
-+
- printk(KERN_ALERT "interval tree insert/remove");
-
- prandom_seed_state(&rnd, 3141592653589793238ULL);
-@@ -57,39 +77,42 @@ static int interval_tree_test_init(void)
-
- time1 = get_cycles();
-
-- for (i = 0; i < PERF_LOOPS; i++) {
-- for (j = 0; j < NODES; j++)
-+ for (i = 0; i < perf_loops; i++) {
-+ for (j = 0; j < nnodes; j++)
- interval_tree_insert(nodes + j, &root);
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- interval_tree_remove(nodes + j, &root);
- }
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, PERF_LOOPS);
-+ time = div_u64(time, perf_loops);
- printk(" -> %llu cycles\n", (unsigned long long)time);
-
- printk(KERN_ALERT "interval tree search");
-
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- interval_tree_insert(nodes + j, &root);
-
- time1 = get_cycles();
-
- results = 0;
-- for (i = 0; i < SEARCH_LOOPS; i++)
-- for (j = 0; j < SEARCHES; j++)
-+ for (i = 0; i < search_loops; i++)
-+ for (j = 0; j < nsearches; j++)
- results += search(queries[j], &root);
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, SEARCH_LOOPS);
-- results = div_u64(results, SEARCH_LOOPS);
-+ time = div_u64(time, search_loops);
-+ results = div_u64(results, search_loops);
- printk(" -> %llu cycles (%lu results)\n",
- (unsigned long long)time, results);
-
-+ kfree(queries);
-+ kfree(nodes);
-+
- return -EAGAIN; /* Fail will directly unload the module */
- }
-
+++ /dev/null
-From 0b548e33e6cb2bff240fdaf1783783be15c29080 Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Fri, 17 Nov 2017 15:28:27 -0800
-Subject: lib/rbtree-test: lower default params
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit 0b548e33e6cb2bff240fdaf1783783be15c29080 upstream.
-
-Fengguang reported soft lockups while running the rbtree and interval
-tree test modules. The logic for these tests all occur in init phase,
-and we currently are pounding with the default values for number of
-nodes and number of iterations of each test. Reduce the latter by two
-orders of magnitude. This does not influence the value of the tests in
-that one thousand times by default is enough to get the picture.
-
-Link: http://lkml.kernel.org/r/20171109161715.xai2dtwqw2frhkcm@linux-n805
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Reported-by: Fengguang Wu <fengguang.wu@intel.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/interval_tree_test.c | 4 ++--
- lib/rbtree_test.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
---- a/lib/interval_tree_test.c
-+++ b/lib/interval_tree_test.c
-@@ -11,10 +11,10 @@
- MODULE_PARM_DESC(name, msg);
-
- __param(int, nnodes, 100, "Number of nodes in the interval tree");
--__param(int, perf_loops, 100000, "Number of iterations modifying the tree");
-+__param(int, perf_loops, 1000, "Number of iterations modifying the tree");
-
- __param(int, nsearches, 100, "Number of searches to the interval tree");
--__param(int, search_loops, 10000, "Number of iterations searching the tree");
-+__param(int, search_loops, 1000, "Number of iterations searching the tree");
- __param(bool, search_all, false, "Searches will iterate all nodes in the tree");
-
-
---- a/lib/rbtree_test.c
-+++ b/lib/rbtree_test.c
-@@ -11,7 +11,7 @@
- MODULE_PARM_DESC(name, msg);
-
- __param(int, nnodes, 100, "Number of nodes in the rb-tree");
--__param(int, perf_loops, 100000, "Number of iterations modifying the rb-tree");
-+__param(int, perf_loops, 1000, "Number of iterations modifying the rb-tree");
- __param(int, check_loops, 100, "Number of iterations modifying and verifying the rb-tree");
-
- struct test_node {
+++ /dev/null
-From 223f8911eace60c787f8767c25148b80ece9732a Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Fri, 8 Sep 2017 16:14:46 -0700
-Subject: lib/rbtree_test.c: make input module parameters
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit 223f8911eace60c787f8767c25148b80ece9732a upstream.
-
-Allows for more flexible debugging.
-
-Link: http://lkml.kernel.org/r/20170719014603.19029-5-dave@stgolabs.net
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/rbtree_test.c | 55 +++++++++++++++++++++++++++++++++---------------------
- 1 file changed, 34 insertions(+), 21 deletions(-)
-
---- a/lib/rbtree_test.c
-+++ b/lib/rbtree_test.c
-@@ -1,11 +1,18 @@
- #include <linux/module.h>
-+#include <linux/moduleparam.h>
- #include <linux/rbtree_augmented.h>
- #include <linux/random.h>
-+#include <linux/slab.h>
- #include <asm/timex.h>
-
--#define NODES 100
--#define PERF_LOOPS 100000
--#define CHECK_LOOPS 100
-+#define __param(type, name, init, msg) \
-+ static type name = init; \
-+ module_param(name, type, 0444); \
-+ MODULE_PARM_DESC(name, msg);
-+
-+__param(int, nnodes, 100, "Number of nodes in the rb-tree");
-+__param(int, perf_loops, 100000, "Number of iterations modifying the rb-tree");
-+__param(int, check_loops, 100, "Number of iterations modifying and verifying the rb-tree");
-
- struct test_node {
- u32 key;
-@@ -17,7 +24,7 @@ struct test_node {
- };
-
- static struct rb_root root = RB_ROOT;
--static struct test_node nodes[NODES];
-+static struct test_node *nodes = NULL;
-
- static struct rnd_state rnd;
-
-@@ -95,7 +102,7 @@ static void erase_augmented(struct test_
- static void init(void)
- {
- int i;
-- for (i = 0; i < NODES; i++) {
-+ for (i = 0; i < nnodes; i++) {
- nodes[i].key = prandom_u32_state(&rnd);
- nodes[i].val = prandom_u32_state(&rnd);
- }
-@@ -177,6 +184,10 @@ static int __init rbtree_test_init(void)
- int i, j;
- cycles_t time1, time2, time;
-
-+ nodes = kmalloc(nnodes * sizeof(*nodes), GFP_KERNEL);
-+ if (!nodes)
-+ return -ENOMEM;
-+
- printk(KERN_ALERT "rbtree testing");
-
- prandom_seed_state(&rnd, 3141592653589793238ULL);
-@@ -184,27 +195,27 @@ static int __init rbtree_test_init(void)
-
- time1 = get_cycles();
-
-- for (i = 0; i < PERF_LOOPS; i++) {
-- for (j = 0; j < NODES; j++)
-+ for (i = 0; i < perf_loops; i++) {
-+ for (j = 0; j < nnodes; j++)
- insert(nodes + j, &root);
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- erase(nodes + j, &root);
- }
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, PERF_LOOPS);
-+ time = div_u64(time, perf_loops);
- printk(" -> %llu cycles\n", (unsigned long long)time);
-
-- for (i = 0; i < CHECK_LOOPS; i++) {
-+ for (i = 0; i < check_loops; i++) {
- init();
-- for (j = 0; j < NODES; j++) {
-+ for (j = 0; j < nnodes; j++) {
- check(j);
- insert(nodes + j, &root);
- }
-- for (j = 0; j < NODES; j++) {
-- check(NODES - j);
-+ for (j = 0; j < nnodes; j++) {
-+ check(nnodes - j);
- erase(nodes + j, &root);
- }
- check(0);
-@@ -216,32 +227,34 @@ static int __init rbtree_test_init(void)
-
- time1 = get_cycles();
-
-- for (i = 0; i < PERF_LOOPS; i++) {
-- for (j = 0; j < NODES; j++)
-+ for (i = 0; i < perf_loops; i++) {
-+ for (j = 0; j < nnodes; j++)
- insert_augmented(nodes + j, &root);
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- erase_augmented(nodes + j, &root);
- }
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, PERF_LOOPS);
-+ time = div_u64(time, perf_loops);
- printk(" -> %llu cycles\n", (unsigned long long)time);
-
-- for (i = 0; i < CHECK_LOOPS; i++) {
-+ for (i = 0; i < check_loops; i++) {
- init();
-- for (j = 0; j < NODES; j++) {
-+ for (j = 0; j < nnodes; j++) {
- check_augmented(j);
- insert_augmented(nodes + j, &root);
- }
-- for (j = 0; j < NODES; j++) {
-- check_augmented(NODES - j);
-+ for (j = 0; j < nnodes; j++) {
-+ check_augmented(nnodes - j);
- erase_augmented(nodes + j, &root);
- }
- check_augmented(0);
- }
-
-+ kfree(nodes);
-+
- return -EAGAIN; /* Fail will directly unload the module */
- }
-
mm-replace-access_remote_vm-write-parameter-with-gup_flags.patch
proc-don-t-use-foll_force-for-reading-cmdline-and-environment.patch
proc-do-not-access-cmdline-nor-environ-from-file-backed-areas.patch
-lib-interval_tree_test.c-make-test-options-module-parameters.patch
-lib-interval_tree_test.c-allow-full-tree-search.patch
-lib-rbtree_test.c-make-input-module-parameters.patch
-lib-rbtree-test-lower-default-params.patch
+media-dvb-frontends-fix-i2c-access-helpers-for-kasan.patch
+++ /dev/null
-From c46ecce431ebe6b1a9551d1f530eb432dae5c39b Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Mon, 10 Jul 2017 15:51:52 -0700
-Subject: lib/interval_tree_test.c: allow full tree search
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit c46ecce431ebe6b1a9551d1f530eb432dae5c39b upstream.
-
-... such that a user can specify visiting all the nodes in the tree
-(intersects with the world). This is a nice opposite from the very
-basic default query which is a single point.
-
-Link: http://lkml.kernel.org/r/20170518174936.20265-5-dave@stgolabs.net
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/interval_tree_test.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
---- a/lib/interval_tree_test.c
-+++ b/lib/interval_tree_test.c
-@@ -15,6 +15,7 @@ __param(int, perf_loops, 100000, "Number
-
- __param(int, nsearches, 100, "Number of searches to the interval tree");
- __param(int, search_loops, 10000, "Number of iterations searching the tree");
-+__param(bool, search_all, false, "Searches will iterate all nodes in the tree");
-
-
- static struct rb_root root = RB_ROOT;
-@@ -24,13 +25,13 @@ static u32 *queries = NULL;
- static struct rnd_state rnd;
-
- static inline unsigned long
--search(unsigned long query, struct rb_root *root)
-+search(struct rb_root *root, unsigned long start, unsigned long last)
- {
- struct interval_tree_node *node;
- unsigned long results = 0;
-
-- for (node = interval_tree_iter_first(root, query, query); node;
-- node = interval_tree_iter_next(node, query, query))
-+ for (node = interval_tree_iter_first(root, start, last); node;
-+ node = interval_tree_iter_next(node, start, last))
- results++;
- return results;
- }
-@@ -99,8 +100,12 @@ static int interval_tree_test_init(void)
-
- results = 0;
- for (i = 0; i < search_loops; i++)
-- for (j = 0; j < nsearches; j++)
-- results += search(queries[j], &root);
-+ for (j = 0; j < nsearches; j++) {
-+ unsigned long start = search_all ? 0 : queries[j];
-+ unsigned long last = search_all ? max_endpoint : queries[j];
-+
-+ results += search(&root, start, last);
-+ }
-
- time2 = get_cycles();
- time = time2 - time1;
+++ /dev/null
-From a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Mon, 10 Jul 2017 15:51:46 -0700
-Subject: lib/interval_tree_test.c: make test options module parameters
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b upstream.
-
-Allows for more flexible debugging.
-
-Link: http://lkml.kernel.org/r/20170518174936.20265-3-dave@stgolabs.net
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/interval_tree_test.c | 57 ++++++++++++++++++++++++++++++++---------------
- 1 file changed, 40 insertions(+), 17 deletions(-)
-
---- a/lib/interval_tree_test.c
-+++ b/lib/interval_tree_test.c
-@@ -1,16 +1,25 @@
- #include <linux/module.h>
-+#include <linux/moduleparam.h>
- #include <linux/interval_tree.h>
- #include <linux/random.h>
-+#include <linux/slab.h>
- #include <asm/timex.h>
-
--#define NODES 100
--#define PERF_LOOPS 100000
--#define SEARCHES 100
--#define SEARCH_LOOPS 10000
-+#define __param(type, name, init, msg) \
-+ static type name = init; \
-+ module_param(name, type, 0444); \
-+ MODULE_PARM_DESC(name, msg);
-+
-+__param(int, nnodes, 100, "Number of nodes in the interval tree");
-+__param(int, perf_loops, 100000, "Number of iterations modifying the tree");
-+
-+__param(int, nsearches, 100, "Number of searches to the interval tree");
-+__param(int, search_loops, 10000, "Number of iterations searching the tree");
-+
-
- static struct rb_root root = RB_ROOT;
--static struct interval_tree_node nodes[NODES];
--static u32 queries[SEARCHES];
-+static struct interval_tree_node *nodes = NULL;
-+static u32 *queries = NULL;
-
- static struct rnd_state rnd;
-
-@@ -29,7 +38,8 @@ search(unsigned long query, struct rb_ro
- static void init(void)
- {
- int i;
-- for (i = 0; i < NODES; i++) {
-+
-+ for (i = 0; i < nnodes; i++) {
- u32 a = prandom_u32_state(&rnd);
- u32 b = prandom_u32_state(&rnd);
- if (a <= b) {
-@@ -40,7 +50,7 @@ static void init(void)
- nodes[i].last = a;
- }
- }
-- for (i = 0; i < SEARCHES; i++)
-+ for (i = 0; i < nsearches; i++)
- queries[i] = prandom_u32_state(&rnd);
- }
-
-@@ -50,6 +60,16 @@ static int interval_tree_test_init(void)
- unsigned long results;
- cycles_t time1, time2, time;
-
-+ nodes = kmalloc(nnodes * sizeof(struct interval_tree_node), GFP_KERNEL);
-+ if (!nodes)
-+ return -ENOMEM;
-+
-+ queries = kmalloc(nsearches * sizeof(int), GFP_KERNEL);
-+ if (!queries) {
-+ kfree(nodes);
-+ return -ENOMEM;
-+ }
-+
- printk(KERN_ALERT "interval tree insert/remove");
-
- prandom_seed_state(&rnd, 3141592653589793238ULL);
-@@ -57,39 +77,42 @@ static int interval_tree_test_init(void)
-
- time1 = get_cycles();
-
-- for (i = 0; i < PERF_LOOPS; i++) {
-- for (j = 0; j < NODES; j++)
-+ for (i = 0; i < perf_loops; i++) {
-+ for (j = 0; j < nnodes; j++)
- interval_tree_insert(nodes + j, &root);
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- interval_tree_remove(nodes + j, &root);
- }
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, PERF_LOOPS);
-+ time = div_u64(time, perf_loops);
- printk(" -> %llu cycles\n", (unsigned long long)time);
-
- printk(KERN_ALERT "interval tree search");
-
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- interval_tree_insert(nodes + j, &root);
-
- time1 = get_cycles();
-
- results = 0;
-- for (i = 0; i < SEARCH_LOOPS; i++)
-- for (j = 0; j < SEARCHES; j++)
-+ for (i = 0; i < search_loops; i++)
-+ for (j = 0; j < nsearches; j++)
- results += search(queries[j], &root);
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, SEARCH_LOOPS);
-- results = div_u64(results, SEARCH_LOOPS);
-+ time = div_u64(time, search_loops);
-+ results = div_u64(results, search_loops);
- printk(" -> %llu cycles (%lu results)\n",
- (unsigned long long)time, results);
-
-+ kfree(queries);
-+ kfree(nodes);
-+
- return -EAGAIN; /* Fail will directly unload the module */
- }
-
+++ /dev/null
-From 0b548e33e6cb2bff240fdaf1783783be15c29080 Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Fri, 17 Nov 2017 15:28:27 -0800
-Subject: lib/rbtree-test: lower default params
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit 0b548e33e6cb2bff240fdaf1783783be15c29080 upstream.
-
-Fengguang reported soft lockups while running the rbtree and interval
-tree test modules. The logic for these tests all occur in init phase,
-and we currently are pounding with the default values for number of
-nodes and number of iterations of each test. Reduce the latter by two
-orders of magnitude. This does not influence the value of the tests in
-that one thousand times by default is enough to get the picture.
-
-Link: http://lkml.kernel.org/r/20171109161715.xai2dtwqw2frhkcm@linux-n805
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Reported-by: Fengguang Wu <fengguang.wu@intel.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/interval_tree_test.c | 4 ++--
- lib/rbtree_test.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
---- a/lib/interval_tree_test.c
-+++ b/lib/interval_tree_test.c
-@@ -11,10 +11,10 @@
- MODULE_PARM_DESC(name, msg);
-
- __param(int, nnodes, 100, "Number of nodes in the interval tree");
--__param(int, perf_loops, 100000, "Number of iterations modifying the tree");
-+__param(int, perf_loops, 1000, "Number of iterations modifying the tree");
-
- __param(int, nsearches, 100, "Number of searches to the interval tree");
--__param(int, search_loops, 10000, "Number of iterations searching the tree");
-+__param(int, search_loops, 1000, "Number of iterations searching the tree");
- __param(bool, search_all, false, "Searches will iterate all nodes in the tree");
-
-
---- a/lib/rbtree_test.c
-+++ b/lib/rbtree_test.c
-@@ -11,7 +11,7 @@
- MODULE_PARM_DESC(name, msg);
-
- __param(int, nnodes, 100, "Number of nodes in the rb-tree");
--__param(int, perf_loops, 100000, "Number of iterations modifying the rb-tree");
-+__param(int, perf_loops, 1000, "Number of iterations modifying the rb-tree");
- __param(int, check_loops, 100, "Number of iterations modifying and verifying the rb-tree");
-
- struct test_node {
+++ /dev/null
-From 223f8911eace60c787f8767c25148b80ece9732a Mon Sep 17 00:00:00 2001
-From: Davidlohr Bueso <dave@stgolabs.net>
-Date: Fri, 8 Sep 2017 16:14:46 -0700
-Subject: lib/rbtree_test.c: make input module parameters
-
-From: Davidlohr Bueso <dave@stgolabs.net>
-
-commit 223f8911eace60c787f8767c25148b80ece9732a upstream.
-
-Allows for more flexible debugging.
-
-Link: http://lkml.kernel.org/r/20170719014603.19029-5-dave@stgolabs.net
-Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- lib/rbtree_test.c | 55 +++++++++++++++++++++++++++++++++---------------------
- 1 file changed, 34 insertions(+), 21 deletions(-)
-
---- a/lib/rbtree_test.c
-+++ b/lib/rbtree_test.c
-@@ -1,11 +1,18 @@
- #include <linux/module.h>
-+#include <linux/moduleparam.h>
- #include <linux/rbtree_augmented.h>
- #include <linux/random.h>
-+#include <linux/slab.h>
- #include <asm/timex.h>
-
--#define NODES 100
--#define PERF_LOOPS 100000
--#define CHECK_LOOPS 100
-+#define __param(type, name, init, msg) \
-+ static type name = init; \
-+ module_param(name, type, 0444); \
-+ MODULE_PARM_DESC(name, msg);
-+
-+__param(int, nnodes, 100, "Number of nodes in the rb-tree");
-+__param(int, perf_loops, 100000, "Number of iterations modifying the rb-tree");
-+__param(int, check_loops, 100, "Number of iterations modifying and verifying the rb-tree");
-
- struct test_node {
- u32 key;
-@@ -17,7 +24,7 @@ struct test_node {
- };
-
- static struct rb_root root = RB_ROOT;
--static struct test_node nodes[NODES];
-+static struct test_node *nodes = NULL;
-
- static struct rnd_state rnd;
-
-@@ -95,7 +102,7 @@ static void erase_augmented(struct test_
- static void init(void)
- {
- int i;
-- for (i = 0; i < NODES; i++) {
-+ for (i = 0; i < nnodes; i++) {
- nodes[i].key = prandom_u32_state(&rnd);
- nodes[i].val = prandom_u32_state(&rnd);
- }
-@@ -177,6 +184,10 @@ static int __init rbtree_test_init(void)
- int i, j;
- cycles_t time1, time2, time;
-
-+ nodes = kmalloc(nnodes * sizeof(*nodes), GFP_KERNEL);
-+ if (!nodes)
-+ return -ENOMEM;
-+
- printk(KERN_ALERT "rbtree testing");
-
- prandom_seed_state(&rnd, 3141592653589793238ULL);
-@@ -184,27 +195,27 @@ static int __init rbtree_test_init(void)
-
- time1 = get_cycles();
-
-- for (i = 0; i < PERF_LOOPS; i++) {
-- for (j = 0; j < NODES; j++)
-+ for (i = 0; i < perf_loops; i++) {
-+ for (j = 0; j < nnodes; j++)
- insert(nodes + j, &root);
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- erase(nodes + j, &root);
- }
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, PERF_LOOPS);
-+ time = div_u64(time, perf_loops);
- printk(" -> %llu cycles\n", (unsigned long long)time);
-
-- for (i = 0; i < CHECK_LOOPS; i++) {
-+ for (i = 0; i < check_loops; i++) {
- init();
-- for (j = 0; j < NODES; j++) {
-+ for (j = 0; j < nnodes; j++) {
- check(j);
- insert(nodes + j, &root);
- }
-- for (j = 0; j < NODES; j++) {
-- check(NODES - j);
-+ for (j = 0; j < nnodes; j++) {
-+ check(nnodes - j);
- erase(nodes + j, &root);
- }
- check(0);
-@@ -216,32 +227,34 @@ static int __init rbtree_test_init(void)
-
- time1 = get_cycles();
-
-- for (i = 0; i < PERF_LOOPS; i++) {
-- for (j = 0; j < NODES; j++)
-+ for (i = 0; i < perf_loops; i++) {
-+ for (j = 0; j < nnodes; j++)
- insert_augmented(nodes + j, &root);
-- for (j = 0; j < NODES; j++)
-+ for (j = 0; j < nnodes; j++)
- erase_augmented(nodes + j, &root);
- }
-
- time2 = get_cycles();
- time = time2 - time1;
-
-- time = div_u64(time, PERF_LOOPS);
-+ time = div_u64(time, perf_loops);
- printk(" -> %llu cycles\n", (unsigned long long)time);
-
-- for (i = 0; i < CHECK_LOOPS; i++) {
-+ for (i = 0; i < check_loops; i++) {
- init();
-- for (j = 0; j < NODES; j++) {
-+ for (j = 0; j < nnodes; j++) {
- check_augmented(j);
- insert_augmented(nodes + j, &root);
- }
-- for (j = 0; j < NODES; j++) {
-- check_augmented(NODES - j);
-+ for (j = 0; j < nnodes; j++) {
-+ check_augmented(nnodes - j);
- erase_augmented(nodes + j, &root);
- }
- check_augmented(0);
- }
-
-+ kfree(nodes);
-+
- return -EAGAIN; /* Fail will directly unload the module */
- }
-
debugobjects-avoid-recursive-calls-with-kmemleak.patch
ocfs2-fix-potential-use-after-free.patch
pstore-convert-console-write-to-use-write_buf.patch
-lib-interval_tree_test.c-make-test-options-module-parameters.patch
-lib-interval_tree_test.c-allow-full-tree-search.patch
-lib-rbtree_test.c-make-input-module-parameters.patch
-lib-rbtree-test-lower-default-params.patch