> From: Sasha Levin <sashal@xxxxxxxxxx> > Sent: Wednesday, October 31, 2018 16:05 > To: stable@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > Cc: Dexuan Cui <decui@xxxxxxxxxxxxx>; KY Srinivasan <kys@xxxxxxxxxxxxx>; > Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>; Stephen Hemminger > <sthemmin@xxxxxxxxxxxxx>; Stable@xxxxxxxxxxxxxxx; Greg Kroah-Hartman > <gregkh@xxxxxxxxxxxxxxxxxxx>; Sasha Levin <sashal@xxxxxxxxxx> > Subject: [PATCH AUTOSEL 4.19 109/146] Drivers: hv: kvp: Fix two "this > statement may fall through" warnings > > From: Dexuan Cui <decui@xxxxxxxxxxxxx> > > [ Upstream commit fc62c3b1977d62e6374fd6e28d371bb42dfa5c9d ] > > We don't need to call process_ib_ipinfo() if message->kvp_hdr.operation is > KVP_OP_GET_IP_INFO in kvp_send_key(), because here we just need to pass > on > the op code from the host to the userspace; when the userspace returns > the info requested by the host, we pass the info on to the host in > kvp_respond_to_host() -> process_ob_ipinfo(). BTW, the current buggy code > actually doesn't cause any harm, because only message->kvp_hdr.operation > is used by the userspace, in the case of KVP_OP_GET_IP_INFO. > > The patch also adds a missing "break;" in kvp_send_key(). BTW, the current > buggy code actually doesn't cause any harm, because in the case of > KVP_OP_SET, the unexpected fall-through corrupts > message->body.kvp_set.data.key_size, but that is not really used: see > the definition of struct hv_kvp_exchg_msg_value. > > Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx> > Cc: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> > Cc: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> > Cc: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx> > Cc: <Stable@xxxxxxxxxxxxxxx> > Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > --- > drivers/hv/hv_kvp.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/hv/hv_kvp.c b/drivers/hv/hv_kvp.c > index 5eed1e7da15c..57715a0c8120 100644 > --- a/drivers/hv/hv_kvp.c > +++ b/drivers/hv/hv_kvp.c > @@ -353,7 +353,6 @@ 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; > > - default: > utf16s_to_utf8s((wchar_t *)in->kvp_ip_val.adapter_id, > MAX_ADAPTER_ID_SIZE, > UTF16_LITTLE_ENDIAN, > @@ -406,7 +405,7 @@ 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: > - process_ib_ipinfo(in_msg, message, KVP_OP_GET_IP_INFO); > + /* We only need to pass on message->kvp_hdr.operation. */ > break; > case KVP_OP_SET: > switch (in_msg->body.kvp_set.data.value_type) { > @@ -446,6 +445,9 @@ kvp_send_key(struct work_struct *dummy) > break; > > } > + > + break; > + > case KVP_OP_GET: > message->body.kvp_set.data.key_size = > utf16s_to_utf8s( > -- > 2.17.1 This patch caused a regression and the fix (https://lkml.org/lkml/2018/10/18/288) has not been in Greg's tree yet... For now, please don't backport this patch to the stable kernels (4.19, 4.18, 4.14, 4.9, 4.4, 3.18,etc). Sorry for the trouble! -- Dexuan