In some cases abs_ppfid could be printed without being initialized.
Fixes: 79284adeb99e ("qed: Add llh ppfid interface and 100g support for offload
protocols")
Reported-by: Dan Carpenter
Signed-off-by: Michal Kalderon
---
drivers/net/ethernet/qlogic/qed/qed_
The hw_ver field was initialized to zero. Return the chip revision.
This is relevant for rdma driver.
Signed-off-by: Michal Kalderon
---
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c
b
> From: linux-rdma-ow...@vger.kernel.org ow...@vger.kernel.org> On Behalf Of Jason Gunthorpe
>
> On Tue, Jul 09, 2019 at 05:17:30PM +0300, Michal Kalderon wrote:
> > Create some common API's for adding entries to a xa_mmap.
> > Searching for an entry and freeing one
> From: Jason Gunthorpe
> Sent: Thursday, July 25, 2019 9:01 PM
>
> External Email
>
> --
> On Tue, Jul 09, 2019 at 05:17:34PM +0300, Michal Kalderon wrote:
>
> > +static int qedr_init_user
> From: Jason Gunthorpe
> Sent: Thursday, July 25, 2019 9:02 PM
>
> External Email
>
> --
> On Tue, Jul 09, 2019 at 05:17:29PM +0300, Michal Kalderon wrote:
> > This patch series uses the doorbell
> From: linux-rdma-ow...@vger.kernel.org ow...@vger.kernel.org> On Behalf Of Jason Gunthorpe
>
> On Thu, Jul 25, 2019 at 07:34:15PM +0000, Michal Kalderon wrote:
> > > > + ibdev_dbg(ucontext->device,
> > > > + "mmap: obj[0x%p] key
> From: linux-rdma-ow...@vger.kernel.org ow...@vger.kernel.org> On Behalf Of Jason Gunthorpe
>
> > + xa_lock(&ucontext->mmap_xa);
> > + if (check_add_overflow(ucontext->mmap_xa_page,
> > + (u32)(length >> PAGE_SHIFT),
> > + &next_mmap_page))
>
> From: Gal Pressman
> Sent: Monday, July 29, 2019 4:54 PM
>
> On 29/07/2019 15:58, Michal Kalderon wrote:
> >> From: linux-rdma-ow...@vger.kernel.org >> ow...@vger.kernel.org> On Behalf Of Jason Gunthorpe
> >>
> >>> + xa_lock(&ucon
> From: Jason Gunthorpe
> Sent: Monday, July 29, 2019 5:05 PM
>
> External Email
>
> --
> On Mon, Jul 29, 2019 at 04:53:38PM +0300, Gal Pressman wrote:
> > On 29/07/2019 15:58, Michal Kalderon wrote:
!iwarp_info->mpa_bufs)
> + if (!iwarp_info->mpa_bufs) {
> + rc = -ENOMEM;
> goto err;
> + }
>
> INIT_LIST_HEAD(&iwarp_info->mpa_buf_pending_list);
> INIT_LIST_HEAD(&iwarp_info->mpa_buf_list);
> --
> 2.9.5
Thanks,
Acked-by: Michal Kalderon
Use the doorbell recovery mechanism to register rdma related doorbells
that will be restored in case there is a doorbell overflow attention.
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/qedr.h | 13 +-
drivers/infiniband/hw/qedr/verbs.c | 351
not related to the overflow recovery mechanism. Will be
submitted as part of a different patch
Michal Kalderon (3):
qed*: Change dpi_addr to be denoted with __iomem
RDMA/qedr: Add doorbell overflow recovery support
RDMA/qedr: Add iWARP doorbell recovery support
drivers/infiniband
This patch adds the iWARP specific doorbells to the doorbell
recovery mechanism
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/qedr.h | 12 +++-
drivers/infiniband/hw/qedr/verbs.c | 38 +-
2 files changed
Several casts were required around dpi_addr parameter in qed_rdma_if.h
This is an address on the doorbell bar and should therefore be marked
with __iomem.
Reported-by: Jason Gunthorpe
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/main.c | 2 +-
drivers/infiniband/hw
This series contains a few small fixes related to iWARP.
Michal Kalderon (4):
qed: iWARP - Use READ_ONCE and smp_store_release to access ep->state
qed: iWARP - fix uninitialized callback
qed: iWARP - Fix tc for MPA ll2 connection
qed: iWARP - Fix default window size to be based on c
The default window size is calculated for best performance based
on internal hw buffer sizes. The size differs between the
different chips and modes.
Fixes: 67b40dccc45f ("qed: Implement iWARP initialization, teardown and qp
operations")
Signed-off-by: Ariel Elior
Signed-off-by: Micha
Fix uninitialized variable warning by static checker.
Fixes: ae3488ff37dc ("qed: Add ll2 connection for processing unaligned MPA
packets")
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 1 +
1 file changed, 1 insertio
ned-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
index 099177c6aca2..431688c236ed 100644
--- a/d
Destroy QP waits for it's ep object state to be set to CLOSED
before proceeding. ep->state can be updated from a different
context. Add smp_store_release/READ_ONCE to synchronize.
Fixes: fc4c6065e661 ("qed: iWARP implement disconnect flows")
Signed-off-by: Ariel Elior
Sig
> From: linux-rdma-ow...@vger.kernel.org ow...@vger.kernel.org> On Behalf Of Doug Ledford
>
> On Thu, 2019-06-13 at 11:38 +0300, Michal Kalderon wrote:
> > This patch series used the doorbell overflow recovery mechanism
> > introduced in commit 36907cd5cd72 (&qu
Several casts were required around dpi_addr parameter in qed_rdma_if.h
This is an address on the doorbell bar and should therefore be marked
with __iomem.
Reported-by: Jason Gunthorpe
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/main.c | 2 +-
drivers/infiniband/hw
This patch adds the iWARP specific doorbells to the doorbell
recovery mechanism
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/qedr.h | 12 +++-
drivers/infiniband/hw/qedr/verbs.c | 37 -
2 files changed, 43
space
- modify db_rec_delete to be void
- remove some cpu_to_le16 that were added to previous patch which are
correct but not related to the overflow recovery mechanism. Will be
submitted as part of a different patch
Michal Kalderon (3):
qed*: Change dpi_addr to be denoted with __iomem
RDMA/qed
Use the doorbell recovery mechanism to register rdma related doorbells
that will be restored in case there is a doorbell overflow attention.
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/qedr.h | 13 +-
drivers/infiniband/hw/qedr/verbs.c | 351
> From: Jason Gunthorpe
> Sent: Friday, June 21, 2019 10:58 PM
>
> External Email
>
> --
> On Fri, Jun 21, 2019 at 07:49:39PM +, Michal Kalderon wrote:
> > > From: linux-rdma-ow...@vger.kernel.
This patch series include two fixes for bugs related to rdma.
The first has to do with loading the driver over an iWARP
device.
The second fixes a previous commit that added proper link
indication for iWARP / RoCE.
Signed-off-by: Michal Kalderon
Signed-off-by: Sudarsana Kalluru
Michal
If qede driver was loaded on a device configured for iWARP
the l2 mutex wouldn't be allocated, and some l2 related
resources wouldn't be freed.
fixes: c851a9dc4359 ("qed: Introduce iWARP personality")
Signed-off-by: Michal Kalderon
Signed-off-by: Sudarsana Kalluru
---
A previous commit 4609adc27175 ("qede: Fix qedr link update")
added a flow that could allocate rdma event objects from an
interrupt path (link notification). Therefore the kzalloc call
should be done with GFP_ATOMIC.
fixes: 4609adc27175 ("qede: Fix qedr link update")
S
Use the doorbell recovery mechanism to register rdma related doorbells
that will be restored in case there is a doorbell overflow attention.
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/main.c | 1 +
drivers/infiniband/hw/qedr/qedr.h | 7
Several casts were required around dpi_addr parameter in qed_rdma_if.h
This is an address on the doorbell bar and should therefore be marked
with __iomem.
Reported-by: Jason Gunthorpe
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/main.c | 2 +-
drivers/infiniband/hw
Remove all function related to mmap from qedr and use the common
API
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/qedr.h | 13
drivers/infiniband/hw/qedr/verbs.c | 153 +
drivers/infiniband/hw/qedr/verbs.h | 2 +-
3 files changed, 52
Remove the functions related to managing the mmap_xa database.
This code was copied to the ib_core. Use the common API's instead.
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/efa/efa.h | 3 +-
drivers/infiniband/hw/efa/efa_main.c | 1 +
drivers/infiniband/h
This patch adds the iWARP specific doorbells to the doorbell
recovery mechanism
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/qedr.h | 12 +++-
drivers/infiniband/hw/qedr/verbs.c | 37 -
2 files changed, 43
Create some common API's for adding entries to a xa_mmap.
Searching for an entry and freeing one.
The code was copied from the efa driver almost as is, just renamed
function to be generic and not efa specific.
Signed-off-by: Michal Kalderon
---
drivers/infiniband/core/device.c
lete to be void
- remove some cpu_to_le16 that were added to previous patch which are
correct but not related to the overflow recovery mechanism. Will be
submitted as part of a different patch
Michal Kalderon (6):
RDMA/core: Create mmap database and cookie helper functions
RDMA/efa: Use the
> From: linux-rdma-ow...@vger.kernel.org ow...@vger.kernel.org> On Behalf Of Gal Pressman
>
> On 08/07/2019 12:14, Michal Kalderon wrote:
> > diff --git a/drivers/infiniband/core/device.c
> > b/drivers/infiniband/core/device.c
> > index 8a6ccb936dfe..a830c2c
> From: linux-rdma-ow...@vger.kernel.org ow...@vger.kernel.org> On Behalf Of Leon Romanovsky
>
> On Mon, Jul 08, 2019 at 12:14:58PM +0300, Michal Kalderon wrote:
> > Create some common API's for adding entries to a xa_mmap.
> > Searching for an entry and freeing one
> From: Gal Pressman
> Sent: Tuesday, July 9, 2019 12:03 PM
>
> On 08/07/2019 12:14, Michal Kalderon wrote:
>
> Hi, a few nits:
Thanks for the review, will fix them.
>
> > Remove the functions related to managing the mmap_xa database.
> > This code was copi
Create some common API's for adding entries to a xa_mmap.
Searching for an entry and freeing one.
The code was copied from the efa driver almost as is, just renamed
function to be generic and not efa specific.
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infin
Use the doorbell recovery mechanism to register rdma related doorbells
that will be restored in case there is a doorbell overflow attention.
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/main.c | 1 +
drivers/infiniband/hw/qedr/qedr.h | 7
Several casts were required around dpi_addr parameter in qed_rdma_if.h
This is an address on the doorbell bar and should therefore be marked
with __iomem.
Reported-by: Jason Gunthorpe
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/main.c | 2
Remove all function related to mmap from qedr and use the common
API
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/qedr.h | 13
drivers/infiniband/hw/qedr/verbs.c | 153 +
drivers/infiniband/hw/qedr/verbs.h
nto kernel space
- modify db_rec_delete to be void
- remove some cpu_to_le16 that were added to previous patch which are
correct but not related to the overflow recovery mechanism. Will be
submitted as part of a different patch
Michal Kalderon (6):
RDMA/core: Create mmap database and cookie he
This patch adds the iWARP specific doorbells to the doorbell
recovery mechanism
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/qedr/qedr.h | 12 +++-
drivers/infiniband/hw/qedr/verbs.c | 37 -
2 files changed, 43
Remove the functions related to managing the mmap_xa database.
This code was copied to the ib_core. Use the common API's instead.
Signed-off-by: Ariel Elior
Signed-off-by: Michal Kalderon
---
drivers/infiniband/hw/efa/efa.h | 3 +-
drivers/infiniband/hw/efa/efa_main.c | 1 +
dr
> From: linux-rdma-ow...@vger.kernel.org ow...@vger.kernel.org> On Behalf Of Gal Pressman
>
> On 09/07/2019 17:17, Michal Kalderon wrote:
> > This patch series uses the doorbell overflow recovery mechanism
> > introduced in commit 36907cd5cd72 ("qed: Add doorbell ov
rams;
> - struct qed_resc_alloc_in_params in_params;
> + struct qed_resc_alloc_out_params out_params = {0};
> + struct qed_resc_alloc_in_params in_params = {0};
> int rc;
>
> - memset(&in_params, 0, sizeof(in_params));
> in_params.cmd = DRV_MSG_SET_RESOURCE_VALUE_MSG;
> in_params.res_id = res_id;
> in_params.resc_max_val = resc_max_val;
> - memset(&out_params, 0, sizeof(out_params));
> rc = qed_mcp_resc_allocation_msg(p_hwfn, p_ptt, &in_params,
>&out_params);
> if (rc)
> @@ -3302,14 +3280,12 @@ qed_mcp_get_resc_info(struct qed_hwfn
> *p_hwfn,
> enum qed_resources res_id,
> u32 *p_mcp_resp, u32 *p_resc_num, u32 *p_resc_start)
> {
> - struct qed_resc_alloc_out_params out_params;
> - struct qed_resc_alloc_in_params in_params;
> + struct qed_resc_alloc_out_params out_params = {0};
> + struct qed_resc_alloc_in_params in_params = {0};
> int rc;
>
> - memset(&in_params, 0, sizeof(in_params));
> in_params.cmd = DRV_MSG_GET_RESOURCE_ALLOC_MSG;
> in_params.res_id = res_id;
> - memset(&out_params, 0, sizeof(out_params));
> rc = qed_mcp_resc_allocation_msg(p_hwfn, p_ptt, &in_params,
>&out_params);
> if (rc)
> --
> 2.20.1
Thanks,
Acked-by: Michal Kalderon
opens the additional ll2 connection for iWARP.
Patches 8-12 contain the algorithm for aligning packets.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
No changes from v2:
Request for changes in ll2 rxq completion locking is deferred
to a separate patch series
secondary queue.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 7 ++-
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 1 +
include/linux/qed/qed_ll2_if.h| 1 +
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers
also contributed to decreasing the descriptor size.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 29 +
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 9 +++--
2 files changed, 24 insertions(+), 14
enable_ip_cksum, enable_l4_cksum, calc_ip_len were added in
commit stated below but not passed through to FW. This was OK
until now as it wasn't used, but is required for the iWARP
unaligned flow
Fixes:7c7973b2ae27 ("qed: LL2 to use packed information for tx")
Signed-off-by:
The option of sending a packet on the ll2 and dropping it exists in
hardware and was not used until now, thus not exposed.
The iWARP unaligned MPA flow requires this functionality for
flushing the tx queue.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet
For iWARP unaligned MPA flow, a slowpath event of flushing an
MPA connection that entered an unaligned state is required.
The flush ramrod is received on the ll2 queue, and a pre-registered
callback function is called to handle the flush event.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel
This patch adds only the establishment and termination of the
ll2 connection that handles unaligned MPA packets.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 65 +
drivers/net/ethernet/qlogic/qed
hold a free list.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 116
drivers/net/ethernet/qlogic/qed/qed_iwarp.h | 11 +++
2 files changed, 127 insertions(+)
diff --git a/drivers/net/ethernet/qlogic/qed/q
There is a special case where an MPA header is split over to tcp
packets, in this case we need to wait for the next packet to
get the fpdu length. We use the incomplete_bytes to mark this
fpdu as a "special" one which requires updating the length with
the next packet
Signed-off-
the data. We need an intermediate buffer as the initial
buffer partial packet could be located at the end of the packet, not
leaving room for additional data. This is a corner case, and will usually
not be the case.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net
provided as a cookie. To avoid changing the ll2
interface to provide two cookies, we introduce a piggy buf pointer,
relevant for iWARP only, that holds a pointer to a second buffer that
needs to be released during tx completion.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
unaligned mpa the value
will be determined in the iWARP code and sent on the pkt->vlan
field.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qlogic/
, two fragments are used, one for the header
and one for the data.
Corner cases are not handled in the patch for clarity, and will be added
as a separate patch.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c
iWARP out of order support")
Signed-off-by: Michal Kalderon
Signed-off-by: Manish Rangankar
Signed-off-by: Ariel Elior
---
drivers/infiniband/hw/qedr/Kconfig | 1 +
drivers/net/ethernet/qlogic/Kconfig | 3 +++
drivers/net/ethernet/qlogic/qed/Makefile| 3 ++-
d
This series contains two fixes related to iWARP flow.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
Michal Kalderon (2):
qed: Fix MPA unalign flow in case header is split across two packets.
qed: Fix non TCP packets should be dropped on iWARP ll2 connection
drivers/net
FW workaround. The iWARP LL2 connection did not expect TCP packets
to arrive on it's connection. The fix drops any non-tcp packets
Fixes b5c29ca ("qed: iWARP CM - setup a ll2 connection for handling
SYN packets")
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
-
uot;)
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c
index ca4a81d..fefe527 1006
Link updates were not reported to qedr correctly.
Leading to cases where a link could be down, but qedr
would see it as up.
In addition, once qede was loaded, link state would be up,
regardless of the actual link state.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net
E both use the
ROCE protocol id, as opposed to the connection context.
Fixes: dbb799c39717e7b7
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_cxt.c | 5 -
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 1 +
2 files changed, 5 insertions(+),
E both use the
ROCE protocol id, as opposed to the connection context.
Fixes: dbb799c39717 ("qed: Initialize hardware for new protocols")
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
Difference from V1:
Fixes line was truncated
---
drivers/net/ethernet/qlogi
E both use the
ROCE protocol id, as opposed to the connection context.
Fixes: dbb799c39717 ("qed: Initialize hardware for new protocols")
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
Difference from V2:
Fixed Broken parenthesis In comment
---
drivers/net/ethernet/
ned-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_cxt.c | 6 ++
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 10 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.c| 5 -
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c
iWARP requires OOO support which is already provided by the ll2
interface (until now was used only for iSCSI offload).
The changes mostly include opening a ll2 dedicated connection for
OOO and notifiying the FW about the handle id.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
been accepted and targeted at
kernel 4.15, therefore, all iWARP fixes for this cycle are
submitted to net-next.
Signed-off by: michal.kalde...@cavium.com
Signed-off-by: Ariel Elior
Michal Kalderon (4):
qed: Add iWARP enablement support
qed: Add iWARP out of order support
qed: Fix maximum
A SYN packet which arrives with errors from FW should be dropped.
This required adding an additional field to the ll2
rx completion data.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 8
drivers/net/ethernet/qlogic/qed
The maximum number of CQs supported is bound to the number
of connections supported, which differs between RoCE and iWARP.
This fixes a crash that occurred in iWARP when running 1000 sessions
using perftest.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet
A SYN packet which arrives with errors from FW should be dropped.
This required adding an additional field to the ll2
rx completion data.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 8
drivers/net/ethernet/qlogic/qed
tions")
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c
b/drivers/net/ethernet/qlogic/qed/qed_rdma.c
ind
iWARP requires OOO support which is already provided by the ll2
interface (until now was used only for iSCSI offload).
The changes mostly include opening a ll2 dedicated connection for
OOO and notifiying the FW about the handle id.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
ned-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_cxt.c | 6 ++
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 10 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.c| 5 -
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c
been accepted and targeted at
kernel 4.15, therefore, all iWARP fixes for this cycle are
submitted to net-next.
Changes from v1->v2
- Added "Fixes:" tag to commit message of patch #3
Signed-off by: michal.kalde...@cavium.com
Signed-off-by: Ariel Elior
Michal Kalderon (4):
q
opens the additional ll2 connection for iWARP.
Patches 8-12 contain the algorithm for aligning packets.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
Michal Kalderon (12):
qed: Add ll2 option to limit the number of bds per packet
qed: Add ll2 ability of opening a secondary queue
enable_ip_cksum, enable_l4_cksum, calc_ip_len were added in
commit stated below but not passed through to FW. This was OK
until now as it wasn't used, but is required for the iWARP
unaligned flow
Fixes:7c7973b2ae27 ("qed: LL2 to use packed information for tx")
Signed-off-by:
secondary queue.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 7 ++-
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 1 +
include/linux/qed/qed_ll2_if.h| 1 +
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers
also contributed to decreasing the descriptor size.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 25 +++--
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 7 ++-
2 files changed, 21 insertions(+), 11 deletions
unaligned mpa the value
will be determined in the iWARP code and sent on the pkt->vlan
field.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qlogic/
provided as a cookie. To avoid changing the ll2
interface to provide two cookies, we introduce a piggy buf pointer,
relevant for iWARP only, that holds a pointer to a second buffer that
needs to be released during tx completion.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
The option of sending a packet on the ll2 and dropping it exists in
hardware and was not used until now, thus not exposed.
The iWARP unaligned MPA flow requires this functionality for
flushing the tx queue.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet
This patch adds only the establishment and termination of the
ll2 connection that handles unaligned MPA packets.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 65 +
drivers/net/ethernet/qlogic/qed
For iWARP unaligned MPA flow, a slowpath event of flushing an
MPA connection that entered an unaligned state is required.
The flush ramrod is received on the ll2 queue, and a pre-registered
callback function is called to handle the flush event.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel
There is a special case where an MPA header is split over to tcp
packets, in this case we need to wait for the next packet to
get the fpdu length. We use the incomplete_bytes to mark this
fpdu as a "special" one which requires updating the length with
the next packet
Signed-off-
hold a free list.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 116
drivers/net/ethernet/qlogic/qed/qed_iwarp.h | 11 +++
2 files changed, 127 insertions(+)
diff --git a/drivers/net/ethernet/qlogic/qed/q
, two fragments are used, one for the header
and one for the data.
Corner cases are not handled in the patch for clarity, and will be added
as a separate patch.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c
the data. We need an intermediate buffer as the initial
buffer partial packet could be located at the end of the packet, not
leaving room for additional data. This is a corner case, and will usually
not be the case.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net
The option of sending a packet on the ll2 and dropping it exists in
hardware and was not used until now, thus not exposed.
The iWARP unaligned MPA flow requires this functionality for
flushing the tx queue.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet
also contributed to decreasing the descriptor size.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 29 +
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 9 +++--
2 files changed, 24 insertions(+), 14
opens the additional ll2 connection for iWARP.
Patches 8-12 contain the algorithm for aligning packets.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
Changes from v1:
patch #1: tx descq_array changed to void pointer and name
changed accordingly to descq_mem
secondary queue.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 7 ++-
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 1 +
include/linux/qed/qed_ll2_if.h| 1 +
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers
, two fragments are used, one for the header
and one for the data.
Corner cases are not handled in the patch for clarity, and will be added
as a separate patch.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_iwarp.c
unaligned mpa the value
will be determined in the iWARP code and sent on the pkt->vlan
field.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel Elior
---
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qlogic/
enable_ip_cksum, enable_l4_cksum, calc_ip_len were added in
commit stated below but not passed through to FW. This was OK
until now as it wasn't used, but is required for the iWARP
unaligned flow
Fixes:7c7973b2ae27 ("qed: LL2 to use packed information for tx")
Signed-off-by:
There is a special case where an MPA header is split over to tcp
packets, in this case we need to wait for the next packet to
get the fpdu length. We use the incomplete_bytes to mark this
fpdu as a "special" one which requires updating the length with
the next packet
Signed-off-
For iWARP unaligned MPA flow, a slowpath event of flushing an
MPA connection that entered an unaligned state is required.
The flush ramrod is received on the ll2 queue, and a pre-registered
callback function is called to handle the flush event.
Signed-off-by: Michal Kalderon
Signed-off-by: Ariel
1 - 100 of 177 matches
Mail list logo