From: Andrew Lunn <andrew@lunn.ch>
To: l00371289 <linyunsheng@huawei.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
davem@davemloft.net, huangdaode@hisilicon.com,
xuwei5@hisilicon.com, liguozhu@hisilicon.com,
Yisen.Zhuang@huawei.com, gabriele.paoloni@huawei.com,
john.garry@huawei.com, linuxarm@huawei.com,
salil.mehta@huawei.com, lipeng321@huawei.com,
yankejian@huawei.com, tremyfr@gmail.com, xieqianqian@huawei.com,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH NET] net/hns:bugfix of ethtool -t phy self_test
Date: Thu, 22 Jun 2017 05:35:05 +0200 [thread overview]
Message-ID: <20170622033505.GA4813@lunn.ch> (raw)
In-Reply-To: <ea80ee9c-f2e5-72ae-5c53-fda1dd755a45@huawei.com>
> I don't think returning to user space is an option, because it mean
> ethtool phy self test would fail because if availability of some software
> resoure, which is not some application would expect. here is what I can
> think of:
>
> driver/net/ethernet/hisilicon/hns/hns_ethtool.c
> int phy_loopback_selftest(struct phy_device *dev)
> {
> int err;
>
> mutex_lock(dev->mutex);
>
> if (dev->drv->loopback)
> err = dev->drv->loopback(dev, 1);
>
> if (err)
> goto out;
>
> /* mac driver do the test*/
> .................
>
>
> if (dev->drv->loopback)
> err = dev->drv->loopback(dev, 0);
>
> if (err)
> goto out;
>
> out:
> mutex_unlock(dev->mutex);
> return err;
> }
I don't think you need a mutex here. dev_ioctl.c:
case SIOCETHTOOL:
dev_load(net, ifr.ifr_name);
rtnl_lock();
ret = dev_ethtool(net, &ifr);
rtnl_unlock();
So all ethtool operations are protected by the rtnl. You cannot have
two tests running at once.
> One question I can think of is that, how do we ensure mac driver enable and
> disable phy loopback in pair, enable loopback after dev->mutex is taken,
> disable loopback before dev->mutex is released?
> I hope I am not missing something obvious, any suggestion and idea?
You cannot ensure this. But it would be a pretty obvious bug.
Andrew
next prev parent reply other threads:[~2017-06-22 3:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-16 9:24 [PATCH NET] net/hns:bugfix of ethtool -t phy self_test Lin Yun Sheng
2017-06-19 18:21 ` David Miller
2017-06-19 21:00 ` Florian Fainelli
2017-06-19 21:54 ` Andrew Lunn
2017-06-20 3:18 ` l00371289
2017-06-20 13:28 ` Andrew Lunn
2017-06-21 2:06 ` l00371289
2017-06-20 3:05 ` l00371289
2017-06-20 13:27 ` Andrew Lunn
2017-06-21 2:03 ` l00371289
2017-06-21 3:13 ` Andrew Lunn
2017-06-21 3:42 ` l00371289
2017-06-21 13:34 ` Andrew Lunn
2017-06-22 1:41 ` l00371289
2017-06-22 3:35 ` Andrew Lunn [this message]
2017-06-22 3:49 ` l00371289
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=20170622033505.GA4813@lunn.ch \
--to=andrew@lunn.ch \
--cc=Yisen.Zhuang@huawei.com \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=gabriele.paoloni@huawei.com \
--cc=huangdaode@hisilicon.com \
--cc=john.garry@huawei.com \
--cc=liguozhu@hisilicon.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=linyunsheng@huawei.com \
--cc=lipeng321@huawei.com \
--cc=netdev@vger.kernel.org \
--cc=salil.mehta@huawei.com \
--cc=tremyfr@gmail.com \
--cc=xieqianqian@huawei.com \
--cc=xuwei5@hisilicon.com \
--cc=yankejian@huawei.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 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.