]> www.infradead.org Git - users/willy/pagecache.git/commit
bnxt_en: Unregister PTP during PCI shutdown and suspend
authorMichael Chan <michael.chan@broadcom.com>
Fri, 22 Nov 2024 22:45:46 +0000 (14:45 -0800)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 26 Nov 2024 14:29:31 +0000 (15:29 +0100)
commit3661c05c54e8db7064aa96a0774654740974dffc
tree191109e525bc600dd4d68ea4c234698d31e9e106
parent1e9614cd956268e10a669c0593e7e54d03d0c087
bnxt_en: Unregister PTP during PCI shutdown and suspend

If we go through the PCI shutdown or suspend path, we shutdown the
NIC but PTP remains registered.  If the kernel continues to run for
a little bit, the periodic PTP .do_aux_work() function may be called
and it will read the PHC from the BAR register.  Since the device
has already been disabled, it will cause a PCIe completion timeout.
Fix it by calling bnxt_ptp_clear() in the PCI shutdown/suspend
handlers.  bnxt_ptp_clear() will unregister from PTP and
.do_aux_work() will be canceled.

In bnxt_resume(), we need to re-initialize PTP.

Fixes: a521c8a01d26 ("bnxt_en: Move bnxt_ptp_init() from bnxt_open() back to bnxt_init_one()")
Cc: Richard Cochran <richardcochran@gmail.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c