Drivers: hv: vmbus: Support per-channel driver state
authorK. Y. Srinivasan <kys@microsoft.com>
Mon, 3 Feb 2014 20:42:45 +0000 (12:42 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Feb 2014 23:22:40 +0000 (15:22 -0800)
As we implement Virtual Receive Side Scaling on the networking side
(the VRSS patches are currently under review), it will be useful to have
per-channel state that vmbus drivers can manage. Add support for
managing per-channel state.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/hyperv.h

index 9b07e1f070acca313f9abba70b48db1b1d4a5a6b..d47bab9e7a1885056bc66ae7341345b4d43c8497 100644 (file)
@@ -727,6 +727,10 @@ struct vmbus_channel {
         * This will be NULL for the primary channel.
         */
        struct vmbus_channel *primary_channel;
+       /*
+        * Support per-channel state for use by vmbus drivers.
+        */
+       void *per_channel_state;
 };
 
 static inline void set_channel_read_state(struct vmbus_channel *c, bool state)
@@ -734,6 +738,16 @@ static inline void set_channel_read_state(struct vmbus_channel *c, bool state)
        c->batched_reading = state;
 }
 
+static inline void set_per_channel_state(struct vmbus_channel *c, void *s)
+{
+       c->per_channel_state = s;
+}
+
+static inline void *get_per_channel_state(struct vmbus_channel *c)
+{
+       return c->per_channel_state;
+}
+
 void vmbus_onmessage(void *context);
 
 int vmbus_request_offers(void);