> > > > > > + wait_for_completion_interruptible(&priv->scl_irq_completion); > > > > > > > > > > Error checking/propagation (-ERESTARTSYS)? > > > > > > > > Are you sure? ERESTARTSYS belongs to the "These should never be seen by > > > > user programs." group. > > > > > > How else can you inform the user the operation has been interrupted? > > > > Definately not by using something which is marked "should never be seen > > by user programs" :) > > > > In the worst case, I'll add: > > if (ret) ret = -EINTR; > > > > I tested the current code with CTRL+C, there we get EOWNERDEAD back to > > userspace, even with my code not propagating anything. With sending > > SIGKILL, I got 143 which is not defined. I want to double check the > > latter first, might be my tests were flaky... > > Where's the kernel code that returns EOWNERDEAD? > Must be hidden in a complex preprocessor macro, as git grep cannot find it :-( I rather think it is glibc returning it when it discovered that the owner of a robust mutex was gone: http://man7.org/linux/man-pages/man3/pthread_mutexattr_setrobust.3.html
Attachment:
signature.asc
Description: PGP signature