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:	Tue, 6 Jan 2009 10:36:24 +0100
From:	Heiko Carstens <heiko.carstens@...ibm.com>
To:	Steven Rostedt <rostedt@...dmis.org>
Cc:	Sam Ravnborg <sam@...nborg.org>,
	LKML <linux-kernel@...r.kernel.org>,
	Steven Rostedt <srostedt@...hat.com>,
	Ingo Molnar <mingo@...e.hu>,
	"David S. Miller" <davem@...emloft.net>,
	sparclinux <sparclinux@...r.kernel.org>
Subject: Re: ftrace breaks sparc64 build

On Mon, Jan 05, 2009 at 09:07:05PM -0500, Steven Rostedt wrote:
> On Tue, 6 Jan 2009, Heiko Carstens wrote:
> > On Mon, Jan 05, 2009 at 05:14:22PM -0500, Steven Rostedt wrote:
> > > On Mon, 5 Jan 2009, Sam Ravnborg wrote:
> > > 
> > > > > Is this all sparc cross compiler?  I'm trying to reproduce it on x86 with 
> > > > > no avail :-(
> > > > > 
> > > > > I would like to test other ways to change the macro, but to do so, I need 
> > > > > to get a compiler that will produce the warnings that you see. What 
> > > > > version of gcc are you using?
> > > > 
> > > > I used crosstool to build a 3.4.5 gcc:
> > > 
> > > Hmm, that's a pretty old compiler. I wonder if it wouldn't just help
> > > if we just make the branch tracer dependent on the compiler used. That is.
> > > 
> > > #if defined(CONFIG_PROFILE_ALL_BRANCHES) && (__GNUC__ >= 4)
> > > #define if(cond) ...
> > > 
> > > Or something :-/
> > 
> > FWIW, on s390 with gcc 4.3.2 and an allyesconfig I get these:
> > 
> >   CC      arch/s390/mm/extmem.o
> > arch/s390/mm/extmem.c: In function 'segment_modify_shared':
> > arch/s390/mm/extmem.c:572: warning: 'end_addr' may be used uninitialized in this function
> > arch/s390/mm/extmem.c:572: warning: 'start_addr' may be used uninitialized in this function
> > arch/s390/mm/extmem.c: In function 'query_segment_type':
> > arch/s390/mm/extmem.c:259: warning: 'vmrc' may be used uninitialized in this function
> > 
> > Switching off PROFILE_ALL_BRANCHES makes the warnings go away again.
> 
> Now that is really interesting. Because end_addr and start_addr are 
> initialized via functions:
> 
> 	if (x)
> 		init_me(a, &y);
> 	else
> 		init_me(b, &y);
> 
> Which actually does not make sense why turning off PROFILE_ALL_BRANCHES 
> would affect this :-/

They are not necessarily initialized via 'initme'. Only if it returns with
a return value >= 0. So it's a bit more complex:

	if (x)
		rc = init_me(a, &y);
	else
		rc = init_me(b, &y);
	if (rc < 0)
		/* y unitialized */
		return;
	use(y);
--
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