All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: kys@microsoft.com
Cc: linux-kernel@vger.kernel.org, devel@linuxdriverproject.org,
	olaf@aepfle.de, apw@canonical.com, jasowang@redhat.com,
	sthemmin@microsoft.com, Michael.H.Kelley@microsoft.com,
	vkuznets@redhat.com, Haiyang Zhang <haiyangz@microsoft.com>,
	Stable@vger.kernel.org
Subject: Re: [PATCH 3/5] Drivers: hv: kvp: Fix the recent regression caused by incorrect clean-up
Date: Wed, 17 Oct 2018 07:07:05 +0200	[thread overview]
Message-ID: <20181017050705.GE22447@kroah.com> (raw)
In-Reply-To: <20181017031406.773-3-kys@linuxonhyperv.com>

On Wed, Oct 17, 2018 at 03:14:04AM +0000, kys@linuxonhyperv.com wrote:
> From: Dexuan Cui <decui@microsoft.com>
> 
> In kvp_send_key(), we do need call process_ib_ipinfo() if
> message->kvp_hdr.operation is KVP_OP_GET_IP_INFO, because it turns out
> the userland hv_kvp_daemon needs the info of operation, adapter_id and
> addr_family. With the incorrect fc62c3b1977d, the host can't get the
> VM's IP via KVP.
> 
> And, fc62c3b1977d added a "break;", but actually forgot to initialize
> the key_size/value in the case of KVP_OP_SET, so the default key_size of
> 0 is passed to the kvp daemon, and the pool files
> /var/lib/hyperv/.kvp_pool_* can't be updated.
> 
> This patch effectively rolls back the previous fc62c3b1977d, and
> correctly fixes the "this statement may fall through" warnings.
> 
> This patch is tested on WS 2012 R2 and 2016.
> 
> Fixes: fc62c3b1977d ("Drivers: hv: kvp: Fix two "this statement may fall through" warnings")
> Signed-off-by: Dexuan Cui <decui@microsoft.com>
> Cc: K. Y. Srinivasan <kys@microsoft.com>
> Cc: Haiyang Zhang <haiyangz@microsoft.com>
> Cc: Stephen Hemminger <sthemmin@microsoft.com>
> Cc: <Stable@vger.kernel.org>
> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> ---
>  drivers/hv/hv_kvp.c | 26 ++++++++++++++++++++++----
>  1 file changed, 22 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/hv/hv_kvp.c b/drivers/hv/hv_kvp.c
> index a7513a8a8e37..9fbb15c62c6c 100644
> --- a/drivers/hv/hv_kvp.c
> +++ b/drivers/hv/hv_kvp.c
> @@ -353,6 +353,9 @@ static void process_ib_ipinfo(void *in_msg, void *out_msg, int op)
>  
>  		out->body.kvp_ip_val.dhcp_enabled = in->kvp_ip_val.dhcp_enabled;
>  
> +		__attribute__ ((fallthrough));

The comment should be sufficient for this, right?  I haven't seen many
uses of this attribute before, how common is it?


> +
> +	case KVP_OP_GET_IP_INFO:
>  		utf16s_to_utf8s((wchar_t *)in->kvp_ip_val.adapter_id,
>  				MAX_ADAPTER_ID_SIZE,
>  				UTF16_LITTLE_ENDIAN,
> @@ -405,7 +408,11 @@ kvp_send_key(struct work_struct *dummy)
>  		process_ib_ipinfo(in_msg, message, KVP_OP_SET_IP_INFO);
>  		break;
>  	case KVP_OP_GET_IP_INFO:
> -		/* We only need to pass on message->kvp_hdr.operation.  */
> +		/*
> +		 * We only need to pass on the info of operation, adapter_id
> +		 * and addr_family to the userland kvp daemon.
> +		 */
> +		process_ib_ipinfo(in_msg, message, KVP_OP_GET_IP_INFO);
>  		break;
>  	case KVP_OP_SET:
>  		switch (in_msg->body.kvp_set.data.value_type) {
> @@ -446,9 +453,9 @@ kvp_send_key(struct work_struct *dummy)
>  
>  		}
>  
> -		break;
> -
> -	case KVP_OP_GET:
> +		/*
> +		 * The key is always a string - utf16 encoding.
> +		 */
>  		message->body.kvp_set.data.key_size =
>  			utf16s_to_utf8s(
>  			(wchar_t *)in_msg->body.kvp_set.data.key,
> @@ -456,6 +463,17 @@ kvp_send_key(struct work_struct *dummy)
>  			UTF16_LITTLE_ENDIAN,
>  			message->body.kvp_set.data.key,
>  			HV_KVP_EXCHANGE_MAX_KEY_SIZE - 1) + 1;
> +
> +		break;
> +
> +	case KVP_OP_GET:
> +		message->body.kvp_get.data.key_size =
> +			utf16s_to_utf8s(
> +			(wchar_t *)in_msg->body.kvp_get.data.key,
> +			in_msg->body.kvp_get.data.key_size,
> +			UTF16_LITTLE_ENDIAN,
> +			message->body.kvp_get.data.key,
> +			HV_KVP_EXCHANGE_MAX_KEY_SIZE - 1) + 1;

Worst indentation ever :(

Yeah, I know it follows the others above it, but you should reconsider
it in the future...

thanks,

greg k-h

  reply	other threads:[~2018-10-17  5:07 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-17  3:12 [PATCH 0/5] Drivers: hv: Miscellaneous fixes kys
2018-10-17  3:14 ` [PATCH 1/5] Drivers: hv: vmbus: Get rid of unnecessary state in hv_context kys
2018-10-17  3:14   ` [PATCH 2/5] hv_utils: update name in struct hv_driver util_drv kys
2018-10-17  3:14   ` [PATCH 3/5] Drivers: hv: kvp: Fix the recent regression caused by incorrect clean-up kys
2018-10-17  5:07     ` Greg KH [this message]
2018-10-17  5:11       ` Gustavo A. R. Silva
2018-10-17  6:02       ` KY Srinivasan
2018-10-17 17:56         ` Dexuan Cui
2018-10-17  6:22       ` Dan Carpenter
2018-10-20 14:42         ` Miguel Ojeda
2018-10-20 19:22           ` Dan Carpenter
2018-10-21  4:15             ` Miguel Ojeda
2018-10-17 18:01       ` Dexuan Cui
2018-10-17  3:14   ` [PATCH 4/5] Drivers: hv: kvp: Use %u to print U32 kys
2018-10-17  5:04     ` Greg KH
2018-10-17  5:59       ` KY Srinivasan
2018-10-17  3:14   ` [PATCH 5/5] Tools: hv: kvp: Fix a warning of buffer overflow with gcc 8.0.1 kys
2018-10-17  5:07     ` Greg KH
2018-10-17 19:57       ` Dexuan Cui
2018-10-17  5:04   ` [PATCH 1/5] Drivers: hv: vmbus: Get rid of unnecessary state in hv_context Greg KH
2018-10-17  5:59     ` KY Srinivasan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181017050705.GE22447@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=Michael.H.Kelley@microsoft.com \
    --cc=Stable@vger.kernel.org \
    --cc=apw@canonical.com \
    --cc=devel@linuxdriverproject.org \
    --cc=haiyangz@microsoft.com \
    --cc=jasowang@redhat.com \
    --cc=kys@microsoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=olaf@aepfle.de \
    --cc=sthemmin@microsoft.com \
    --cc=vkuznets@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.