net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path
[ Upstream commit fc82a08ae795ee6b73fb6b50785f7be248bec7b5 ] mv88e6xxx_get_stats, which collects stats from various sources, expects all callees to return the number of stats read. If an error occurs, 0 should be returned. Prevent future mishaps of this kind by updating the return type to reflect this contract. Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
90681ebfac
commit
85f9a7ffdc
3 changed files with 10 additions and 10 deletions
|
@ -536,7 +536,7 @@ struct mv88e6xxx_ops {
|
|||
int (*serdes_get_sset_count)(struct mv88e6xxx_chip *chip, int port);
|
||||
int (*serdes_get_strings)(struct mv88e6xxx_chip *chip, int port,
|
||||
uint8_t *data);
|
||||
int (*serdes_get_stats)(struct mv88e6xxx_chip *chip, int port,
|
||||
size_t (*serdes_get_stats)(struct mv88e6xxx_chip *chip, int port,
|
||||
uint64_t *data);
|
||||
|
||||
/* SERDES registers for ethtool */
|
||||
|
|
|
@ -314,7 +314,7 @@ static uint64_t mv88e6352_serdes_get_stat(struct mv88e6xxx_chip *chip,
|
|||
return val;
|
||||
}
|
||||
|
||||
int mv88e6352_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
|
||||
size_t mv88e6352_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
|
||||
uint64_t *data)
|
||||
{
|
||||
struct mv88e6xxx_port *mv88e6xxx_port = &chip->ports[port];
|
||||
|
@ -631,7 +631,7 @@ static uint64_t mv88e6390_serdes_get_stat(struct mv88e6xxx_chip *chip, int lane,
|
|||
return reg[0] | ((u64)reg[1] << 16) | ((u64)reg[2] << 32);
|
||||
}
|
||||
|
||||
int mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
|
||||
size_t mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
|
||||
uint64_t *data)
|
||||
{
|
||||
struct mv88e6390_serdes_hw_stat *stat;
|
||||
|
|
|
@ -116,12 +116,12 @@ irqreturn_t mv88e6390_serdes_irq_status(struct mv88e6xxx_chip *chip, int port,
|
|||
int mv88e6352_serdes_get_sset_count(struct mv88e6xxx_chip *chip, int port);
|
||||
int mv88e6352_serdes_get_strings(struct mv88e6xxx_chip *chip,
|
||||
int port, uint8_t *data);
|
||||
int mv88e6352_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
|
||||
size_t mv88e6352_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
|
||||
uint64_t *data);
|
||||
int mv88e6390_serdes_get_sset_count(struct mv88e6xxx_chip *chip, int port);
|
||||
int mv88e6390_serdes_get_strings(struct mv88e6xxx_chip *chip,
|
||||
int port, uint8_t *data);
|
||||
int mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
|
||||
size_t mv88e6390_serdes_get_stats(struct mv88e6xxx_chip *chip, int port,
|
||||
uint64_t *data);
|
||||
|
||||
int mv88e6352_serdes_get_regs_len(struct mv88e6xxx_chip *chip, int port);
|
||||
|
|
Loading…
Reference in a new issue