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>
This commit is contained in:
commit
111d467485
@ -578,7 +578,10 @@ static struct smc_buf_desc *smc_llc_get_next_rmb(struct smc_link_group *lgr,
|
||||
{
|
||||
struct smc_buf_desc *buf_next;
|
||||
|
||||
if (!buf_pos || list_is_last(&buf_pos->list, &lgr->rmbs[*buf_lst])) {
|
||||
if (!buf_pos)
|
||||
return _smc_llc_get_next_rmb(lgr, buf_lst);
|
||||
|
||||
if (list_is_last(&buf_pos->list, &lgr->rmbs[*buf_lst])) {
|
||||
(*buf_lst)++;
|
||||
return _smc_llc_get_next_rmb(lgr, buf_lst);
|
||||
}
|
||||
@ -614,6 +617,8 @@ static int smc_llc_fill_ext_v2(struct smc_llc_msg_add_link_v2_ext *ext,
|
||||
goto out;
|
||||
buf_pos = smc_llc_get_first_rmb(lgr, &buf_lst);
|
||||
for (i = 0; i < ext->num_rkeys; i++) {
|
||||
while (buf_pos && !(buf_pos)->used)
|
||||
buf_pos = smc_llc_get_next_rmb(lgr, &buf_lst, buf_pos);
|
||||
if (!buf_pos)
|
||||
break;
|
||||
rmb = buf_pos;
|
||||
@ -623,8 +628,6 @@ static int smc_llc_fill_ext_v2(struct smc_llc_msg_add_link_v2_ext *ext,
|
||||
cpu_to_be64((uintptr_t)rmb->cpu_addr) :
|
||||
cpu_to_be64((u64)sg_dma_address(rmb->sgt[lnk_idx].sgl));
|
||||
buf_pos = smc_llc_get_next_rmb(lgr, &buf_lst, buf_pos);
|
||||
while (buf_pos && !(buf_pos)->used)
|
||||
buf_pos = smc_llc_get_next_rmb(lgr, &buf_lst, buf_pos);
|
||||
}
|
||||
len += i * sizeof(ext->rt[0]);
|
||||
out:
|
||||
|
Loading…
x
Reference in New Issue
Block a user