Module Name: src
Committed By: riastradh
Date: Sat Feb 1 02:32:40 UTC 2020
Modified Files:
src/sys/dev/pci: if_ena.c
Log Message:
Use atomic_load/store_* in ena(4), not questionable membar_sync.
To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/dev/pci/if_ena.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/if_ena.c
diff -u src/sys/dev/pci/if_ena.c:1.19 src/sys/dev/pci/if_ena.c:1.20
--- src/sys/dev/pci/if_ena.c:1.19 Mon Dec 2 03:06:51 2019
+++ src/sys/dev/pci/if_ena.c Sat Feb 1 02:32:40 2020
@@ -31,7 +31,7 @@
#if 0
__FBSDID("$FreeBSD: head/sys/dev/ena/ena.c 333456 2018-05-10 09:37:54Z mw $");
#endif
-__KERNEL_RCSID(0, "$NetBSD: if_ena.c,v 1.19 2019/12/02 03:06:51 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ena.c,v 1.20 2020/02/01 02:32:40 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -3349,7 +3349,6 @@ static void ena_keep_alive_wd(void *adap
{
struct ena_adapter *adapter = (struct ena_adapter *)adapter_data;
struct ena_admin_aenq_keep_alive_desc *desc;
- sbintime_t stime;
uint64_t rx_drops;
desc = (struct ena_admin_aenq_keep_alive_desc *)aenq_e;
@@ -3358,8 +3357,7 @@ static void ena_keep_alive_wd(void *adap
counter_u64_zero(adapter->hw_stats.rx_drops);
counter_u64_add(adapter->hw_stats.rx_drops, rx_drops);
- stime = getsbinuptime();
- (void) atomic_swap_64(&adapter->keep_alive_timestamp, stime);
+ atomic_store_release(&adapter->keep_alive_timestamp, getsbinuptime());
}
/* Check for keep alive expiration */
@@ -3373,9 +3371,7 @@ static void check_for_missing_keep_alive
if (likely(adapter->keep_alive_timeout == 0))
return;
- /* FreeBSD uses atomic_load_acq_64() in place of the membar + read */
- membar_sync();
- timestamp = adapter->keep_alive_timestamp;
+ timestamp = atomic_load_acquire(&adapter->keep_alive_timestamp);
time = getsbinuptime() - timestamp;
if (unlikely(time > adapter->keep_alive_timeout)) {