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:	Wed, 18 Feb 2015 14:42:06 +0100 (CET)
From:	Miroslav Benes <mbenes@...e.cz>
To:	Josh Poimboeuf <jpoimboe@...hat.com>
cc:	Seth Jennings <sjenning@...hat.com>, Jiri Kosina <jkosina@...e.cz>,
	Vojtech Pavlik <vojtech@...e.cz>,
	Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
	live-patching@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH 6/9] livepatch: create per-task consistency model

On Wed, 18 Feb 2015, Josh Poimboeuf wrote:

> On Wed, Feb 18, 2015 at 01:42:56PM +0100, Miroslav Benes wrote:
> > On Tue, 17 Feb 2015, Josh Poimboeuf wrote:
> > 
> > > On Tue, Feb 17, 2015 at 04:48:39PM +0100, Miroslav Benes wrote:
> > > > On Tue, 17 Feb 2015, Josh Poimboeuf wrote:
> > > > 
> > > > > On Mon, Feb 16, 2015 at 03:19:10PM +0100, Miroslav Benes wrote:
> > > 
> > > > > > and externs for functions are redundant.
> > > > > 
> > > > > I agree, but it seems to be the norm in Linux.  I have no idea why.  I'm
> > > > > just following the existing convention.
> > > > 
> > > > Yes, I know. It seems that each author does it differently. You can find 
> > > > both forms even in one header file in the kernel. There is no functional 
> > > > difference AFAIK (it is not the case for variables of course). So as long 
> > > > as we are consistent I do not care. And since we have externs already in 
> > > > livepatch.h... you can scratch this remark if you want to :)
> > > 
> > > Ok.  If there are no objections, let's stick with our existing
> > > nonsensical convention for now :-)
> > 
> > So I was thinking about it again and we should not use bad patterns in our 
> > code from the beginning. Externs do not make sense so let's get rid of 
> > them everywhere (i.e. in the consistency model and also in livepatch.h). 
> > 
> > The C specification talks about extern in context of internal and external 
> > linkages or in context of inline functions but it does not make any sense 
> > to me. Could you look at the specification and tell me if it makes any 
> > sense to you, please?
> 
> Relevant parts from C11:
> 
> 	For an identifier declared with the storage-class specifier extern in a
> 	scope in which a prior declaration of that identifier is visible, if the
> 	prior declaration specifies internal or external linkage, the linkage of
> 	the identifier at the later declaration is the same as the linkage
> 	specified at the prior declaration.  If no prior declaration is visible,
> 	or if the prior declaration specifies no linkage, then the identifier
> 	has external linkage.
> 
> 	If the declaration of an identifier for a function has no storage-class
> 	specifier, its linkage is determined exactly as if it were declared with
> 	the storage-class specifier extern .If the declaration of an identifier
> 	for an object has file scope and no storage-class specifier, its linkage
> 	is external.
> 
> Sounds to me like "extern" is redundant for functions.  I'm fine with
> removing it.  Care to work up a patch for livepatch.h?

Agreed. I'll do that. Thanks.

Miroslav
--
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