aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <dumbbell@FreeBSD.org>2026-04-20 23:34:39 +0000
committerJean-Sébastien Pédron <dumbbell@FreeBSD.org>2026-04-22 18:09:55 +0000
commitade8a27ea4c28d12fabc2d5f8e44386a3add23d1 (patch)
treeaf0366edd54529287768a5718ea12e557965543a
parent06cfd1047da6f3cdba80da371592980a7143a7b6 (diff)
-rw-r--r--sys/compat/linuxkpi/common/include/linux/atomic.h2
-rw-r--r--sys/compat/linuxkpi/common/include/linux/atomic/atomic-arch-fallback.h16
-rw-r--r--sys/compat/linuxkpi/common/include/linux/atomic/atomic-instrumented.h16
3 files changed, 34 insertions, 0 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/atomic.h b/sys/compat/linuxkpi/common/include/linux/atomic.h
index bc76928a7d67..9ba2c4d86076 100644
--- a/sys/compat/linuxkpi/common/include/linux/atomic.h
+++ b/sys/compat/linuxkpi/common/include/linux/atomic.h
@@ -29,7 +29,9 @@
#include <asm/atomic.h>
#include <asm/atomic64.h>
+#include <linux/atomic/atomic-arch-fallback.h>
#include <asm/atomic-long.h>
+#include <linux/atomic/atomic-instrumented.h>
#include <asm/barrier.h>
#endif /* _LINUXKPI_LINUX_ATOMIC_H_ */
diff --git a/sys/compat/linuxkpi/common/include/linux/atomic/atomic-arch-fallback.h b/sys/compat/linuxkpi/common/include/linux/atomic/atomic-arch-fallback.h
new file mode 100644
index 000000000000..2980c364cb88
--- /dev/null
+++ b/sys/compat/linuxkpi/common/include/linux/atomic/atomic-arch-fallback.h
@@ -0,0 +1,16 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2026 The FreeBSD Foundation
+ */
+
+#ifndef _LINUXKPI_LINUX_ATOMIC_ATOMIC_ARCH_FALLBACK_H_
+#define _LINUXKPI_LINUX_ATOMIC_ATOMIC_ARCH_FALLBACK_H_
+
+static inline int
+raw_atomic_read_acquire(const atomic_t *v)
+{
+ return (atomic_load_acq_int(&v->counter));
+}
+
+#endif /* _LINUXKPI_LINUX_ATOMIC_ATOMIC_ARCH_FALLBACK_H_ */
diff --git a/sys/compat/linuxkpi/common/include/linux/atomic/atomic-instrumented.h b/sys/compat/linuxkpi/common/include/linux/atomic/atomic-instrumented.h
new file mode 100644
index 000000000000..af0b6af2ecfa
--- /dev/null
+++ b/sys/compat/linuxkpi/common/include/linux/atomic/atomic-instrumented.h
@@ -0,0 +1,16 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2026 The FreeBSD Foundation
+ */
+
+#ifndef _LINUXKPI_LINUX_ATOMIC_ATOMIC_INSTRUMENTED_H_
+#define _LINUXKPI_LINUX_ATOMIC_ATOMIC_INSTRUMENTED_H_
+
+static inline int
+atomic_read_acquire(const atomic_t *v)
+{
+ return (raw_atomic_read_acquire(v));
+}
+
+#endif /* _LINUXKPI_LINUX_ATOMIC_ATOMIC_INSTRUMENTED_H_ */