Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752484Ab2EZKSw (ORCPT ); Sat, 26 May 2012 06:18:52 -0400 Received: from www.linutronix.de ([62.245.132.108]:41005 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752097Ab2EZKSv (ORCPT ); Sat, 26 May 2012 06:18:51 -0400 Date: Sat, 26 May 2012 12:18:21 +0200 (CEST) From: Thomas Gleixner To: Suresh Siddha cc: Dimitri Sivanich , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Yinghai Lu , Naga Chumbalkar , Jacob Pan , linux-kernel@vger.kernel.org Subject: Re: [PATCH] x86: check for valid irq_cfg pointer in smp_irq_move_cleanup_interrupt In-Reply-To: <1337991809.7938.36.camel@sbsiddha-desk.sc.intel.com> Message-ID: References: <20120521164959.GE16454@sgi.com> <20120521211917.GA25567@sgi.com> <20120523181636.GA2032@sgi.com> <20120523190414.GA5263@sgi.com> <1337801086.1997.197.camel@sbsiddha-desk.sc.intel.com> <20120523200226.GA6936@sgi.com> <1337816970.1997.207.camel@sbsiddha-desk.sc.intel.com> <20120524143711.GA24711@sgi.com> <1337883560.7938.9.camel@sbsiddha-desk.sc.intel.com> <1337991809.7938.36.camel@sbsiddha-desk.sc.intel.com> User-Agent: Alpine 2.02 (LFD 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1140 Lines: 30 On Fri, 25 May 2012, Suresh Siddha wrote: > On Thu, 2012-05-24 at 21:16 +0200, Thomas Gleixner wrote: > There are other (not-so common) irq desc references, like in the > show_interrupts() (cat /proc/interrupts path) etc, that does things like > this in the process context: > > desc = irq_to_desc(i); > if (!desc) > return 0; > > raw_spin_lock_irqsave(&desc->lock, flags); > > May be we should introduce something like > get_irq_desc_locked()/put_irq_desc_locked() that can safely access the > irq desc with pre-emption/irq's disabled and lock it etc. And the > synchronize_sched() will enable the destroy_irq()/free_desc() to free it > safely etc. I want to avoid that and instead use proper refcounting. The reason is that we want to move the irq descriptor when the affinity changes nodes, and for that we need refcounting anyway. Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/