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:	Sat, 29 Dec 2007 01:18:02 -0800 (PST)
From:	David Miller <davem@...emloft.net>
To:	bunk@...nel.org
Cc:	errandir_news@....eclipse.co.uk, m.kozlowski@...land.pl,
	akpm@...ux-foundation.org, linux-kernel@...r.kernel.org,
	sparclinux@...r.kernel.org
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

From: Adrian Bunk <bunk@...nel.org>
Date: Sat, 29 Dec 2007 11:06:19 +0200

> On Sat, Dec 29, 2007 at 12:54:08AM -0800, David Miller wrote:
> > From: Adrian Bunk <bunk@...nel.org>
> > Date: Sat, 29 Dec 2007 10:48:46 +0200
> > 
> > > On Sat, Dec 29, 2007 at 12:14:11AM -0800, David Miller wrote:
> > > > That's why I'm not worried about this issue and it's not critical at
> > > > all.
> > > 
> > > If a module calls sunserial_console_match() that's an Oops.
> > 
> > That's true.
> > 
> > I'm trying to figure out a way to fix this.
> 
> #ifdef FOO_CONSOLE around the sunserial_console_match() calls in the  
> drivers should work.

It absolutely doesn't work, I tried this, see my other reply.

The issue is add_preferred_console() is __init, driver probe calls are
__devinit which are either __init or not __init.

So even with the FOO_CONSOLE ifdef (or something similar like the
patch I posted) we'll still get section mismatch warnings.

> If you consider this too many #ifdef's, an alternative solution would be 
> doing the following in drivers/serial/suncore.h:
> 
> #ifndef MODULE
> extern int sunserial_console_match(struct console *, struct device_node *,
>                                    struct uart_driver *, int);
> #else
> static inline int sunserial_console_match(struct console *, struct device_node *,
>                                           struct uart_driver *, int);
> { return 0; }
> #endif

Just removing the __init tag from add_preferred_console() (and
subsequently sunserial_console_match()) is probably the easiest way to
fix all of this.
--
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