Page MenuHomeFreeBSD

D57434.id180031.diff
No OneTemporary

D57434.id180031.diff

diff --git a/sys/dev/aq/aq_hw.h b/sys/dev/aq/aq_hw.h
--- a/sys/dev/aq/aq_hw.h
+++ b/sys/dev/aq/aq_hw.h
@@ -176,7 +176,7 @@
uint32_t mbox_addr;
struct aq_hw_fw_mbox mbox;
- volatile u_long flags;
+ u_long flags;
};
#define AQ_HW_MAC 0U
diff --git a/sys/dev/aq/aq_hw.c b/sys/dev/aq/aq_hw.c
--- a/sys/dev/aq/aq_hw.c
+++ b/sys/dev/aq/aq_hw.c
@@ -50,7 +50,7 @@
int
aq_hw_err_from_flags(struct aq_hw *hw)
{
- if (hw->flags & AQ_HW_FLAG_ERR_UNPLUG)
+ if (atomic_load_acq_long(&hw->flags) & AQ_HW_FLAG_ERR_UNPLUG)
return (ENXIO);
return (0);
}
@@ -63,7 +63,7 @@
if (__predict_false(val == 0xFFFFFFFFU) &&
le32toh(bus_space_read_4(hw->hw_tag, hw->hw_handle, 0x10)) ==
0xFFFFFFFFU)
- atomic_set_long(&hw->flags, AQ_HW_FLAG_ERR_UNPLUG);
+ atomic_set_rel_long(&hw->flags, AQ_HW_FLAG_ERR_UNPLUG);
return (val);
}

File Metadata

Mime Type
text/plain
Expires
Sat, Jul 18, 3:04 PM (8 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34106905
Default Alt Text
D57434.id180031.diff (948 B)

Event Timeline