Commit 7d70718d authored by NeilBrown's avatar NeilBrown Committed by Greg Kroah-Hartman
Browse files

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: default avatarkbuild test robot <fengguang.wu@intel.com>
Fixes: 6106c0f8 ("staging: lustre: lnet: convert selftest to use workqueues")
Signed-off-by: default avatarNeilBrown <neilb@suse.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9fb8b101
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -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;

		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();