On 30.08.19 18:04, Philippe Gerum wrote:
Threads waiting on read()/write() must be unblocked when the kernel
endpoint is disconnected. read() should return 0, write() receives
-EPIPE.
Signed-off-by: Philippe Gerum <r...@xenomai.org>
---
kernel/cobalt/pipe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/cobalt/pipe.c b/kernel/cobalt/pipe.c
index 16e85125c..0c83095ba 100644
--- a/kernel/cobalt/pipe.c
+++ b/kernel/cobalt/pipe.c
@@ -132,7 +132,7 @@ static inline void xnpipe_dequeue_all(struct xnpipe_state
*state, int mask)
if (__sigpending) \
break; \
prepare_to_wait_exclusive(__waitq, &__wait,
TASK_INTERRUPTIBLE); \
- if (__cond) \
+ if (__cond || (__state)->status & XNPIPE_KERN_LCLOSE) \
break; \
schedule(); \
} \
Thanks, applied to next, queued for stable.
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux