From: Yongqiang Guo <guoyongqiang12@huawei.com> urma inclusion category: feature bugzilla: https://gitee.com/openeuler/release-management/issues/ID3WJX ---------------------------------------------- This patch resolves the issue of the tp_type field being lost in ioctl call during the connection establishment between urma_import_jetty and urma_bind_jetty, which causes consistent RC connection establishment failures. Signed-off-by: Yongqiang Guo <guoyongqiang12@huawei.com> --- drivers/ub/urma/uburma/uburma_cmd.c | 4 ++++ drivers/ub/urma/uburma/uburma_cmd.h | 4 ++++ drivers/ub/urma/uburma/uburma_cmd_tlv.c | 4 ++++ drivers/ub/urma/uburma/uburma_cmd_tlv.h | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/drivers/ub/urma/uburma/uburma_cmd.c b/drivers/ub/urma/uburma/uburma_cmd.c index 2c32cf62bddc..79cbb7a999dd 100644 --- a/drivers/ub/urma/uburma/uburma_cmd.c +++ b/drivers/ub/urma/uburma/uburma_cmd.c @@ -1668,6 +1668,7 @@ static int uburma_cmd_import_jfr(struct ubcore_device *ubc_dev, cfg.flag.value = arg.in.flag; cfg.token_value.token = arg.in.token; cfg.trans_mode = arg.in.trans_mode; + cfg.tp_type = (enum ubcore_tp_type)arg.in.tp_type; cfg.eid_index = file->ucontext->eid_index; fill_udata(&udata, file->ucontext, &arg.udata); @@ -1724,6 +1725,7 @@ static int uburma_cmd_import_jfr_ex(struct ubcore_device *ubc_dev, cfg.flag.value = arg.in.flag; cfg.token_value.token = arg.in.token; cfg.trans_mode = arg.in.trans_mode; + cfg.tp_type = (enum ubcore_tp_type)arg.in.tp_type; cfg.eid_index = file->ucontext->eid_index; active_tp_cfg.tp_handle.value = arg.in.tp_handle; @@ -1812,6 +1814,7 @@ static int uburma_cmd_import_jetty(struct ubcore_device *ubc_dev, cfg.flag.value = arg.in.flag; cfg.policy = (enum ubcore_jetty_grp_policy)arg.in.policy; cfg.type = (enum ubcore_target_type)arg.in.type; + cfg.tp_type = (enum ubcore_tp_type)arg.in.tp_type; cfg.eid_index = file->ucontext->eid_index; fill_udata(&udata, file->ucontext, &arg.udata); @@ -3045,6 +3048,7 @@ static int uburma_cmd_import_jetty_ex(struct ubcore_device *ubc_dev, cfg.flag.value = arg.in.flag; cfg.policy = (enum ubcore_jetty_grp_policy)arg.in.policy; cfg.type = (enum ubcore_target_type)arg.in.type; + cfg.tp_type = (enum ubcore_tp_type)arg.in.tp_type; cfg.eid_index = file->ucontext->eid_index; active_tp_cfg.tp_handle.value = arg.in.tp_handle; diff --git a/drivers/ub/urma/uburma/uburma_cmd.h b/drivers/ub/urma/uburma/uburma_cmd.h index 547eb5a27266..ef5dc2db5e52 100644 --- a/drivers/ub/urma/uburma/uburma_cmd.h +++ b/drivers/ub/urma/uburma/uburma_cmd.h @@ -390,6 +390,7 @@ struct uburma_cmd_import_jfr { /* correspond to urma_token_t */ uint32_t token; uint32_t trans_mode; + uint32_t tp_type; } in; struct { uint32_t tpn; @@ -407,6 +408,7 @@ struct uburma_cmd_import_jfr_ex { /* correspond to ubcore_token */ uint32_t token; uint32_t trans_mode; + uint32_t tp_type; /* correspond to struct ubcore_active_tp_cfg */ uint64_t tp_handle; uint64_t peer_tp_handle; @@ -546,6 +548,7 @@ struct uburma_cmd_import_jetty { uint32_t trans_mode; uint32_t policy; uint32_t type; + uint32_t tp_type; } in; struct { uint32_t tpn; @@ -565,6 +568,7 @@ struct uburma_cmd_import_jetty_ex { uint32_t trans_mode; uint32_t policy; uint32_t type; + uint32_t tp_type; /* correspond to struct ubcore_active_tp_cfg */ uint64_t tp_handle; uint64_t peer_tp_handle; diff --git a/drivers/ub/urma/uburma/uburma_cmd_tlv.c b/drivers/ub/urma/uburma/uburma_cmd_tlv.c index 41df179f0654..028be3acc6a7 100644 --- a/drivers/ub/urma/uburma/uburma_cmd_tlv.c +++ b/drivers/ub/urma/uburma/uburma_cmd_tlv.c @@ -588,6 +588,7 @@ uburma_import_jfr_fill_spec_in(void *arg_addr, SPEC(s++, IMPORT_JFR_IN_FLAG, arg->in.flag); SPEC(s++, IMPORT_JFR_IN_TOKEN, arg->in.token); SPEC(s++, IMPORT_JFR_IN_TRANS_MODE, arg->in.trans_mode); + SPEC(s++, IMPORT_JFR_IN_TP_TYPE, arg->in.tp_type); SPEC(s++, IMPORT_JFR_IN_UDATA, arg->udata); } @@ -805,6 +806,7 @@ uburma_import_jetty_fill_spec_in(void *arg_addr, SPEC(s++, IMPORT_JETTY_IN_TRANS_MODE, arg->in.trans_mode); SPEC(s++, IMPORT_JETTY_IN_POLICY, arg->in.policy); SPEC(s++, IMPORT_JETTY_IN_TYPE, arg->in.type); + SPEC(s++, IMPORT_JETTY_IN_TP_TYPE, arg->in.tp_type); SPEC(s++, IMPORT_JETTY_IN_UDATA, arg->udata); } @@ -1287,6 +1289,7 @@ uburma_import_jetty_ex_fill_spec_in(void *arg_addr, SPEC(s++, IMPORT_JETTY_EX_IN_TRANS_MODE, arg->in.trans_mode); SPEC(s++, IMPORT_JETTY_EX_IN_POLICY, arg->in.policy); SPEC(s++, IMPORT_JETTY_EX_IN_TYPE, arg->in.type); + SPEC(s++, IMPORT_JETTY_EX_IN_TP_TYPE, arg->in.tp_type); SPEC(s++, IMPORT_JETTY_EX_IN_TP_HANDLE, arg->in.tp_handle); SPEC(s++, IMPORT_JETTY_EX_IN_PEER_TP_HANDLE, arg->in.peer_tp_handle); @@ -1320,6 +1323,7 @@ uburma_import_jfr_ex_fill_spec_in(void *arg_addr, SPEC(s++, IMPORT_JFR_EX_IN_FLAG, arg->in.flag); SPEC(s++, IMPORT_JFR_EX_IN_TOKEN, arg->in.token); SPEC(s++, IMPORT_JFR_EX_IN_TRANS_MODE, arg->in.trans_mode); + SPEC(s++, IMPORT_JFR_EX_IN_TP_TYPE, arg->in.tp_type); SPEC(s++, IMPORT_JFR_EX_IN_TP_HANDLE, arg->in.tp_handle); SPEC(s++, IMPORT_JFR_EX_IN_PEER_TP_HANDLE, arg->in.peer_tp_handle); diff --git a/drivers/ub/urma/uburma/uburma_cmd_tlv.h b/drivers/ub/urma/uburma/uburma_cmd_tlv.h index c79cfc489e85..7dc179c70ded 100644 --- a/drivers/ub/urma/uburma/uburma_cmd_tlv.h +++ b/drivers/ub/urma/uburma/uburma_cmd_tlv.h @@ -382,6 +382,7 @@ enum uburma_cmd_import_jfr_type { IMPORT_JFR_IN_FLAG, IMPORT_JFR_IN_TOKEN, IMPORT_JFR_IN_TRANS_MODE, + IMPORT_JFR_IN_TP_TYPE, IMPORT_JFR_IN_UDATA, /* Consider udata as an ordinary member of in specs */ IMPORT_JFR_IN_NUM, /* Only for calculating number of types */ /* Out type */ @@ -399,6 +400,7 @@ enum uburma_cmd_import_jfr_ex_type { IMPORT_JFR_EX_IN_FLAG, IMPORT_JFR_EX_IN_TOKEN, IMPORT_JFR_EX_IN_TRANS_MODE, + IMPORT_JFR_EX_IN_TP_TYPE, IMPORT_JFR_EX_IN_TP_HANDLE, IMPORT_JFR_EX_IN_PEER_TP_HANDLE, IMPORT_JFR_EX_IN_TAG, @@ -539,6 +541,7 @@ enum uburma_cmd_import_jetty_type { IMPORT_JETTY_IN_TRANS_MODE, IMPORT_JETTY_IN_POLICY, IMPORT_JETTY_IN_TYPE, + IMPORT_JETTY_IN_TP_TYPE, IMPORT_JETTY_IN_UDATA, /* Consider udata as an in/out attr */ IMPORT_JETTY_IN_NUM, /* Only for calculating number of types */ /* Out type */ @@ -558,6 +561,7 @@ enum uburma_cmd_import_jetty_ex_type { IMPORT_JETTY_EX_IN_TRANS_MODE, IMPORT_JETTY_EX_IN_POLICY, IMPORT_JETTY_EX_IN_TYPE, + IMPORT_JETTY_EX_IN_TP_TYPE, IMPORT_JETTY_EX_IN_TP_HANDLE, IMPORT_JETTY_EX_IN_PEER_TP_HANDLE, IMPORT_JETTY_EX_IN_TAG, -- 2.34.1