On Tue, Mar 19, 2019 at 1:07 PM Paul Thomas <pthomas8...@gmail.com> wrote:
>
> Make sure SKBTX_HW_TSTAMP (i.e. SOF_TIMESTAMPING_TX_HARDWARE) has been
> enabled for this skb It does fix the issue where normal socks that
> aren't expecting a timestamp will not wake up on select. And when a
> user does want a SOF_TIMESTAMPING_TX_HARDWARE this does work.
>
> Signed-off-by: Paul Thomas <pthomas8...@gmail.com>
> ---
>  drivers/net/ethernet/cadence/macb_main.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/cadence/macb_main.c 
> b/drivers/net/ethernet/cadence/macb_main.c
> index ad099fd01b45..48fc45ab514f 100644
> --- a/drivers/net/ethernet/cadence/macb_main.c
> +++ b/drivers/net/ethernet/cadence/macb_main.c
> @@ -898,7 +898,8 @@ static void macb_tx_interrupt(struct macb_queue *queue)
>
>                         /* First, update TX stats if needed */
>                         if (skb) {
> -                               if (gem_ptp_do_txstamp(queue, skb, desc) == 
> 0) {
> +                               if (unlikely(skb_shinfo(skb)->tx_flags & 
> SKBTX_HW_TSTAMP) &&
> +                                       gem_ptp_do_txstamp(queue, skb, desc) 
> == 0) {
>                                         /* skb now belongs to timestamp buffer
>                                          * and will be removed later
>                                          */
> --
> 2.17.1
>

Hi All, just a reminder on this.

This is a bug fix that I'm sure others will hit at some point, I
imagine that it applies to the Microchip parts as well.

A quick recap on how this shows up. Without this and with HW
timestamps enabled ALL socks get notified through select() that the
timestamp is available (on the error queue). This causes applications
like ssh to break.

thanks,
Paul

Reply via email to