Maxime, On Fri, 3 Jul 2015 16:25:51 +0200, Maxime Ripard wrote:
> +static void mvneta_percpu_enable(void *arg) > +{ > + struct mvneta_port *pp = arg; > + > + enable_percpu_irq(pp->dev->irq, IRQ_TYPE_NONE); > +} > + > static int mvneta_open(struct net_device *dev) > { > struct mvneta_port *pp = netdev_priv(dev); > @@ -2655,6 +2662,19 @@ static int mvneta_open(struct net_device *dev) > goto err_cleanup_txqs; > } > > + /* > + * Even though the documentation says that request_percpu_irq > + * doesn't enable the interrupts automatically, it actually > + * does so on the local CPU. > + * > + * Make sure it's disabled. > + */ > + disable_percpu_irq(pp->dev->irq); > + > + /* Enable per-CPU interrupt on the one CPU we care about */ > + smp_call_function_single(rxq_def % num_online_cpus(), > + mvneta_percpu_enable, pp, true); What happens if that CPU goes offline through CPU hotplug? Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html