From: Jan Kiszka <jan.kis...@siemens.com>

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 ksrc/skins/rtdm/proc.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/ksrc/skins/rtdm/proc.c b/ksrc/skins/rtdm/proc.c
index b889f73..70ee4a2 100644
--- a/ksrc/skins/rtdm/proc.c
+++ b/ksrc/skins/rtdm/proc.c
@@ -292,34 +292,38 @@ int __init rtdm_proc_init(void)
        /* Initialise /proc entries */
        rtdm_proc_root = create_proc_entry("xenomai/rtdm", S_IFDIR, NULL);
        if (!rtdm_proc_root)
-               return -EAGAIN;
+               goto error;
 
        proc_entry = create_proc_entry("named_devices", S_IFREG | S_IRUGO,
                                       rtdm_proc_root);
        if (!proc_entry)
-               return -EAGAIN;
+               goto error;
        proc_entry->read_proc = proc_read_named_devs;
 
        proc_entry = create_proc_entry("protocol_devices", S_IFREG | S_IRUGO,
                                       rtdm_proc_root);
        if (!proc_entry)
-               return -EAGAIN;
+               goto error;
        proc_entry->read_proc = proc_read_proto_devs;
 
        proc_entry =
            create_proc_entry("open_fildes", S_IFREG | S_IRUGO, rtdm_proc_root);
        if (!proc_entry)
-               return -EAGAIN;
+               goto error;
        proc_entry->read_proc = proc_read_open_fildes;
        proc_entry->write_proc = proc_kill_open_fildes;
 
        proc_entry =
            create_proc_entry("fildes", S_IFREG | S_IRUGO, rtdm_proc_root);
        if (!proc_entry)
-               return -EAGAIN;
+               goto error;
        proc_entry->read_proc = proc_read_fildes;
 
        return 0;
+
+error:
+       rtdm_proc_cleanup();
+       return -EAGAIN;
 }
 
 void rtdm_proc_cleanup(void)
-- 
1.6.0.2


_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to