From: Patrick Mochel (I forget what this did and I don't know its testing status) Signed-off-by: Andrew Morton --- arch/ia64/sn/kernel/tiocx.c | 21 +++++++++------------ 1 files changed, 9 insertions(+), 12 deletions(-) diff -puN arch/ia64/sn/kernel/tiocx.c~bk-driver-core-sn2-build-fix arch/ia64/sn/kernel/tiocx.c --- 25/arch/ia64/sn/kernel/tiocx.c~bk-driver-core-sn2-build-fix 2005-04-28 17:11:22.607814952 -0700 +++ 25-akpm/arch/ia64/sn/kernel/tiocx.c 2005-04-28 17:11:22.611814344 -0700 @@ -514,25 +514,22 @@ static int __init tiocx_init(void) return 0; } -static void __exit tiocx_exit(void) +static int cx_remove_device(struct device * dev, void * data) { - struct device *dev; - struct device *tdev; + struct cx_dev *cx_dev = to_cx_dev(dev); + device_remove_file(dev, &dev_attr_cxdev_control); + cx_device_unregister(cx_dev); + return 0; +} +static void __exit tiocx_exit(void) +{ DBG("tiocx_exit\n"); /* * Unregister devices. */ - list_for_each_entry_safe(dev, tdev, &tiocx_bus_type.devices.list, - bus_list) { - if (dev) { - struct cx_dev *cx_dev = to_cx_dev(dev); - device_remove_file(dev, &dev_attr_cxdev_control); - cx_device_unregister(cx_dev); - } - } - + bus_for_each_dev(&tiocx_bus_type, NULL, NULL, cx_remove_device); bus_unregister(&tiocx_bus_type); } _