The space allocated for irq stats in xnintr_init() will not be freed
by rtdm_irq_free(), because it just calls xnintr_detach(). Replacing
it with xnintr_destroy() fixes the issue.

Signed-off-by: Wolfgang Grandegger <[email protected]>
---
 include/cobalt/kernel/rtdm/driver.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/cobalt/kernel/rtdm/driver.h 
b/include/cobalt/kernel/rtdm/driver.h
index 894e6f6..d69166d 100644
--- a/include/cobalt/kernel/rtdm/driver.h
+++ b/include/cobalt/kernel/rtdm/driver.h
@@ -858,7 +858,7 @@ static inline int rtdm_irq_free(rtdm_irq_t *irq_handle)
 {
        if (!XENO_ASSERT(COBALT, xnsched_root_p()))
                return -EPERM;
-       xnintr_detach(irq_handle);
+       xnintr_destroy(irq_handle);
        return 0;
 }
 
-- 
1.9.1


Reply via email to