• Alessandro Rubini's avatar
    kernel/wr-nic: fix a memory leakage under heavy load · ce7eb8a2
    Alessandro Rubini authored
    When the switch is loaded, some PTP outgoing frames get discarded, so we
    never get back the timestamp interrupt.  By round-robin'ing the slots,
    we get back to the "busy" one, which holds an skb structure that must be
    released.
    
    Without this freeing, the skb remains in the output queue of the
    socket, and after a while we get EAGAIN in send() because the buffer
    is full (400 frames, more or less). And the ptp port is stuck until we
    reopen the socket.
    
    This diagnosis exposed the fact that it's not an overflow of pending
    descriptors, so I change the message from
    
      descriptor overflow: tx timestamp pending
    
    to
    
      discarding tx frame that got no timestamp
    
    Finally, this is pr_warn, not pr_err as we now know it's expected.
    Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
    ce7eb8a2
Name
Last commit
Last update
..
at91_softpwm Loading commit data...
wbgen-regs Loading commit data...
wr_clocksource Loading commit data...
wr_nic Loading commit data...
wr_pstats Loading commit data...
wr_rtu Loading commit data...
wr_vic Loading commit data...
Makefile Loading commit data...