RE: [patch NOT added to the 3.12 stable tree] Drivers: hv: vmbus: Negotiate version 3.0 when running on ws2012r2 hosts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Jiri Slaby [mailto:jslaby@xxxxxxx]
> Sent: Tuesday, May 6, 2014 2:19 AM
> To: stable@xxxxxxxxxxxxxxx
> Cc: jslaby@xxxxxxx; KY Srinivasan; Greg Kroah-Hartman
> Subject: [patch NOT added to the 3.12 stable tree] Drivers: hv: vmbus:
> Negotiate version 3.0 when running on ws2012r2 hosts
> 
> From: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx>
> 
> This patch does NOT apply to the 3.12 stable tree. If you still want it applied,
> please provide a backport.

Jiri,

I have backported the patch and will be sending it soon.

Thanks,

K. Y
> 
> ===============
> 
> commit 03367ef5ea811475187a0732aada068919e14d61 upstream.
> 
> Only ws2012r2 hosts support the ability to reconnect to the host on VMBUS.
> This functionality is needed by kexec in Linux. To use this functionality we
> need to negotiate version 3.0 of the VMBUS protocol.
> 
> Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>        [3.9+]
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
>  drivers/hv/connection.c | 5 ++++-
>  include/linux/hyperv.h  | 4 +++-
>  2 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c index
> f2d7bf90c9fe..2e7801af466e 100644
> --- a/drivers/hv/connection.c
> +++ b/drivers/hv/connection.c
> @@ -55,6 +55,9 @@ static __u32 vmbus_get_next_version(__u32
> current_version)
>  	case (VERSION_WIN8):
>  		return VERSION_WIN7;
> 
> +	case (VERSION_WIN8_1):
> +		return VERSION_WIN8;
> +
>  	case (VERSION_WS2008):
>  	default:
>  		return VERSION_INVAL;
> @@ -77,7 +80,7 @@ static int vmbus_negotiate_version(struct
> vmbus_channel_msginfo *msginfo,
>  	msg->interrupt_page = virt_to_phys(vmbus_connection.int_page);
>  	msg->monitor_page1 =
> virt_to_phys(vmbus_connection.monitor_pages[0]);
>  	msg->monitor_page2 =
> virt_to_phys(vmbus_connection.monitor_pages[1]);
> -	if (version == VERSION_WIN8)
> +	if (version == VERSION_WIN8_1)
>  		msg->target_vcpu =
> hv_context.vp_index[smp_processor_id()];
> 
>  	/*
> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index
> ab7359fde987..2d7b4f139c32 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -147,15 +147,17 @@ hv_get_ringbuffer_availbytes(struct
> hv_ring_buffer_info *rbi,
>   * 0 . 13 (Windows Server 2008)
>   * 1 . 1  (Windows 7)
>   * 2 . 4  (Windows 8)
> + * 3 . 0  (Windows 8 R2)
>   */
> 
>  #define VERSION_WS2008  ((0 << 16) | (13))
>  #define VERSION_WIN7    ((1 << 16) | (1))
>  #define VERSION_WIN8    ((2 << 16) | (4))
> +#define VERSION_WIN8_1    ((3 << 16) | (0))
> 
>  #define VERSION_INVAL -1
> 
> -#define VERSION_CURRENT VERSION_WIN8
> +#define VERSION_CURRENT VERSION_WIN8_1
> 
>  /* Make maximum size of pipe payload of 16K */
>  #define MAX_PIPE_DATA_PAYLOAD		(sizeof(u8) * 16384)
> --
> 1.9.2

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]