Konstantin Taranov
d4293f96ce
RDMA/mana_ib: unify mana_ib functions to support any gdma device
...
Use the installed gdma_device instead of hard-coded device
in requests to the HW.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1746633545-17653-4-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-05-12 06:44:52 -04:00
Konstantin Taranov
c390828d4d
RDMA/mana_ib: Add support of mana_ib for RNIC and ETH nic
...
Allow mana_ib to be created over ethernet gdma device and
over rnic gdma device. The HW has two devices with different
capabilities and different use-cases. Initialize required
resources depending on the used gdma device.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1746633545-17653-3-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-05-12 06:44:52 -04:00
Konstantin Taranov
f1652d76f4
RDMA/mana_ib: Add support of 4M, 1G, and 2G pages
...
Check PF capability flag whether the 4M, 1G, and 2G pages are
supported. Add these pages sizes to mana_ib, if supported.
Define possible page sizes in enum gdma_page_type and
remove unused enum atb_page_size.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1744621234-26114-4-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-04-20 06:36:26 -04:00
Konstantin Taranov
8f49682d94
RDMA/mana_ib: support of the zero based MRs
...
Add IB_ZERO_BASED to the valid flags and use
the corresponding MR creation request for the zero
based memory.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1744621234-26114-3-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-04-20 06:32:35 -04:00
Konstantin Taranov
7d40ccf018
RDMA/mana_ib: Access remote atomic for MRs
...
Add IB_ACCESS_REMOTE_ATOMIC to the valid flags for MRs and use
the corresponding flag bit during MR creation in the HW.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1744621234-26114-2-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-04-20 06:32:35 -04:00
Linus Torvalds
092e335082
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
...
Pull rdma updates from Jason Gunthorpe:
- Usual minor updates and fixes for bnxt_re, hfi1, rxe, mana, iser,
mlx5, vmw_pvrdma, hns
- Make rxe work on tun devices
- mana gains more standard verbs as it moves toward supporting
in-kernel verbs
- DMABUF support for mana
- Fix page size calculations when memory registration exceeds 4G
- On Demand Paging support for rxe
- mlx5 support for RDMA TRANSPORT flow tables and a new ucap mechanism
to access control use of them
- Optional RDMA_TX/RX counters per QP in mlx5
* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (73 commits)
IB/mad: Check available slots before posting receive WRs
RDMA/mana_ib: Fix integer overflow during queue creation
RDMA/mlx5: Fix calculation of total invalidated pages
RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow
RDMA/mlx5: Fix page_size variable overflow
RDMA/mlx5: Drop access_flags from _mlx5_mr_cache_alloc()
RDMA/mlx5: Fix cache entry update on dereg error
RDMA/mlx5: Fix MR cache initialization error flow
RDMA/mlx5: Support optional-counters binding for QPs
RDMA/mlx5: Compile fs.c regardless of INFINIBAND_USER_ACCESS config
RDMA/core: Pass port to counter bind/unbind operations
RDMA/core: Add support to optional-counters binding configuration
RDMA/core: Create and destroy rdma_counter using rdma_zalloc_drv_obj()
RDMA/mlx5: Add optional counters for RDMA_TX/RX_packets/bytes
RDMA/core: Fix use-after-free when rename device name
RDMA/bnxt_re: Support perf management counters
RDMA/rxe: Fix incorrect return value of rxe_odp_atomic_op()
RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject()
RDMA/mana_ib: Handle net event for pointing to the current netdev
net: mana: Change the function signature of mana_get_primary_netdev_rcu
...
2025-03-29 11:12:28 -07:00
Konstantin Taranov
0c55174524
RDMA/mana_ib: Fix integer overflow during queue creation
...
Check queue size during CQ creation for users to prevent
overflow of u32.
Fixes: bec127e45d ("RDMA/mana_ib: create kernel-level CQs")
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1742312744-14370-1-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-03-19 04:38:58 -04:00
Long Li
bee35b7161
RDMA/mana_ib: Handle net event for pointing to the current netdev
...
When running under Hyper-V, the master device to the RDMA device is always
bonded to this RDMA device. This is not user-configurable.
The master device can be unbind/bind from the kernel. During those events,
the RDMA device should set to the current netdev to reflect the change of
master device from those events.
Signed-off-by: Long Li <longli@microsoft.com >
Link: https://patch.msgid.link/1741821332-9392-2-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-03-13 08:03:03 -04:00
Long Li
a8445cfec1
net: mana: Change the function signature of mana_get_primary_netdev_rcu
...
Change mana_get_primary_netdev_rcu() to mana_get_primary_netdev(), and
return the ndev with refcount held. The caller is responsible for dropping
the refcount.
Also drop the check for IFF_SLAVE as it is not necessary if the upper
device is present.
Signed-off-by: Long Li <longli@microsoft.com >
Link: https://patch.msgid.link/1741821332-9392-1-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-03-13 08:03:02 -04:00
Dan Carpenter
1d5c69514e
RDMA/mana_ib: Use safer allocation function()
...
My static checker says this multiplication can overflow. I'm not an
expert in this code but the call tree would be:
ib_uverbs_handler_UVERBS_METHOD_QP_CREATE() <- reads cap from the user
-> ib_create_qp_user()
-> create_qp()
-> mana_ib_create_qp()
-> mana_ib_create_ud_qp()
-> create_shadow_queue()
It can't hurt to use safer interfaces.
Fixes: c8017f5b48 ("RDMA/mana_ib: UD/GSI work requests")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org >
Link: https://patch.msgid.link/58439ac0-1ee5-4f96-a595-7ab83b59139b@stanley.mountain
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-03-08 13:34:17 -05:00
Kees Bakker
be35a3127d
RDMA/mana_ib: Ensure variable err is initialized
...
In the function mana_ib_gd_create_dma_region if there are no dma blocks
to process the variable `err` remains uninitialized.
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Kees Bakker <kees@ijzerbout.nl >
Link: https://patch.msgid.link/20250221195833.7516C16290A@bout3.ijzerbout.nl
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-23 06:27:52 -05:00
Konstantin Taranov
ffd67b6b42
RDMA/mana_ib: Implement DMABUF MR support
...
Add support of dmabuf MRs to mana_ib.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1739454861-4456-1-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-18 08:26:27 -05:00
Dan Carpenter
607a7dcf2e
RDMA/mana_ib: Fix error code in probe()
...
Return -ENOMEM if dma_pool_create() fails. Don't return success.
Fixes: df91c470d9 ("RDMA/mana_ib: create/destroy AH")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org >
Link: https://patch.msgid.link/2bbe900e-18b3-46b5-a08c-42eb71886da6@stanley.mountain
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-09 04:24:06 -05:00
Shiraz Saleem
79bccd7461
RDMA/mana_ib: Add port statistics support
...
Implement alloc_hw_port_stats and get_hw_stats APIs to support querying
MANA VF port level statistics from rdma stat tool.
Example output from rdma stat tool:
$rdma statistic show link mana_0/1 -p
link mana_0/1
requester_timeout 45
requester_oos_nak 0
requester_rnr_nak 0
responder_rnr_nak 0
responder_oos 0
responder_dup_request 0
requester_implicit_nak 0
requester_readresp_psn_mismatch 0
nak_inv_req 0
nak_access_error 0
nak_opp_error 0
nak_inv_read 0
responder_local_len_error 0
requestor_local_prot_error 0
responder_rem_access_error 0
responder_local_qp_error 0
responder_malformed_wqe 0
general_hw_error 6
requester_rnr_nak_retries_exceeded 0
requester_retries_exceeded 5
total_fatal_error 6
received_cnps 0
num_qps_congested 0
rate_inc_events 0
num_qps_recovered 0
current_rate 100000
Signed-off-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1738751527-15517-1-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-06 04:11:01 -05:00
Konstantin Taranov
29b7bb9823
RDMA/mana_ib: Allocate PAGE aligned doorbell index
...
Allocate a PAGE aligned doorbell index to ensure each process gets a
separate PAGE sized doorbell area space remapped to it in mana_ib_mmap
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1738751405-15041-1-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-06 04:03:10 -05:00
Konstantin Taranov
cd3c5ddf82
RDMA/mana_ib: request error CQEs when supported
...
Request an adapter with error CQEs when it is supported.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1738751713-16169-3-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-06 03:51:13 -05:00
Shiraz Saleem
bad4480934
RDMA/mana_ib: Query feature_flags bitmask from FW
...
Extend the mana_ib_gd_query_adapter_caps function to retrieve and store
the feature_flags from the firmware response.
Signed-off-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1738751713-16169-2-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-06 03:51:13 -05:00
Konstantin Taranov
6c53bf9cff
RDMA/mana_ib: indicate CM support
...
Set max_mad_size and IB_PORT_CM_SUP capability
to enable connection manager.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-14-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
cfef452592
RDMA/mana_ib: polling of CQs for GSI/UD
...
Add polling for the kernel CQs.
Process completion events for UD/GSI QPs.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-13-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
8001e9257e
RDMA/mana_ib: extend mana QP table
...
Enable mana QP table to store UD/GSI QPs.
For send queues, set the most significant bit to one,
as send and receive WQs can have the same ID in mana.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-12-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
40ebdacb4e
RDMA/mana_ib: implement req_notify_cq
...
Arm a CQ when req_notify_cq is called.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-11-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
c8017f5b48
RDMA/mana_ib: UD/GSI work requests
...
Implement post send and post recv for UD/GSI QPs.
Add information about posted requests into shadow queues.
Co-developed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Signed-off-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-10-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
df91c470d9
RDMA/mana_ib: create/destroy AH
...
Implement create and destroy AH for kernel.
In mana_ib, AV is passed as an sge in WQE.
Allocate DMA memory and write an AV there.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-8-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
bd4ee70087
RDMA/mana_ib: UD/GSI QP creation for kernel
...
Implement UD/GSI QPs for the kernel.
Allow create/modify/destroy for such QPs.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-7-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
7f5192a82b
RDMA/mana_ib: Create and destroy UD/GSI QP
...
Implement HW requests to create and destroy UD/GSI QPs.
An UD/GSI QP has send and receive queues.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-6-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
bec127e45d
RDMA/mana_ib: create kernel-level CQs
...
Implement creation of CQs for the kernel.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-5-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
1440bdbd9c
RDMA/mana_ib: helpers to allocate kernel queues
...
Introduce helpers to allocate queues for kernel-level use.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-4-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-04 08:27:03 -05:00
Konstantin Taranov
6e1b8bdcd0
RDMA/mana_ib: implement get_dma_mr
...
Implement allocation of DMA-mapped memory regions.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-3-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-03 06:56:19 -05:00
Konstantin Taranov
78683c25c8
RDMA/mana_ib: Allow registration of DMA-mapped memory in PDs
...
Allow the HW to register DMA-mapped memory for kernel-level PDs.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://patch.msgid.link/1737394039-28772-2-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Shiraz Saleem <shirazsaleem@microsoft.com >
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2025-02-03 06:56:19 -05:00
Peter Zijlstra
cdd30ebb1b
module: Convert symbol namespace to string literal
...
Clean up the existing export namespace code along the same lines of
commit 33def8498f ("treewide: Convert macro and uses of __section(foo)
to __section("foo")") and for the same reason, it is not desired for the
namespace argument to be a macro expansion itself.
Scripted using
git grep -l -e MODULE_IMPORT_NS -e EXPORT_SYMBOL_NS | while read file;
do
awk -i inplace '
/^#define EXPORT_SYMBOL_NS/ {
gsub(/__stringify\(ns\)/, "ns");
print;
next;
}
/^#define MODULE_IMPORT_NS/ {
gsub(/__stringify\(ns\)/, "ns");
print;
next;
}
/MODULE_IMPORT_NS/ {
$0 = gensub(/MODULE_IMPORT_NS\(([^)]*)\)/, "MODULE_IMPORT_NS(\"\\1\")", "g");
}
/EXPORT_SYMBOL_NS/ {
if ($0 ~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+),/) {
if ($0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/ &&
$0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(\)/ &&
$0 !~ /^my/) {
getline line;
gsub(/[[:space:]]*\\$/, "");
gsub(/[[:space:]]/, "", line);
$0 = $0 " " line;
}
$0 = gensub(/(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/,
"\\1(\\2, \"\\3\")", "g");
}
}
{ print }' $file;
done
Requested-by: Masahiro Yamada <masahiroy@kernel.org >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Link: https://mail.google.com/mail/u/2/#inbox/FMfcgzQXKWgMmjdFwwdsfgxzKpVHWPlc
Acked-by: Greg KH <gregkh@linuxfoundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2024-12-02 11:34:44 -08:00
Long Li
4a3b99bc04
RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
...
When mapping doorbell page from user-mode, the driver should use the system
page size as this memory is allocated via mmap() from user-mode.
Cc: stable@vger.kernel.org
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Long Li <longli@microsoft.com >
Link: https://patch.msgid.link/1725030993-16213-2-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-09-02 10:32:08 +03:00
Long Li
9e517a8e9d
RDMA/mana_ib: use the correct page table index based on hardware page size
...
MANA hardware uses 4k page size. When calculating the page table index,
it should use the hardware page size, not the system page size.
Cc: stable@vger.kernel.org
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Long Li <longli@microsoft.com >
Link: https://patch.msgid.link/1725030993-16213-1-git-send-email-longli@linuxonhyperv.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-09-02 10:32:08 +03:00
Linus Torvalds
3d51520954
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
...
Pull rdma updates from Jason Gunthorpe:
"Usual collection of small improvements and fixes:
- Bug fixes and minor improvments in efa, irdma, mlx4, mlx5, rxe,
hf1, qib, ocrdma
- bnxt_re support for MSN, which is a new retransmit logic
- Initial mana support for RC qps
- Use after free bug and cleanups in iwcm
- Reduce resource usage in mlx5 when RDMA verbs features are not used
- New verb to drain shared recieve queues, similar to normal recieve
queues. This is necessary to allow ULPs a clean shutdown. Used in
the iscsi rdma target
- mlx5 support for more than 16 bits of doorbell indexes
- Doorbell moderation support for bnxt_re
- IB multi-plane support for mlx5
- New EFA adaptor PCI IDs
- RDMA_NAME_ASSIGN_TYPE_USER to hint to userspace that it shouldn't
rename the device
- A collection of hns bugs
- Fix long standing bug in bnxt_re with incorrect endian handling of
immediate data"
* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (65 commits)
IB/hfi1: Constify struct flag_table
RDMA/mana_ib: Set correct device into ib
bnxt_re: Fix imm_data endianness
RDMA: Fix netdev tracker in ib_device_set_netdev
RDMA/hns: Fix mbx timing out before CMD execution is completed
RDMA/hns: Fix insufficient extend DB for VFs.
RDMA/hns: Fix undifined behavior caused by invalid max_sge
RDMA/hns: Fix shift-out-bounds when max_inline_data is 0
RDMA/hns: Fix missing pagesize and alignment check in FRMR
RDMA/hns: Fix unmatch exception handling when init eq table fails
RDMA/hns: Fix soft lockup under heavy CEQE load
RDMA/hns: Check atomic wr length
RDMA/ocrdma: Don't inline statistics functions
RDMA/core: Introduce "name_assign_type" for an IB device
RDMA/qib: Fix truncation compilation warnings in qib_verbs.c
RDMA/qib: Fix truncation compilation warnings in qib_init.c
RDMA/efa: Add EFA 0xefa3 PCI ID
RDMA/mlx5: Support per-plane port IB counters by querying PPCNT register
net/mlx5: mlx5_ifc update for accessing ppcnt register of plane ports
RDMA/mlx5: Add plane index support when querying PTYS registers
...
2024-07-19 09:51:33 -07:00
Konstantin Taranov
1df03a4b44
RDMA/mana_ib: Set correct device into ib
...
Add mana_get_primary_netdev_rcu helper to get a primary
netdevice for a given port. When mana is used with
netvsc, the VF netdev is controlled by an upper netvsc
device. In a baremetal case, the VF netdev is the
primary device.
Use the mana_get_primary_netdev_rcu() helper in the mana_ib
to get the correct device for querying network states.
Fixes: 8b184e4f1c ("RDMA/mana_ib: Enable RoCE on port 1")
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1720705077-322-1-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-07-14 10:49:53 +03:00
Akiva Goldberger
dd6d7f8574
RDMA: Pass entire uverbs attr bundle to create cq function
...
Changes the create_cq verb signature by sending the entire uverbs attr
bundle as a parameter. This allows drivers to send driver specific attrs
through ioctl for the create_cq verb and access them in their driver
specific code.
Also adds a new enum value for driver specific ioctl attributes for
methods already supporting UHW.
Link: https://lore.kernel.org/r/ed147343987c0d43fd391c1b2f85e2f425747387.1719512393.git.leon@kernel.org
Signed-off-by: Akiva Goldberger <agoldberger@nvidia.com >
Signed-off-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2024-06-27 16:28:21 -03:00
Jakub Kicinski
193b9b2002
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
...
Cross-merge networking fixes after downstream PR.
No conflicts.
Adjacent changes:
e3f02f32a0 ("ionic: fix kernel panic due to multi-buffer handling")
d9c0420999 ("ionic: Mark error paths in the data path as unlikely")
Signed-off-by: Jakub Kicinski <kuba@kernel.org >
2024-06-27 12:14:11 -07:00
Konstantin Taranov
82a5cc783d
RDMA/mana_ib: Ignore optional access flags for MRs
...
Ignore optional ib_access_flags when an MR is created.
Fixes: 0266a17763 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1717575368-14879-1-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-06-21 10:19:36 -03:00
Leon Romanovsky
ef5513526b
Merge branch 'mana-shared' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
...
Leon Romanovsky says:
====================
net: mana: Allow variable size indirection table
Like we talked, I created new shared branch for this patch:
https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git/log/?h=mana-shared
* 'mana-shared' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
net: mana: Allow variable size indirection table
====================
Link: https://lore.kernel.org/all/20240612183051.GE4966@unreal
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-06-16 10:51:25 +03:00
Shradha Gupta
7fc45cb686
net: mana: Allow variable size indirection table
...
Allow variable size indirection table allocation in MANA instead
of using a constant value MANA_INDIRECT_TABLE_SIZE.
The size is now derived from the MANA_QUERY_VPORT_CONFIG and the
indirection table is allocated dynamically.
Signed-off-by: Shradha Gupta <shradhagupta@linux.microsoft.com >
Link: https://lore.kernel.org/r/1718015319-9609-1-git-send-email-shradhagupta@linux.microsoft.com
Reviewed-by: Dexuan Cui <decui@microsoft.com >
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-06-12 21:08:42 +03:00
Konstantin Taranov
2a1251e3db
RDMA/mana_ib: Process QP error events in mana_ib
...
Process QP fatal events from the error event queue.
For that, find the QP, using QPN from the event, and then call its
event_handler. To find the QPs, store created RC QPs in an xarray.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1717754897-19858-1-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Wei Hu <weh@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-06-09 13:46:44 +03:00
Konstantin Taranov
c8683b995d
RDMA/mana_ib: extend query device
...
Fill in properties of the ib device.
Order the assignment in the order of fields in the struct ib_device_attr.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1717070117-1234-3-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-06-02 11:50:15 +03:00
Konstantin Taranov
65357e2c16
RDMA/mana_ib: set node_guid
...
Use the mac address for the node_guid of the IB device.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1717070117-1234-2-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-06-02 11:50:15 +03:00
Konstantin Taranov
e095405b45
RDMA/mana_ib: Modify QP state
...
Implement modify QP state for RC QPs.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1716366242-558-4-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-30 15:26:57 +03:00
Konstantin Taranov
fdefb91849
RDMA/mana_ib: Implement uapi to create and destroy RC QP
...
Implement user requests to create and destroy an RC QP.
As the user does not have an FMR queue, it is skipped and NO_FMR flag
is used.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1716366242-558-3-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-30 15:26:57 +03:00
Konstantin Taranov
53657a0419
RDMA/mana_ib: Create and destroy RC QP
...
Implement HW requests to create and destroy an RC QP.
An RC QP may have 5 queues.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1716366242-558-2-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-30 15:26:57 +03:00
Konstantin Taranov
44b607ad4c
RDMA/mana_ib: implement uapi for creation of rnic cq
...
Enable users to create RNIC CQs using a corresponding flag.
With the previous request size, an ethernet CQ is created.
As a response, return ID of the created CQ.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1714137160-5222-6-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-05 15:27:23 +03:00
Konstantin Taranov
f79edef79b
RDMA/mana_ib: boundary check before installing cq callbacks
...
Add a boundary check inside mana_ib_install_cq_cb to prevent index overflow.
Fixes: 2a31c5a7e0 ("RDMA/mana_ib: Introduce mana_ib_install_cq_cb helper function")
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1714137160-5222-5-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-05 15:27:23 +03:00
Konstantin Taranov
3e41105263
RDMA/mana_ib: introduce a helper to remove cq callbacks
...
Intoduce the mana_ib_remove_cq_cb helper to remove cq callbacks.
The helper removes code duplicates.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1714137160-5222-4-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-05 15:27:23 +03:00
Konstantin Taranov
5843415916
RDMA/mana_ib: create and destroy RNIC cqs
...
Implement RNIC requests for creation and destruction of RNIC CQs.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1714137160-5222-3-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-05 15:27:23 +03:00
Konstantin Taranov
e73c882f0a
RDMA/mana_ib: create EQs for RNIC CQs
...
Create EQs within mana_ib device. Such EQs are required
for creation of RNIC CQs.
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com >
Link: https://lore.kernel.org/r/1714137160-5222-2-git-send-email-kotaranov@linux.microsoft.com
Reviewed-by: Long Li <longli@microsoft.com >
Signed-off-by: Leon Romanovsky <leon@kernel.org >
2024-05-05 15:27:23 +03:00