RE: [PATCH] Drivers: hv: vmbus: Use raw_smp_processor_id() in vmbus_connect()

From: Dexuan Cui
Date: Thu Aug 30 2018 - 13:27:19 EST


> From: KY Srinivasan
> Sent: Thursday, August 30, 2018 09:28
> ...
> diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
> @@ -119,8 +119,9 @@ static int vmbus_negotiate_version(struct
> vmbus_channel_msginfo *msginfo,
> */
> if (version >= VERSION_WIN8_1) {
> msg->target_vcpu =
> - hv_cpu_number_to_vp_number(smp_processor_id());
> - vmbus_connection.connect_cpu = smp_processor_id();

> + hv_cpu_number_to_vp_number(get_cpu());
> + vmbus_connection.connect_cpu = msg->target_vcpu;
> + put_cpu();

While the warning " BUG: using smp_processor_id() in preemptible" can also
be avoided, the line
+ vmbus_connection.connect_cpu = msg->target_vcpu;
seems incorrect, as the "connect_cpu" should reflect Linux CPU numbering
rather than Hyper-V's vCPU numbering.

-- Dexuan