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]
Message-ID: <20090511105354.GB30651@shadowen.org>
Date:	Mon, 11 May 2009 11:53:54 +0100
From:	Andy Whitcroft <apw@...onical.com>
To:	Oleg Nesterov <oleg@...hat.com>
Cc:	Ingo Molnar <mingo@...e.hu>, Roland McGrath <roland@...hat.com>,
	linux-kernel@...r.kernel.org
Subject: Re: [FOR REVIEW, PATCH 2/2] introduce "struct wait_opts" to
	simplify do_wait() pathes

On Sat, May 09, 2009 at 06:15:06PM +0200, Oleg Nesterov wrote:
> (add Andy)
> 
> On 05/07, Ingo Molnar wrote:
> >
> > * Oleg Nesterov <oleg@...hat.com> wrote:
> >
> > > On 05/06, Ingo Molnar wrote:
> > > >
> > > > One small nit with the definition above: when using vertical spacing
> > > > (which really looks nice) we tend to put the asterix to the type
> > > > itself, not to the variable. I.e.:
> > > >
> > > > 	enum pid_type		wtype;
> > > > 	struct pid *		wpid;
> > > > 	int			wflags;

My expectation would normally be that this would be written more as:

 	enum pid_type		wtype;
 	struct pid		*wpid;
 	int			wflags;

(more explanation below)

> > > >
> > > > ( This is done to separate the field name from the type - the
> > > >   pointer nature of the field is part of the type, not part of the
> > > >   name. )
> > >
> > > Indeed, I like this more too. But checkpatch.pl disagrees!
> >
> > That's probably a checkpatch bug mistaking * for multiplication -
> > ignore checkpatch in that case and please report it to Andy
> > Withcroft as well as well.

This is a C'ism.  The pointerness is not part of the type in C, where as
it is in C++.  In C a char * is a pointer to the type char (classically
written as "char *var").  In C++ char * is of type pointer to char
(classically written as "char* var").

> No, this is not a bug. From scripts/checkpatch.pl
> 
> 	1667                          # Should not end with a space.
> 	1668                          $to =~ s/\s+$//;
> 
> checkpatch explicitely dislikes "type * name". I think this is
> not really right, but I won't insist. Perhaps it is better to
> allow tabs before name at least, because this likely means the
> code really tries ro look good.

So yes the current behaviour is as designed.  We are aiming for a
consistent style not necessarily one any of us actually wholy agrees
with.  If the right people think this deserves relaxing we can revisit
that decision.

> Btw, can't resist,
> 
> 	while ($to =~ s/\*\s+\*/\*\*/) {
> 	}
> 
> I think this can be simplified to
> 
> 	$to =~ s/(?<=\*)\s+//g;

Heh quite possibly.  But the first is enough like line noise for me!
The latter is primarily scary.

> Oleg.

Thanks.

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