Hello, On 10/15/2018 11:37 AM, Alessandro Rubini wrote: >> during a review I claimed that PTR_ERR should only be used if IS_ERR was >> already checked. The rationale isn't obvious though and Thierry >> suggested to keep the code as is and not introduce an IS_ERR check. > > The rationale is the same ch11 you linked to: "any other value > is a valid pointer". It isn't usefult to convert to long sth that > your are not using as a long. You should not pass it to strerror(-err) > for example. ok, that's obvious that this should be forbidden. > OTOH I admit you can compare any value with -EINVAL, after PTR_ERR. > But in general you first detect the error condition and then split > among error (or print a message according to the exact value. > >> maybe something like "On an Alpha it is important because >> not doing it results in a bus error there." > > No, nothing that exotic. OK, if there is nothing that exotic, the patch is probably of little use. > You said: > >> Thierry suggested to keep the code as is and not introduce an IS_ERR check. > > I wonder where. Sure no extra check in the header, that would be > extra wasted time in every caller. If it's a specific caller place, > it may make sense to avoid the check, I don't know the details. http://patchwork.ozlabs.org/patch/981774/#2009383 The obvious alternatives would be: if (PTR_ERR_OR_ZERO(imx_chip->pwm_gpiod) == -EPROBE_DEFER) if (imx_chip->pwm_gpiod == ERR_PTR(-EPROBE_DEFER)) but if no kittens die anywhere it's probably of little value to argue here. > As for the specific patch you propose, I'm unsure it's useful. Maybe > we should remember that "this returns the equivalent of "-errno" if > IS_ERR() is true", but I'm personally not much for overcommenting: > It's a simple cast and there are a zillion users to see how exactly > this works if anyone is uncertain. ack. Thanks for your input Uwe