On Wed, Mar 15, 2017 at 10:44:28AM +1100, Tobin C. Harding wrote:
> Driver code is non-uniform in its use of error return codes, identical
> failures are returning different error codes. Return is on failure
> when checking struct magic numbers. Error codes used include -ENODEV,
> -ENXIO, -EIO, and -EFAULT.
> 
> Use -ENXIO. Justification is that usual call includes a check that the
> struct is non-NULL OR'd with check on the magic number.
> 
> #define ENXIO 6 /* No such device or address */
> 
> Seems like a good fit. Also this choice results in the minimum number
> of files touched.
> 
> Pick one error code, ENXIO. Change all functions to use the same error
> return code for the cases of failed magic number checks.
> 
> Signed-off-by: Tobin C. Harding <m...@tobin.cc>
> ---
>  drivers/staging/dgnc/dgnc_mgmt.c |  2 +-
>  drivers/staging/dgnc/dgnc_tty.c  | 44 
> ++++++++++++++++++++--------------------
>  2 files changed, 23 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/staging/dgnc/dgnc_mgmt.c 
> b/drivers/staging/dgnc/dgnc_mgmt.c
> index ee8a626..f134222 100644
> --- a/drivers/staging/dgnc/dgnc_mgmt.c
> +++ b/drivers/staging/dgnc/dgnc_mgmt.c
> @@ -187,7 +187,7 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, 
> unsigned long arg)
>               ch = dgnc_board[board]->channels[channel];
>  
>               if (!ch || ch->magic != DGNC_CHANNEL_MAGIC)
> -                     return -ENODEV;
> +                     return -ENXIO;

No, this really means the device is gone.  And the whole ->magic stuff
needs to just be deleted, it's not needed at all.

thanks,

greg k-h
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to