From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755432Ab3BQCVv (ORCPT ); Sat, 16 Feb 2013 21:21:51 -0500 Received: from mail-pb0-f48.google.com ([209.85.160.48]:61392 "EHLO mail-pb0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755043Ab3BQCVt (ORCPT ); Sat, 16 Feb 2013 21:21:49 -0500 Date: Sat, 16 Feb 2013 18:21:01 -0800 (PST) From: Hugh Dickins X-X-Sender: hugh@eggly.anvils To: Linus Torvalds cc: Daniel Vetter , David Airlie , Dave Jones , Linux Kernel Mailing List , Paul McKenney , DRI Subject: Re: Debugging Thinkpad T430s occasional suspend failure. In-Reply-To: Message-ID: References: <20130212193901.GA18906@redhat.com> <20130213004059.GA14451@redhat.com> <20130213041629.GA28622@redhat.com> <20130213193411.GA15928@redhat.com> <20130215011503.GA11914@redhat.com> User-Agent: Alpine 2.00 (LNX 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 16 Feb 2013, Hugh Dickins wrote: > On Sat, 16 Feb 2013, Linus Torvalds wrote: > > > > I think it's worth it to give them a heads-up already. So I've cc'd > > the main suspects here.. > > Okay, thanks. > > > > > Daniel, Dave - any comments about a NULL fb in > > intel_choose_pipe_bpp_dither() during either suspend or resume? Some > > googling shows this: > > > > https://bugzilla.redhat.com/show_bug.cgi?id=895123 > > Great, yes, I'm sure that's the same (though it says "suspend" > and I say "resume"). > > > > > which sounds remarkably similar, and is also during a suspend attempt > > (but apparently Satish got a full oops out).. Some timing race with a > > worker entry? Comparing Satish's backtrace and drivers/gpu/drm history, it's clear that the oops comes from Daniel's 3.8-rc2 45e2b5f640b3 "drm/i915: force restore on lid open", whose force_restore case now passes down crtc->base.fb. But I wouldn't have a clue why that's usually non-NULL but occasionally NULL: your timing race with a worker entry, perhaps. And 45e2b5f640b3 contains a fine history of going back and forth, so I wouldn't want to play further with it out of ignorance - though tempted to replace the "if (force_restore) {" by an interim safe-seeming compromise of "if (force_restore && crtc->base.fb) {". Hugh