lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2d6e5cdd-bcfb-1632-1458-38d506e15b82@windriver.com>
Date:   Thu, 17 Nov 2022 12:39:45 +0800
From:   "Wang, Xiaolei" <xiaolei.wang@...driver.com>
To:     Florian Fainelli <f.fainelli@...il.com>, andrew@...n.ch,
        hkallweit1@...il.com, linux@...linux.org.uk, davem@...emloft.net,
        edumazet@...gle.com, kuba@...nel.org, pabeni@...hat.com
Cc:     netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] net: phy: Add link between phy dev and mac dev


On 11/17/2022 7:22 AM, Florian Fainelli wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender 
> and know the content is safe.
>
> On 11/16/22 06:43, Xiaolei Wang wrote:
>> The external phy used by current mac interface
>> is managed by another mac interface, so we should
>> create a device link between phy dev and mac dev.
>>
>> Signed-off-by: Xiaolei Wang <xiaolei.wang@...driver.com>
>> ---
>>   drivers/net/phy/phy.c | 20 ++++++++++++++++++++
>>   include/linux/phy.h   |  1 +
>>   2 files changed, 21 insertions(+)
>>
>> diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
>> index e741d8aebffe..0ef6b69026c7 100644
>> --- a/drivers/net/phy/phy.c
>> +++ b/drivers/net/phy/phy.c
>> @@ -35,6 +35,7 @@
>>   #include <net/netlink.h>
>>   #include <net/genetlink.h>
>>   #include <net/sock.h>
>> +#include <linux/of_mdio.h>
>>
>>   #define PHY_STATE_TIME      HZ
>>
>> @@ -1535,3 +1536,22 @@ int phy_ethtool_nway_reset(struct net_device 
>> *ndev)
>>       return phy_restart_aneg(phydev);
>>   }
>>   EXPORT_SYMBOL(phy_ethtool_nway_reset);
>> +
>> +/**
>> + * The external phy used by current mac interface is managed by
>> + * another mac interface, so we should create a device link between
>> + * phy dev and mac dev.
>> + */
>> +void phy_mac_link_add(struct device_node *phy_np, struct net_device 
>> *ndev)
>> +{
>> +     struct phy_device *phy_dev = of_phy_find_device(phy_np);
>> +     struct device *dev = phy_dev ? &phy_dev->mdio.dev : NULL;
>> +
>> +     if (dev && ndev->dev.parent != dev)
>> +             device_link_add(ndev->dev.parent, dev,
>> +                             DL_FLAG_PM_RUNTIME);
>
> Where is the matching device_link_del()?

Hi

Oh, what do you mean when some modules are uninstalled, should we delete 
the link?
My original idea was to wait for the dev (consumer or supplier) to be 
unregistered and automatically deleted, I read the comment of 
device_link_add, if DL_FLAG_STATELESS is not set, the caller of this 
function will completely hand over the management of the link to the 
driver core, then The link will remain until one of the devices it 
points to (consumer or provider) is unregistered.

thanks

xiaolei

> -- 
> Florian
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ