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]
Date:	Mon, 30 Jun 2014 17:12:12 -0500
From:	Vince Bridgers <vbridgers2013@...il.com>
To:	Florian Fainelli <f.fainelli@...il.com>
Cc:	Randy Dunlap <rdunlap@...radead.org>,
	David Miller <davem@...emloft.net>,
	netdev <netdev@...r.kernel.org>,
	Vince Bridgers <vbridger@...era.com>
Subject: Re: [PATCH net v4 1/3] net: libphy: Add phy specific function to
 access mmd phy registers

Hi Florian,

On Mon, Jun 30, 2014 at 4:27 PM, Florian Fainelli <f.fainelli@...il.com> wrote:
> Hi Vince,
>
> 2014-06-29 18:35 GMT-07:00 Vince Bridgers <vbridgers2013@...il.com>:
>> libphy was originally written assuming all phy devices support clause 45
>> access extensions to the mmd registers through the indirection registers
>> located within the first 16 phy registers. This assumption is not true
>> in all cases, and one specific example is the Micrel ksz9021 10/100/1000
>> Mbps phy. Using the stmmac driver, accessing the mmd registers to query
>> and configure energy efficient Ethernet (EEE) features yielded unexpected
>> behavior.
>>
>> This patch adds mmd access functions to the phy driver that can be
>> overriden by the phy specific driver if the phy does not support this
>> mechanism or uses it's own non-standard access mechanism. By default,
>> the IEEE Compatible clause 45 access mechanism described in clause 22
>> is used. With this patch, EEE query/configure functions as expected
>> using the stmmac and the Micrel ksz9021 phy.
>>
>> Signed-off-by: Vince Bridgers <vbridgers2013@...il.com>
>
> Just one minor nit before this series can go in
>
> [snip]
>
>> - * phy_read_mmd_indirect - reads data from the MMD registers
>> - * @bus: the target MII bus
>> + * gen_rd_mmd_indirect - reads data from the MMD registers
>> + * @phydev: The PHY device bus
>>   * @prtad: MMD Address
>>   * @devad: MMD DEVAD
>>   * @addr: PHY address on the MII bus
>> @@ -935,18 +935,18 @@ static inline void mmd_phy_indirect(struct mii_bus *bus, int prtad, int devad,
>>   * 3) Write reg 13 // MMD Data Command for MMD DEVAD
>>   * 3) Read  reg 14 // Read MMD data
>>   */
>> -static int phy_read_mmd_indirect(struct mii_bus *bus, int prtad, int devad,
>> -                                int addr)
>> +int gen_rd_mmd_indirect(struct phy_device *phydev, int prtad, int devad,
>> +                       int addr)
>>  {
>> -       mmd_phy_indirect(bus, prtad, devad, addr);
>> +       mmd_phy_indirect(phydev->bus, prtad, devad, addr);
>>
>>         /* Read the content of the MMD's selected register */
>> -       return bus->read(bus, addr, MII_MMD_DATA);
>> +       return phydev->bus->read(phydev->bus, addr, MII_MMD_DATA);
>
> Throughout the PHY library, phy_* prefix means that this function will
> perform the required level of abstraction, that is either using the
> driver defined function, or falling back to the generic one.
>
> I would like to reduce the number of changes involved here and keep
> phy_read_mmd_indirect, but have it check the driver specific
> implementation and fallback to the generic one.
> --
> Florian

No problem, thank you for the feedback. I'll take care of this and
respin the patch.

All the best,

Vince
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ