On Apr  1 16:35, Jacob Keller wrote:
> From: Christopher S M Hall <[email protected]>
> 
> Writing to clear the PTM status 'valid' bit while the PTM cycle is
> triggered results in unreliable PTM operation. To fix this, clear the
> PTM 'trigger' and status after each PTM transaction.
> 
> The issue can be reproduced with the following:
> 
> $ sudo phc2sys -R 1000 -O 0 -i tsn0 -m
> 
> Note: 1000 Hz (-R 1000) is unrealistically large, but provides a way to
> quickly reproduce the issue.
> 
> PHC2SYS exits with:
> 
> "ioctl PTP_OFFSET_PRECISE: Connection timed out" when the PTM transaction
>   fails
> 
> This patch also fixes a hang in igc_probe() when loading the igc
> driver in the kdump kernel on systems supporting PTM.
> 
> The igc driver running in the base kernel enables PTM trigger in
> igc_probe().  Therefore the driver is always in PTM trigger mode,
> except in brief periods when manually triggering a PTM cycle.
> 
> When a crash occurs, the NIC is reset while PTM trigger is enabled.
> Due to a hardware problem, the NIC is subsequently in a bad busmaster
> state and doesn't handle register reads/writes.  When running
> igc_probe() in the kdump kernel, the first register access to a NIC
> register hangs driver probing and ultimately breaks kdump.
> 
> With this patch, igc has PTM trigger disabled most of the time,
> and the trigger is only enabled for very brief (10 - 100 us) periods
> when manually triggering a PTM cycle.  Chances that a crash occurs
> during a PTM trigger are not 0, but extremly reduced.
> 
> Fixes: a90ec8483732 ("igc: Add support for PTP getcrosststamp()")
> Reviewed-by: Michal Swiatkowski <[email protected]>
> Tested-by: Mor Bar-Gabay <[email protected]>
> Tested-by: Avigail Dahan <[email protected]>
> Signed-off-by: Christopher S M Hall <[email protected]>
> Reviewed-by: Corinna Vinschen <[email protected]>
> Signed-off-by: Jacob Keller <[email protected]>

Tested-by: Corinna Vinschen <[email protected]>

Reply via email to