From: Greg Kroah-Hartman The #define KERNEL_2_6_27 needs to be set, and I adjusted the include directories a bit to get things to build properly. The driver was changed to use net_device_ops, as that is needed to build and operate properly now. The hv_netvsc code should now build with no errors. Cc: Hank Janssen Cc: Haiyang Zhang Signed-off-by: Greg Kroah-Hartman --- drivers/staging/hv/NetVsc.c | 3 ++- drivers/staging/hv/NetVsc.h | 8 ++++---- drivers/staging/hv/RndisFilter.c | 5 +++-- drivers/staging/hv/RndisFilter.h | 4 ++-- drivers/staging/hv/include/nvspprotocol.h | 2 +- drivers/staging/hv/netvsc_drv.c | 21 +++++++++++++-------- 6 files changed, 25 insertions(+), 18 deletions(-) --- a/drivers/staging/hv/include/nvspprotocol.h +++ b/drivers/staging/hv/include/nvspprotocol.h @@ -24,7 +24,7 @@ #pragma once -#include +#include "VmbusChannelInterface.h" #define NVSP_INVALID_PROTOCOL_VERSION ((UINT32)0xFFFFFFFF) --- a/drivers/staging/hv/NetVsc.c +++ b/drivers/staging/hv/NetVsc.c @@ -20,8 +20,9 @@ * */ +#define KERNEL_2_6_27 -#include "logging.h" +#include "include/logging.h" #include "NetVsc.h" #include "RndisFilter.h" --- a/drivers/staging/hv/netvsc_drv.c +++ b/drivers/staging/hv/netvsc_drv.c @@ -20,6 +20,7 @@ * */ +#define KERNEL_2_6_27 #include #include @@ -41,10 +42,10 @@ #include #include -#include "logging.h" -#include "vmbus.h" +#include "include/logging.h" +#include "include/vmbus.h" -#include "NetVscApi.h" +#include "include/NetVscApi.h" MODULE_LICENSE("GPL"); @@ -158,6 +159,14 @@ static void netvsc_set_multicast_list(UN } +static const struct net_device_ops device_ops = { + .ndo_open = netvsc_open, + .ndo_stop = netvsc_close, + .ndo_start_xmit = netvsc_start_xmit, + .ndo_get_stats = netvsc_get_stats, + .ndo_set_multicast_list = netvsc_set_multicast_list, +}; + /*++ Name: netvsc_probe() @@ -225,11 +234,7 @@ static int netvsc_probe(struct device *d memcpy(net->dev_addr, device_info.MacAddr, ETH_ALEN); - net->open = netvsc_open; - net->hard_start_xmit = netvsc_start_xmit; - net->stop = netvsc_close; - net->get_stats = netvsc_get_stats; - net->set_multicast_list = netvsc_set_multicast_list; + net->netdev_ops = &device_ops; #if !defined(KERNEL_2_6_27) SET_MODULE_OWNER(net); --- a/drivers/staging/hv/NetVsc.h +++ b/drivers/staging/hv/NetVsc.h @@ -24,12 +24,12 @@ #ifndef _NETVSC_H_ #define _NETVSC_H_ -#include "VmbusPacketFormat.h" -#include "nvspprotocol.h" +#include "include/VmbusPacketFormat.h" +#include "include/nvspprotocol.h" -#include "List.h" +#include "include/List.h" -#include "NetVscApi.h" +#include "include/NetVscApi.h" // // #defines // --- a/drivers/staging/hv/RndisFilter.c +++ b/drivers/staging/hv/RndisFilter.c @@ -21,10 +21,11 @@ * */ +#define KERNEL_2_6_27 -#include "logging.h" +#include "include/logging.h" -#include "NetVscApi.h" +#include "include/NetVscApi.h" #include "RndisFilter.h" // --- a/drivers/staging/hv/RndisFilter.h +++ b/drivers/staging/hv/RndisFilter.h @@ -27,10 +27,10 @@ #define __struct_bcount(x) -#include "osd.h" +#include "include/osd.h" #include "NetVsc.h" -#include "rndis.h" +#include "include/rndis.h" #define RNDIS_HEADER_SIZE (sizeof(RNDIS_MESSAGE) - sizeof(RNDIS_MESSAGE_CONTAINER))