lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 6 Jul 2015 19:36:52 -0700
From:	Greg KH <greg@...ah.com>
To:	Joe Perches <joe@...ches.com>
Cc:	Vasiliy Korchagin <vasiliy.korchagin@...il.com>,
	oleg.drokin@...el.com, devel@...verdev.osuosl.org,
	andreas.dilger@...el.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] staging: lustre: obdclass: fix macro coding style issue
 in uuid.c

On Fri, Jun 26, 2015 at 11:04:49PM -0700, Joe Perches wrote:
> On Sat, 2015-06-27 at 06:36 +0100, Vasiliy Korchagin wrote:
> > This patch fixes the checkpatch.pl error:
> > 
> > ERROR: Macros with complex values should be enclosed in parentheses
> > +#define CONSUME(val, ptr) (val) = consume(sizeof(val), (ptr))
> > 
> > by expanding it as this macro is used only once.
> []
> > Notes:
> >     Here is another version with macro expansion. Inline function expansion doesn't
> >     seem like a good idea to me as it would make things overcomplicated.
> 
> It looks like it'd be simpler to use vsprintf extension %pU
> ---
>  drivers/staging/lustre/lustre/obdclass/uuid.c | 34 +--------------------------
>  1 file changed, 1 insertion(+), 33 deletions(-)
> 
> diff --git a/drivers/staging/lustre/lustre/obdclass/uuid.c b/drivers/staging/lustre/lustre/obdclass/uuid.c
> index ff0a01b..b0b0157 100644
> --- a/drivers/staging/lustre/lustre/obdclass/uuid.c
> +++ b/drivers/staging/lustre/lustre/obdclass/uuid.c
> @@ -43,40 +43,8 @@
>  #include "../include/obd_support.h"
>  #include "../include/obd_class.h"
>  
> -
> -static inline __u32 consume(int nob, __u8 **ptr)
> -{
> -	__u32 value;
> -
> -	LASSERT(nob <= sizeof(value));
> -
> -	for (value = 0; nob > 0; --nob)
> -		value = (value << 8) | *((*ptr)++);
> -	return value;
> -}
> -
> -#define CONSUME(val, ptr) (val) = consume(sizeof(val), (ptr))
> -
> -static void uuid_unpack(class_uuid_t in, __u16 *uu, int nr)
> -{
> -	__u8 *ptr = in;
> -
> -	LASSERT(nr * sizeof(*uu) == sizeof(class_uuid_t));
> -
> -	while (nr-- > 0)
> -		CONSUME(uu[nr], &ptr);
> -}
> -
>  void class_uuid_unparse(class_uuid_t uu, struct obd_uuid *out)
>  {
> -	/* uu as an array of __u16's */
> -	__u16 uuid[sizeof(class_uuid_t) / sizeof(__u16)];
> -
> -	CLASSERT(ARRAY_SIZE(uuid) == 8);
> -
> -	uuid_unpack(uu, uuid, ARRAY_SIZE(uuid));
> -	sprintf(out->uuid, "%04x%04x-%04x-%04x-%04x-%04x%04x%04x",
> -		uuid[0], uuid[1], uuid[2], uuid[3],
> -		uuid[4], uuid[5], uuid[6], uuid[7]);
> +	sprintf(out->uuid, "%pU", uu);
>  }
>  EXPORT_SYMBOL(class_uuid_unparse);

I agree, much better, can you resend this in a form I can apply?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ