lkml.org 
[lkml]   [2020]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 152/222] net: ethernet: ave: Avoid lockdep warning
    Date
    From: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

    [ Upstream commit 82d5d6a638cbd12b7dfe8acafd9efd87a656cc06 ]

    When building with PROVE_LOCKING=y, lockdep shows the following
    dump message.

    INFO: trying to register non-static key.
    the code is fine but needs lockdep annotation.
    turning off the locking correctness validator.
    ...

    Calling device_set_wakeup_enable() directly occurs this issue,
    and it isn't necessary for initialization, so this patch creates
    internal function __ave_ethtool_set_wol() and replaces with this
    in ave_init() and ave_resume().

    Fixes: 7200f2e3c9e2 ("net: ethernet: ave: Set initial wol state to disabled")
    Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/socionext/sni_ave.c | 20 +++++++++++++-------
    1 file changed, 13 insertions(+), 7 deletions(-)

    --- a/drivers/net/ethernet/socionext/sni_ave.c
    +++ b/drivers/net/ethernet/socionext/sni_ave.c
    @@ -424,16 +424,22 @@ static void ave_ethtool_get_wol(struct n
    phy_ethtool_get_wol(ndev->phydev, wol);
    }

    -static int ave_ethtool_set_wol(struct net_device *ndev,
    - struct ethtool_wolinfo *wol)
    +static int __ave_ethtool_set_wol(struct net_device *ndev,
    + struct ethtool_wolinfo *wol)
    {
    - int ret;
    -
    if (!ndev->phydev ||
    (wol->wolopts & (WAKE_ARP | WAKE_MAGICSECURE)))
    return -EOPNOTSUPP;

    - ret = phy_ethtool_set_wol(ndev->phydev, wol);
    + return phy_ethtool_set_wol(ndev->phydev, wol);
    +}
    +
    +static int ave_ethtool_set_wol(struct net_device *ndev,
    + struct ethtool_wolinfo *wol)
    +{
    + int ret;
    +
    + ret = __ave_ethtool_set_wol(ndev, wol);
    if (!ret)
    device_set_wakeup_enable(&ndev->dev, !!wol->wolopts);

    @@ -1216,7 +1222,7 @@ static int ave_init(struct net_device *n

    /* set wol initial state disabled */
    wol.wolopts = 0;
    - ave_ethtool_set_wol(ndev, &wol);
    + __ave_ethtool_set_wol(ndev, &wol);

    if (!phy_interface_is_rgmii(phydev))
    phy_set_max_speed(phydev, SPEED_100);
    @@ -1768,7 +1774,7 @@ static int ave_resume(struct device *dev

    ave_ethtool_get_wol(ndev, &wol);
    wol.wolopts = priv->wolopts;
    - ave_ethtool_set_wol(ndev, &wol);
    + __ave_ethtool_set_wol(ndev, &wol);

    if (ndev->phydev) {
    ret = phy_resume(ndev->phydev);

    \
     
     \ /
      Last update: 2020-01-22 14:27    [W:4.030 / U:0.144 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site