struct w1_slave *sl = container_of(container_of(kobj, struct device, kobj), struct w1_slave, dev); 
struct w1_slave *sl = kobj_to_w1_slave(kobj); 
static ssize_t w1_smem_read_bin(struct kobject *kobj, char *buf, loff_t off, size_t count){	struct w1_slave *sl = container_of(container_of(kobj, struct device, kobj),					   struct w1_slave, dev);	int i;	atomic_inc(&sl->refcnt);	if (down_interruptible(&sl->master->mutex)) {		count = 0;		goto out_dec;	}	if (off > W1_SLAVE_DATA_SIZE) {		count = 0;		goto out;	}	if (off + count > W1_SLAVE_DATA_SIZE) {		count = 0;		goto out;	}	for (i = 0; i < 8; ++i)		count += sprintf(buf + count, "%02x ", ((u8 *)&sl->reg_num)[i]);	count += sprintf(buf + count, "\n");out:	up(&sl->master->mutex);out_dec:	atomic_dec(&sl->refcnt);	return count;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/db2d0008de519c5db6baec45f7831e08790301cf/w1_smem.c/clean/drivers/w1/w1_smem.c