• Pavel Nakonechny's avatar
    net: dsa: fix filling routing table from OF description · 30303813
    Pavel Nakonechny authored
    According to description in 'include/net/dsa.h', in cascade switches
    configurations where there are more than one interconnected devices,
    'rtable' array in 'dsa_chip_data' structure is used to indicate which
    port on this switch should be used to send packets to that are destined
    for corresponding switch.
    
    However, dsa_of_setup_routing_table() fills 'rtable' with port numbers
    of the _target_ switch, but not current one.
    
    This commit removes redundant devicetree parsing and adds needed port
    number as a function argument. So dsa_of_setup_routing_table() now just
    looks for target switch number by parsing parent of 'link' device node.
    
    To remove possible misunderstandings with the way of determining target
    switch number, a corresponding comment was added to the source code and
    to the DSA device tree bindings documentation file.
    
    This was tested on a custom board with two Marvell 88E6095 switches with
    following corresponding routing tables: { -1, 10 } and { 8, -1 }.
    Signed-off-by: default avatarPavel Nakonechny <pavel.nakonechny@skitlab.ru>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    30303813
dsa.c 19.1 KB