2015-07-14 08:34:11

by Dexuan Cui

[permalink] [raw]
Subject: [V2 1/7] Drivers: hv: vmbus: define the new offer type for Hyper-V socket (hvsock)

A helper function is also added.

Signed-off-by: Dexuan Cui <[email protected]>
---
include/linux/hyperv.h | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 30d3a1f..aa21814 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -236,6 +236,7 @@ struct vmbus_channel_offer {
#define VMBUS_CHANNEL_LOOPBACK_OFFER 0x100
#define VMBUS_CHANNEL_PARENT_OFFER 0x200
#define VMBUS_CHANNEL_REQUEST_MONITORED_NOTIFICATION 0x400
+#define VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER 0x2000

struct vmpacket_descriptor {
u16 type;
@@ -758,6 +759,12 @@ struct vmbus_channel {
struct list_head percpu_list;
};

+static inline bool is_hvsock_channel(const struct vmbus_channel *c)
+{
+ return !!(c->offermsg.offer.chn_flags &
+ VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER);
+}
+
static inline void set_channel_read_state(struct vmbus_channel *c, bool state)
{
c->batched_reading = state;
--
2.1.0


2015-07-16 04:13:09

by David Miller

[permalink] [raw]
Subject: Re: [V2 1/7] Drivers: hv: vmbus: define the new offer type for Hyper-V socket (hvsock)

From: Dexuan Cui <[email protected]>
Date: Tue, 14 Jul 2015 02:58:03 -0700

> A helper function is also added.
>
> Signed-off-by: Dexuan Cui <[email protected]>
> ---
> include/linux/hyperv.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
> index 30d3a1f..aa21814 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -236,6 +236,7 @@ struct vmbus_channel_offer {
> #define VMBUS_CHANNEL_LOOPBACK_OFFER 0x100
> #define VMBUS_CHANNEL_PARENT_OFFER 0x200
> #define VMBUS_CHANNEL_REQUEST_MONITORED_NOTIFICATION 0x400
> +#define VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER 0x2000
>
> struct vmpacket_descriptor {
> u16 type;
> @@ -758,6 +759,12 @@ struct vmbus_channel {
> struct list_head percpu_list;
> };
>
> +static inline bool is_hvsock_channel(const struct vmbus_channel *c)
> +{
> + return !!(c->offermsg.offer.chn_flags &
> + VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER);
> +}
> +

This is not indented properly, plus it makes no sense to add a flag before
anyone even sets the flag.

2015-07-16 11:19:00

by Dexuan Cui

[permalink] [raw]
Subject: RE: [V2 1/7] Drivers: hv: vmbus: define the new offer type for Hyper-V socket (hvsock)

> From: David Miller
> Sent: Thursday, July 16, 2015 12:13
>
> From: Dexuan Cui
> Date: Tue, 14 Jul 2015 02:58:03 -0700
>
> > A helper function is also added.
> >
> > diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
> > @@ -236,6 +236,7 @@ struct vmbus_channel_offer {
> > #define VMBUS_CHANNEL_LOOPBACK_OFFER 0x100
> > #define VMBUS_CHANNEL_PARENT_OFFER 0x200
> > #define VMBUS_CHANNEL_REQUEST_MONITORED_NOTIFICATION 0x400
> > +#define VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER 0x2000
> >
> > struct vmpacket_descriptor {
> > u16 type;
> > @@ -758,6 +759,12 @@ struct vmbus_channel {
> > struct list_head percpu_list;
> > };
> >
> > +static inline bool is_hvsock_channel(const struct vmbus_channel *c)
> > +{
> > + return !!(c->offermsg.offer.chn_flags &
> > + VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER);
> > +}
> > +
>
> This is not indented properly, plus it makes no sense to add a flag before
> anyone even sets the flag.

Hi David,
Thanks for pointing out the indentation issue! I'll fix it in V3.

The flag is set by the host: the c->offermsg is in the shared VMBus ringbuffer
between the host and the guest, so it makes sense for us to check the flag. :-)

-- Dexuan