Skip to content

Commit

Permalink
Drivers: hv: Update the ring buffer structure to match win8 functiona…
Browse files Browse the repository at this point in the history
…lity

Update the ringbuffer structure to support win8 functionality.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed Jan 17, 2013
1 parent 610071c commit 2416603
Showing 1 changed file with 21 additions and 7 deletions.
28 changes: 21 additions & 7 deletions include/linux/hyperv.h
Original file line number Diff line number Diff line change
Expand Up @@ -325,14 +325,28 @@ struct hv_ring_buffer {

u32 interrupt_mask;

/* Pad it to PAGE_SIZE so that data starts on page boundary */
u8 reserved[4084];

/* NOTE:
* The interrupt_mask field is used only for channels but since our
* vmbus connection also uses this data structure and its data starts
* here, we commented out this field.
/*
* Win8 uses some of the reserved bits to implement
* interrupt driven flow management. On the send side
* we can request that the receiver interrupt the sender
* when the ring transitions from being full to being able
* to handle a message of size "pending_send_sz".
*
* Add necessary state for this enhancement.
*/
u32 pending_send_sz;

u32 reserved1[12];

union {
struct {
u32 feat_pending_send_sz:1;
};
u32 value;
} feature_bits;

/* Pad it to PAGE_SIZE so that data starts on page boundary */
u8 reserved2[4028];

/*
* Ring data starts here + RingDataStartOffset
Expand Down

0 comments on commit 2416603

Please sign in to comment.