ic = kmalloc(sizeof(struct internal_container), GFP_KERNEL); 
 ic = kzalloc(sizeof(*ic), GFP_KERNEL); 
attribute_container_add_device(struct device *dev,			       int (*fn)(struct attribute_container *,					 struct device *,					 struct class_device *)){	struct attribute_container *cont;	down(&attribute_container_mutex);	list_for_each_entry(cont, &attribute_container_list, node) {		struct internal_container *ic;		if (attribute_container_no_classdevs(cont))			continue;		if (!cont->match(cont, dev))			continue;		ic = kmalloc(sizeof(struct internal_container), GFP_KERNEL);		if (!ic) {			dev_printk(KERN_ERR, dev, "failed to allocate class container\n");			continue;		}		memset(ic, 0, sizeof(struct internal_container));		ic->cont = cont;		class_device_initialize(&ic->classdev);		ic->classdev.dev = get_device(dev);		ic->classdev.class = cont->class;		cont->class->release = attribute_container_release;		strcpy(ic->classdev.class_id, dev->bus_id);		if (fn)			fn(cont, dev, &ic->classdev);		else			attribute_container_add_class_device(&ic->classdev);		klist_add_tail(&ic->node, &cont->containers);	}	up(&attribute_container_mutex);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/4aed0644d684428e811bb6944f032b460a3ab165/attribute_container.c/clean/drivers/base/attribute_container.c