* RE: [PATCH V4 02/18] RDMA/siw: Introduce siw_update_skb_rcvd
[not found] ` <20231027132644.29347-3-guoqing.jiang@linux.dev>
@ 2023-10-30 13:34 ` Bernard Metzler
0 siblings, 0 replies; 7+ messages in thread
From: Bernard Metzler @ 2023-10-30 13:34 UTC (permalink / raw)
To: Guoqing Jiang, jgg@ziepe.ca, leon@kernel.org; +Cc: linux-rdma@vger.kernel.org
> -----Original Message-----
> From: Guoqing Jiang <guoqing.jiang@linux.dev>
> Sent: Friday, October 27, 2023 3:26 PM
> To: Bernard Metzler <BMT@zurich.ibm.com>; jgg@ziepe.ca; leon@kernel.org
> Cc: linux-rdma@vger.kernel.org
> Subject: [EXTERNAL] [PATCH V4 02/18] RDMA/siw: Introduce
> siw_update_skb_rcvd
>
> There are some places share the same logic, factor a common
> helper for it.
>
> Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
> ---
> drivers/infiniband/sw/siw/siw_qp_rx.c | 31 +++++++++++----------------
> 1 file changed, 12 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/infiniband/sw/siw/siw_qp_rx.c
> b/drivers/infiniband/sw/siw/siw_qp_rx.c
> index 33e0fdb362ff..10805a7d0487 100644
> --- a/drivers/infiniband/sw/siw/siw_qp_rx.c
> +++ b/drivers/infiniband/sw/siw/siw_qp_rx.c
> @@ -881,6 +881,13 @@ int siw_proc_rresp(struct siw_qp *qp)
> return rv;
> }
>
> +static void siw_update_skb_rcvd(struct siw_rx_stream *srx, u16 length)
> +{
> + srx->skb_offset += length;
> + srx->skb_new -= length;
> + srx->skb_copied += length;
> +}
> +
> int siw_proc_terminate(struct siw_qp *qp)
> {
> struct siw_rx_stream *srx = &qp->rx_stream;
> @@ -925,9 +932,7 @@ int siw_proc_terminate(struct siw_qp *qp)
> goto out;
>
> infop += to_copy;
> - srx->skb_offset += to_copy;
> - srx->skb_new -= to_copy;
> - srx->skb_copied += to_copy;
> + siw_update_skb_rcvd(srx, to_copy);
> srx->fpdu_part_rcvd += to_copy;
> srx->fpdu_part_rem -= to_copy;
>
> @@ -949,9 +954,7 @@ int siw_proc_terminate(struct siw_qp *qp)
> term->flag_m ? "valid" : "invalid");
> }
> out:
> - srx->skb_new -= to_copy;
> - srx->skb_offset += to_copy;
> - srx->skb_copied += to_copy;
> + siw_update_skb_rcvd(srx, to_copy);
> srx->fpdu_part_rcvd += to_copy;
> srx->fpdu_part_rem -= to_copy;
>
> @@ -970,9 +973,7 @@ static int siw_get_trailer(struct siw_qp *qp, struct
> siw_rx_stream *srx)
>
> skb_copy_bits(skb, srx->skb_offset, tbuf, avail);
>
> - srx->skb_new -= avail;
> - srx->skb_offset += avail;
> - srx->skb_copied += avail;
> + siw_update_skb_rcvd(srx, avail);
> srx->fpdu_part_rem -= avail;
>
> if (srx->fpdu_part_rem)
> @@ -1023,12 +1024,8 @@ static int siw_get_hdr(struct siw_rx_stream *srx)
> skb_copy_bits(skb, srx->skb_offset,
> (char *)c_hdr + srx->fpdu_part_rcvd, bytes);
>
> + siw_update_skb_rcvd(srx, bytes);
> srx->fpdu_part_rcvd += bytes;
> -
> - srx->skb_new -= bytes;
> - srx->skb_offset += bytes;
> - srx->skb_copied += bytes;
> -
> if (srx->fpdu_part_rcvd < MIN_DDP_HDR)
> return -EAGAIN;
>
> @@ -1091,12 +1088,8 @@ static int siw_get_hdr(struct siw_rx_stream *srx)
> skb_copy_bits(skb, srx->skb_offset,
> (char *)c_hdr + srx->fpdu_part_rcvd, bytes);
>
> + siw_update_skb_rcvd(srx, bytes);
> srx->fpdu_part_rcvd += bytes;
> -
> - srx->skb_new -= bytes;
> - srx->skb_offset += bytes;
> - srx->skb_copied += bytes;
> -
> if (srx->fpdu_part_rcvd < hdrlen)
> return -EAGAIN;
> }
> --
> 2.35.3
Looks good.
Acked-by: Bernard Metzler <bmt@zurich.ibm.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH V4 12/18] RDMA/siw: Introduce siw_free_cm_id
[not found] ` <20231027132644.29347-13-guoqing.jiang@linux.dev>
@ 2023-10-30 13:35 ` Bernard Metzler
0 siblings, 0 replies; 7+ messages in thread
From: Bernard Metzler @ 2023-10-30 13:35 UTC (permalink / raw)
To: Guoqing Jiang, jgg@ziepe.ca, leon@kernel.org; +Cc: linux-rdma@vger.kernel.org
> -----Original Message-----
> From: Guoqing Jiang <guoqing.jiang@linux.dev>
> Sent: Friday, October 27, 2023 3:27 PM
> To: Bernard Metzler <BMT@zurich.ibm.com>; jgg@ziepe.ca; leon@kernel.org
> Cc: linux-rdma@vger.kernel.org
> Subject: [EXTERNAL] [PATCH V4 12/18] RDMA/siw: Introduce siw_free_cm_id
>
> Factor out a helper to simplify code.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: INVALID URI REMOVED
> 3A__lore.kernel.org_oe-2Dkbuild-2Dall_202310091656.JlrmcNXB-2Dlkp-
> 40intel.com_&d=DwIDAg&c=jf_iaSHvJObTbx-siA1ZOg&r=2TaYXQ0T-
> r8ZO1PP1alNwU_QJcRRLfmYTAgd3QCvqSc&m=aD4gL7u0nROWIiFk0ch8zNX6vYWKMUOorYEWPY
> b9amSqnQTH0qNMcLijHRNn7r_s&s=kmGGMztuOUMejyxISpfW94VtbHKDivS9DMunEaOx5uc&e=
> Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
> ---
> Changes since last version:
> 1. add missed check of cep->cm_id
>
> drivers/infiniband/sw/siw/siw_cm.c | 30 ++++++++++++++----------------
> 1 file changed, 14 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/infiniband/sw/siw/siw_cm.c
> b/drivers/infiniband/sw/siw/siw_cm.c
> index 2f338bb3a24c..9c79d3ea5b66 100644
> --- a/drivers/infiniband/sw/siw/siw_cm.c
> +++ b/drivers/infiniband/sw/siw/siw_cm.c
> @@ -364,6 +364,15 @@ static int siw_cm_upcall(struct siw_cep *cep, enum
> iw_cm_event_type reason,
> return id->event_handler(id, &event);
> }
>
> +static void siw_free_cm_id(struct siw_cep *cep)
> +{
> + if (!cep->cm_id)
> + return;
> +
> + cep->cm_id->rem_ref(cep->cm_id);
> + cep->cm_id = NULL;
> +}
> +
> /*
> * siw_qp_cm_drop()
> *
> @@ -415,8 +424,7 @@ void siw_qp_cm_drop(struct siw_qp *qp, int schedule)
> default:
> break;
> }
> - cep->cm_id->rem_ref(cep->cm_id);
> - cep->cm_id = NULL;
> + siw_free_cm_id(cep);
> siw_cep_put(cep);
> }
> cep->state = SIW_EPSTATE_CLOSED;
> @@ -1176,8 +1184,7 @@ static void siw_cm_work_handler(struct work_struct
> *w)
> cep->sock = NULL;
> }
> if (cep->cm_id) {
> - cep->cm_id->rem_ref(cep->cm_id);
> - cep->cm_id = NULL;
> + siw_free_cm_id(cep);
> siw_cep_put(cep);
> }
> }
> @@ -1702,10 +1709,7 @@ int siw_accept(struct iw_cm_id *id, struct
> iw_cm_conn_param *params)
>
> cep->state = SIW_EPSTATE_CLOSED;
>
> - if (cep->cm_id) {
> - cep->cm_id->rem_ref(id);
> - cep->cm_id = NULL;
> - }
> + siw_free_cm_id(cep);
> if (qp->cep) {
> siw_cep_put(cep);
> qp->cep = NULL;
> @@ -1880,10 +1884,7 @@ int siw_create_listen(struct iw_cm_id *id, int
> backlog)
> if (cep) {
> siw_cep_set_inuse(cep);
>
> - if (cep->cm_id) {
> - cep->cm_id->rem_ref(cep->cm_id);
> - cep->cm_id = NULL;
> - }
> + siw_free_cm_id(cep);
> cep->sock = NULL;
> siw_socket_disassoc(s);
> cep->state = SIW_EPSTATE_CLOSED;
> @@ -1912,10 +1913,7 @@ static void siw_drop_listeners(struct iw_cm_id *id)
>
> siw_cep_set_inuse(cep);
>
> - if (cep->cm_id) {
> - cep->cm_id->rem_ref(cep->cm_id);
> - cep->cm_id = NULL;
> - }
> + siw_free_cm_id(cep);
> if (cep->sock) {
> siw_socket_disassoc(cep->sock);
> sock_release(cep->sock);
> --
> 2.35.3
Looks good.
Acked-by: Bernard Metzler <bmt@zurich.ibm.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH V4 08/18] RDMA/siw: Factor out siw_rx_data helper
[not found] ` <20231027132644.29347-9-guoqing.jiang@linux.dev>
@ 2023-10-30 13:37 ` Bernard Metzler
0 siblings, 0 replies; 7+ messages in thread
From: Bernard Metzler @ 2023-10-30 13:37 UTC (permalink / raw)
To: Guoqing Jiang, jgg@ziepe.ca, leon@kernel.org; +Cc: linux-rdma@vger.kernel.org
> -----Original Message-----
> From: Guoqing Jiang <guoqing.jiang@linux.dev>
> Sent: Friday, October 27, 2023 3:27 PM
> To: Bernard Metzler <BMT@zurich.ibm.com>; jgg@ziepe.ca; leon@kernel.org
> Cc: linux-rdma@vger.kernel.org
> Subject: [EXTERNAL] [PATCH V4 08/18] RDMA/siw: Factor out siw_rx_data
> helper
>
> Remove the redundant code given they share the same logic.
>
> Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
> ---
> Change since last version:
> 1. rename the helper to siw_rx_data per Bernard's suggestion
>
> drivers/infiniband/sw/siw/siw_qp_rx.c | 53 ++++++++++-----------------
> 1 file changed, 20 insertions(+), 33 deletions(-)
>
> diff --git a/drivers/infiniband/sw/siw/siw_qp_rx.c
> b/drivers/infiniband/sw/siw/siw_qp_rx.c
> index 10805a7d0487..ed4fc39718b4 100644
> --- a/drivers/infiniband/sw/siw/siw_qp_rx.c
> +++ b/drivers/infiniband/sw/siw/siw_qp_rx.c
> @@ -405,6 +405,20 @@ static struct siw_wqe *siw_rqe_get(struct siw_qp *qp)
> return wqe;
> }
>
> +static int siw_rx_data(struct siw_mem *mem_p, struct siw_rx_stream *srx,
> + unsigned int *pbl_idx, u64 addr, int bytes)
> +{
> + int rv;
> +
> + if (mem_p->mem_obj == NULL)
> + rv = siw_rx_kva(srx, ib_virt_dma_to_ptr(addr), bytes);
> + else if (!mem_p->is_pbl)
> + rv = siw_rx_umem(srx, mem_p->umem, addr, bytes);
> + else
> + rv = siw_rx_pbl(srx, pbl_idx, mem_p, addr, bytes);
> + return rv;
> +}
> +
> /*
> * siw_proc_send:
> *
> @@ -485,17 +499,8 @@ int siw_proc_send(struct siw_qp *qp)
> break;
> }
> mem_p = *mem;
> - if (mem_p->mem_obj == NULL)
> - rv = siw_rx_kva(srx,
> - ib_virt_dma_to_ptr(sge->laddr + frx->sge_off),
> - sge_bytes);
> - else if (!mem_p->is_pbl)
> - rv = siw_rx_umem(srx, mem_p->umem,
> - sge->laddr + frx->sge_off, sge_bytes);
> - else
> - rv = siw_rx_pbl(srx, &frx->pbl_idx, mem_p,
> - sge->laddr + frx->sge_off, sge_bytes);
> -
> + rv = siw_rx_data(mem_p, srx, &frx->pbl_idx,
> + sge->laddr + frx->sge_off, sge_bytes);
> if (unlikely(rv != sge_bytes)) {
> wqe->processed += rcvd_bytes;
>
> @@ -598,17 +603,8 @@ int siw_proc_write(struct siw_qp *qp)
> return -EINVAL;
> }
>
> - if (mem->mem_obj == NULL)
> - rv = siw_rx_kva(srx,
> - (void *)(uintptr_t)(srx->ddp_to + srx->fpdu_part_rcvd),
> - bytes);
> - else if (!mem->is_pbl)
> - rv = siw_rx_umem(srx, mem->umem,
> - srx->ddp_to + srx->fpdu_part_rcvd, bytes);
> - else
> - rv = siw_rx_pbl(srx, &frx->pbl_idx, mem,
> - srx->ddp_to + srx->fpdu_part_rcvd, bytes);
> -
> + rv = siw_rx_data(mem, srx, &frx->pbl_idx,
> + srx->ddp_to + srx->fpdu_part_rcvd, bytes);
> if (unlikely(rv != bytes)) {
> siw_init_terminate(qp, TERM_ERROR_LAYER_DDP,
> DDP_ETYPE_CATASTROPHIC,
> @@ -849,17 +845,8 @@ int siw_proc_rresp(struct siw_qp *qp)
> mem_p = *mem;
>
> bytes = min(srx->fpdu_part_rem, srx->skb_new);
> -
> - if (mem_p->mem_obj == NULL)
> - rv = siw_rx_kva(srx,
> - ib_virt_dma_to_ptr(sge->laddr + wqe->processed),
> - bytes);
> - else if (!mem_p->is_pbl)
> - rv = siw_rx_umem(srx, mem_p->umem, sge->laddr + wqe->processed,
> - bytes);
> - else
> - rv = siw_rx_pbl(srx, &frx->pbl_idx, mem_p,
> - sge->laddr + wqe->processed, bytes);
> + rv = siw_rx_data(mem_p, srx, &frx->pbl_idx,
> + sge->laddr + wqe->processed, bytes);
> if (rv != bytes) {
> wqe->wc_status = SIW_WC_GENERAL_ERR;
> rv = -EINVAL;
> --
> 2.35.3
Looks good.
Acked-by: Bernard Metzler <bmt@zurich.ibm.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH V4 01/18] RDMA/siw: Introduce siw_get_page
[not found] ` <20231027132644.29347-2-guoqing.jiang@linux.dev>
@ 2023-10-30 13:43 ` Bernard Metzler
0 siblings, 0 replies; 7+ messages in thread
From: Bernard Metzler @ 2023-10-30 13:43 UTC (permalink / raw)
To: Guoqing Jiang, jgg@ziepe.ca, leon@kernel.org; +Cc: linux-rdma@vger.kernel.org
> -----Original Message-----
> From: Guoqing Jiang <guoqing.jiang@linux.dev>
> Sent: Friday, October 27, 2023 3:26 PM
> To: Bernard Metzler <BMT@zurich.ibm.com>; jgg@ziepe.ca; leon@kernel.org
> Cc: linux-rdma@vger.kernel.org
> Subject: [EXTERNAL] [PATCH V4 01/18] RDMA/siw: Introduce siw_get_page
>
> Add the wrapper function to get either pbl page or umem page.
>
> Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
> ---
> drivers/infiniband/sw/siw/siw_qp_tx.c | 31 +++++++++++----------------
> 1 file changed, 12 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/infiniband/sw/siw/siw_qp_tx.c
> b/drivers/infiniband/sw/siw/siw_qp_tx.c
> index b2c06100cf01..6a24e08356e9 100644
> --- a/drivers/infiniband/sw/siw/siw_qp_tx.c
> +++ b/drivers/infiniband/sw/siw/siw_qp_tx.c
> @@ -34,6 +34,15 @@ static struct page *siw_get_pblpage(struct siw_mem *mem,
> u64 addr, int *idx)
> return NULL;
> }
>
> +static struct page *siw_get_page(struct siw_mem *mem, struct siw_sge *sge,
> + unsigned long offset, int *pbl_idx)
> +{
> + if (!mem->is_pbl)
> + return siw_get_upage(mem->umem, sge->laddr + offset);
> + else
> + return siw_get_pblpage(mem, sge->laddr + offset, pbl_idx);
> +}
> +
> /*
> * Copy short payload at provided destination payload address
> */
> @@ -67,11 +76,7 @@ static int siw_try_1seg(struct siw_iwarp_tx *c_tx, void
> *paddr)
> char *buffer;
> int pbl_idx = 0;
>
> - if (!mem->is_pbl)
> - p = siw_get_upage(mem->umem, sge->laddr);
> - else
> - p = siw_get_pblpage(mem, sge->laddr, &pbl_idx);
> -
> + p = siw_get_page(mem, sge, 0, &pbl_idx);
> if (unlikely(!p))
> return -EFAULT;
>
> @@ -85,13 +90,7 @@ static int siw_try_1seg(struct siw_iwarp_tx *c_tx, void
> *paddr)
> memcpy(paddr, buffer + off, part);
> kunmap_local(buffer);
>
> - if (!mem->is_pbl)
> - p = siw_get_upage(mem->umem,
> - sge->laddr + part);
> - else
> - p = siw_get_pblpage(mem,
> - sge->laddr + part,
> - &pbl_idx);
> + p = siw_get_page(mem, sge, part, &pbl_idx);
> if (unlikely(!p))
> return -EFAULT;
>
> @@ -502,13 +501,7 @@ static int siw_tx_hdt(struct siw_iwarp_tx *c_tx,
> struct socket *s)
> if (!is_kva) {
> struct page *p;
>
> - if (mem->is_pbl)
> - p = siw_get_pblpage(
> - mem, sge->laddr + sge_off,
> - &pbl_idx);
> - else
> - p = siw_get_upage(mem->umem,
> - sge->laddr + sge_off);
> + p = siw_get_page(mem, sge, sge_off, &pbl_idx);
> if (unlikely(!p)) {
> siw_unmap_pages(iov, kmap_mask, seg);
> wqe->processed -= c_tx->bytes_unsent;
> --
> 2.35.3
Looks good.
Acked-by: Bernard Metzler <bmt@zurich.ibm.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V4 00/18] Cleanup for siw
[not found] <20231027132644.29347-1-guoqing.jiang@linux.dev>
` (3 preceding siblings ...)
[not found] ` <20231027132644.29347-2-guoqing.jiang@linux.dev>
@ 2023-11-13 8:38 ` Leon Romanovsky
2023-11-13 11:59 ` Guoqing Jiang
4 siblings, 1 reply; 7+ messages in thread
From: Leon Romanovsky @ 2023-11-13 8:38 UTC (permalink / raw)
To: Guoqing Jiang; +Cc: bmt, jgg, linux-rdma
On Fri, Oct 27, 2023 at 09:26:26PM +0800, Guoqing Jiang wrote:
> V4 changes:
> 1. add Acked-by tags.
> 2. update patch 3 and patch 12 per Bernard's review.
> 3. update patch header in patch 18.
>
> V3 changes:
> 1. add Acked-by tags.
> 2. drop 2 patches and address other comments.
>
> Appreciate for Bernard's review!
>
> V2 changes:
> 1. address W=1 warning in patch 12 and 19 per the report from lkp.
> 2. add one more patch (20th).
>
> Hi,
>
> This series aim to cleanup siw code, please review and comment!
This series wasn't sent properly and it doesn't exist in patchworks and lore.
Please resend it properly.
Thanks
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V4 00/18] Cleanup for siw
2023-11-13 8:38 ` [PATCH V4 00/18] Cleanup for siw Leon Romanovsky
@ 2023-11-13 11:59 ` Guoqing Jiang
2023-11-13 12:38 ` Leon Romanovsky
0 siblings, 1 reply; 7+ messages in thread
From: Guoqing Jiang @ 2023-11-13 11:59 UTC (permalink / raw)
To: Leon Romanovsky; +Cc: bmt, jgg, linux-rdma
On 11/13/23 16:38, Leon Romanovsky wrote:
> On Fri, Oct 27, 2023 at 09:26:26PM +0800, Guoqing Jiang wrote:
>> V4 changes:
>> 1. add Acked-by tags.
>> 2. update patch 3 and patch 12 per Bernard's review.
>> 3. update patch header in patch 18.
>>
>> V3 changes:
>> 1. add Acked-by tags.
>> 2. drop 2 patches and address other comments.
>>
>> Appreciate for Bernard's review!
>>
>> V2 changes:
>> 1. address W=1 warning in patch 12 and 19 per the report from lkp.
>> 2. add one more patch (20th).
>>
>> Hi,
>>
>> This series aim to cleanup siw code, please review and comment!
> This series wasn't sent properly and it doesn't exist in patchworks and lore.
> Please resend it properly.
Done.
https://lore.kernel.org/linux-rdma/20231113115726.12762-1-guoqing.jiang@linux.dev/T/#t
Thanks,
Guoqing
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V4 00/18] Cleanup for siw
2023-11-13 11:59 ` Guoqing Jiang
@ 2023-11-13 12:38 ` Leon Romanovsky
0 siblings, 0 replies; 7+ messages in thread
From: Leon Romanovsky @ 2023-11-13 12:38 UTC (permalink / raw)
To: Guoqing Jiang; +Cc: bmt, jgg, linux-rdma
On Mon, Nov 13, 2023 at 07:59:27PM +0800, Guoqing Jiang wrote:
>
>
> On 11/13/23 16:38, Leon Romanovsky wrote:
> > On Fri, Oct 27, 2023 at 09:26:26PM +0800, Guoqing Jiang wrote:
> > > V4 changes:
> > > 1. add Acked-by tags.
> > > 2. update patch 3 and patch 12 per Bernard's review.
> > > 3. update patch header in patch 18.
> > >
> > > V3 changes:
> > > 1. add Acked-by tags.
> > > 2. drop 2 patches and address other comments.
> > >
> > > Appreciate for Bernard's review!
> > >
> > > V2 changes:
> > > 1. address W=1 warning in patch 12 and 19 per the report from lkp.
> > > 2. add one more patch (20th).
> > >
> > > Hi,
> > >
> > > This series aim to cleanup siw code, please review and comment!
> > This series wasn't sent properly and it doesn't exist in patchworks and lore.
> > Please resend it properly.
>
> Done.
>
> https://lore.kernel.org/linux-rdma/20231113115726.12762-1-guoqing.jiang@linux.dev/T/#t
Thanks
>
> Thanks,
> Guoqing
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-11-13 12:38 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20231027132644.29347-1-guoqing.jiang@linux.dev>
[not found] ` <20231027132644.29347-3-guoqing.jiang@linux.dev>
2023-10-30 13:34 ` [PATCH V4 02/18] RDMA/siw: Introduce siw_update_skb_rcvd Bernard Metzler
[not found] ` <20231027132644.29347-13-guoqing.jiang@linux.dev>
2023-10-30 13:35 ` [PATCH V4 12/18] RDMA/siw: Introduce siw_free_cm_id Bernard Metzler
[not found] ` <20231027132644.29347-9-guoqing.jiang@linux.dev>
2023-10-30 13:37 ` [PATCH V4 08/18] RDMA/siw: Factor out siw_rx_data helper Bernard Metzler
[not found] ` <20231027132644.29347-2-guoqing.jiang@linux.dev>
2023-10-30 13:43 ` [PATCH V4 01/18] RDMA/siw: Introduce siw_get_page Bernard Metzler
2023-11-13 8:38 ` [PATCH V4 00/18] Cleanup for siw Leon Romanovsky
2023-11-13 11:59 ` Guoqing Jiang
2023-11-13 12:38 ` Leon Romanovsky
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox