From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Michael Chan <mchan@broadcom.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>,
Randy Dunlap <randy.dunlap@oracle.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
linux-scsi <linux-scsi@vger.kernel.org>
Subject: Re: -git tree build failure #2: drivers/net/cnic.c:2520: error: implicit declaration of function ‘__symbol_get’
Date: Sat, 13 Jun 2009 20:33:36 -0500 [thread overview]
Message-ID: <1244943216.5323.86.camel@mulgrave.site> (raw)
In-Reply-To: <1244940182.12000.5.camel@HP1>
On Sat, 2009-06-13 at 17:43 -0700, Michael Chan wrote:
> On Sat, 2009-06-13 at 13:42 -0700, James Bottomley wrote:
> > On Sat, 2009-06-13 at 13:11 -0700, Linus Torvalds wrote:
> > >
> > >
> > > That makes no sense.
> > >
> > > Look at the first #include in the file - it already includes
> > > <linux/module.h>.
> > >
> > > Why do we need to do it twice?
> >
> > We don't ... it's the wrong fix. The actual problem is that
> > __symbol_get() is only defined for the modular case. What it looks to
> > be doing is a reflection call on bnx2_cnic_probe(). I'm not sure why
> > it's doing this ... other than perhaps cnic wants to avoid an explicit
> > bnx2 dependency? I actually think it's incorrect, since the netdev code
> > before it just checked bnx2 is present, so I see no harm in an explicit
> > call, so this should fix it.
> >
> > If it had a good reason for the reflective call, then symbol_get()
> > without the __ should be used.
> >
> > Michael Chan, could you confirm?
> >
> Thanks James and Ingo. We don't want to have a symbol dependency on
> bnx2 because this driver eventually will support the 10G bnx2x driver as
> well. So we want the driver to support either or both NIC drivers
> without both drivers loaded. Please use the patch below.
Um, but that's not going to work very well. When you have your 10G
driver, they'll both have to export the symbol name bnx2_cnic_probe
which the kernel isn't going to like. You can differentiate the symbols
and add a multiple symbol lookup in init_bnx2_cnic(), but that's getting
ugly.
What about doing something more standard, like bus matching? That's how
the SCSI upper layer drivers work: we export a virtual SCSI bus and
they bind to it if a supporting device appears. You could do something
similar exporting a virtual cnic bus from your network drivers and get
the cnic driver to bind to it.
James
next parent reply other threads:[~2009-06-14 1:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20090612184343.GA11900@elte.hu>
[not found] ` <4A32A1E4.8080708@oracle.com>
[not found] ` <20090613062933.GA14034@elte.hu>
[not found] ` <alpine.LFD.2.01.0906131309560.3237@localhost.localdomain>
[not found] ` <1244925747.5323.57.camel@mulgrave.site>
[not found] ` <1244940182.12000.5.camel@HP1>
2009-06-14 1:33 ` James Bottomley [this message]
2009-06-14 2:18 ` -git tree build failure #2: drivers/net/cnic.c:2520: error: implicit declaration of function ‘__symbol_get’ Michael Chan
2009-06-14 14:15 ` James Bottomley
2009-06-14 14:51 ` -git tree build failure #2: drivers/net/cnic.c:2520: error: implicit declaration of function '__symbol_get' Michael Chan
2009-06-15 1:27 ` -git tree build failure #2: drivers/net/cnic.c:2520: error: implicit declaration of function ‘__symbol_get’ Mike Christie
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=1244943216.5323.86.camel@mulgrave.site \
--to=james.bottomley@hansenpartnership.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mchan@broadcom.com \
--cc=mingo@elte.hu \
--cc=randy.dunlap@oracle.com \
--cc=torvalds@linux-foundation.org \
/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