Subject: Re: [PATCH] [SCSI] bnx2fc: fix build error when !CONFIG_MODULES

From: James Bottomley <[email-masked]>
Date: Mon, 07 Mar 2011 18:18:17 -0600

On Mon, 2011-03-07 at 15:54 -0800, Bhanu Gollapudi wrote:
> On Mon, 2011-03-07 at 12:16 -0800, Mariusz Kozlowski wrote: 
> > On Wed, Mar 02, 2011 at 11:10:03PM +0100, Mariusz Kozlowski wrote:
> > > drivers/scsi/bnx2fc/bnx2fc_fcoe.c:1815: error: dereferencing pointer to incomplete type
> > > drivers/scsi/bnx2fc/bnx2fc_fcoe.c:1815: error: ‘MODULE_STATE_LIVE’ undeclared (first use in this function)
> > 
> > Hm. Still there in next-20110307. Is this patch wrong or..?
> > 
> 
> James,
> 
> Here is my ack for this patch.

OK, so the patch is actually wrong because adding #ifdefs on modules in
files really impedes readability.  The bug is using a direct deref on
module state instead of one of the APIs which work in the non-modular
case, namely try_module_get(). That means the other two need to come out
and be reworked (plus all the others in fcoe).

Reworked looks like it might be a bigger item than bnx2fc.  If any of
those tests is ever relevant, it means we have a race in the
fcoe_transport because it shouldn't be calling function pointers on a
dying module (unless it wants to trigger an oops).

So, why are you trying to do this in the first place?

James