MIPS: APRP: Fix an issue when device_create() fails.
If a call to device_create() fails for a channel during the initialize loop, we need to clean the devices entries already created before leaving. Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com> Cc: linux-mips@linux-mips.org Cc: Steven J. Hill <Steven.Hill@imgtec.com> Cc: Deng-Cheng Zhu <dengcheng.zhu@imgtec.com> Cc: John Crispin <blogic@openwrt.org> Cc: Qais Yousef <Qais.Yousef@imgtec.com> Cc: linux-kernel@vger.kernel.org Cc: Jerome Oufella <jerome.oufella@savoirfairelinux.com> Patchwork: https://patchwork.linux-mips.org/patch/7111/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
ffc8415afa
commit
0435b13ee3
|
@ -77,6 +77,9 @@ int __init rtlx_module_init(void)
|
||||||
dev = device_create(mt_class, NULL, MKDEV(major, i), NULL,
|
dev = device_create(mt_class, NULL, MKDEV(major, i), NULL,
|
||||||
"%s%d", RTLX_MODULE_NAME, i);
|
"%s%d", RTLX_MODULE_NAME, i);
|
||||||
if (IS_ERR(dev)) {
|
if (IS_ERR(dev)) {
|
||||||
|
while (i--)
|
||||||
|
device_destroy(mt_class, MKDEV(major, i));
|
||||||
|
|
||||||
err = PTR_ERR(dev);
|
err = PTR_ERR(dev);
|
||||||
goto out_chrdev;
|
goto out_chrdev;
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,6 +103,9 @@ int __init rtlx_module_init(void)
|
||||||
dev = device_create(mt_class, NULL, MKDEV(major, i), NULL,
|
dev = device_create(mt_class, NULL, MKDEV(major, i), NULL,
|
||||||
"%s%d", RTLX_MODULE_NAME, i);
|
"%s%d", RTLX_MODULE_NAME, i);
|
||||||
if (IS_ERR(dev)) {
|
if (IS_ERR(dev)) {
|
||||||
|
while (i--)
|
||||||
|
device_destroy(mt_class, MKDEV(major, i));
|
||||||
|
|
||||||
err = PTR_ERR(dev);
|
err = PTR_ERR(dev);
|
||||||
goto out_chrdev;
|
goto out_chrdev;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue