Re: Debug: sleeping function called from invalid context

Randy.Dunlap
2003-08-15T19:34:24Z

On Fri, 15 Aug 2003 18:32:47 +0100 Dave Jones <davej@redhat.com> wrote:

| On Fri, Aug 15, 2003 at 10:18:56AM -0700, Randy.Dunlap wrote:
|
| > Debug: sleeping function called from invalid context at include/asm/uaccess.h:473
| > Call Trace:
| > [<c0120d94>] __might_sleep+0x54/0x5b
| > [<c010d001>] save_v86_state+0x71/0x1f0
| > [<c010dbd5>] handle_vm86_fault+0xc5/0xa90
| > [<c019cab8>] ext3_file_write+0x28/0xc0
| > [<c011cd96>] __change_page_attr+0x26/0x220
| > [<c010b310>] do_general_protection+0x0/0x90
| > [<c010a69d>] error_code+0x2d/0x40
| > [<c0109657>] syscall_call+0x7/0xb
|
| That's one really wierd looking backtrace. What else was that
| machine up to at the time ?

Some parts of it are explainable (to me), some not.
I don't know what caused a GP fault or why ext3 shows up.

But I can follow from do_general_protection() to handle_vm86_fault()
to [inline] return_to_32bit() to save_v86_state() to __might_sleep().

And __might_sleep() is correct if change_page_attr() was called,
since it takes a spinlock. I just can't connect quite all of the dots.

--
~Randy