aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/netmap
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2023-12-27 15:13:29 +0000
committerMark Johnston <markj@FreeBSD.org>2023-12-27 15:13:29 +0000
commit99efa2c88d93c6272a8f54b18d18d0fd9d60f137 (patch)
tree437d8d0e47ef5620c22d826fd207286242d24842 /sys/dev/netmap
parentb9924c202fc34004d4164cdc50f88d8fcef26279 (diff)
Diffstat (limited to 'sys/dev/netmap')
-rw-r--r--sys/dev/netmap/netmap_kern.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/sys/dev/netmap/netmap_kern.h b/sys/dev/netmap/netmap_kern.h
index 24f741084a8d..8618aaf82299 100644
--- a/sys/dev/netmap/netmap_kern.h
+++ b/sys/dev/netmap/netmap_kern.h
@@ -2450,8 +2450,19 @@ void netmap_uninit_bridges(void);
#define CSB_READ(csb, field, r) (get_user(r, &csb->field))
#define CSB_WRITE(csb, field, v) (put_user(v, &csb->field))
#else /* ! linux */
-#define CSB_READ(csb, field, r) (r = fuword32(&csb->field))
-#define CSB_WRITE(csb, field, v) (suword32(&csb->field, v))
+#define CSB_READ(csb, field, r) do { \
+ int32_t v __diagused; \
+ \
+ v = fuword32(&csb->field); \
+ KASSERT(v != -1, ("%s: fuword32 failed", __func__)); \
+ r = v; \
+} while (0)
+#define CSB_WRITE(csb, field, v) do { \
+ int error __diagused; \
+ \
+ error = suword32(&csb->field, v); \
+ KASSERT(error == 0, ("%s: suword32 failed", __func__)); \
+} while (0)
#endif /* ! linux */
/* some macros that may not be defined */