forked from Minki/linux
x86/apic/es7000+summit: Always make valid apicid from a cpumask
In case of invalid parameters cpu_mask_to_apicid_and() might return apicid value of 0 (on Summit) or a uninitialized value (on ES7000), although it is supposed to return apicid of cpu-0 at least. Fix the operation to always return a valid apicid. Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Cc: Suresh Siddha <suresh.b.siddha@intel.com> Cc: Yinghai Lu <yinghai@kernel.org> Link: http://lkml.kernel.org/r/20120614075026.GH3383@dhcp-26-207.brq.redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
49ad3fd483
commit
214e270b5f
@ -545,6 +545,8 @@ es7000_cpu_mask_to_apicid(const struct cpumask *cpumask, unsigned int *dest_id)
|
||||
apicid = new_apicid;
|
||||
round++;
|
||||
}
|
||||
if (!round)
|
||||
return -EINVAL;
|
||||
*dest_id = apicid;
|
||||
return 0;
|
||||
}
|
||||
|
@ -282,6 +282,8 @@ summit_cpu_mask_to_apicid(const struct cpumask *cpumask, unsigned int *dest_id)
|
||||
apicid |= new_apicid;
|
||||
round++;
|
||||
}
|
||||
if (!round)
|
||||
return -EINVAL;
|
||||
*dest_id = apicid;
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user