Netdev List
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: Po-Yu Chuang <ratbert.chuang@gmail.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	bhutchings@solarflare.com, joe@perches.com, dilinger@queued.net,
	Po-Yu Chuang <ratbert@faraday-tech.com>
Subject: Re: [PATCH v3] net: add Faraday FTMAC100 10/100 Ethernet driver
Date: Thu, 20 Jan 2011 16:41:45 +0100	[thread overview]
Message-ID: <1295538105.2825.308.camel@edumazet-laptop> (raw)
In-Reply-To: <1295537418-2057-1-git-send-email-ratbert.chuang@gmail.com>

Le jeudi 20 janvier 2011 à 23:30 +0800, Po-Yu Chuang a écrit :

> +static bool ftmac100_tx_complete_packet(struct ftmac100 *priv)
> +{
> +	struct net_device *netdev = priv->netdev;
> +	struct ftmac100_txdes *txdes;
> +	struct sk_buff *skb;
> +	dma_addr_t map;
> +
> +	if (priv->tx_pending == 0)
> +		return false;
> +
> +	txdes = ftmac100_current_clean_txdes(priv);
> +
> +	if (ftmac100_txdes_owned_by_dma(txdes))
> +		return false;
> +
> +	skb = ftmac100_txdes_get_skb(txdes);
> +	map = ftmac100_txdes_get_dma_addr(txdes);
> +
> +	if (unlikely(ftmac100_txdes_excessive_collision(txdes) ||
> +		     ftmac100_txdes_late_collision(txdes))) {
> +		/*
> +		 * packet transmitted to ethernet lost due to late collision
> +		 * or excessive collision
> +		 */
> +		netdev->stats.tx_aborted_errors++;
> +	} else {
> +		netdev->stats.tx_packets++;
> +		netdev->stats.tx_bytes += skb->len;
> +	}
> +
> +	dma_unmap_single(priv->dev, map, skb_headlen(skb), DMA_TO_DEVICE);
> +
> +	dev_kfree_skb_irq(skb);
> +
> +	ftmac100_txdes_reset(txdes);
> +
> +	ftmac100_tx_clean_pointer_advance(priv);
> +
> +	priv->tx_pending--;
> +	netif_wake_queue(netdev);
> +
> +	return true;
> +}
> +
> +static void ftmac100_tx_complete(struct ftmac100 *priv)
> +{
> +	unsigned long flags;
> +
> +	spin_lock_irqsave(&priv->tx_lock, flags);
> +	while (ftmac100_tx_complete_packet(priv))
> +		;
> +	spin_unlock_irqrestore(&priv->tx_lock, flags);
> +}
> +

I dont understand why you still block hard IRQS, after full NAPI
conversion.

Now you run from NAPI, and softirq handler, are you sure you still need
to block hard IRQ and tx_lock ?

It seems to me ftmac100_xmit() could only block softirqs (but they
already are blocked by caller), so you could use spin_lock() from
ftmac100_xmit()

  parent reply	other threads:[~2011-01-20 15:41 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-13 11:49 [PATCH] net: add Faraday FTMAC100 10/100 Ethernet driver Po-Yu Chuang
2011-01-13 14:03 ` Ben Hutchings
2011-01-14  5:37   ` Po-Yu Chuang
2011-01-13 14:22 ` Eric Dumazet
2011-01-13 16:29   ` Andres Salomon
2011-01-14  6:44     ` Po-Yu Chuang
2011-01-14  6:56   ` Po-Yu Chuang
2011-01-13 15:39 ` Joe Perches
2011-01-14  6:35   ` Po-Yu Chuang
     [not found] ` <1294959948.4114.189.camel@Joe-Laptop>
2011-01-14  6:49   ` Po-Yu Chuang
2011-01-17  9:21 ` [PATCH v2] " Po-Yu Chuang
2011-01-17 17:19   ` Joe Perches
2011-01-19  9:40     ` Po-Yu Chuang
2011-01-19 12:46       ` Ben Hutchings
2011-01-19 16:41       ` Joe Perches
2011-01-20  5:30         ` Po-Yu Chuang
2011-01-20  8:46           ` Joe Perches
2011-01-17 17:29   ` Eric Dumazet
2011-01-17 18:58     ` Ben Hutchings
2011-01-17 20:39       ` Eric Dumazet
2011-01-17 18:21   ` Eric Dumazet
2011-01-18  3:08     ` Po-Yu Chuang
2011-01-19  9:20     ` Po-Yu Chuang
2011-01-20 15:30   ` [PATCH v3] " Po-Yu Chuang
2011-01-20 15:35     ` Eric Dumazet
2011-01-20 15:43       ` Po-Yu Chuang
2011-01-20 15:41     ` Eric Dumazet [this message]
2011-01-20 15:54       ` Po-Yu Chuang
2011-01-20 17:56     ` Joe Perches
2011-01-21  3:35       ` Po-Yu Chuang
2011-01-20 19:00     ` Joe Perches
2011-01-21  5:03       ` Po-Yu Chuang
     [not found]         ` <1295592411.6795.10.camel@Joe-Laptop>
2011-01-21  7:06           ` Po-Yu Chuang
2011-01-20 19:01     ` Michał Mirosław
2011-01-21  3:37       ` Po-Yu Chuang
2011-01-21  7:55     ` [PATCH v4] " Po-Yu Chuang
2011-01-21  9:08       ` Eric Dumazet
2011-01-24  8:07         ` Po-Yu Chuang
2011-01-21 12:26       ` Michał Mirosław
2011-01-24  8:26         ` Po-Yu Chuang
2011-01-24 20:22           ` Michał Mirosław
2011-01-25  2:46             ` Po-Yu Chuang
2011-02-01  3:56               ` Po-Yu Chuang
2011-02-01  4:35                 ` David Miller
2011-02-24  7:27                   ` Po-Yu Chuang
2011-02-24  7:51                     ` David Miller
2011-02-24  8:07                       ` Po-Yu Chuang
2011-02-24  8:22                         ` Eric Dumazet
2011-02-24  9:29                           ` [PATCH ref0] " Po-Yu Chuang
2011-02-24 17:39                             ` Eric Dumazet
2011-02-24 17:48                               ` Eric Dumazet
2011-02-25  2:32                                 ` Po-Yu Chuang
2011-02-25  9:45                                   ` Po-Yu Chuang
2011-02-25 10:52                                     ` Eric Dumazet
2011-02-25 18:34                                       ` David Miller
2011-02-25 18:45                                         ` Eric Dumazet
2011-02-25 18:47                                           ` Eric Dumazet
2011-03-01  5:45                                             ` Po-Yu Chuang
2011-03-01  5:53                                               ` Eric Dumazet
2011-02-25  9:57                             ` [PATCH v6] " Po-Yu Chuang
2011-02-25 11:40                               ` Eric Dumazet
2011-03-01  5:20                                 ` Po-Yu Chuang
2011-03-01  5:26                                   ` Eric Dumazet
2011-03-01  5:45                                   ` Eric Dumazet
2011-03-01  5:51                                     ` Po-Yu Chuang
2011-03-01  5:54                                       ` Eric Dumazet
2011-03-01  5:59                                       ` Eric Dumazet
2011-03-01  6:48                               ` [PATCH] " Po-Yu Chuang
2011-03-01  7:27                                 ` Eric Dumazet
2011-03-03 20:19                                   ` David Miller
2011-02-24 18:43                         ` [PATCH v4] " David Miller
2011-01-24 12:39       ` [PATCH v5] " Po-Yu Chuang
2011-01-24 15:07         ` Eric Dumazet
2011-01-25  2:46           ` Po-Yu Chuang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1295538105.2825.308.camel@edumazet-laptop \
    --to=eric.dumazet@gmail.com \
    --cc=bhutchings@solarflare.com \
    --cc=dilinger@queued.net \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=ratbert.chuang@gmail.com \
    --cc=ratbert@faraday-tech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox