From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754510Ab2DEVDG (ORCPT ); Thu, 5 Apr 2012 17:03:06 -0400 Received: from mail-wi0-f170.google.com ([209.85.212.170]:53688 "EHLO mail-wi0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752607Ab2DEVDF (ORCPT ); Thu, 5 Apr 2012 17:03:05 -0400 Message-ID: <4F7E0884.5090602@suse.cz> Date: Thu, 05 Apr 2012 23:03:00 +0200 From: Jiri Slaby User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120331 Thunderbird/13.0a2 MIME-Version: 1.0 To: Boris Ostrovsky CC: Len Brown , LKML , the arch/x86 maintainers , Jiri Slaby Subject: BUG at cpuidle_play_dead X-Enigmail-Version: 1.4 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, I'm hitting this BUG as the last thing during shutdown: BUG: unable to handle kernel NULL pointer dereference at 00000000000002d8 IP: [] cpuidle_play_dead+0x1d/0xb0 It's because drv is NULL. The problem is gone if I do this: --- a/drivers/cpuidle/cpuidle.c +++ b/drivers/cpuidle/cpuidle.c @@ -83,6 +83,11 @@ int cpuidle_play_dead(void) int i, dead_state = -1; int power_usage = -1; + if (!drv) { + printk("DRIVER IS NULL\n"); + return -ENODEV; + } + /* Find lowest-power state that supports long-term idle */ for (i = CPUIDLE_DRIVER_STATE_START; i < drv->state_count; i++) { struct cpuidle_state *s = &drv->states[i]; thanks, -- js suse labs