El vie., 18 oct. 2019 a las 13:05, Bernd Petrovitsch (<bernd@petrovitsch.priv.at>) escribió:
You actually want speed in the kernel and not necessarily extra effort for "try" and "catch" which is - sooner or later - never really used. And the "safety net" reduces the motivation to actually fix pointer bugs ....
I don't think I was clear. My intent is that if a pointer bug isn't fixed, my module will fail gracefully and go through the catch block instead of panicking the whole system. I don't see how this would stop me from fixing the bug itself; if anything, it could even help me debug it.
A ioctl-handler runs in the context/on behalf/... of a process (read: a user-space process/thread has called a syscall).
Yes.
And there may be other code in your module which doesn't run on behalf of a process/thread, e.g. triggered by a timer, hardware IRQ, ...
That's an interesting point. Yes, my die_notifier will run in exception context, but current->pid will still match that of the process which triggered the exception. I don't know if this happens by definition or it's just a coincidence, but it seems to work.