Re: [PATCH v3] backlight: report error on failure

From: Sudip Mukherjee
Date: Tue May 09 2017 - 10:57:10 EST


On Mon, May 08, 2017 at 04:45:17PM +0100, Daniel Thompson wrote:
> On 06/05/17 19:00, Sudip Mukherjee wrote:
> >It is possible to update the backlight power and the brightness using
> >the sysfs and on writing it either returns the count or if the callback
> >function does not exist then returns the error code 'ENXIO'.
> >
> >We have a situation where the userspace client is writing to the sysfs
> >to update the power and since the callback function exists the client
> >receives the return value as count and considers the operation to be
> >successful. That is correct as the write to the sysfs was successful.
> >But there is no way to know if the actual operation was done or not.
> >
> >backlight_update_status() returns the error code if it fails. Pass that
> >to the userspace client who is trying to update the power so that the
> >client knows that the operation failed.
> >
> >This is not a change of ABI as the userspace expects an error of ENXIO,
> >after this patch the range of errors that are returned to the userspace
> >will increase.
>
> This comment is wrong, no code path through
> backlight_device_set_brightness() can possibly return ENXIO.

I am seeing backlight_device_set_brightness() can return ENXIO
if bd->ops is NULL. ofcourse I have not tried to test by passing NULL as
backlight_ops in backlight_device_register().

>
> My review comment to v1 was:
> > Strictly speaking this is an ABI change. Its probably a harmless one
> > making it ok to change but I'm interested what testing or code review
> > you've done to be sure the userspace doesn't do odd things if the
> > kernel starts to pass through errors.
>
> I find myself somewhat surprised to find the above review comment addressed
> by adding text to the patch header denying that there is a change of ABI...

Yes, sorry about this. I got confused between API and ABI. :(

So, this is an ABI change (not API change, as I misunderstood) as now
the userspace might get some more error codes as return which it was not
expecting.
How will you want me to test and review it? I can make a list of the
other drivers which are registering the backlight and review what they
are doing if there is an error in the backlight or brightness. And then
we can have a statistics how many of the drivers will be returning extra
error codes. I have been seeing few drivers and i noticed all of them
are just returning 0 at the end.

Sorry again for the confusion.


Regards
Sudip