Hello. Anton Vorontsov wrote:
> This patch adds netpoll support for the QE UCC Gigabit Ethernet > driver. The approach is very similar to the gianfar driver. It's rather contrarywise -- this is standard approach and gianfar with its 3 TSEC IRQs has a quite non-standard poll_controller() implementation. > Tested using netconsole. KGDBoE is considered a better test (I hope you've also tested with it). > Signed-off-by: Anton Vorontsov <[EMAIL PROTECTED]> > diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c > index 18a6f48..06807ce 100644 > --- a/drivers/net/ucc_geth.c > +++ b/drivers/net/ucc_geth.c > @@ -3691,6 +3691,22 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void > *info) > return IRQ_HANDLED; > } > > +#ifdef CONFIG_NET_POLL_CONTROLLER > +/* > + * Polling 'interrupt' - used by things like netconsole to send skbs > + * without having to re-enable interrupts. It's not called while > + * the interrupt routine is executing. > + */ > +static void ucc_netpoll(struct net_device *dev) > +{ > + struct ucc_geth_private *ugeth = netdev_priv(dev); > + > + disable_irq(ugeth->ug_info->uf_info.irq); > + ucc_geth_irq_handler(ugeth->ug_info->uf_info.irq, dev); > + enable_irq(ugeth->ug_info->uf_info.irq); Why not make it less complex (for a reader and gcc too :-) ? struct ucc_geth_private *ugeth = netdev_priv(dev); int irq = ugeth->ug_info->uf_info.irq; disable_irq(irq); ucc_geth_irq_handler(irq, dev); enable_irq(irq); > +} > +#endif /* CONFIG_NET_POLL_CONTROLLER */ > + > /* Called when something needs to use the ethernet device */ > /* Returns 0 for success. */ > static int ucc_geth_open(struct net_device *dev) WBR, Sergei _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev