In the file common/softirq macro set_bit is called with argument
smp_processor_id.
Once expanded this set_bit's argument is used in sizeof operations
and thus 'smp_processor_id', being a macro that may expand to a
function call with potential side effects, generates a violation.
To address this violation the value of smp_processor_id is therefore
stored in a variable called 'cpu' before passing it to macro set_bit.
No functional change.
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
void raise_softirq(unsigned int nr)
{
- set_bit(nr, &softirq_pending(smp_processor_id()));
+ unsigned int cpu = smp_processor_id();
+
+ set_bit(nr, &softirq_pending(cpu));
}
/*