[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 9 Sep 2022 08:05:20 +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 4/6] net: dsa: mv88e6xxxx: Add RMU
functionality.
On 2022-09-09 03:36, Andrew Lunn wrote:
>> +
>> + dsa_switch_inband_complete(ds, NULL);
>> +}
>> +
>> +int mv88e6xxx_rmu_setup(struct mv88e6xxx_chip *chip)
>> +{
>> + mutex_init(&chip->rmu.mutex);
>> +
>> + /* Remember original ops for restore */
>> + chip->rmu.smi_ops = chip->smi_ops;
>> +
>> + /* Change rmu ops with our own pointer */
>> + chip->rmu.rmu_ops = (struct mv88e6xxx_bus_ops *)chip->rmu.smi_ops;
>
> Why do you need a cast? In general, casts are wrong, it suggests your
> types are wrong.
>
So we want want to have the original ops from chip->smi_ops as
we cannot know which ones they are (mv88e6xxx_smi_dual_direct_ops/
mv88e6xxx_smi_direct_ops/mv88e6xxx_smi_indirect_ops). This is to be
able to restore them when appropriate. They are declared const.
But we want to replace get_rmon in our own version of ops
with mv88e6xxx_rmu_stats_get, hence that version cannot be const.
/Mattias
>> + chip->rmu.rmu_ops->get_rmon = mv88e6xxx_rmu_stats_get;
>> +
>> + if (chip->info->ops->rmu_disable)
>> + return chip->info->ops->rmu_disable(chip);
>
> Why is a setup function calling disable?
>
> Andrew
Powered by blists - more mailing lists