From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756148AbbGTThe (ORCPT ); Mon, 20 Jul 2015 15:37:34 -0400 Received: from down.free-electrons.com ([37.187.137.238]:33485 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752188AbbGTThc (ORCPT ); Mon, 20 Jul 2015 15:37:32 -0400 Date: Mon, 20 Jul 2015 21:37:26 +0200 From: Alexandre Belloni To: Thomas Gleixner Cc: Daniel Lezcano , Nicolas Ferre , Boris Brezillon , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, David Dueck Subject: Re: [PATCH 1/3] clocksource: atmel-st: Remove irq handler when clock event is unused Message-ID: <20150720193726.GJ15539@piout.net> References: <1437161608-26782-1-git-send-email-alexandre.belloni@free-electrons.com> <1437161608-26782-2-git-send-email-alexandre.belloni@free-electrons.com> <20150718222308.GA30489@piout.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 20/07/2015 at 11:04:30 +0200, Thomas Gleixner wrote : > That's why I used setup/remove_irq() in the stale RT changes. > Hum, actually, you hit the same thing with setup/remove_irq (and I'm not sure to follow why): BUG: sleeping function called from invalid context at mm/slab.c:2863 in_atomic(): 1, irqs_disabled(): 128, pid: 596, name: sh CPU: 0 PID: 596 Comm: sh Tainted: G W 4.1.0-rc4+ #122 Hardware name: Atmel AT91RM9200 [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (__kmalloc+0x38/0x104) [] (__kmalloc) from [] (__proc_create+0x11c/0x194) [] (__proc_create) from [] (proc_mkdir_data+0x30/0x9c) [] (proc_mkdir_data) from [] (register_handler_proc+0xfc/0x10c) [] (register_handler_proc) from [] (__setup_irq+0x438/0x518) [] (__setup_irq) from [] (setup_irq+0x58/0x84) [] (setup_irq) from [] (atmel_st_request_irq+0x4c/0x84) [] (atmel_st_request_irq) from [] (clkevt32k_set_periodic+0x14/0x54) [] (clkevt32k_set_periodic) from [] (clockevents_switch_state+0x1c/0x58) [] (clockevents_switch_state) from [] (__clockevents_unbind+0xb8/0xfc) [] (__clockevents_unbind) from [] (smp_call_function_single+0x34/0x44) [] (smp_call_function_single) from [] (sysfs_unbind_tick_dev+0xe8/0x114) [] (sysfs_unbind_tick_dev) from [] (kernfs_fop_write+0x118/0x174) [] (kernfs_fop_write) from [] (__vfs_write+0x24/0xdc) [] (__vfs_write) from [] (vfs_write+0xa4/0x128) [] (vfs_write) from [] (SyS_write+0x40/0x78) [] (SyS_write) from [] (ret_fast_syscall+0x0/0x30) -- Alexandre Belloni, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com