From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Randy.Dunlap" Subject: e100 badness (2.6.10-rc1-mm2) Date: Mon, 01 Nov 2004 20:24:25 -0800 Message-ID: <41870BF9.6060207@osdl.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: To: ganesh.venkatesan@intel.com, jesse.brandeburg@intel.com, netdev@oss.sgi.com Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org Hi Ganesh, Jesse -- I see this in 2.6.10-rc1-mm2: Badness in enable_irq at kernel/irq/manage.c:112 [] dump_stack+0x1e/0x20 [] enable_irq+0xaa/0x114 [] e100_up+0x130/0x23f [] e100_open+0x26/0x6e [] dev_open+0x6e/0x7c [] dev_change_flags+0x56/0x126 [] devinet_ioctl+0x60b/0x6cd [] inet_ioctl+0x81/0xae [] sock_ioctl+0x1d3/0x2d6 [] sys_ioctl+0x179/0x21d [] sysenter_past_esp+0x52/0x71 I think that it happens because (in e100_up()), disable_irq() is called before request_irq() is called. If there are no other interrupt handlers on the same irq, then desc->depth is cleared to 0 by setup_irq() [called from request_irq()]. Then the following enable_irq() is confused by desc->depth == 0. -- ~Randy