The SW folks need to answer that question. Gerald
On Fri, Jan 31, 2014 at 3:56 AM, <[email protected]> wrote: > Hi Gerald, > > how can i check if i have this patch? > > > Thx > Attila > > On Friday, January 3, 2014 5:37:19 PM UTC+1, RobertCNelson wrote: > >> On Thu, Jan 2, 2014 at 10:08 PM, Eugene <[email protected]> wrote: >> > I ran into the same problems. I hacked up a patch to 3.8.8 from this >> patch: >> > http://permalink.gmane.org/gmane.linux.network/267097 >> > and the ifdown/ifup issue went away for me. >> >> Nice find! This fixes my debian netinstall, gonna push it to the >> default beagleboard.org kernel.. >> >> > >> > Here is my git diff for those who want to give it a try: >> > diff --git a/drivers/net/ethernet/ti/cpsw.c >> > b/drivers/net/ethernet/ti/cpsw.c >> >> > index 21ba53e..67c7f74 100644 >> > --- a/drivers/net/ethernet/ti/cpsw.c >> > +++ b/drivers/net/ethernet/ti/cpsw.c >> > @@ -342,6 +342,7 @@ struct cpsw_priv { >> > /* snapshot of IRQ numbers */ >> > u32 irqs_table[4]; >> > u32 num_irqs; >> > + bool irq_enabled; >> > struct cpts cpts; >> > }; >> > >> > @@ -458,7 +459,10 @@ static irqreturn_t cpsw_interrupt(int irq, void >> > *dev_id) >> > >> > if (likely(netif_running(priv->ndev))) { >> > cpsw_intr_disable(priv); >> > - cpsw_disable_irq(priv); >> > + if (priv->irq_enabled == true) { >> > + cpsw_disable_irq(priv); >> > + priv->irq_enabled = false; >> > + } >> > napi_schedule(&priv->napi); >> > } >> > >> > @@ -512,7 +516,11 @@ static int cpsw_poll(struct napi_struct *napi, int >> > budget) >> > if ((num_total_rx + num_total_tx) < budget) { >> > napi_complete(napi); >> > cpsw_intr_enable(priv); >> > - cpsw_enable_irq(priv); >> > + if (priv->irq_enabled == false) { >> > + cpsw_enable_irq(priv); >> > + priv->irq_enabled = true; >> > + } >> > + >> > } >> > >> > return num_total_rx + num_total_rx; >> > @@ -812,7 +820,10 @@ static int cpsw_ndo_stop(struct net_device *ndev) >> > struct cpsw_priv *priv = netdev_priv(ndev); >> > >> > cpsw_info(priv, ifdown, "shutting down cpsw device\n"); >> > - cpsw_disable_irq(priv); >> > + if (priv->irq_enabled == true) { >> > + cpsw_disable_irq(priv); >> > + priv->irq_enabled = false; >> > + } >> > netif_stop_queue(priv->ndev); >> > if (!priv->data.disable_napi) >> > napi_disable(&priv->napi); >> > @@ -1307,6 +1318,8 @@ static int cpsw_probe(struct platform_device >> *pdev) >> > priv->msg_enable = netif_msg_init(debug_level, CPSW_DEBUG); >> > priv->rx_packet_max = max(rx_packet_max, 128); >> > >> > + priv->irq_enabled = false; >> > + >> > /* >> > * This may be required here for child devices. >> > */ >> > >> > -- >> > For more options, visit http://beagleboard.org/discuss >> > --- >> > You received this message because you are subscribed to the Google >> Groups >> > "BeagleBoard" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an >> > email to [email protected]. >> > For more options, visit https://groups.google.com/groups/opt_out. >> >> >> >> -- >> Robert Nelson >> http://www.rcn-ee.com/ >> > -- > For more options, visit http://beagleboard.org/discuss > --- > You received this message because you are subscribed to the Google Groups > "BeagleBoard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
