[POWERPC] spu_base: remove cleanup_spu_base
spu_base.c is always built into the kernel image, so there is no need for a cleanup function. And some of the things it does are in the way for my following patches, so I'd rather get rid of it ASAP. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
This commit is contained in:
parent
aa45e2569f
commit
befdc746ee
|
@ -534,12 +534,6 @@ static int spu_create_sysdev(struct spu *spu)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void spu_destroy_sysdev(struct spu *spu)
|
|
||||||
{
|
|
||||||
sysfs_remove_device_from_node(&spu->sysdev, spu->node);
|
|
||||||
sysdev_unregister(&spu->sysdev);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int __init create_spu(void *data)
|
static int __init create_spu(void *data)
|
||||||
{
|
{
|
||||||
struct spu *spu;
|
struct spu *spu;
|
||||||
|
@ -591,43 +585,17 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void destroy_spu(struct spu *spu)
|
|
||||||
{
|
|
||||||
list_del_init(&spu->list);
|
|
||||||
list_del_init(&spu->full_list);
|
|
||||||
|
|
||||||
spu_destroy_sysdev(spu);
|
|
||||||
spu_free_irqs(spu);
|
|
||||||
spu_destroy_spu(spu);
|
|
||||||
kfree(spu);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void cleanup_spu_base(void)
|
|
||||||
{
|
|
||||||
struct spu *spu, *tmp;
|
|
||||||
int node;
|
|
||||||
|
|
||||||
mutex_lock(&spu_mutex);
|
|
||||||
for (node = 0; node < MAX_NUMNODES; node++) {
|
|
||||||
list_for_each_entry_safe(spu, tmp, &spu_list[node], list)
|
|
||||||
destroy_spu(spu);
|
|
||||||
}
|
|
||||||
mutex_unlock(&spu_mutex);
|
|
||||||
sysdev_class_unregister(&spu_sysdev_class);
|
|
||||||
}
|
|
||||||
module_exit(cleanup_spu_base);
|
|
||||||
|
|
||||||
static int __init init_spu_base(void)
|
static int __init init_spu_base(void)
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i, ret = 0;
|
||||||
|
|
||||||
if (!spu_management_ops)
|
if (!spu_management_ops)
|
||||||
return 0;
|
goto out;
|
||||||
|
|
||||||
/* create sysdev class for spus */
|
/* create sysdev class for spus */
|
||||||
ret = sysdev_class_register(&spu_sysdev_class);
|
ret = sysdev_class_register(&spu_sysdev_class);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
goto out;
|
||||||
|
|
||||||
for (i = 0; i < MAX_NUMNODES; i++)
|
for (i = 0; i < MAX_NUMNODES; i++)
|
||||||
INIT_LIST_HEAD(&spu_list[i]);
|
INIT_LIST_HEAD(&spu_list[i]);
|
||||||
|
@ -637,12 +605,17 @@ static int __init init_spu_base(void)
|
||||||
if (ret) {
|
if (ret) {
|
||||||
printk(KERN_WARNING "%s: Error initializing spus\n",
|
printk(KERN_WARNING "%s: Error initializing spus\n",
|
||||||
__FUNCTION__);
|
__FUNCTION__);
|
||||||
cleanup_spu_base();
|
goto out_unregister_sysdev_class;
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xmon_register_spus(&spu_full_list);
|
xmon_register_spus(&spu_full_list);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
out_unregister_sysdev_class:
|
||||||
|
sysdev_class_unregister(&spu_sysdev_class);
|
||||||
|
out:
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
module_init(init_spu_base);
|
module_init(init_spu_base);
|
||||||
|
|
Loading…
Reference in New Issue