RE: 2.6.9 chrdev_open: serial_core: uart_open

Alan Cox
2005-07-15T23:47:52Z

On Gwe, 2005-07-15 at 13:11 -0700, karl malbrain wrote:
> N.b. I don't pretend to understand how uart_change_pm, uart_startup, and
> uart_block_til_ready could ALL be on the call stack. Uart_open calls them
> sequentially. Perhaps you might explain how this works? Thanks, karl m

gcc does smart things including deferring stack cleanup so that it can
turn

push, push, call, adjust stack, push, push call .. etc

into a sequence with less stack pointer adjustment for performance
reasons. That sometimes fools the traceback code. A good rule of thumb
is to trace the sequence of calls and assume that the last sane sequence
is the one that occurred before the failure.

Alan