Skip to content

Commit 111d467

Browse files
author
Paolo Abeni
committed
Merge branch 'two-fixes-for-smcrv2'
Wen Gu says: ==================== Two fixes for SMCRv2 This patch set includes two bugfix for SMCRv2. ==================== Link: https://lore.kernel.org/r/1685101741-74826-1-git-send-email-guwen@linux.alibaba.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2 parents 020c69c + 71c6aa0 commit 111d467

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

net/smc/smc_llc.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,10 @@ static struct smc_buf_desc *smc_llc_get_next_rmb(struct smc_link_group *lgr,
578578
{
579579
struct smc_buf_desc *buf_next;
580580

581-
if (!buf_pos || list_is_last(&buf_pos->list, &lgr->rmbs[*buf_lst])) {
581+
if (!buf_pos)
582+
return _smc_llc_get_next_rmb(lgr, buf_lst);
583+
584+
if (list_is_last(&buf_pos->list, &lgr->rmbs[*buf_lst])) {
582585
(*buf_lst)++;
583586
return _smc_llc_get_next_rmb(lgr, buf_lst);
584587
}
@@ -614,6 +617,8 @@ static int smc_llc_fill_ext_v2(struct smc_llc_msg_add_link_v2_ext *ext,
614617
goto out;
615618
buf_pos = smc_llc_get_first_rmb(lgr, &buf_lst);
616619
for (i = 0; i < ext->num_rkeys; i++) {
620+
while (buf_pos && !(buf_pos)->used)
621+
buf_pos = smc_llc_get_next_rmb(lgr, &buf_lst, buf_pos);
617622
if (!buf_pos)
618623
break;
619624
rmb = buf_pos;
@@ -623,8 +628,6 @@ static int smc_llc_fill_ext_v2(struct smc_llc_msg_add_link_v2_ext *ext,
623628
cpu_to_be64((uintptr_t)rmb->cpu_addr) :
624629
cpu_to_be64((u64)sg_dma_address(rmb->sgt[lnk_idx].sgl));
625630
buf_pos = smc_llc_get_next_rmb(lgr, &buf_lst, buf_pos);
626-
while (buf_pos && !(buf_pos)->used)
627-
buf_pos = smc_llc_get_next_rmb(lgr, &buf_lst, buf_pos);
628631
}
629632
len += i * sizeof(ext->rt[0]);
630633
out:

0 commit comments

Comments
 (0)