Tycho Nightingale
b961c0f244
Allow loading the same DMA address multiple times without any prior
...
unload for the LinuxKPI.
Reviewed by: kib, zeising
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D20181
2019-05-16 17:41:16 +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
e2eb11e577
Fix memory leak of PCI BUS structure in the LinuxKPI.
...
MFC after: 1 week
Sponsored by: Mellanox Technologies
2019-05-09 10:23:42 +00:00
Hans Petter Selasky
eb6f534241
Fix regression issue after r346645 in the LinuxKPI.
...
Make sure LinuxKPI PCI devices get a default BUSDMA tag.
Found by: Thomas Laus <lausts@acm.org>
Sponsored by: Mellanox Technologies
2019-05-09 09:45:19 +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
8ec9f0282a
Fix regression issue after r346645 in the LinuxKPI.
...
Properly handle error case when mapping DMA address fails.
Sponsored by: Mellanox Technologies
2019-05-04 09:30:03 +00:00
Hans Petter Selasky
a6619e8d9c
Reduce the number of mutexes after r346645 in the LinuxKPI.
...
Make function macro wrappers for locking and unlocking to ease readability.
No functional change.
Discussed with: kib@, tychon@ and zeising@
Sponsored by: Mellanox Technologies
2019-04-30 10:41:20 +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
Johannes Lundberg
af248a7cee
Don't call cdev_init where cdev_alloc is called. cdev_alloc already
...
handles initialization.
Reported by: johalun
Reviewed by: hps
Approved by: imp (mentor), hps
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D19565
2019-04-25 21:54:32 +00:00
Tycho Nightingale
b09626b330
LinuxKPI buildfix for ppc64 after r346645.
...
Proposed by: hselasky
Sponsored by: Dell EMC Isilon
2019-04-25 18:13:55 +00:00
Hans Petter Selasky
d4fedb75ec
LinuxKPI buildfix for 32-bit DMA architectures after r346645.
...
The <sys/pctrie.h> APIs expect a 64-bit DMA key.
This is fine as long as the DMA is less than or equal to 64 bits, which
is currently the case.
Sponsored by: Mellanox Technologies
2019-04-25 09:13:15 +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