memcpy(&sl->attr_bin, &w1_slave_bin_attribute, sizeof(sl->attr_bin)); memcpy(&sl->attr_name, &w1_slave_attribute, sizeof(sl->attr_name));  sl->attr_bin.read = sl->family->fops->rbin; sl->attr_name.show = sl->family->fops->rname;  err = device_create_file(&sl->dev, &sl->attr_name); 
/* Create "name" entry */ err = device_create_file(&sl->dev, &w1_slave_attr_name); 
static int __w1_attach_slave_device(struct w1_slave *sl){	int err;	sl->dev.parent = &sl->master->dev;	sl->dev.driver = &w1_slave_driver;	sl->dev.bus = &w1_bus_type;	sl->dev.release = &w1_slave_release;	snprintf(&sl->dev.bus_id[0], sizeof(sl->dev.bus_id),		 "%02x-%012llx",		 (unsigned int) sl->reg_num.family,		 (unsigned long long) sl->reg_num.id);	snprintf(&sl->name[0], sizeof(sl->name),		 "%02x-%012llx",		 (unsigned int) sl->reg_num.family,		 (unsigned long long) sl->reg_num.id);	dev_dbg(&sl->dev, "%s: registering %s.\n", __func__,		&sl->dev.bus_id[0]);	err = device_register(&sl->dev);	if (err < 0) {		dev_err(&sl->dev,			"Device registration [%s] failed. err=%d\n",			sl->dev.bus_id, err);		return err;	}	memcpy(&sl->attr_bin, &w1_slave_bin_attribute, sizeof(sl->attr_bin));	memcpy(&sl->attr_name, &w1_slave_attribute, sizeof(sl->attr_name));	sl->attr_bin.read = sl->family->fops->rbin;	sl->attr_name.show = sl->family->fops->rname;	err = device_create_file(&sl->dev, &sl->attr_name);	if (err < 0) {		dev_err(&sl->dev,			"sysfs file creation for [%s] failed. err=%d\n",			sl->dev.bus_id, err);		device_unregister(&sl->dev);		return err;	}	if ( sl->attr_bin.read ) {		err = sysfs_create_bin_file(&sl->dev.kobj, &sl->attr_bin);		if (err < 0) {			dev_err(&sl->dev,				"sysfs file creation for [%s] failed. err=%d\n",				sl->dev.bus_id, err);			device_remove_file(&sl->dev, &sl->attr_name);			device_unregister(&sl->dev);			return err;		}	}	list_add_tail(&sl->w1_slave_entry, &sl->master->slist);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d2a4ef6a0ce4d841293b49bf2cdc17a0ebfaaf9d/w1.c/buggy/drivers/w1/w1.c