From: Greg Kroah-Hartman Date: Fri, 14 Dec 2018 08:12:14 +0000 (+0100) Subject: drop broken lib tests X-Git-Tag: v4.19.10~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=38dc5e78b5a08d8736cdcacaecb748d3b006c865;p=thirdparty%2Fkernel%2Fstable-queue.git drop broken lib tests --- diff --git a/queue-3.18/lib-interval_tree_test.c-allow-full-tree-search.patch b/queue-3.18/lib-interval_tree_test.c-allow-full-tree-search.patch deleted file mode 100644 index 04e599ec8d1..00000000000 --- a/queue-3.18/lib-interval_tree_test.c-allow-full-tree-search.patch +++ /dev/null @@ -1,66 +0,0 @@ -From c46ecce431ebe6b1a9551d1f530eb432dae5c39b Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Mon, 10 Jul 2017 15:51:52 -0700 -Subject: lib/interval_tree_test.c: allow full tree search - -From: Davidlohr Bueso - -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 -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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; diff --git a/queue-3.18/lib-interval_tree_test.c-make-test-options-module-parameters.patch b/queue-3.18/lib-interval_tree_test.c-make-test-options-module-parameters.patch deleted file mode 100644 index 9349378f250..00000000000 --- a/queue-3.18/lib-interval_tree_test.c-make-test-options-module-parameters.patch +++ /dev/null @@ -1,144 +0,0 @@ -From a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Mon, 10 Jul 2017 15:51:46 -0700 -Subject: lib/interval_tree_test.c: make test options module parameters - -From: Davidlohr Bueso - -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 -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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 -+#include - #include - #include -+#include - #include - --#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 */ - } - diff --git a/queue-3.18/lib-rbtree-test-lower-default-params.patch b/queue-3.18/lib-rbtree-test-lower-default-params.patch deleted file mode 100644 index 36a89e626e5..00000000000 --- a/queue-3.18/lib-rbtree-test-lower-default-params.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 0b548e33e6cb2bff240fdaf1783783be15c29080 Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Fri, 17 Nov 2017 15:28:27 -0800 -Subject: lib/rbtree-test: lower default params - -From: Davidlohr Bueso - -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 -Reported-by: Fengguang Wu -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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 { diff --git a/queue-3.18/lib-rbtree_test.c-make-input-module-parameters.patch b/queue-3.18/lib-rbtree_test.c-make-input-module-parameters.patch deleted file mode 100644 index 2b1fc60139b..00000000000 --- a/queue-3.18/lib-rbtree_test.c-make-input-module-parameters.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 223f8911eace60c787f8767c25148b80ece9732a Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Fri, 8 Sep 2017 16:14:46 -0700 -Subject: lib/rbtree_test.c: make input module parameters - -From: Davidlohr Bueso - -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 -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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 -+#include - #include - #include -+#include - #include - --#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 */ - } - diff --git a/queue-3.18/series b/queue-3.18/series index 403a573ede8..c384ff81496 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -28,7 +28,3 @@ hfsplus-do-not-free-node-before-using.patch 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 diff --git a/queue-4.4/lib-interval_tree_test.c-allow-full-tree-search.patch b/queue-4.4/lib-interval_tree_test.c-allow-full-tree-search.patch deleted file mode 100644 index 04e599ec8d1..00000000000 --- a/queue-4.4/lib-interval_tree_test.c-allow-full-tree-search.patch +++ /dev/null @@ -1,66 +0,0 @@ -From c46ecce431ebe6b1a9551d1f530eb432dae5c39b Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Mon, 10 Jul 2017 15:51:52 -0700 -Subject: lib/interval_tree_test.c: allow full tree search - -From: Davidlohr Bueso - -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 -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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; diff --git a/queue-4.4/lib-interval_tree_test.c-make-test-options-module-parameters.patch b/queue-4.4/lib-interval_tree_test.c-make-test-options-module-parameters.patch deleted file mode 100644 index 9349378f250..00000000000 --- a/queue-4.4/lib-interval_tree_test.c-make-test-options-module-parameters.patch +++ /dev/null @@ -1,144 +0,0 @@ -From a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Mon, 10 Jul 2017 15:51:46 -0700 -Subject: lib/interval_tree_test.c: make test options module parameters - -From: Davidlohr Bueso - -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 -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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 -+#include - #include - #include -+#include - #include - --#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 */ - } - diff --git a/queue-4.4/lib-rbtree-test-lower-default-params.patch b/queue-4.4/lib-rbtree-test-lower-default-params.patch deleted file mode 100644 index 36a89e626e5..00000000000 --- a/queue-4.4/lib-rbtree-test-lower-default-params.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 0b548e33e6cb2bff240fdaf1783783be15c29080 Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Fri, 17 Nov 2017 15:28:27 -0800 -Subject: lib/rbtree-test: lower default params - -From: Davidlohr Bueso - -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 -Reported-by: Fengguang Wu -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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 { diff --git a/queue-4.4/lib-rbtree_test.c-make-input-module-parameters.patch b/queue-4.4/lib-rbtree_test.c-make-input-module-parameters.patch deleted file mode 100644 index 2b1fc60139b..00000000000 --- a/queue-4.4/lib-rbtree_test.c-make-input-module-parameters.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 223f8911eace60c787f8767c25148b80ece9732a Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Fri, 8 Sep 2017 16:14:46 -0700 -Subject: lib/rbtree_test.c: make input module parameters - -From: Davidlohr Bueso - -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 -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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 -+#include - #include - #include -+#include - #include - --#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 */ - } - diff --git a/queue-4.4/series b/queue-4.4/series index c2d8c485523..8f4b1dfaf48 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -81,7 +81,4 @@ mm-replace-__access_remote_vm-write-parameter-with-gup_flags.patch 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 diff --git a/queue-4.9/lib-interval_tree_test.c-allow-full-tree-search.patch b/queue-4.9/lib-interval_tree_test.c-allow-full-tree-search.patch deleted file mode 100644 index 04e599ec8d1..00000000000 --- a/queue-4.9/lib-interval_tree_test.c-allow-full-tree-search.patch +++ /dev/null @@ -1,66 +0,0 @@ -From c46ecce431ebe6b1a9551d1f530eb432dae5c39b Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Mon, 10 Jul 2017 15:51:52 -0700 -Subject: lib/interval_tree_test.c: allow full tree search - -From: Davidlohr Bueso - -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 -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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; diff --git a/queue-4.9/lib-interval_tree_test.c-make-test-options-module-parameters.patch b/queue-4.9/lib-interval_tree_test.c-make-test-options-module-parameters.patch deleted file mode 100644 index 9349378f250..00000000000 --- a/queue-4.9/lib-interval_tree_test.c-make-test-options-module-parameters.patch +++ /dev/null @@ -1,144 +0,0 @@ -From a54dae0338b7f01eb0f9c7571fb9b74f791d1c6b Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Mon, 10 Jul 2017 15:51:46 -0700 -Subject: lib/interval_tree_test.c: make test options module parameters - -From: Davidlohr Bueso - -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 -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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 -+#include - #include - #include -+#include - #include - --#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 */ - } - diff --git a/queue-4.9/lib-rbtree-test-lower-default-params.patch b/queue-4.9/lib-rbtree-test-lower-default-params.patch deleted file mode 100644 index 36a89e626e5..00000000000 --- a/queue-4.9/lib-rbtree-test-lower-default-params.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 0b548e33e6cb2bff240fdaf1783783be15c29080 Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Fri, 17 Nov 2017 15:28:27 -0800 -Subject: lib/rbtree-test: lower default params - -From: Davidlohr Bueso - -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 -Reported-by: Fengguang Wu -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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 { diff --git a/queue-4.9/lib-rbtree_test.c-make-input-module-parameters.patch b/queue-4.9/lib-rbtree_test.c-make-input-module-parameters.patch deleted file mode 100644 index 2b1fc60139b..00000000000 --- a/queue-4.9/lib-rbtree_test.c-make-input-module-parameters.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 223f8911eace60c787f8767c25148b80ece9732a Mon Sep 17 00:00:00 2001 -From: Davidlohr Bueso -Date: Fri, 8 Sep 2017 16:14:46 -0700 -Subject: lib/rbtree_test.c: make input module parameters - -From: Davidlohr Bueso - -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 -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds -Cc: Guenter Roeck -Signed-off-by: Greg Kroah-Hartman - ---- - 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 -+#include - #include - #include -+#include - #include - --#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 */ - } - diff --git a/queue-4.9/series b/queue-4.9/series index 79d8a83d760..ba3287be2b9 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -48,7 +48,3 @@ hfsplus-do-not-free-node-before-using.patch 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