diff options
Diffstat (limited to 'drivers/net/hyperv')
-rw-r--r-- | drivers/net/hyperv/netvsc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index 5a1cc089acb7..86e5749226ef 100644 --- a/drivers/net/hyperv/netvsc.c +++ b/drivers/net/hyperv/netvsc.c | |||
@@ -1295,6 +1295,9 @@ void netvsc_channel_cb(void *context) | |||
1295 | ndev = hv_get_drvdata(device); | 1295 | ndev = hv_get_drvdata(device); |
1296 | buffer = get_per_channel_state(channel); | 1296 | buffer = get_per_channel_state(channel); |
1297 | 1297 | ||
1298 | /* commit_rd_index() -> hv_signal_on_read() needs this. */ | ||
1299 | init_cached_read_index(channel); | ||
1300 | |||
1298 | do { | 1301 | do { |
1299 | desc = get_next_pkt_raw(channel); | 1302 | desc = get_next_pkt_raw(channel); |
1300 | if (desc != NULL) { | 1303 | if (desc != NULL) { |
@@ -1347,6 +1350,9 @@ void netvsc_channel_cb(void *context) | |||
1347 | 1350 | ||
1348 | bufferlen = bytes_recvd; | 1351 | bufferlen = bytes_recvd; |
1349 | } | 1352 | } |
1353 | |||
1354 | init_cached_read_index(channel); | ||
1355 | |||
1350 | } while (1); | 1356 | } while (1); |
1351 | 1357 | ||
1352 | if (bufferlen > NETVSC_PACKET_SIZE) | 1358 | if (bufferlen > NETVSC_PACKET_SIZE) |