09 Jul, 2014

4 commits

  • This patch removes the separate paths for frames coming from the outside, and
    frames sent from the HSR device, and instead makes all frames go through
    hsr_forward_skb() in hsr_forward.c. This greatly improves code readability and
    also opens up the possibility for future support of the HSR Interlink device
    that is the basis for HSR RedBoxes and HSR QuadBoxes, as well as VLAN
    compatibility.

    Other improvements:
    * A reduction in the number of times an skb is copied on machines without
    HAVE_EFFICIENT_UNALIGNED_ACCESS, which improves throughput somewhat.
    * Headers are now created using the standard eth_header(), and using the
    standard hard_header_len.
    * Each HSR slave now gets its own private skb, so slave-specific fields can be
    correctly set.

    Signed-off-by: Arvid Brodin
    Signed-off-by: David S. Miller

    Arvid Brodin
     
  • Signed-off-by: Arvid Brodin
    Signed-off-by: David S. Miller

    Arvid Brodin
     
  • Also try to prevent some possible slave dereference race conditions. This is
    finalized in the next patch, which abandons the slave array in favour of
    a list_head list and list RCU.

    Signed-off-by: Arvid Brodin
    Signed-off-by: David S. Miller

    Arvid Brodin
     
  • Also move the frame receive handler to hsr_slave.c.

    Signed-off-by: Arvid Brodin
    Signed-off-by: David S. Miller

    Arvid Brodin