# \[PATCH net\] hv\_netvsc: Reset the RSC count if NVSP\_STAT\_FAIL in netvsc\_receive()

- Subsystems: NETWORKING DRIVERS, Hyper-V/Azure CORE AND DRIVERS, THE REST
- Maintainers: Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Haiyang Zhang, Wei Liu, Dexuan Cui, Linus Torvalds
- Status: LANDED (12bc8dfb83b5 · 2021-02-05 02:59)
- Landed in mainline as 12bc8dfb83b5 on 2021-02-05.
- List: netdev
- 3 messages, 3 authors
- Page: https://ratatoskr.run/netdev/2021/02/6256909/t

## \[PATCH net\] hv\_netvsc: Reset the RSC count if NVSP\_STAT\_FAIL in netvsc\_receive()

- From: Andrea Parri (Microsoft) \<parri.andrea@gmail.com\>
- Date: 2021-02-03 11:37:28 
- Message: https://ratatoskr.run/netdev/2021/02/6256909.md

```text
Commit 44144185951a0f ("hv_netvsc: Add validation for untrusted Hyper-V
values") added validation to rndis_filter_receive_data() (and
rndis_filter_receive()) which introduced NVSP_STAT_FAIL-scenarios where
the count is not updated/reset.  Fix this omission, and prevent similar
scenarios from occurring in the future.

Reported-by: Juan Vazquez <redacted>
Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: <redacted>
Fixes: 44144185951a0f ("hv_netvsc: Add validation for untrusted Hyper-V values")
---
 drivers/net/hyperv/netvsc.c       | 5 ++++-
 drivers/net/hyperv/rndis_filter.c | 2 --
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 2350342b961ff..13bd48a75db76 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -1262,8 +1262,11 @@ static int netvsc_receive(struct net_device *ndev,
 		ret = rndis_filter_receive(ndev, net_device,
 					   nvchan, data, buflen);
 
-		if (unlikely(ret != NVSP_STAT_SUCCESS))
+		if (unlikely(ret != NVSP_STAT_SUCCESS)) {
+			/* Drop incomplete packet */
+			nvchan->rsc.cnt = 0;
 			status = NVSP_STAT_FAIL;
+		}
 	}
 
 	enq_receive_complete(ndev, net_device, q_idx,
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index 598713c0d5a87..3aab2b867fc0d 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -509,8 +509,6 @@ static int rndis_filter_receive_data(struct net_device *ndev,
 	return ret;
 
 drop:
-	/* Drop incomplete packet */
-	nvchan->rsc.cnt = 0;
 	return NVSP_STAT_FAIL;
 }
 
-- 
2.25.1

```

## Re: \[PATCH net\] hv\_netvsc: Reset the RSC count if NVSP\_STAT\_FAIL in netvsc\_receive()

- From: Jesse Brandeburg \<hidden\>
- Date: 2021-02-03 23:26:41 
- Message: https://ratatoskr.run/netdev/2021/02/6257830.md

```text
Andrea Parri (Microsoft) wrote:

> Commit 44144185951a0f ("hv_netvsc: Add validation for untrusted Hyper-V
> values") added validation to rndis_filter_receive_data() (and
> rndis_filter_receive()) which introduced NVSP_STAT_FAIL-scenarios where
> the count is not updated/reset.  Fix this omission, and prevent similar
> scenarios from occurring in the future.
> 
> Reported-by: Juan Vazquez <redacted>
> Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: <redacted>
> Fixes: 44144185951a0f ("hv_netvsc: Add validation for untrusted Hyper-V values")

Reviewed-by: Jesse Brandeburg <redacted>

```

## Re: \[PATCH net\] hv\_netvsc: Reset the RSC count if NVSP\_STAT\_FAIL in netvsc\_receive()

- From: patchwork-bot+netdevbpf@kernel.org
- Date: 2021-02-05 04:21:07 
- Message: https://ratatoskr.run/netdev/2021/02/6259511.md

```text
Hello:

This patch was applied to netdev/net.git (refs/heads/master):

On Wed,  3 Feb 2021 12:36:02 +0100 you wrote:
> Commit 44144185951a0f ("hv_netvsc: Add validation for untrusted Hyper-V
> values") added validation to rndis_filter_receive_data() (and
> rndis_filter_receive()) which introduced NVSP_STAT_FAIL-scenarios where
> the count is not updated/reset.  Fix this omission, and prevent similar
> scenarios from occurring in the future.
> 
> Reported-by: Juan Vazquez <redacted>
> Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: <redacted>
> Fixes: 44144185951a0f ("hv_netvsc: Add validation for untrusted Hyper-V values")
> 
> [...]

Here is the summary with links:
  - [net] hv_netvsc: Reset the RSC count if NVSP_STAT_FAIL in netvsc_receive()
    https://git.kernel.org/netdev/net/c/12bc8dfb83b5

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html


```
