Re: linux-next: Tree for December 29 (fcoe)

James Bottomley
2008-12-29T21:45:48Z

On Mon, 2008-12-29 at 15:35 -0600, James Bottomley wrote:
> On Mon, 2008-12-29 at 12:31 -0800, Randy Dunlap wrote:
> > On Tue, 30 Dec 2008 03:16:21 +1100 Stephen Rothwell wrote:
> >
> > > Hi all,
> > >
> > > Changes since 20081219:
> > >
> > > Undropped tree:
> > > scci
> > > mtd
> > >
> > > Dropped trees (temporarily):
> > > nfs (akpm request due to 2.6.30 features)
> > > kvm (build problem)
> > > rr (build poblem)
> > > semaphore-removal (due to unfixed conflicts against Linus' tree)
> > > cpu_alloc (build problem)
> > > audit (difficult conflicts)
> > >
> > > Linus' tree had three build failures requiring patches and one requiring
> > > a revert.
> >
> >
> > linux-next-20081229/drivers/scsi/fcoe/libfcoe.c:995: error: dereferencing pointer to incomplete type
> > linux-next-20081229/drivers/scsi/fcoe/libfcoe.c:1015: error: dereferencing pointer to incomplete type
> >
> > (on netdev->name ?)
>
> This looks a bit odd. libfcoe.h #includes linux/netdevice.h which
> defines the structure ... I can't see how netdev could have an
> incomplete type. Could you make libfcoe.i and see what's happening?

Actually, I deduce the problem is owner->name and your build has
CONFIG_MODULE=n ... the definition of struct module is enclosed in a
#ifdef CONFIG_MODULE.

This should fix it.

James

---

diff --git a/drivers/scsi/fcoe/libfcoe.c b/drivers/scsi/fcoe/libfcoe.c
index 1cb549c..fec38f6 100644
--- a/drivers/scsi/fcoe/libfcoe.c
+++ b/drivers/scsi/fcoe/libfcoe.c
@@ -992,7 +992,7 @@ static int fcoe_ethdrv_get(const struct net_device *netdev)
owner = fcoe_netdev_to_module_owner(netdev);
if (owner) {
printk(KERN_DEBUG "foce:hold driver module %s for %s\n",
- owner->name, netdev->name);
+ module_name(owner), netdev->name);
return try_module_get(owner);
}
return -ENODEV;
@@ -1012,7 +1012,7 @@ static int fcoe_ethdrv_put(const struct net_device *netdev)
owner = fcoe_netdev_to_module_owner(netdev);
if (owner) {
printk(KERN_DEBUG "foce:release driver module %s for %s\n",
- owner->name, netdev->name);
+ module_name(owner), netdev->name);
module_put(owner);
return 0;
}