From: Daniel Mack <zonque@gmail.com>
To: David Miller <davem@davemloft.net>, julia.lawall@lip6.fr
Cc: netdev@vger.kernel.org
Subject: Re: question about drivers/net/ethernet/ti/cpsw.c
Date: Tue, 02 Sep 2014 11:34:16 +0200 [thread overview]
Message-ID: <54058F18.8060709@gmail.com> (raw)
In-Reply-To: <20140901.181101.2132157946809255487.davem@davemloft.net>
On 09/02/2014 03:11 AM, David Miller wrote:
> From: Julia Lawall <julia.lawall@lip6.fr>
> Date: Thu, 28 Aug 2014 21:26:55 +0200 (CEST)
>
>> I wonder if the following patch:
>>
>> commit aa1a15e2d9199711cdcc9399fdb22544ab835a83
>> Author: Daniel Mack <zonque@gmail.com>
>> Date: Sat Sep 21 00:50:38 2013 +0530
>>
>> introduced a race condition in drivers/net/ethernet/ti/cpsw.c. I was
>> looking at an old version of the file (Linux 3.10), and it has
>>
>> clean_irq_ret:
>> for (i = 0; i < priv->num_irqs; i++)
>> free_irq(priv->irqs_table[i], priv);
>>
>> at the beginning of the cleanup code of the probe function (cpsw_probe).
>> The above patch replaces request_irq by devm_request_irq and gets rid of
>> the above cleanup code. But that moves the stopping of the interrupts
>> after the following code at the end of the function:
>>
>> free_netdev(priv->ndev);
>>
>> The interrupt handler (cpsw_interrupt) does reference priv->ndev:
>>
>> if (netif_running(priv->ndev)) {
>> napi_schedule(&priv->napi);
>> return IRQ_HANDLED;
>> }
>>
>> so perhaps this could be a problem. The same happens in the remove
>> function.
>
> It could definitely be a problem.
>
> Probably it would be better for this device to request IRQs in open
> and release them in close like so many other networking drivers do.
Thanks for spotting this, Julia!
I'll be working on a fix for this as soon as I can.
Best regards,
Daniel
next prev parent reply other threads:[~2014-09-02 9:34 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-28 19:26 question about drivers/net/ethernet/ti/cpsw.c Julia Lawall
2014-09-02 1:11 ` David Miller
2014-09-02 9:34 ` Daniel Mack [this message]
2014-09-02 16:34 ` Daniel Mack
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=54058F18.8060709@gmail.com \
--to=zonque@gmail.com \
--cc=davem@davemloft.net \
--cc=julia.lawall@lip6.fr \
--cc=netdev@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.