> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of 
> Vinicius Costa Gomes
> Sent: Wednesday, February 21, 2024 5:27 AM
> To: [email protected]
> Cc: Neftin, Sasha <[email protected]>; Gomes, Vinicius 
> <[email protected]>; [email protected]; [email protected]; 
> [email protected]; Brandeburg, Jesse <[email protected]>; 
> [email protected]; Eric Dumazet <[email protected]>; Nguyen, 
> Anthony L <[email protected]>; Jeff Kirsher 
> <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni 
> <[email protected]>; David S. Miller <[email protected]>
> Subject: [Intel-wired-lan] [iwl-net v2 2/2] igb: Fix missing time sync events
>
> Fix "double" clearing of interrupts, which can cause external events
> or timestamps to be missed.
>
> The E1000_TSIRC Time Sync Interrupt Cause register can be cleared in two
> ways, by either reading it or by writing '1' into the specific cause
> bit. This is documented in section 8.16.1.
>
> The following flow was used:
>     1. read E1000_TSIRC into 'tsicr';
>     2. handle the interrupts present into 'tsirc' and mark them in 'ack';
>     3. write 'ack' into E1000_TSICR;
>
> As both (1) and (3) will clear the interrupt cause, if the same
> interrupt happens again between (1) and (3) it will be ignored,
> causing events to be missed.
>
> Remove the extra clear in (3).
>
> Fixes: 00c65578b47b ("igb: enable internal PPS for the i210")
> Acked-by: Richard Cochran <[email protected]>
> Signed-off-by: Vinicius Costa Gomes <[email protected]>
> ---
>  drivers/net/ethernet/intel/igb/igb_main.c | 23 +++++------------------
>  1 file changed, 5 insertions(+), 18 deletions(-)
>

Tested-by: Pucha Himasekhar Reddy <[email protected]> (A 
Contingent worker at Intel)

Reply via email to