diff options
author | NeilBrown <neilb@suse.com> | 2018-01-23 17:27:47 +1100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-01-23 11:42:03 +0100 |
commit | 7d70718de014ada7280bb011db8655e18ed935b1 (patch) | |
tree | 858c1b37a83373f036fa976e432d4117c18c541a /drivers/staging/lustre | |
parent | 9fb8b101a7529a7d882df16448f20c1879535f0b (diff) | |
download | linux-stable-7d70718de014ada7280bb011db8655e18ed935b1.tar.gz linux-stable-7d70718de014ada7280bb011db8655e18ed935b1.tar.bz2 linux-stable-7d70718de014ada7280bb011db8655e18ed935b1.zip |
staging: lustre: lnet/selftest: fix compile error on UP build
When compiled without CONFIG_SMP, we get a compile error
as ->ctb_parts is not defined.
There is already a function, cfs_cpt_cpumask(), which will get the
cpumask we need, and which handles the UP case by returning a NULL pointer.
So use that and handle NULL.
Also avoid the #ifdef by allocating a cpumask_var and copying
into it, rather than sharing the mask.
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Fixes: 6106c0f82481 ("staging: lustre: lnet: convert selftest to use workqueues")
Signed-off-by: NeilBrown <neilb@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/lustre')
-rw-r--r-- | drivers/staging/lustre/lnet/selftest/module.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/staging/lustre/lnet/selftest/module.c b/drivers/staging/lustre/lnet/selftest/module.c index 31a74b48c995..7359aa56d9b3 100644 --- a/drivers/staging/lustre/lnet/selftest/module.c +++ b/drivers/staging/lustre/lnet/selftest/module.c @@ -110,7 +110,8 @@ lnet_selftest_init(void) lst_init_step = LST_INIT_WI_TEST; for (i = 0; i < nscheds; i++) { int nthrs = cfs_cpt_weight(lnet_cpt_table(), i); - struct workqueue_attrs attrs; + struct workqueue_attrs attrs = {0}; + cpumask_var_t *mask = cfs_cpt_cpumask(lnet_cpt_table(), i); /* reserve at least one CPU for LND */ nthrs = max(nthrs - 1, 1); @@ -121,14 +122,12 @@ lnet_selftest_init(void) rc = -ENOMEM; goto error; } - attrs.nice = 0; - #ifdef CONFIG_CPUMASK_OFFSTACK - attrs.cpumask = lnet_cpt_table()->ctb_parts[i].cpt_cpumask; - #else - cpumask_copy(attrs.cpumask, lnet_cpt_table()->ctb_parts[i].cpt_cpumask); - #endif - attrs.no_numa = false; - apply_workqueue_attrs(lst_test_wq[i], &attrs); + + if (mask && alloc_cpumask_var(&attrs.cpumask, GFP_KERNEL)) { + cpumask_copy(attrs.cpumask, *mask); + apply_workqueue_attrs(lst_test_wq[i], &attrs); + free_cpumask_var(attrs.cpumask); + } } rc = srpc_startup(); |