Jean-Sébastien Pédron
11aaefc9ca
linuxkpi: Try to solve headers dependencies
...
I'm sure I got it wrong but at least the DRM drivers compile.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38157
2023-01-30 23:09:52 +01:00
Jean-Sébastien Pédron
9491ea7c68
linuxkpi: Fix atomic_long_sub() overflow
...
By (ab)using `atomic_long_add_return()`, `atomic_long_sub()` was making
the atomic long overflow. Indeed the underlying FreeBSD atomic is based
on an unsigned long.
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D38090
2023-01-25 22:26:54 +01:00
Val Packett
0b4531511e
copyright: chase my name and email change
...
Reviewed by: imp, emaste
Differential Revision: https://reviews.freebsd.org/D37945
2023-01-06 15:28:42 -05:00
Jean-Sébastien Pédron
e79a57d4ec
linuxkpi: Add cmpxchg64() in <asm/atomic.h>
...
Differential Revision: https://reviews.freebsd.org/D36966
2022-12-01 14:59:16 +01:00
Jean-Sébastien Pédron
58cf3a69a5
linuxkpi: Define boot_cpu_data.x86_max_cores
...
Reviewed by: manu
Approved by: manu
Differential Revision: https://reviews.freebsd.org/D36971
2022-11-11 18:43:07 +01:00
Emmanuel Vadot
ee247fc1e9
linuxkpi: Move cpu_relax out of ifdef for x86
...
It's needed by drm-kmod and this allow building on arm64 and powerpc.
Reported by: jhibbits
Sponsored by: Beckhoff Automation GmbH & Co. KG
2022-11-10 12:50:51 +01:00
Bjoern A. Zeeb
b5c3819c7b
LinuxKPI: add virt_to_phys()
...
Add virt_to_phys() as a define to vtophys().
This is used by a wireless driver for dma related work; sigh.
MFC after: 3 days
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D37301
2022-11-08 18:18:01 +00:00
Ed Maste
9f6097d6a6
linuxkpi: retire now-unused MIPS support
...
Reviewed by: bz, manu
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37023
2022-10-17 16:31:20 -04:00
Emmanuel Vadot
b2c860060c
linuxkpi: Add asm/processor.h
...
Also fill the boot_cpu_data struct as drm needs it.
Reviewed by: bz
Obtained from: drm-kmod
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D36107
2022-08-18 09:46:43 +02:00
Emmanuel Vadot
fd62b3fa1e
linuxkpi: pgtable: Add more defines
...
Needed by drm-kmod
Reviewed by: bz
Obtained from: drm-kmod
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D36101
2022-08-18 09:46:33 +02:00
Emmanuel Vadot
eca2f0f380
linuxkpi: Add smp_mb__before/after_atomic
...
Reviewed by: hselasky
Obtained from: drm-kmod
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D36020
2022-08-08 15:22:35 +02:00
Emmanuel Vadot
39da3678b1
linuxkpi: Add try_cmpxchg and atomic_try_cmpxchg
...
Needed by drm-kmod
Obtain from: drm-kmod
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D36015
2022-08-08 15:22:35 +02:00
Emmanuel Vadot
6be89cc88d
linuxkpi: atomic: Add atomic_fetch_inc
...
Reviewed by: hselasky
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D35936
2022-08-08 15:22:34 +02:00
Emmanuel Vadot
0e45856f9a
linuxkpi: Add asm/set_memory.h
...
Provide functions needed for drm-kmod.
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D35571
2022-06-29 09:55:23 +02:00
Emmanuel Vadot
137e91dbf6
linuxkpi: Add asm/iosfmbi.h
...
Provide dummy functions needed for drm-kmod.
Obtain from: OpenBSD (via drm-kmod)
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D35570
2022-06-29 09:55:19 +02:00
Greg V
8870cb573f
LinuxKPI: add asm/neon.h
...
This is equivalent to asm/fpu/api.h, but is included by drm on aarch64.
Reviewed by: bz, imp, hselasky
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D35512
2022-06-21 19:10:43 +02:00
Emmanuel Vadot
1889bed23d
linuxkpi: Add atomic64_fetch_add
...
Linux variant of atomic_fetchadd_64.
Reviewed by: bz
MFC after: 2 weeks
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D34296
2022-02-17 09:31:39 +01:00
Emmanuel Vadot
4f689b302f
linuxkpi: Add user_write_access_*
...
Needed by drm-kmod v5.8
Reviewed by: bz
MFC after: 2 weeks
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D34284
2022-02-17 09:30:55 +01:00
Bjoern A. Zeeb
2e818fbcfc
LinuxKPI: add get_unaligned_le16()
...
Add get_unaligned_le16() to asm/unaligned.h needed by a driver.
MFC after: 3 days
Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D34224
2022-02-14 00:09:57 +00:00
Vladimir Kondratyev
307f78f3ed
LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards
...
MFC after: 1 week
Reviewed by: bz, emaste, hselasky, manu
Differential Revision: https://reviews.freebsd.org/D33562
2022-01-10 22:49:38 +03:00
Vladimir Kondratyev
f3ddb82d9a
LinuxKPI: Add static_cpu_has() implementation
...
static_cpu_has returns true if CPU supports requested feature.
Obtained from: OpenBSD
MFC after: 1 week
Reviewed by: hselasky, manu
Differential Revision: https://reviews.freebsd.org/D33301
2022-01-10 22:49:38 +03:00
Vladimir Kondratyev
2fb5be7978
LinuxKPI: Implement smp_*mb barriers with atomic_thread_fence_*
...
for x86 and move them to asm/barrier.h
MFC after: 1 week
Reviewed by: bz, hselasky, manu
Differential Revision: https://reviews.freebsd.org/D33296
2022-01-10 22:49:37 +03:00
Vladimir Kondratyev
3d86f8f1d7
LinuxKPI: Add dummy pgprot_decrypted() implementation
...
to reduce number of #ifdefs in drm-kmod
Reviewed by: hselasky
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D32094
2021-09-29 23:14:58 +03:00
Hans Petter Selasky
469884cf04
LinuxKPI: Make FPU sections thread-safe and use the NOCTX flag.
...
Reviewed by: kib
Submitted by: greg@unrelenting.technology
Differential Revision: https://reviews.freebsd.org/D29921
MFC after: 1 week
Sponsored by: NVIDIA Networking
2021-07-31 15:36:48 +02:00
Bjoern A. Zeeb
5aeeab54b0
LinuxKPI: byteorder.h
...
Add a few more le<n>_{tp,add}_cpu*() #defines/functions found in
wireless drivers. While here fill most of the combinatorics gaps
and also add the remaining combinations [1].
Suggested by: emaste [1] (for one part)
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D30418
2021-05-25 18:01:48 +00:00
Bjoern A. Zeeb
3b1ecc9fa1
LinuxKPI: remove < 5.0 version support
...
We are not aware of any out-of-tree consumers anymore
which would need KPI support for before Linux version 5.
Update the two in-tree consumers to use the new KPI.
This allows us to remove the extra version check and
will also give access to {lower,upper}_32_bits() unconditionally.
Sponsored-by: The FreeBSD Foundation
Reviewed-by: hselasky, rlibby, rstone
MFC-after: 2 weeks
X-MFC: to 13 only
Differential Revision: https://reviews.freebsd.org/D29391
2021-03-24 23:00:03 +00:00
Bjoern A. Zeeb
4abbf816bf
LinuxKPI: upstream a collection of drm-kmod conflicting changes
...
The upcoming in-kernel implementations for LinuxKPI based on work on
iwlwifi (and other wireless drivers) conflicts in a few places with
the drm-kmod graphics work outside the base system.
In order to transition smoothly extract the conflicting bits.
This included "unaligned" accessor functions, sg_pcopy_from_buffer(),
IS_*() macros (to be further restricted in the future), power management
bits (possibly no longer conflicting with DRM), and other minor changes.
Obtained-from: bz_iwlwifi
Sponsored-by: The FreeBSD Foundation
MFC after: 3 days
Reviewed by: kib, hselasky, manu, bdragon (looked at earlier versions)
Differential Revision: https://reviews.freebsd.org/D26598
2021-01-28 16:15:12 +00:00
Emmanuel Vadot
11d62b6f31
linuxkpi: add kernel_fpu_begin/kernel_fpu_end
...
With newer AMD GPUs (>=Navi,Renoir) there is FPU context usage in the
amdgpu driver.
The `kernel_fpu_begin/end` implementations in drm did not even allow nested
begin-end blocks.
Submitted by: Greg V
Reviewed By: manu, hselasky
Differential Revision: https://reviews.freebsd.org/D28061
2021-01-12 12:31:00 +01:00
Hans Petter Selasky
99f20bdc47
Allow LinuxKPI types to be used in bootloaders, by checking for the
...
_STANDALONE definition.
No functional change intended.
MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking
2020-11-18 13:47:11 +00:00
Mateusz Guzik
1a18003240
compat: clean up empty lines in .c and .h files
2020-09-01 21:24:33 +00:00
Hans Petter Selasky
b9bf16adfb
Implement the atomic fetch add unless functions for the LinuxKPI.
...
MFC after: 1 week
Sponsored by: Mellanox Technologies
2020-04-20 16:21:37 +00:00
Johannes Lundberg
62260f68b4
LinuxKPI: Add atomic_long_sub macro.
...
Reviewed by: imp (mentor), hps
Approved by: imp (mentor), hps
MFC after: 1 week
Differential Revision: D20718
2019-06-21 16:43:16 +00:00
Johannes Lundberg
3137d2d4ec
LinuxKPI: Update user_access_begin for Linux v5.0.
...
Check the new LINUXKPI_VERSION macro for backwards compatibility.
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-15 17:04:12 +00:00
Hans Petter Selasky
ca487c1888
Remove no longer needed ifdefs in the LinuxKPI, after r341787.
...
Differential Revision: https://reviews.freebsd.org/D18450
Reviewed by: kib@
MFC after: 3 days
Sponsored by: Mellanox Technologies
2018-12-10 13:41:33 +00:00
Hans Petter Selasky
6da0d28e6a
Fix some build of LinuxKPI on some platforms after r341518.
...
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-12-05 15:53:34 +00:00
Hans Petter Selasky
6402bc3d1e
Use atomic_fcmpset_XXX() instead of atomic_cmpset_XXX() when possible
...
in the LinuxKPI.
Suggested by: mjg @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-08-09 09:39:32 +00:00
Marius Strobl
e545f5a8a3
Update the list of architectures having atomic_fcmpset_{8,16,64}(9) and
...
atomic_swap_{64,int}(9) respectively as of r337433.
2018-08-07 18:59:02 +00:00
Hans Petter Selasky
db119089be
Implement atomic_long_cmpxchg() function in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-08-06 08:40:02 +00:00
Hans Petter Selasky
a76c73aadc
Don't refer to non-existing atomic functions, even though not compiled,
...
in the LinuxKPI.
Found by: rpolka @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-08-01 19:10:46 +00:00
Hans Petter Selasky
93ed9ab20b
Implement the user_access_begin(), user_access_end(), usafe_get_user() and
...
unsafe_put_user() function macros in the LinuxKPI.
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies
Sponsored by: Limelight Networks
2018-06-11 15:42:29 +00:00
Hans Petter Selasky
17e2a84e9a
Rewrite code using atomic_fcmpset_int() in the LinuxKPI.
...
Suggested by: mjg@
MFC after: 1 week
Sponsored by: Mellanox Technologies
Sponsored by: Limelight Networks
2018-06-06 15:31:47 +00:00
Hans Petter Selasky
23dcf4359e
Implement the atomic_dec_if_positive() function in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies
Sponsored by: Limelight Networks
2018-06-06 13:59:51 +00:00
Hans Petter Selasky
a16387c1d4
Implement the rdmsrl_safe() function macro in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies
Sponsored by: Limelight Networks
2018-06-06 13:29:52 +00:00
Mark Johnston
e4ba1a50af
Fix the definitions of get_cpu() and put_cpu().
...
They are supposed to disable preemption.
Reported by: rstone
MFC after: 5 days
2018-04-05 17:26:03 +00:00
Ed Maste
8363051739
linuxkpi whitespace cleanup
...
Reviewed by: hselasky, markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D14807
2018-03-23 15:50:01 +00:00
Hans Petter Selasky
8f294983e9
Optimise xchg() to use atomic_swap_32() and atomic_swap_64().
...
Suggested by: kib@
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-02-18 18:46:56 +00:00
Hans Petter Selasky
644680491e
Fix implementation of xchg() function macro in the LinuxKPI.
...
The exchange operation must be atomic.
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-02-18 17:37:23 +00:00
Hans Petter Selasky
af4010be77
Compile fix for GCC in the LinuxKPI.
...
Older versions of GCC don't allow flexible array members in a union.
Use a zero length array instead.
MFC after: 1 week
Reported by: jbeich@
Sponsored by: Mellanox Technologies
2018-02-17 08:12:35 +00:00
Hans Petter Selasky
2a7c2b914f
Allow the cmpxchg() macro in the LinuxKPI to work on pointers without
...
generating compiler warnings, -Wint-conversion .
Requested by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies
2018-02-16 15:20:21 +00:00
Hans Petter Selasky
62bae5d421
The LinuxKPI atomics do not have acquire nor release semantics unless
...
specified. Fix code to use READ_ONCE() and WRITE_ONCE() where appropriate.
Suggested by: kib @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2017-09-18 13:37:14 +00:00