在 2018/1/4 5:19, Jason Gunthorpe 写道: > On Wed, Jan 03, 2018 at 10:44:05AM +0800, Lijun Ou wrote: >> +static void set_access_flags(struct hns_roce_qp *hr_qp, >> + struct hns_roce_v2_qp_context *context, >> + struct hns_roce_v2_qp_context *qpc_mask, >> + const struct ib_qp_attr *attr, int attr_mask) >> +{ >> + u8 dest_rd_atomic; >> + u32 access_flags; >> + >> + dest_rd_atomic = !!(attr_mask & IB_QP_MAX_DEST_RD_ATOMIC) ? >> + attr->max_dest_rd_atomic : hr_qp->resp_depth; >> + >> + access_flags = !!(attr_mask & IB_QP_ACCESS_FLAGS) ? >> + attr->qp_access_flags : hr_qp->atomic_rd_en; > > These !! are un-needed when used in a boolean context like ?: > >> + if (!dest_rd_atomic) >> + access_flags &= IB_ACCESS_REMOTE_WRITE; >> + >> + roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_RRE_S, >> + !!(access_flags & IB_ACCESS_REMOTE_READ)); >> + roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_RRE_S, 0); >> + >> + roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_RWE_S, >> + !!(access_flags & IB_ACCESS_REMOTE_WRITE)); >> + roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_RWE_S, 0); >> + >> + roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_ATE_S, >> + !!(access_flags & IB_ACCESS_REMOTE_ATOMIC)); > > And having something called 'set_bit' that does not accept a bool is > just asking for bugs. You should fix the macro to do the !! and remove > it from all the callers. > > I took this as is, you can send a cleanup someday. > > Jason > Ok, thanks. I will do it in next future. > > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html