Re: [PATCH 02/12] ftgmac100: Move ftgmac100_hard_start_xmit() around

2017-04-07 Thread Benjamin Herrenschmidt
On Fri, 2017-04-07 at 05:49 -0700, David Miller wrote:
> >    /* Tx ring */
> > + struct sk_buff *tx_skbs[TX_QUEUE_ENTRIES];
> >    unsigned int tx_clean_pointer;
> >    unsigned int tx_pointer;
> >    unsigned int tx_pending;
> 
> Add this only in patch #6 or wherever it is that you start using it,
> not this patch

Yup, just an accident, funny that I didn't notice it (I did review my
own series ;-)

Thanks !

Ben.



Re: [PATCH 02/12] ftgmac100: Move ftgmac100_hard_start_xmit() around

2017-04-07 Thread Benjamin Herrenschmidt
On Fri, 2017-04-07 at 13:09 +0300, Sergei Shtylyov wrote:
> Hello!
> 
> On 4/7/2017 6:30 AM, Benjamin Herrenschmidt wrote:
> 
> > Move it below ftgmac100_xmit() and the rest of the tx path
> > 
> > No code change.
> > 
> > Signed-off-by: Benjamin Herrenschmidt 
> > ---
> >  drivers/net/ethernet/faraday/ftgmac100.c | 59 --
> > --
> >  1 file changed, 30 insertions(+), 29 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/faraday/ftgmac100.c
> > b/drivers/net/ethernet/faraday/ftgmac100.c
> > index f4b719214..3966c7a 100644
> > --- a/drivers/net/ethernet/faraday/ftgmac100.c
> > +++ b/drivers/net/ethernet/faraday/ftgmac100.c
> > @@ -63,6 +63,7 @@ struct ftgmac100 {
> >     u32 rxdes0_edorr_mask;
> > 
> >     /* Tx ring */
> > +   struct sk_buff *tx_skbs[TX_QUEUE_ENTRIES];
> 
> "No code change", really?

Patch splitting accident, thanks for pointing it out. I'll fix it up in
the next round.

> 
> >     unsigned int tx_clean_pointer;
> >     unsigned int tx_pointer;
> >     unsigned int tx_pending;
> 
> [...]
> 
> MBR, Sergei


Re: [PATCH 02/12] ftgmac100: Move ftgmac100_hard_start_xmit() around

2017-04-07 Thread David Miller
From: Benjamin Herrenschmidt 
Date: Fri,  7 Apr 2017 13:30:55 +1000

> Move it below ftgmac100_xmit() and the rest of the tx path
> 
> No code change.
> 
> Signed-off-by: Benjamin Herrenschmidt 
> ---
>  drivers/net/ethernet/faraday/ftgmac100.c | 59 
> 
>  1 file changed, 30 insertions(+), 29 deletions(-)
> 
> diff --git a/drivers/net/ethernet/faraday/ftgmac100.c 
> b/drivers/net/ethernet/faraday/ftgmac100.c
> index f4b719214..3966c7a 100644
> --- a/drivers/net/ethernet/faraday/ftgmac100.c
> +++ b/drivers/net/ethernet/faraday/ftgmac100.c
> @@ -63,6 +63,7 @@ struct ftgmac100 {
>   u32 rxdes0_edorr_mask;
>  
>   /* Tx ring */
> + struct sk_buff *tx_skbs[TX_QUEUE_ENTRIES];
>   unsigned int tx_clean_pointer;
>   unsigned int tx_pointer;
>   unsigned int tx_pending;

Add this only in patch #6 or wherever it is that you start using it, not
this patch

Thanks.


Re: [PATCH 02/12] ftgmac100: Move ftgmac100_hard_start_xmit() around

2017-04-07 Thread Sergei Shtylyov

Hello!

On 4/7/2017 6:30 AM, Benjamin Herrenschmidt wrote:


Move it below ftgmac100_xmit() and the rest of the tx path

No code change.

Signed-off-by: Benjamin Herrenschmidt 
---
 drivers/net/ethernet/faraday/ftgmac100.c | 59 
 1 file changed, 30 insertions(+), 29 deletions(-)

diff --git a/drivers/net/ethernet/faraday/ftgmac100.c 
b/drivers/net/ethernet/faraday/ftgmac100.c
index f4b719214..3966c7a 100644
--- a/drivers/net/ethernet/faraday/ftgmac100.c
+++ b/drivers/net/ethernet/faraday/ftgmac100.c
@@ -63,6 +63,7 @@ struct ftgmac100 {
u32 rxdes0_edorr_mask;

/* Tx ring */
+   struct sk_buff *tx_skbs[TX_QUEUE_ENTRIES];


   "No code change", really?


unsigned int tx_clean_pointer;
unsigned int tx_pointer;
unsigned int tx_pending;

[...]

MBR, Sergei



[PATCH 02/12] ftgmac100: Move ftgmac100_hard_start_xmit() around

2017-04-06 Thread Benjamin Herrenschmidt
Move it below ftgmac100_xmit() and the rest of the tx path

No code change.

Signed-off-by: Benjamin Herrenschmidt 
---
 drivers/net/ethernet/faraday/ftgmac100.c | 59 
 1 file changed, 30 insertions(+), 29 deletions(-)

diff --git a/drivers/net/ethernet/faraday/ftgmac100.c 
b/drivers/net/ethernet/faraday/ftgmac100.c
index f4b719214..3966c7a 100644
--- a/drivers/net/ethernet/faraday/ftgmac100.c
+++ b/drivers/net/ethernet/faraday/ftgmac100.c
@@ -63,6 +63,7 @@ struct ftgmac100 {
u32 rxdes0_edorr_mask;
 
/* Tx ring */
+   struct sk_buff *tx_skbs[TX_QUEUE_ENTRIES];
unsigned int tx_clean_pointer;
unsigned int tx_pointer;
unsigned int tx_pending;
@@ -673,6 +674,35 @@ static int ftgmac100_xmit(struct ftgmac100 *priv, struct 
sk_buff *skb,
return NETDEV_TX_OK;
 }
 
+static int ftgmac100_hard_start_xmit(struct sk_buff *skb,
+struct net_device *netdev)
+{
+   struct ftgmac100 *priv = netdev_priv(netdev);
+   dma_addr_t map;
+
+   if (unlikely(skb->len > MAX_PKT_SIZE)) {
+   if (net_ratelimit())
+   netdev_dbg(netdev, "tx packet too big\n");
+
+   netdev->stats.tx_dropped++;
+   kfree_skb(skb);
+   return NETDEV_TX_OK;
+   }
+
+   map = dma_map_single(priv->dev, skb->data, skb_headlen(skb), 
DMA_TO_DEVICE);
+   if (unlikely(dma_mapping_error(priv->dev, map))) {
+   /* drop packet */
+   if (net_ratelimit())
+   netdev_err(netdev, "map socket buffer failed\n");
+
+   netdev->stats.tx_dropped++;
+   kfree_skb(skb);
+   return NETDEV_TX_OK;
+   }
+
+   return ftgmac100_xmit(priv, skb, map);
+}
+
 static void ftgmac100_free_buffers(struct ftgmac100 *priv)
 {
int i;
@@ -1210,35 +1240,6 @@ static int ftgmac100_stop(struct net_device *netdev)
return 0;
 }
 
-static int ftgmac100_hard_start_xmit(struct sk_buff *skb,
-struct net_device *netdev)
-{
-   struct ftgmac100 *priv = netdev_priv(netdev);
-   dma_addr_t map;
-
-   if (unlikely(skb->len > MAX_PKT_SIZE)) {
-   if (net_ratelimit())
-   netdev_dbg(netdev, "tx packet too big\n");
-
-   netdev->stats.tx_dropped++;
-   kfree_skb(skb);
-   return NETDEV_TX_OK;
-   }
-
-   map = dma_map_single(priv->dev, skb->data, skb_headlen(skb), 
DMA_TO_DEVICE);
-   if (unlikely(dma_mapping_error(priv->dev, map))) {
-   /* drop packet */
-   if (net_ratelimit())
-   netdev_err(netdev, "map socket buffer failed\n");
-
-   netdev->stats.tx_dropped++;
-   kfree_skb(skb);
-   return NETDEV_TX_OK;
-   }
-
-   return ftgmac100_xmit(priv, skb, map);
-}
-
 /* optional */
 static int ftgmac100_do_ioctl(struct net_device *netdev, struct ifreq *ifr, 
int cmd)
 {
-- 
2.9.3