On Mon, Aug 02, 2021 at 08:50:22PM -0500, Pete Zaitcev wrote: > On Tue, 3 Aug 2021 01:28:06 +0100 > Salah Triki <salah.triki@xxxxxxxxx> wrote: > > > Replace conditional statement with min() in order to make code cleaner. Issue > > found by coccinelle. > > > +++ b/drivers/usb/class/usblp.c > > request, !!dir, recip, value, index, len, retval); > > - return retval < 0 ? retval : 0; > > + return min(retval, 0); > > } > > I'm very much against this change. The function min() is there > for numeric values. But here we have a situation where we > do one thing if there was an error, and another thing if > there was no error. > > This sort of abuse is exactly why blindly clicking heels > whenever a tool tells you is not optimal. > > If the objective is to shut the tool up, please consider > the following instead: > > diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c > index 9596e4279294..bbcbcf199fa9 100644 > --- a/drivers/usb/class/usblp.c > +++ b/drivers/usb/class/usblp.c > @@ -264,7 +264,9 @@ static int usblp_ctrl_msg(struct usblp *usblp, int request, int type, int dir, i > dev_dbg(&usblp->intf->dev, > "usblp_control_msg: rq: 0x%02x dir: %d recip: %d value: %d idx: %d len: %#x result: %d\n", > request, !!dir, recip, value, index, len, retval); > - return retval < 0 ? retval : 0; > + if (retval < 0) > + return retval; > + return 0; > } I agree with Pete here, this is the "correct" fix for this, using min() is not ok here. thanks, greg k-h