From: Jarek Poplawski <jarkao2@o2.pl>
To: Gabriel C <nix.or.die@googlemail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
jason.wessel@windriver.com, amitkale@linsyssoft.com
Subject: Re: NETPOLL=y , NETDEVICES=n compile error ( Re: 2.6.23-rc1-mm1 )
Date: Wed, 1 Aug 2007 11:59:21 +0200 [thread overview]
Message-ID: <20070801095920.GA1941@ff.dom.local> (raw)
In-Reply-To: <46AF4F9C.5060000@googlemail.com>
On Tue, Jul 31, 2007 at 05:05:00PM +0200, Gabriel C wrote:
> Jarek Poplawski wrote:
> > On Tue, Jul 31, 2007 at 12:14:36PM +0200, Gabriel C wrote:
> >> Jarek Poplawski wrote:
> >>> On 28-07-2007 20:42, Gabriel C wrote:
> >>>> Andrew Morton wrote:
> >>>>> On Sat, 28 Jul 2007 17:44:45 +0200 Gabriel C <nix.or.die@googlemail.com> wrote:
> >>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> I got this compile error with a randconfig ( http://194.231.229.228/MM/randconfig-auto-82.broken.netpoll.c ).
> >>>>>>
> >>>>>> ...
> >>>>>>
> >>>>>> net/core/netpoll.c: In function 'netpoll_poll':
> >>>>>> net/core/netpoll.c:155: error: 'struct net_device' has no member named 'poll_controller'
> >>>>>> net/core/netpoll.c:159: error: 'struct net_device' has no member named 'poll_controller'
> >>>>>> net/core/netpoll.c: In function 'netpoll_setup':
> >>>>>> net/core/netpoll.c:670: error: 'struct net_device' has no member named 'poll_controller'
> >>>>>> make[2]: *** [net/core/netpoll.o] Error 1
> >>>>>> make[1]: *** [net/core] Error 2
> >>>>>> make: *** [net] Error 2
> >>>>>> make: *** Waiting for unfinished jobs....
> >>>>>>
> >>>>>> ...
> >>>>>>
> >>>>>>
> >>>>>> I think is because KGDBOE selects just NETPOLL.
> >>>>>>
> >>>>> Looks like it.
> >>>>>
> >>>>> Select went and selected NETPOLL and NETPOLL_TRAP but things like
> >>>>> CONFIG_NETDEVICES and CONFIG_NET_POLL_CONTROLLER remain unset. `select'
> >>>>> remains evil.
> >>> ...
> >>>> I think there may be a logical issue ( again if I got it right ).
> >>>> We need some ethernet card to work with kgdboe right ? but we don't have any if !NETDEVICES && !NET_ETHERNET.
> >>>>
> >>>> So maybe some ' depends on ... && NETDEVICES!=n && NET_ETHERNET!=n ' is needed too ?
> >>> IMHO, the only logical issue here is netpoll.c mustn't use
> >>> CONFIG_NET_POLL_CONTROLLER code without #ifdef if it doesn't
> >>> add this dependency itself.
> >>>
> >> Well it does if NETDEVICES && if NET_ETHERNET which booth are N when !NETDEVICES is why KGDBOE uses select and not depends on.
> >
> > "does if XXX" means may "use if XXX".
>
> From what I know means only use "if xxx" on !xxx everything inside the "if xxx" is n and "depends on <something inside the if xxx>
> does not work.
>
> ...
>
> menuconfig FOO
> bool "FOO"
> depends on BAR
> default y
> -- help --
> something
> if FOO
>
> config BAZ
> depends on WHATEVR && !NOT_THIS
>
> menuconfig SOMETHING_ELSE
> ....
> if SOMETHING_ELSE
>
> config BLUBB
> depends on PCI && WHATNOT
>
> endif # SOMETHING_ELSE
>
> config NETPOLL
> def_bool NETCONSOLE
>
> config NETPOLL_TRAP
> bool "Netpoll traffic trapping"
> default n
> depends on NETPOLL
>
> config NET_POLL_CONTROLLER
> def_bool NETPOLL
>
> endif # FOO
>
> Now if you set FOO=n all is gone and your driver have to select whatever it needs from there.
Probably not exactly so...
>From drivers/net/Kconfig:
> # All the following symbols are dependent on NETDEVICES - do not repeat
> # that for each of the symbols.
> if NETDEVICES
So, according to this netpoll could presume NETDEVICES and
NET_POLL_CONTROLLER are always on.
But, as you've found, it's possible to select NETPOLL and !NETDEVICES,
so this comment is at least not precise.
On the other side something like this:
...
endif # NETDEVICES
config NETPOLL
depends on NETDEVICES
def_bool NETCONSOLE
config NETPOLL_TRAP
bool "Netpoll traffic trapping"
default n
depends on NETPOLL
config NET_POLL_CONTROLLER
def_bool NETPOLL
depends on NETPOLL
seems to select NET_POLL_CONTROLLER after selecting NETPOLL, but
still doesn't check for NETDEVICES dependency.
>
> >
> >> Now KGDBOE just selects NETPOLL and NETPOLL_TRAP.
> >> Adding 'select CONFIG_NET_POLL_CONTROLLER' let kgdboe compiles but the question is does it work without any ethernet card ?
> >
> > Why kgdboe should care what netpoll needs? So, I hope, you are adding
> > this select under config NETPOLL. On the other hand, if NETPOLL should
> > depend on NET_POLL_CONTROLLER there is probably no reason to have them
> > both.
>
> NET_POLL_CONTROLLER has def_bool NETPOLL if NETDEVICES .
>
> Net peoples ping ?:)
OK, I wasn't right here: there is no visible reason for both in the
kernel code, but I can imagine there could be some external users of
NET_POLL_CONTROLLER without NETPOLL.
>
> >
> > The "does it work" question isn't logical issue, so it's irrelevant
> > here...
>
> Right irrelevant for the compile error but relevant for the fix in my opinion.
This was kind of joking, but since some people prefer things to work,
and it's hard to do this right (logical) way, some strange (unlogical)
measures have to be done like repeating dependencies here.
Regards,
Jarek P.
next prev parent reply other threads:[~2007-08-01 9:49 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070725040304.111550f4.akpm@linux-foundation.org>
2007-07-25 13:36 ` [-mm patch] one e1000 driver should be enough for everyone Adrian Bunk
2007-07-25 13:48 ` Jeff Garzik
2007-07-25 14:46 ` Adrian Bunk
2007-07-25 15:05 ` Jeff Garzik
2007-07-25 15:21 ` Kok, Auke
2007-07-25 15:23 ` Jeff Garzik
2007-07-25 20:50 ` Andrew Morton
2007-07-25 18:15 ` 2.6.23-rc1-mm1: net/ipv4/fib_trie.c compile error Adrian Bunk
2007-07-26 8:46 ` [RFT] fib_trie: cleanup Stephen Hemminger
2007-07-26 8:49 ` David Miller
2007-07-26 10:32 ` Robert Olsson
2007-07-26 9:04 ` Andrew Morton
2007-07-26 9:15 ` Stephen Hemminger
2007-07-26 10:49 ` [RFC] fib_trie: whitespace cleanup Stephen Hemminger
2007-07-26 15:44 ` Paul E. McKenney
2007-07-27 4:56 ` Andrew Morton
2007-07-30 17:07 ` Paul E. McKenney
2007-07-26 10:43 ` [RFT] fib_trie: macro cleanup Stephen Hemminger
2007-07-26 10:54 ` Andrew Morton
2007-07-28 15:44 ` NETPOLL=y , NETDEVICES=n compile error ( Re: 2.6.23-rc1-mm1 ) Gabriel C
2007-07-28 17:26 ` Andrew Morton
2007-07-28 18:42 ` Gabriel C
2007-07-31 8:32 ` Jarek Poplawski
2007-07-31 10:14 ` Gabriel C
2007-07-31 11:44 ` Jason Wessel
2007-07-31 12:47 ` Jarek Poplawski
2007-07-31 12:17 ` Jarek Poplawski
2007-07-31 15:05 ` Gabriel C
2007-08-01 9:59 ` Jarek Poplawski [this message]
2007-08-02 2:02 ` Matt Mackall
2007-08-02 9:00 ` Jarek Poplawski
2007-08-02 15:59 ` Matt Mackall
2007-08-03 7:30 ` Jarek Poplawski
2007-08-02 9:36 ` Sam Ravnborg
2007-08-02 10:32 ` Satyam Sharma
2007-08-02 11:40 ` Satyam Sharma
2007-08-02 11:40 ` Jarek Poplawski
2007-08-02 11:56 ` Satyam Sharma
2007-08-02 12:52 ` Jarek Poplawski
2007-08-06 11:51 ` [PATCH] docs: note about select in kconfig-language.txt Jarek Poplawski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070801095920.GA1941@ff.dom.local \
--to=jarkao2@o2.pl \
--cc=akpm@linux-foundation.org \
--cc=amitkale@linsyssoft.com \
--cc=jason.wessel@windriver.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nix.or.die@googlemail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).