hvconsole.c : possible problem

Benjamin Herrenschmidt benh at kernel.crashing.org
Fri May 7 08:12:40 EST 2004


On Fri, 2004-05-07 at 05:28, Hollis Blanchard wrote:
> On Apr 28, 2004, at 12:05 AM, Benjamin Herrenschmidt wrote:
> >  - The whole wait_for_packet() is completely synchronous (doesn't
> > schedule), that doesn't sound very good.
>
> Can't do schedule(). wait_for_packet() is called at init time, as a
> console_initcall, to handshake with the service processor.
> console_init() is called under lock_kernel()...
> 	bad: scheduling while atomic!

Ugh ? You can schedule in lock_kernel iirc ... Maybe not any more...
Well, you can probably just test for system_state before scheduling.

> I'm sure other code is in this same position. Is it a good idea to do
> something like
> 	if (in_atomic())
> 		usleep()
> 	else
> 		schedule()

No. If the problem is only about console_init(), system state should be
enough.

Ben.


** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list