On 2021/5/12 9:35, Leizhen (ThunderTown) wrote: > > > On 2021/5/12 3:56, Jason Gunthorpe wrote: >> On Mon, May 10, 2021 at 05:08:40PM +0800, Zhen Lei wrote: >>> The statement of the last "if (xxx)" branch is the same as the "else" >>> branch. Delete it to simplify code. >>> >>> No functional change. >>> >>> Signed-off-by: Zhen Lei <thunder.leizhen@xxxxxxxxxx> >>> --- >>> drivers/infiniband/core/cm.c | 4 ---- >>> 1 file changed, 4 deletions(-) >>> >>> diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c >>> index 0ead0d223154011..510beb25f5b8a0b 100644 >>> --- a/drivers/infiniband/core/cm.c >>> +++ b/drivers/infiniband/core/cm.c >>> @@ -668,8 +668,6 @@ static struct cm_id_private *cm_insert_listen(struct cm_id_private *cm_id_priv, >>> link = &(*link)->rb_right; >>> else if (be64_lt(service_id, cur_cm_id_priv->id.service_id)) >>> link = &(*link)->rb_left; >>> - else if (be64_gt(service_id, cur_cm_id_priv->id.service_id)) >>> - link = &(*link)->rb_right; >>> else >>> link = &(*link)->rb_right; >>> } >>> @@ -700,8 +698,6 @@ static struct cm_id_private *cm_find_listen(struct ib_device *device, >>> node = node->rb_right; >>> else if (be64_lt(service_id, cm_id_priv->id.service_id)) >>> node = node->rb_left; >>> - else if (be64_gt(service_id, cm_id_priv->id.service_id)) >>> - node = node->rb_right; >>> else >>> node = node->rb_right; >>> } >> >> I don't like this, if you want to reorganize this function then it >> should be written in the normal pattern for this kind of comparision >> >> if (a < b) >> .. >> else if (a > b) >> .. >> else // a == b >> .. >> >> You can see the a==b clause written explicitly above this if ladder: >> >> if ((cur_cm_id_priv->id.service_mask & service_id) == >> (service_mask & cur_cm_id_priv->id.service_id) && >> (cm_id_priv->id.device == cur_cm_id_priv->id.device)) { > > Right,So we'd better rewrite it with this set of judgments. This is because > the judgment of (a < b) and (a > b) is performed N times before the judgment > of (a == b) is performed. Therefore, the above modification you mentioned can > improve the search performance. This modification may have to be patched separately. Combined with one patch, the description is unclear. > >> >> Which is why the trailing else is just unexectuable code. >> >> Jason >> >> . >>