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

From: KY Srinivasan
Date: Thu Aug 30 2018 - 13:32:22 EST




> -----Original Message-----
> From: Dexuan Cui
> Sent: Thursday, August 30, 2018 12:27 PM
> To: KY Srinivasan <kys@xxxxxxxxxxxxx>; 'gregkh@xxxxxxxxxxxxxxxxxxx'
> <gregkh@xxxxxxxxxxxxxxxxxxx>; Stephen Hemminger
> <sthemmin@xxxxxxxxxxxxx>; Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
> Cc: 'linux-kernel@xxxxxxxxxxxxxxx' <linux-kernel@xxxxxxxxxxxxxxx>;
> 'driverdev-devel@xxxxxxxxxxxxxxxxxxxxxx' <driverdev-
> devel@xxxxxxxxxxxxxxxxxxxxxx>; 'olaf@xxxxxxxxx' <olaf@xxxxxxxxx>;
> 'apw@xxxxxxxxxxxxx' <apw@xxxxxxxxxxxxx>; 'jasowang@xxxxxxxxxx'
> <jasowang@xxxxxxxxxx>; vkuznets <vkuznets@xxxxxxxxxx>;
> 'marcelo.cerri@xxxxxxxxxxxxx' <marcelo.cerri@xxxxxxxxxxxxx>
> Subject: RE: [PATCH] Drivers: hv: vmbus: Use raw_smp_processor_id() in
> vmbus_connect()
>
> > 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.

Yes of course! Can you send me a patch with the fix.

K. Y
>
> -- Dexuan