From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757583Ab1LGRG4 (ORCPT ); Wed, 7 Dec 2011 12:06:56 -0500 Received: from cantor2.suse.de ([195.135.220.15]:39428 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757087Ab1LGRDy (ORCPT ); Wed, 7 Dec 2011 12:03:54 -0500 X-Mailbox-Line: From gregkh@clark.kroah.org Wed Dec 7 08:56:02 2011 Message-Id: <20111207165602.672902223@clark.kroah.org> User-Agent: quilt/0.50-23.1 Date: Wed, 07 Dec 2011 08:55:00 -0800 From: Greg KH To: , Cc: , , , Thomas Gleixner Subject: [27/27] clockevents: Set noop handler in clockevents_exchange_device() In-Reply-To: <20111207165611.GA19872@kroah.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2.6.32-longterm review patch. If anyone has any objections, please let me know. ------------------ From: Thomas Gleixner commit de28f25e8244c7353abed8de0c7792f5f883588c upstream. If a device is shutdown, then there might be a pending interrupt, which will be processed after we reenable interrupts, which causes the original handler to be run. If the old handler is the (broadcast) periodic handler the shutdown state might hang the kernel completely. Signed-off-by: Thomas Gleixner Signed-off-by: Greg Kroah-Hartman --- kernel/time/clockevents.c | 1 + 1 file changed, 1 insertion(+) --- a/kernel/time/clockevents.c +++ b/kernel/time/clockevents.c @@ -221,6 +221,7 @@ void clockevents_exchange_device(struct * released list and do a notify add later. */ if (old) { + old->event_handler = clockevents_handle_noop; clockevents_set_mode(old, CLOCK_EVT_MODE_UNUSED); list_del(&old->list); list_add(&old->list, &clockevents_released);