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
| ||
|
Message-ID: <c70f64b2-6651-8090-82ad-f264455291c3@gmail.com> Date: Fri, 9 Sep 2022 09:36:25 +0200 From: Mattias Forsblad <mattias.forsblad@...il.com> To: Andrew Lunn <andrew@...n.ch> Cc: netdev@...r.kernel.org, Vivien Didelot <vivien.didelot@...il.com>, Florian Fainelli <f.fainelli@...il.com>, Vladimir Oltean <olteanv@...il.com>, "David S . Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com> Subject: Re: [PATCH net-next v7 5/6] net: dsa: mv88e6xxx: rmon: Use RMU for reading RMON data On 2022-09-09 03:49, Andrew Lunn wrote: >> diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c >> index bbdf229c9e71..bd16afa2e1a5 100644 >> --- a/drivers/net/dsa/mv88e6xxx/chip.c >> +++ b/drivers/net/dsa/mv88e6xxx/chip.c >> @@ -1234,16 +1234,30 @@ static int mv88e6xxx_stats_get_stats(struct mv88e6xxx_chip *chip, int port, >> u16 bank1_select, u16 histogram) >> { >> struct mv88e6xxx_hw_stat *stat; >> + int offset = 0; >> + u64 high; >> int i, j; >> >> for (i = 0, j = 0; i < ARRAY_SIZE(mv88e6xxx_hw_stats); i++) { >> stat = &mv88e6xxx_hw_stats[i]; >> if (stat->type & types) { >> - mv88e6xxx_reg_lock(chip); >> - data[j] = _mv88e6xxx_get_ethtool_stat(chip, stat, port, >> - bank1_select, >> - histogram); >> - mv88e6xxx_reg_unlock(chip); >> + if (mv88e6xxx_rmu_available(chip) && > > I was trying to avoid code like this, by the use of the ops. > The call path with this patch is: dsa_slave_get_ethtool_stats-> get_ethtool_stats(ops)-> mv88e6xxx_get_ethtool_stats-> get_rmon(ops)-> (1) mv88e6xxx_rmu_stats_get-> stats_get_stats(ops)-> (per chip implementation:mv88e6095/6250/6320/6390_stats_get_stats-> mv88e6xxx_stats_get_stats(with different parameters) Here we want to decode the raw RMU data according to specific chip. This function is not an ops and furthermore some RMON data is still fetched through MDIO, i.e. !(stat->type & STATS_TYPE_PORT). I'm not sure what you want me to do? The ops I've changed is at (1) /Mattias
Powered by blists - more mailing lists