Subject: dev->get_stats(dev) in COMPAT_NET_DEV_OPS case

From: Oliver Hartkopp <[email-masked]>
Date: Thu, 08 Jan 2009 14:12:05 +0100

Hello Stephen,

in commit eeda3fd64f75bcbfaa70ce946513abaf3f23b8e0 ("netdev: introduce 
dev_get_stats() 
<http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=commit;h=eeda3fd64f75bcbfaa70ce946513abaf3f23b8e0>")
you remove the setting of dev->get_stats :

@@ -4370,7 
<http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=blob;f=net/core/dev.c;h=ca14ab407b338172758bc409efd2baaf75bdee99;hb=d314774cf2cd5dfeb39a00d37deee65d4c627927#l4370> 
+4384,6 
<http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=blob;f=net/core/dev.c;h=8843f4e3f5e192eba9eb5154faa1ca4131fb01fc;hb=eeda3fd64f75bcbfaa70ce946513abaf3f23b8e0#l4384> 
@@ struct net_device *alloc_netdev_mq(int sizeof_priv, const char *name,
 
        netdev_init_queues(dev);
 
-       dev->get_stats = internal_stats;
        netpoll_netdev_init(dev);
        setup(dev);
        strcpy(dev->name, name);

I really appreciate your introduction of COMPAT_NET_DEV_OPS but when i 
try to compile and run a non-converted driver, i get a NULL pointer 
dereference. I tracked it down to be the call of dev->get_stats(dev).

Did you miss something or is this behaviour intended?

Regards,
Oliver