kern/127446: [patch] fix race in sys/dev/kbdmux/kbdmux.c
Maksim Yevmenkin
maksim.yevmenkin at gmail.com
Wed Sep 17 18:15:13 UTC 2008
On 9/17/08, Eygene Ryabinkin <rea-fbsd at codelabs.ru> wrote:
> Maxim, good day.
>
> Cc'ing this discuission to hackers@ -- I was just going to write
> the separate letter on this topic to the list.
>
> Wed, Sep 17, 2008 at 09:56:14AM -0700, Maksim Yevmenkin wrote:
> > have you tried to simply set KBDMUX_LOCK/UNLOCK() to
> > mtx_lock/unlock(&Giant) ?
>
> Since kbdmux callout is initialized as non-MPSAFE, this will result in
> double locking the Giant (at least I see it from the code). I am not
> sure that this is very good -- had not yet verified that Giant is
> recursive.
yes, giant is recursive. i think it should be fine for now (and yes, i
agree, its not very clean)
> Can try it tomorrow.
thanks
> Since you had written the code and #if 0'ed the locking part, may I ask,
> why? Are there any known issues or it was just not very good to
> introduce locking at that time (rev. 1.1, 3 years ago)?
because i did not want to touch every single keyboard driver, keyboard
subsystem and syscons :) back then. since kbdmux is pretty much
keyboard driver it was easier to leave it under giant locking.
thanks,
max
More information about the freebsd-hackers
mailing list