Le 29/07/2015 17:22, Taylor R Campbell a écrit : > Date: Wed, 29 Jul 2015 07:59:46 +0200 > From: Maxime Villard <[email protected]> > > What happens if the kernel calls splx(s) twice? And what happens if it > forgets to call splx(s)? Like: > > s = splnet(); > > [...] NOT RELATED TO S > > return; NO SPLX(S) > > I guess it creates some inconsistency, right? > > It leaves the kernel thread running at elevated interrupt priority > which will make it unresponsive to interrupts. > > On several, if not all, architectures, the kernel checks on return to > userland, if DIAGNOSTIC is enabled, for this case, and fails noisily > if not -- SPL NOT LOWERED ON SYSCALL RETURN, &c. > > This is a bug of pretty much the same class as missing mutex_exit. >
Ok, thanks. That's what I suspected. So sys/dev/ic/gem.c::gem_init() is buggy, right? (found by Brainy)
