Re: [PATCH] scsi_transport_fc: Initialize sysfs attributes with sysfs_attr_init

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Mar 20, 2010 at 12:44:12PM -0500, James Bottomley wrote:
> On Tue, 2010-03-16 at 13:49 -0700, James Bottomley wrote:
> > On Tue, 2010-03-16 at 15:48 -0500, Mike Christie wrote:
> > > On 03/16/2010 05:14 AM, Christof Schmitt wrote:
> > > > With the new lockdep tracking in sysfs, sysfs_attr_init has to be used
> > > > for initializing all non-static sysfs attributes. Otherwise, lockdep
> > > > will warn about the missing initialization with:
> > > >
> > > > Mar 15 09:19:49 t6345029 kernel: BUG: key 000000002f5ae350 not in .data!
> > > > Mar 15 09:19:49 t6345029 kernel: BUG: key 000000002f5ae388 not in .data!
> > > > Mar 15 09:19:49 t6345029 kernel: BUG: key 000000002f5ae3c0 not in .data!
> > > > Mar 15 09:19:49 t6345029 kernel: BUG: key 000000002f5ae3f8 not in .data!
> > > >
> > > 
> > > I think iscsi needs this too, but I am not see this error message. I 
> > > just tried iscsi and fc/lpfc with linus's tree and did not see those 
> > > errors for either. What .config settings do I need for this? I have:
> > 
> > It's a lot worse than that ... every transport class plus some of the
> > core attributes will need this.
> 
> Actually, it looks like we can fix all the transport classes at one go
> in the attribute container code rather than doing this per-attribute.
> 
> Can someone who sees the problem check this out?
> 
> Thanks,
> 
> James
> 
> ---
> 
> diff --git a/drivers/base/attribute_container.c b/drivers/base/attribute_container.c
> index b9cda05..8fc200b 100644
> --- a/drivers/base/attribute_container.c
> +++ b/drivers/base/attribute_container.c
> @@ -328,6 +328,7 @@ attribute_container_add_attrs(struct device *classdev)
>  		return sysfs_create_group(&classdev->kobj, cont->grp);
> 
>  	for (i = 0; attrs[i]; i++) {
> +		sysfs_attr_init(&attrs[i]->attr);
>  		error = device_create_file(classdev, attrs[i]);
>  		if (error)
>  			return error;
> 

I just tested it with the zfcp driver and this approach works for me.
However, this would put all transport attributes in the same class for
the lock dependency tracker. For the fc_host and fc_remote_port
attributes exported for zfcp, this is no problem. I don't know if this
would be a problem for drivers using the vport_create and vport_delete
attributes.

Christof
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux