Michal Kalderon [Thu, 1 Mar 2018 19:47:48 +0000 (21:47 +0200)]
qed: Backport Free RoCE ILT Memory on rmmod qedr
Rdma requires ILT Memory to be allocated for it's QPs.
Each ILT entry points to a page used by several Rdma QPs.
To avoid allocating all the memory in advance, the rdma
implementation dynamically allocates memory as more QPs are
added, however it does not dynamically free the memory.
The memory should have been freed on rmmod qedr, but isn't.
This patch adds the memory freeing on rmmod qedr (currently
it will be freed with qed is removed).
An outcome of this bug, is that if qedr is unloaded and loaded
without unloaded qed, there will be no more RoCE traffic.
The reason these are related, is that the logic of detecting the
first QP ever opened is by asking whether ILT memory for RoCE has
been allocated.
Fixes: dbb799c39717e7b7 Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
Selvin Xavier [Wed, 28 Feb 2018 18:07:10 +0000 (10:07 -0800)]
bnxt_re: Fix incorrect DB offset calculation
To support host systems with non 4K page size,
l2_db_size shall be calculated with 4096 instead
of PAGE_SIZE. Also, supply the host page size to
FW during initialization.
Selvin Xavier [Mon, 6 Nov 2017 16:18:13 +0000 (08:18 -0800)]
bnxt_re: BZ 2655 Fix nfs client hang with a call trace on stress traffic
Adding memory barriers before processing a completion. Also, fixes some
race condition in moving the QP to error state during an Rx CQE error and
synchronize poll_cq and req_notify_cq.
Selvin Xavier [Thu, 2 Nov 2017 16:06:38 +0000 (09:06 -0700)]
bnxt_re: BZ 2654 Fix traffic failure after changing ip address
While adding a new gid, the driver currently does not return the context
back to the stack. A subsequent del_gid() (e.g, when ip address is changed)
doesn't find the right context in the driver and it ends up dropping that
request. This results in the HW caching a stale gid entry and traffic fails
because of that. Fix by returning the proper context in bnxt_re_add_gid()
Selvin Xavier [Thu, 2 Nov 2017 15:30:26 +0000 (08:30 -0700)]
bnxt_re: BZ 2656 fix a crash in qp error event processing
In bnxt_qplib_process_qp_event(), for qp error events we look up the
qp-handle and pass it for further processing. But we don't check if the
handle is NULL. This could lead to a crash in the called functions when
that qp-handle is dereferenced, if the qp is destroyed in the meantime.
Fix this by checking for a valid qp-handle in that function.
bnxt_re: Fix bnxt_en installation in the latest daily builds
During OFED installation, bnxt_en is not getting installed after
the check-in "makefile: Added CONFIG_BNXT parameter to override
kernel's default". Fixing the issue by passing
CONFIG_BNXT=m instead of y.
Jeff Becker [Thu, 24 Aug 2017 17:06:10 +0000 (10:06 -0700)]
NFS/RDMA backport patch to revert source files to 4.6 kernel in order to facilitate dependency on distro SUNRPC. Include fix to use correct ib_map_mr_sg signature from OFED4.8.
Signed-off-by: Jeff Becker <Jeffrey.C.Becker@nasa.gov>
Sergey Gorenko [Mon, 21 Aug 2017 20:59:05 +0000 (23:59 +0300)]
Fixed SRP support on RHEL7.2 by using blk_iopoll API in ib_core
On RHEL7.3 CONFIG_IRQ_POLL option is supported but not on RHEL7.2. So, SRP
fails to create cq with IB_POLL_SOFTIRQ.
Using blk_iopoll API instead of irq_poll in this case.
Signed-off-by: Sergey Gorenko <sergeygo@mellanox.com> Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>
IB/srp: force reconnect_delay module param to exceed fast_io_fail_tmo
This commit works-around a rare warning caused by a race condition between
srp_post_send and srp_rport_reconnect.
When reconnect_delay <= fast_io_fail_tmo, race condition of calling
srp_terminate_io() while srp_queuecommand() is running is not safe.
Forcing reconnect_delay > fast_io_fail_tmo causes all I/O to fail
before trying to reconnect to target.
Signed-off-by: Israel Rukshin <israelr@mellanox.com> Signed-off-by: Max Gurtovoy <maxg@mellanox.com> Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>
Final updates to ccl ABI between host and card to match OFED 4.8 and kernel 4.9.
Add some missing fields, update sizes of existing fields, and keep aligned on 8 byte
boundary. Bump driver version to 1.2. These changes are not backward compatible.
Signed-off-by: Patrick McCormick <patrick.m.mccormick@intel.com>
0003 patch should replace the existing and includes these changes:
Update ccl-direct ABI to pass PD correct local_dma_lkey.
Update ccl-direct ABI to pass cq flags.
Zero initialize sa path_recs in ibp_server to avoid null pointer deref.
The 0008 patch will be new:
Forward port QP multicast changes from 3.18-3 for mlx4 and mlx5
kernel QPs. This is needed for IPoIB with ccl-direct.
Signed-off-by: Mccormick, Patrick M <patrick.m.mccormick@intel.com>
Adit Ranadive [Wed, 15 Mar 2017 06:44:23 +0000 (23:44 -0700)]
vmw_pvrdma: Update patches with fixes
Added the following fixes:
- Put IB device in PORT_ACTIVE state when module is loaded on boot
- Zero out alloc_ucontext uresp
- Move hardcoded page numbers to macro
- Remove unused variables in post_send/post_recv
In ibp cm server change list modification patterns to be atomic. Before adding and removing
from a list would go something like:
1) Find item in list while holding reader lock
2) …
3) Search again for found item while holding writer lock, remove it
Multiple threads could end up holding pointers to items in the list and by the time they get to
deleting it, it may or may not exist in list.
Also: the ibp cm event handler for cm events should always return 0, if it returns non-zero ib_cm
will attempt to remove the cm_id, which is not correct (and causes ib_cm worker thread to dump
stack and hang).
Finally: trivial change an ibscif printk log level to KERN_INFO vs ALERT.
Signed-off-by: Patrick McCormick <patrick.m.mccormick@intel.com> Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>
Adit Ranadive [Wed, 21 Dec 2016 03:00:26 +0000 (19:00 -0800)]
compat-rdma: Build support for VMW_PVRDMA driver in OFED 4.8
Modified the build scripts to compile the VMware PVRDMA driver. I tested
this by compiling and installing the compat-rdma stuff in RHEL 7.3.
This is updated to reflect the new driver name.
Added the PVRDMA driver files as a tech preview. These patches are
based on the ones submitted upstream to the linux-rdma mailing list.
These apply cleanly to the Linux 4.8 tree.
1) kunmap -> kunmap_atomic , this fixes the ibscif polling thread switching into atomic mode.
2) Add include for tasklet in ibscf driver. SLES 12.1/2 kernels need this to compile ibscf.ko. This is our only “backport” needed for these kernels.
Signed-off-by: Mccormick, Patrick M <patrick.m.mccormick@intel.com> Signed-off-by: Jerrie Coffman <jerrie.l.coffman@intel.com> Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>
Pawel Schulfer [Tue, 6 Dec 2016 21:26:40 +0000 (13:26 -0800)]
Support RHEL7.2 and SLES12SP1 for QIB in OFED-4.8
Changes included in this patch:
1) Check for write_iter in file_operations structure
2) Check for inode_lock function in fs.h
3) Check for simple_positive function in dcache.h
4) Check for __GFP_RECLAIM in gfp.h