Re: [PATCH] ethernet: mvneta: Support netpoll
From: David Miller <davem@davemloft.net>
Date: 2016-03-30 03:09:34
From: David Miller <davem@davemloft.net>
Date: 2016-03-30 03:09:34
From: Ezequiel Garcia <ezequiel@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.