[IA64] fix call of smp_processor_id() by XPC while
XPC calls smp_processor_id() twice from xpc_setup_infrastructure() with preemption enabled, which gets flagged if 'DEBUG_PREEMPT=y'. This patch replaces the two calls to smp_processor_id() by a single call to raw_smp_processor_id() since any CPU within the partition will do. Signed-off-by: Dean Nelson <dcn@sgi.com> Acked-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
@@ -72,7 +72,7 @@ xpc_initialize_channels(struct xpc_partition *part, partid_t partid)
|
|||||||
enum xpc_retval
|
enum xpc_retval
|
||||||
xpc_setup_infrastructure(struct xpc_partition *part)
|
xpc_setup_infrastructure(struct xpc_partition *part)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret, cpuid;
|
||||||
struct timer_list *timer;
|
struct timer_list *timer;
|
||||||
partid_t partid = XPC_PARTID(part);
|
partid_t partid = XPC_PARTID(part);
|
||||||
|
|
||||||
@@ -223,9 +223,9 @@ xpc_setup_infrastructure(struct xpc_partition *part)
|
|||||||
xpc_vars_part[partid].openclose_args_pa =
|
xpc_vars_part[partid].openclose_args_pa =
|
||||||
__pa(part->local_openclose_args);
|
__pa(part->local_openclose_args);
|
||||||
xpc_vars_part[partid].IPI_amo_pa = __pa(part->local_IPI_amo_va);
|
xpc_vars_part[partid].IPI_amo_pa = __pa(part->local_IPI_amo_va);
|
||||||
xpc_vars_part[partid].IPI_nasid = cpuid_to_nasid(smp_processor_id());
|
cpuid = raw_smp_processor_id(); /* any CPU in this partition will do */
|
||||||
xpc_vars_part[partid].IPI_phys_cpuid =
|
xpc_vars_part[partid].IPI_nasid = cpuid_to_nasid(cpuid);
|
||||||
cpu_physical_id(smp_processor_id());
|
xpc_vars_part[partid].IPI_phys_cpuid = cpu_physical_id(cpuid);
|
||||||
xpc_vars_part[partid].nchannels = part->nchannels;
|
xpc_vars_part[partid].nchannels = part->nchannels;
|
||||||
xpc_vars_part[partid].magic = XPC_VP_MAGIC1;
|
xpc_vars_part[partid].magic = XPC_VP_MAGIC1;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user