mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-04 10:12:16 +09:00
staging: lustre: disable preempt while sampling processor id.
[ Upstream commit dbeccabf52 ]
Calling smp_processor_id() without disabling preemption
triggers a warning (if CONFIG_DEBUG_PREEMPT).
I think the result of cfs_cpt_current() is only used as a hint for
load balancing, rather than as a precise and stable indicator of
the current CPU. So it doesn't need to be called with
preemption disabled.
So disable preemption inside cfs_cpt_current() to silence the warning.
Signed-off-by: NeilBrown <neilb@suse.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
01ff15fcf4
commit
89deb4ad01
@@ -528,19 +528,20 @@ EXPORT_SYMBOL(cfs_cpt_spread_node);
|
||||
int
|
||||
cfs_cpt_current(struct cfs_cpt_table *cptab, int remap)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
int cpt = cptab->ctb_cpu2cpt[cpu];
|
||||
int cpu;
|
||||
int cpt;
|
||||
|
||||
if (cpt < 0) {
|
||||
if (!remap)
|
||||
return cpt;
|
||||
preempt_disable();
|
||||
cpu = smp_processor_id();
|
||||
cpt = cptab->ctb_cpu2cpt[cpu];
|
||||
|
||||
if (cpt < 0 && remap) {
|
||||
/* don't return negative value for safety of upper layer,
|
||||
* instead we shadow the unknown cpu to a valid partition ID
|
||||
*/
|
||||
cpt = cpu % cptab->ctb_nparts;
|
||||
}
|
||||
|
||||
preempt_enable();
|
||||
return cpt;
|
||||
}
|
||||
EXPORT_SYMBOL(cfs_cpt_current);
|
||||
|
||||
Reference in New Issue
Block a user