> From: Neil Horman [mailto:[email protected]]
> Sent: Monday, October 07, 2013 6:33 AM
> To: Love, Robert W
> Cc: [email protected]; [email protected]; [email protected]
> Subject: Re: [Open-FCoE, RFC] libfcoe: Make fcoe_sysfs optional / fix fnic
> NULL exception
> 
> On Thu, Sep 05, 2013 at 07:47:27AM -0000, Robert Love wrote:
> > fnic doesn't use any of the create/destroy/enable/disable interfaces
> > either from the (legacy) module paramaters or the (new) fcoe_sysfs
> > interfaces. When fcoe_sysfs was introduced fnic wasn't changed since
> > it wasn't using the interfaces. libfcoe incorrectly assumed that that
> > all of its users were using fcoe_sysfs and when adding and deleting
> > FCFs would assume the existance of a fcoe_ctlr_device. fnic was not
> > allocating this structure because it doesn't care about the standard
> > user interfaces (fnic starts on link only). If/When libfcoe tried to
> > use the fcoe_ctlr_device's lock for the first time a NULL pointer
> > exception would be triggered.
> >
> > Since fnic doesn't care about sysfs or user interfaces, the solution
> > is to drop libfcoe's assumption that all drivers are using fcoe_sysfs.
> >
> > This patch accomplishes this by changing some of the structure
> > relationships.
> >
> > We need a way to determine when a LLD is using fcoe_sysfs or not and
> > we can do that by checking for the existance of the fcoe_ctlr_device.
> > Prior to this patch, it was assumed that the fcoe_ctlr structure was
> > allocated with the fcoe_ctlr_device and immediately followed it in
> > memory. To reach the fcoe_ctlr_device we would simply go back in
> > memory from the fcoe_ctlr to get the fcoe_ctlr_device.
> >
> > Since fnic doesn't allocate the fcoe_ctlr_device, we cannot keep that
> > assumption. This patch adds a pointer from the fcoe_ctlr to the
> > fcoe_ctlr_device. For bnx2fc and fcoe we will continue to allocate the
> > two structures together, but then we'll set the ctlr->cdev pointer to
> > point at the fcoe_ctlr_device. fnic will not change and will continue
> > to allocate the fcoe_ctlr itself, and ctlr->cdev will remain NULL.
> >
> > When libfcoe adds fcoe_fcf's to the fcoe_ctlr it will check if
> > ctlr->cdev is set and only if so will it continue to interact with 
> > fcoe_sysfs.
> >
> > Cc: Hiral Patel <[email protected]>
> > Signed-off-by: Robert Love <[email protected]>
> > Acked-by: Neil Horman <[email protected]>
> >
> Rob-
>      Whats going on with this patch?  I just noticed its been sitting in 
> patchwork
> for a month, and its still in the new state.  I acked it, but still don't see 
> it in the
> fcoe tree.  Are you still planning on merging it?
> 

I was hoping the fnic maintainers would test it, and send a Tested-by line.
I can't reproduce the problem and I don't know if this is all that is needed to
get fnic working again. Do you think I should move it forward on the strength
of your Ack alone?

If people really want it to move forward without testing, I don't necessarily
have a problem with that either. 

Thanks, //Rob
_______________________________________________
fcoe-devel mailing list
[email protected]
http://lists.open-fcoe.org/mailman/listinfo/fcoe-devel

Reply via email to