Johannes Lundberg
6425fed7e6
LinuxKPI: Additions to rcu list.
...
- Add rcu list functions.
- Make rcu hlist's foreach macro use rcu calls instead of the non-rcu macro.
- Bump FreeBSD version so we have a checkpoint for the vboxvideo drm driver.
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
Differential Revision: D20719
2019-06-21 18:48:07 +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
Mark Johnston
1ef5e651fd
Make the linuxkpi's alloc_pages() consistently return wired pages.
...
Previously it did this only on platforms without a direct map. This
also more closely matches Linux's semantics.
Since some DRM v5.0 code assumes the old behaviour, use a
LINUXKPI_VERSION guard to preserve that until the out-of-tree module
is updated.
Reviewed by: hselasky, kib (earlier versions), johalun
MFC after: 1 week
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D20502
2019-06-06 16:09:19 +00:00
Johannes Lundberg
6a65ca35dd
LinuxKPI: Finalize import of seq_file.
...
seq_file.h and linux_seq_file.c was imported form ports earlier but
linux_seq_file.c was never compiled in with the module. With this
commit base seq_file will replace ports seq_file and it required a
few modifications to not break functionality and build.
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-16 21:17:18 +00:00
Johannes Lundberg
6da2681fbc
LinuxKPI: Add in_task macro.
...
This patch is part of D19565
Reviewed by: hps, bwidawsk
Approved by: imp (mentor), hps
Obtained from: bwidawsk
MFC after: 1 week
2019-05-16 21:07:37 +00:00
Johannes Lundberg
480995dcf0
LinuxKPI: Updates to tasklets for Linux 5.0.
...
DRM drivers expect tasklets to have a counter for enable/disable calls.
Also, add a few more tasklet locking functions.
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-16 18:03:08 +00:00
Johannes Lundberg
07e0a3ca50
LinuxKPI: Add group_leader member to struct task_struct.
...
Assign self as group leader at creation to act as the only member of a
new process group.
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-16 17:53:36 +00:00
Johannes Lundberg
47e2723ad7
LinuxKPI: Update access_ok macro for v5.0.
...
Check LINUXKPI_VERSION macro for backwards compatibility.
It's recommended to update any drivers that depend on the older KPI
so we can deprecate < 5.0 code as we update to newer Linux version.
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-16 17:44:17 +00:00
Johannes Lundberg
c4e0746e7d
LinuxKPI: Add helper macros IS_ALIGNED and DIV_ROUND_DOWN_ULL.
...
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-15 17:57:06 +00:00
Johannes Lundberg
0bb30b3a19
LinuxKPI: Move {lower|upper}_32_bits macros from port to base.
...
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-15 17:48:11 +00:00
Johannes Lundberg
8264104401
LinuxKPI: Include asm/atomic-long.h from atomic.h.
...
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-15 17:44:25 +00:00
Johannes Lundberg
d109700cf0
LinuxKPI: Add get_random_u32 function.
...
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-15 17:32:00 +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
Johannes Lundberg
a4a9f2267e
LinuxKPI: Expand ktime functionality.
...
Also, make ktime_get_raw call getnanouptime instead of getnanotime
to match (the correct) ktime_get_raw_ns.
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-15 16:59:04 +00:00
Johannes Lundberg
65ff7a3192
LinuxKPI: Add prepare to pm_ops and bump FreeBSD version.
...
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-14 23:50:46 +00:00
Johannes Lundberg
1462308d8b
LinuxKPI: Add vm_fault_t type.
...
This patch is part of D19565
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-14 23:32:02 +00:00
Johannes Lundberg
395be823fd
LinuxKPI: Add context member to ww_mutex and bump FreeBSD version.
...
This patch is part of https://reviews.freebsd.org/D19565 .
Reviewed by: hps
Approved by: imp (mentor), hps
2019-05-14 23:21:20 +00:00
Johannes Lundberg
02927c768a
LinuxKPI: Let del_timer return a value to match Linux.
...
This patch is part of https://reviews.freebsd.org/D19565 .
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-14 23:12:14 +00:00
Johannes Lundberg
5098ed5f3b
Implement linux_pci_unregister_drm_driver in linuxkpi so that drm drivers
...
can be unloaded.
This patch is a part of D19565.
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
2019-05-10 23:10:22 +00:00
Hans Petter Selasky
423530be04
Add support for Dynamic Interrupt Moderation, DIM, in mlx5en(4).
...
Add support for DIM based on Linux,
with some minor adaptions specific to FreeBSD.
Linux commit
f97c3dc3c0e8d23a5c4357d182afeef4c67f5c33
MFC after: 3 days
Sponsored by: Mellanox Technologies
2019-05-08 10:23:33 +00:00
Hans Petter Selasky
46068e86c3
Use PCIV_INVALID in pci_channel_offline() in the LinuxKPI.
...
Build tested drm-current-kmod prior to commit.
MFC after: 1 week
Submitted by: slavash@
Sponsored by: Mellanox Technologies
2019-05-06 16:22:45 +00:00
Hans Petter Selasky
fa23397925
Disabling a PCI device should only disable busmaster in the LinuxKPI.
...
As Linux comment for this function point:
Signal to the system that the PCI device is not in use by the system
anymore. This only involves disabling PCI bus-mastering, if active.
Build tested drm-current-kmod prior to commit.
MFC after: 1 week
Submitted by: slavash@
Sponsored by: Mellanox Technologies
2019-05-06 16:17:38 +00:00
Hans Petter Selasky
34cb771e01
Implement print_hex_dump_debug() function macro in the LinuxKPI.
...
Build tested drm-current-kmod prior to commit.
MFC after: 1 week
Submitted by: slavash@
Sponsored by: Mellanox Technologies
2019-05-06 16:10:26 +00:00
Hans Petter Selasky
4580f5eadd
Allow controlling pr_debug at runtime in the LinuxKPI.
...
Turning on pr_debug at compile time make it non-optional at runtime.
This often means that the amount of the debugging is unbearable.
Allow developer to turn on pr_debug output only when needed.
Build tested drm-current-kmod prior to commit.
MFC after: 1 week
Submitted by: kib@
Sponsored by: Mellanox Technologies
2019-05-06 16:00:20 +00:00
Hans Petter Selasky
442d12d89c
Fix regression issue after r346645 in the LinuxKPI.
...
The S/G list must be mapped AS-IS without any optimisations.
This also implies that sg_dma_len() must be equal to sg->length.
Many Linux drivers assume this and this fixes some DRM issues.
Put the BUS DMA map pointer into the scatter-gather list to
allow multiple mappings on the same physical memory address.
The FreeBSD version has been bumped to force recompilation of
external kernel modules.
Sponsored by: Mellanox Technologies
2019-05-04 09:47:01 +00:00
Hans Petter Selasky
93a203ea65
Make the dma_pool structure private to the LinuxKPI similar to Linux.
...
No functional change.
Discussed with: kib @
Sponsored by: Mellanox Technologies
2019-04-30 09:38:22 +00:00
Hans Petter Selasky
5a637529ed
Store a pointer to the device instead of the PCI device in the DMA pool
...
implementation in the LinuxKPI. This avoids use of container_of().
No functional change.
Discussed with: kib @
Sponsored by: Mellanox Technologies
2019-04-30 09:26:11 +00:00
Tycho Nightingale
f211d536b6
LinuxKPI should use bus_dma(9) to be compatible with an IOMMU
...
Reviewed by: hselasky, kib
Tested by: greg@unrelenting.technology
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D19845
2019-04-24 20:30:45 +00:00
Ed Maste
ff9be73ee3
Enable ioremap for aarch64 in the LinuxKPI
...
Required for Mellanox drivers (e.g. on Ampere eMAG at Packet.com).
PR: 237055
Submitted by: Greg V <greg@unrelenting.technology>
Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D19987
2019-04-20 15:57:05 +00:00
Conrad Meyer
a8a16c7128
Replace read_random(9) with more appropriate arc4rand(9) KPIs
...
Reviewed by: ae, delphij
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D19760
2019-04-04 01:02:50 +00:00
Hans Petter Selasky
582141f69d
Revert r345102 until the DRM next port issues are resolved.
...
Requested by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies
2019-03-14 09:18:54 +00:00
Hans Petter Selasky
7d595f6b79
Resolve duplicate symbol name conflict after r345095, when building LINT.
...
MFC after: 1 week
Sponsored by: Mellanox Technologies
2019-03-13 19:53:20 +00:00
Hans Petter Selasky
998f22eb4b
Implement sg_virt() function in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 19:31:33 +00:00
Hans Petter Selasky
56b16627d4
Define SG_CHAIN and SG_END in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 19:30:40 +00:00
Hans Petter Selasky
c469882529
Implement pr_info_ratelimited() function macro in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 19:26:24 +00:00
Hans Petter Selasky
856b815d27
Define some RCU debug macros in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 19:24:30 +00:00
Hans Petter Selasky
0ac26c0e30
Honor SYSCTL function return values when creating sysfs nodes in the LinuxKPI.
...
Return proper error code upon failure.
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 19:21:19 +00:00
Hans Petter Selasky
925245aaa9
Implement more malloc function macros in the LinuxKPI.
...
Fix arguments for currently unused kvmalloc().
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 19:17:52 +00:00
Hans Petter Selasky
ab62989ae9
Implement more PCI speed related functions and macros in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 19:15:36 +00:00
Hans Petter Selasky
75f7460b34
Implement IS_ALIGNED() and DIV_ROUND_DOWN_ULL() function macros in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 19:04:06 +00:00
Hans Petter Selasky
8734a56285
Implement si_meminfo() in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 19:01:55 +00:00
Hans Petter Selasky
5746b1cd46
Implement task_euid() and get_task_state() function macros in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 18:55:41 +00:00
Hans Petter Selasky
c7486758eb
Implement get_task_comm() in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 18:53:29 +00:00
Hans Petter Selasky
638fa5a36f
Implement current_exiting() in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 18:51:33 +00:00
Hans Petter Selasky
845a91ce0b
Implement list_for_each_entry_from_reverse() and
...
list_bulk_move_tail() in the LinuxKPI.
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 18:47:17 +00:00
Hans Petter Selasky
4f081c4fc6
Implement dma_map_page_attrs() in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 18:44:06 +00:00
Hans Petter Selasky
839b4bf24d
Implement ida_free() and ida_alloc_max() in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 18:02:47 +00:00
Hans Petter Selasky
8b2a8a4954
Implement DEFINE_STATIC_SRCU() function macro in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 18:00:25 +00:00
Hans Petter Selasky
884aaac660
Implement BITS_PER_TYPE() function macro in the LinuxKPI.
...
Fix some style while at it.
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 17:55:58 +00:00
Hans Petter Selasky
4c09177ab7
Properly define the DMA attribute values in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Limelight Networks
Sponsored by: Mellanox Technologies
2019-03-13 17:51:08 +00:00