linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linuxppc-dev@ozlabs.org, Paul Mackerras <paulus@samba.org>
Subject: Re: powerbook/radeon PM problem
Date: Sun, 04 Feb 2007 15:47:59 +1100	[thread overview]
Message-ID: <1170564480.2620.30.camel@localhost.localdomain> (raw)
In-Reply-To: <1170357083.4036.5.camel@johannes.berg>

On Thu, 2007-02-01 at 20:11 +0100, Johannes Berg wrote:
> Whenever I resume my powerbook I get:
> 
> [  336.307861] BUG: sleeping function called from invalid context at kernel/rwsem.c:20
> [  336.307871] in_atomic():0, irqs_disabled():1
> [  336.307875] Call Trace:
> [  336.307879] [EC257D30] [C000901C] show_stack+0x3c/0x194 (unreliable)
> [  336.307900] [EC257D60] [C00268B8] __might_sleep+0xd4/0xe8
> [  336.307918] [EC257D70] [C004555C] down_read+0x24/0x5c
> [  336.307930] [EC257D90] [C003A574] blocking_notifier_call_chain+0x20/0x54
> [  336.307940] [EC257DB0] [C017FB60] fb_notifier_call_chain+0x24/0x34
> [  336.307949] [EC257DC0] [C0180178] fb_set_suspend+0x58/0x6c
> [  336.307956] [EC257DE0] [C01A79F0] radeonfb_pci_resume+0x1fc/0x3e0
> [  336.307964] [EC257E00] [C01A7BF8] radeonfb_early_resume+0x24/0x40
> [  336.307970] [EC257E20] [C001A5C0] pmac_call_early_video_resume+0x2c/0x3c
> [  336.307985] [EC257E30] [C01E1148] pmu_ioctl+0x6f8/0xb64
> [  336.307994] [EC257ED0] [C0091C84] do_ioctl+0x80/0x84
> [  336.308003] [EC257EE0] [C0091D0C] vfs_ioctl+0x84/0x43c
> [  336.308009] [EC257F10] [C0092104] sys_ioctl+0x40/0x74
> [  336.308014] [EC257F40] [C00114B4] ret_from_syscall+0x0/0x38
> 
> 
> Hence, there must be a bug somewhere... The documentation to
> fb_set_suspend notes:
> "It must be called with the console semaphore held"

Yeah well, it's -supposed- to be taken by the resume function, but the
early resume path is a hack that runs -really- early (so you get a
screen back for debugging). I should find a way to silence those stupid
warnings...

> So that's one of the bugs, how can that be satisfied when we're just
> resuming and haven't taken that semaphore? (if we did take it, then we'd
> get the warning earlier..)
> 
> Then again, is the resume code really supposed to be called with
> interrupts disabled?

Not normally... but when I wrote that stuff, there was no semaphore
involved in that code path... In fact, the semaphore we are taking
shouldn't be held by anybody else anyway..

> I'm totally unsure what the correct fix for this is.

None other than removing the early wakeup hack :-(

Ben.

  reply	other threads:[~2007-02-04  4:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-01 19:11 powerbook/radeon PM problem Johannes Berg
2007-02-04  4:47 ` Benjamin Herrenschmidt [this message]
2007-02-04 13:42   ` Johannes Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1170564480.2620.30.camel@localhost.localdomain \
    --to=benh@kernel.crashing.org \
    --cc=johannes@sipsolutions.net \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).