RE: [PATCH 03/15] hyperv: use standard bitops

From: KY Srinivasan
Date: Wed Dec 21 2016 - 14:24:13 EST




> -----Original Message-----
> From: Roman Kagan [mailto:rkagan@xxxxxxxxxxxxx]
> Sent: Tuesday, December 20, 2016 7:56 AM
> To: Paolo Bonzini <pbonzini@xxxxxxxxxx>; Radim Krčmář
> <rkrcmar@xxxxxxxxxx>; KY Srinivasan <kys@xxxxxxxxxxxxx>; Vitaly
> Kuznetsov <vkuznets@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>; Ingo Molnar
> <mingo@xxxxxxxxxx>; H. Peter Anvin <hpa@xxxxxxxxx>; x86@xxxxxxxxxx;
> Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>; kvm@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; devel@xxxxxxxxxxxxxxxxxxxxxx; Denis V . Lunev
> <den@xxxxxxxxxx>; Roman Kagan <rkagan@xxxxxxxxxxxxx>
> Subject: [PATCH 03/15] hyperv: use standard bitops
>
No commit log?

> Signed-off-by: Roman Kagan <rkagan@xxxxxxxxxxxxx>
> ---
> drivers/hv/channel.c | 8 +++-----
> drivers/hv/connection.c | 9 +++------
> 2 files changed, 6 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
> index 5fb4c6d..f9df275 100644
> --- a/drivers/hv/channel.c
> +++ b/drivers/hv/channel.c
> @@ -49,15 +49,13 @@ void vmbus_setevent(struct vmbus_channel
> *channel)
> */
> if ((channel->offermsg.monitor_allocated) &&
> (!channel->low_latency)) {
> - /* Each u32 represents 32 channels */
> - sync_set_bit(channel->offermsg.child_relid & 31,
> - (unsigned long *) vmbus_connection.send_int_page
> +
> - (channel->offermsg.child_relid >> 5));
> + set_bit(channel->offermsg.child_relid,
> + (unsigned long
> *)vmbus_connection.send_int_page);
>
What is the rationale for dropping the sync variant?

> /* Get the child to parent monitor page */
> monitorpage = vmbus_connection.monitor_pages[1];
>
> - sync_set_bit(channel->monitor_bit,
> + set_bit(channel->monitor_bit,
> (unsigned long *)&monitorpage->trigger_group
> [channel->monitor_grp].pending);
>
Same comment as before.
> diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
> index aaa2103..139b33e 100644
> --- a/drivers/hv/connection.c
> +++ b/drivers/hv/connection.c
> @@ -468,12 +468,9 @@ void vmbus_set_event(struct vmbus_channel
> *channel)
> {
> u32 child_relid = channel->offermsg.child_relid;
>
> - if (!channel->is_dedicated_interrupt) {
> - /* Each u32 represents 32 channels */
> - sync_set_bit(child_relid & 31,
> - (unsigned long *)vmbus_connection.send_int_page
> +
> - (child_relid >> 5));
> - }
> + if (!channel->is_dedicated_interrupt)
> + set_bit(child_relid,
> + (unsigned long
> *)vmbus_connection.send_int_page);
>
> hv_do_hypercall(HVCALL_SIGNAL_EVENT, channel->sig_event,
> NULL);
> }
> --
> 2.9.3