On Thu, Jul 29, 2021 at 08:07:15PM -0700, Dipen Patel wrote: > > On 7/1/21 7:24 AM, Kent Gibson wrote: <snip> > > > >> ret = gpiod_direction_output(desc, val); > >> if (ret) > >> return ret; > >> @@ -1152,6 +1186,13 @@ static long linereq_set_config_unlocked(struct linereq *lr, > >> polarity_change); > >> if (ret) > >> return ret; > >> + > >> + /* Check if new config sets hardware assisted clock */ > >> + if (flags & GPIO_V2_LINE_FLAG_EVENT_CLOCK_HARDWARE) { > >> + ret = gpiod_hw_timestamp_control(desc, true); > >> + if (ret) > >> + return ret; > >> + } > >> } > >> > > The error code here can come from the pinctrl timestamp_control(), so it > > should be sanitised before being returned to userspace. > > I do not understand what do you mean by sanitise. I just followed what > > gpiod_direction_output did just above which also returns ret from gpio > > driver code similar to timestamp_control API. > In this context, sanitise means convert any kernel internal error codes to their userspace equivalent before returning them to userspace. Fair enough with the gpiod_direction_output() comparison. I was thinking of a patch Andy recently submitted[1] to sanitise gpiod_request(), which can sometimes return EPROBE_DEFER. But I guess we can wait until we find a case of a driver returning an internal error code and add a sanitiser then. Cheers, Kent. [1] https://www.spinics.net/lists/linux-gpio/msg60998.html