• Petr Machata's avatar
    mlxsw: reg: Fix packing of router interface counters · 8fe96f58
    Petr Machata authored
    The function mlxsw_reg_ritr_counter_pack() formats a register to configure
    a router interface (RIF) counter. The parameter `egress' determines whether
    an ingress or egress counter is to be configured. RITR, the register in
    question, has two sets of counter-related fields: one for ingress, one for
    egress. When setting values of the fields, the function sets the proper
    counter index field, but when setting the counter type, it always sets the
    egress field. Thus configuration of ingress counters is broken, and in fact
    an attempt to configure an ingress counter mangles a previously configured
    egress counter.
    
    This was never discovered, because there is currently no way to enable
    ingress counters on a router interface, only the egress one.
    
    Fix in an obvious way.
    Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
    Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8fe96f58
reg.h 367 KB