Required tools for playing around with memory:
hexdumpobjdumpreadelfxxdgcore
| diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c | |
| index 64713ff..e51b080 100644 | |
| --- a/drivers/hv/vmbus_drv.c | |
| +++ b/drivers/hv/vmbus_drv.c | |
| @@ -476,6 +476,68 @@ static ssize_t channel_vp_mapping_show(struct device *dev, | |
| } | |
| static DEVICE_ATTR_RO(channel_vp_mapping); | |
| +static ssize_t channel_rb_show(struct device *dev, | |
| + struct device_attribute *dev_attr, |
| --- a/drivers/net/hyperv/netvsc.c 2018-06-21 06:21:38.510273512 +0000 | |
| +++ b/drivers/net/hyperv/netvsc.c 2018-06-21 06:33:29.991826355 +0000 | |
| @@ -1251,9 +1251,10 @@ | |
| if (send_recv_completions(ndev, net_device, nvchan) == 0 && | |
| work_done < budget && | |
| netvsc_napi_complete_done(napi, work_done) && | |
| - hv_end_read(&channel->inbound)) { | |
| + hv_end_read(&channel->inbound) && | |
| + napi_schedule_prep(napi)) { | |
| hv_begin_read(&channel->inbound); |
| /* | |
| * This program is free software: you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation, either version 3 of the License, or | |
| * (at your option) any later version. | |
| */ | |
| #include <arpa/inet.h> | |
| #include <linux/if_packet.h> | |
| #include <stdio.h> |