[PATCH] staging: dgnc: replace DGNC_VERIFY_BOARD macro

Greg KH gregkh at linuxfoundation.org
Mon Oct 17 08:29:31 UTC 2016


On Fri, Oct 14, 2016 at 07:22:57PM +0200, Fernando Apesteguia wrote:
> The patch replaces the macro with a function (dgnc_get_board) and
> substitutes the macro statement with a call to that function and a
> comparison on the returned value.
> 
> This removes a checkpatch warning.
> 
> Signed-off-by: Fernando Apesteguia <fernando.apesteguia at gmail.com>
> ---
>  drivers/staging/dgnc/dgnc_sysfs.c | 74 +++++++++++++++++++++++++++------------
>  1 file changed, 51 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/staging/dgnc/dgnc_sysfs.c b/drivers/staging/dgnc/dgnc_sysfs.c
> index 290bf6e..3ea23a9 100644
> --- a/drivers/staging/dgnc/dgnc_sysfs.c
> +++ b/drivers/staging/dgnc/dgnc_sysfs.c
> @@ -90,17 +90,21 @@ void dgnc_remove_driver_sysfiles(struct pci_driver *dgnc_driver)
>  	driver_remove_file(driverfs, &driver_attr_pollrate);
>  }
>  
> -#define DGNC_VERIFY_BOARD(p, bd)				\
> -	do {							\
> -		if (!p)						\
> -			return 0;				\
> -								\
> -		bd = dev_get_drvdata(p);			\
> -		if (!bd || bd->magic != DGNC_BOARD_MAGIC)	\
> -			return 0;				\
> -		if (bd->state != BOARD_READY)			\
> -			return 0;				\
> -	} while (0)
> +static struct dgnc_board *dgnc_get_board(struct device *p)
> +{
> +	struct dgnc_board *bd;
> +
> +	if (!p)
> +		return NULL;
> +
> +	bd = dev_get_drvdata(p);
> +	if (!bd || bd->magic != DGNC_BOARD_MAGIC)
> +		return NULL;
> +	if (bd->state != BOARD_READY)
> +		return NULL;
> +
> +	return bd;
> +}

No, this macro should be removed entirely as what it does is pointless
in some parts, wrong in others, and not needed at all in the rest :(

I've asked others to fix this up properly in the past, but it doesn't
seem like anyone wants to do the work...

I don't want to take this patch as it will hide the real issues here.

thanks,

greg k-h


More information about the devel mailing list