diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c index edf62652f9d3..7d52d3036208 100644 --- a/drivers/infiniband/core/verbs.c +++ b/drivers/infiniband/core/verbs.c @@ -1011,7 +1011,8 @@ int rdma_modify_ah(struct ib_ah *ah, struct rdma_ah_attr *ah_attr) ah->device->ops.modify_ah(ah, ah_attr) : -EOPNOTSUPP; - ah->sgid_attr = rdma_update_sgid_attr(ah_attr, ah->sgid_attr); + if (!ret) + ah->sgid_attr = rdma_update_sgid_attr(ah_attr, ah->sgid_attr); rdma_unfill_sgid_attr(ah_attr, old_sgid_attr); return ret; }