list_for_each_safe(l, n, &dev->dev.children) { struct device *d = list_to_dev(l);  device_unregister(d); } 
device_for_each_child(&dev->dev, NULL, impd1_remove_one); 
static void impd1_remove(struct lm_device *dev){	struct impd1_module *impd1 = lm_get_drvdata(dev);	struct list_head *l, *n;	int i;	list_for_each_safe(l, n, &dev->dev.children) {		struct device *d = list_to_dev(l);		device_unregister(d);	}	for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++)		clk_unregister(&impd1->vcos[i]);	lm_set_drvdata(dev, NULL);	iounmap(impd1->base);	kfree(impd1);	release_mem_region(dev->resource.start, SZ_4K);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d18566376055046fca0b51ad536f1778ef34966a/impd1.c/buggy/arch/arm/mach-integrator/impd1.c