public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Michael Chan" <mchan@broadcom.com>
To: "James Bottomley" <James.Bottomley@HansenPartnership.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>
Subject: Re: -git tree build failure #2: drivers/net/cnic.c:2520: error: implicit declaration of function ‘__symbol_get’
Date: Sat, 13 Jun 2009 17:43:02 -0700	[thread overview]
Message-ID: <1244940182.12000.5.camel@HP1> (raw)
In-Reply-To: <1244925747.5323.57.camel@mulgrave.site>


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.

cnic: Fix __symbol_get() build error.

Ingo molnar <mingo@elte.hu> reported the error when CONFIG_MODULES is
not defined.

Signed-off-by: Michael Chan <mchan@broadcom.com>

diff --git a/drivers/net/cnic.c b/drivers/net/cnic.c
index a9e2fd3..4d1515f 100644
--- a/drivers/net/cnic.c
+++ b/drivers/net/cnic.c
@@ -2519,9 +2519,9 @@ static struct cnic_dev *init_bnx2_cnic(struct net_device *dev)
 	struct cnic_dev *cdev;
 	struct cnic_local *cp;
 	struct cnic_eth_dev *ethdev = NULL;
-	struct cnic_eth_dev *(*probe)(void *) = NULL;
+	struct cnic_eth_dev *(*probe)(struct net_device *) = NULL;
 
-	probe = __symbol_get("bnx2_cnic_probe");
+	probe = symbol_get(bnx2_cnic_probe);
 	if (probe) {
 		ethdev = (*probe)(dev);
 		symbol_put_addr(probe);
diff --git a/drivers/net/cnic_if.h b/drivers/net/cnic_if.h
index 0638096..d1bce27 100644
--- a/drivers/net/cnic_if.h
+++ b/drivers/net/cnic_if.h
@@ -296,4 +296,6 @@ extern int cnic_register_driver(int ulp_type, struct cnic_ulp_ops *ulp_ops);
 
 extern int cnic_unregister_driver(int ulp_type);
 
+extern struct cnic_eth_dev *bnx2_cnic_probe(struct net_device *dev);
+
 #endif




  reply	other threads:[~2009-06-14  0:50 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-12 18:43 -git tree build failure in drivers/net/cnic.c: undefined reference to `ip6_route_output' Ingo Molnar
2009-06-12 18:43 ` Randy Dunlap
2009-06-12 23:51   ` David Miller
2009-06-13  0:03     ` James Bottomley
2009-06-13  0:05       ` David Miller
2009-06-13 14:37         ` James Bottomley
2009-06-13  6:42       ` Ingo Molnar
2009-06-13  7:03         ` Michael Chan
2009-06-13  6:29   ` -git tree build failure #2: drivers/net/cnic.c:2520: error: implicit declaration of function ‘__symbol_get’ Ingo Molnar
2009-06-13 20:11     ` Linus Torvalds
2009-06-13 20:31       ` Ingo Molnar
2009-06-13 20:35         ` Ingo Molnar
2009-06-13 20:46           ` Ingo Molnar
2009-06-13 20:42       ` James Bottomley
2009-06-14  0:43         ` Michael Chan [this message]
2009-06-14  1:33           ` James Bottomley
2009-06-14  2:18             ` 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=1244940182.12000.5.camel@HP1 \
    --to=mchan@broadcom.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --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