On Thu, 21 Jul 2022 22:38:25 +0800 Tao Zhou <tao.zhou@xxxxxxxxx> wrote: > > +static int enable_monitor(struct rv_monitor_def *mdef) > > +{ > > + int retval; > > + > > + if (!mdef->monitor->enabled) { > > + retval = mdef->monitor->enable(); > > + if (retval) > > + return retval; > > + } > > + > > + mdef->monitor->enabled = 1; > > This should be placed at the end of the last if block. Otherwise > another assignment may be duplicated because it is already 1 now. > no?(not sure how compiler treat this..) It really doesn't matter, it will just sent enabled to one even though it's already one. You could simplify this to be: static int enable_monitor(struct rv_monitor_def *mdef) { int retval; if (mdef->monitor->enabled) return 0; retval = mdef->monitor->enable(); if (!retval) mdef->monitor->enabled = 1; return retval; } -- Steve