Messages in this thread | | | Date | Fri, 1 May 2015 11:37:24 -0700 | Subject | Re: [GIT PULL] VFIO fixes for v4.1-rc2 | From | Linus Torvalds <> |
| |
On Fri, May 1, 2015 at 10:40 AM, Alex Williamson <alex.williamson@redhat.com> wrote: > > - Flush signals on interrupted wait to retain polling interval (Alex Williamson)
This cannot *possibly* be right. If I read this patch right, you're randomly just getting rid of signals. No way in hell is that correct.
"flush_signals()" is only for kernel threads, where it's a hacky alternative to actually handling them (since kernel threads never rreturn to user space and cannot really "handle" a signal). But you're doing it in the ->remove handler for the device, which can be called by arbitrary system processes. This is not a kernel thread thing, as far as I can see.
If you cannot handle signals, you damn well shouldn't be using "wait_event_interruptible_timeout()" to begin with. Get rid of the "interruptible", since it apparently *isn't* interruptible.
So I'm not pulling this.
Now I'm worried that other drivers do insane things like this. I wonder if we should add some sanity test to flush_signals() to make sure that it can only ever get called from a kernel thread.
Oleg?
Linus
| |