• Lukasz Majewski's avatar
    net: hsr: Properly parse HSRv1 supervisor frames. · 295de650
    Lukasz Majewski authored
    While adding support for parsing the redbox supervision frames, the
    author added `pull_size' and `total_pull_size' to track the amount of
    bytes that were pulled from the skb during while parsing the skb so it
    can be reverted/ pushed back at the end.
    In the process probably copy&paste error occurred and for the HSRv1 case
    the ethhdr was used instead of the hsr_tag. Later the hsr_tag was used
    instead of hsr_sup_tag. The later error didn't matter because both
    structs have the size so HSRv0 was still working. It broke however HSRv1
    parsing because struct ethhdr is larger than struct hsr_tag.
    
    Reinstate the old pulling flow and pull first ethhdr, hsr_tag in v1 case
    followed by hsr_sup_tag.
    
    [bigeasy: commit message]
    
    Fixes: eafaa88b ("net: hsr: Add support for redbox supervision frames")'
    Suggested-by: Tristram.Ha@microchip.com
    Signed-off-by: default avatarLukasz Majewski <lukma@denx.de>
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Reviewed-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    295de650
hsr_framereg.c 17.2 KB