From: Ezequiel Garcia <ezequ...@vanguardiasur.com.ar> Date: Mon, 28 Mar 2016 17:41:18 -0300
> +/* Polled functionality used by netconsole and others in non interrupt mode > */ > +static void mvneta_poll_controller(struct net_device *dev) > +{ > + struct mvneta_port *pp = netdev_priv(dev); > + > + on_each_cpu(mvneta_percpu_poll_controller, pp, false); > +} This doesn't work. netpoll may be invoked from any context whatsoever, even hardware interrupt handlers or contexts where cpu interrupts are disabled. smp_call_function() and thus on_each_cpu() may not be called with disabled interrupts or from a hardware interrupt handler or from a bottom half handler, all of which are valid situations where netpoll may occur since printk's can occur anywhere.