Hi Robert,

how can i check if this patch is implemented in my image? 
(Ubuntu)

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]<javascript:>> 
> 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] <javascript:>. 
> > 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.

Reply via email to