All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiang Liu <liuj97@gmail.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>,
	Dimitri Sivanich <sivanich@sgi.com>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org, Yinghai Lu <yinghai@kernel.org>,
	Naga Chumbalkar <nagananda.chumbalkar@hp.com>,
	Jacob Pan <jacob.jun.pan@linux.intel.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] x86: check for valid irq_cfg pointer in smp_irq_move_cleanup_interrupt
Date: Sun, 27 May 2012 09:41:26 +0800	[thread overview]
Message-ID: <4FC18646.8010301@gmail.com> (raw)
In-Reply-To: <alpine.LFD.2.02.1205261216160.3231@ionos>

I have realized the same issue with typical usages of for_each_irq_desc(), 
which may access freed memory with SPARSE_IRQ. My naive solution was to
avoid freeing irq_desc even SPARSE_IRQ_ is enabled.

        for_each_irq_desc(i, desc) {
                raw_spin_lock_irq(&desc->lock);

On 05/26/2012 06:18 PM, Thomas Gleixner wrote:
> 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/


  reply	other threads:[~2012-05-27  1:41 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-21 16:49 [PATCH] x86: check for valid irq_cfg pointer in smp_irq_move_cleanup_interrupt Dimitri Sivanich
2012-05-21 21:05 ` Suresh Siddha
2012-05-21 21:09   ` Dimitri Sivanich
2012-05-21 21:10     ` Suresh Siddha
2012-05-22  2:41       ` Dimitri Sivanich
2012-05-21 21:07 ` Thomas Gleixner
2012-05-21 21:19   ` Dimitri Sivanich
2012-05-21 21:34     ` Thomas Gleixner
2012-05-23 18:16       ` Dimitri Sivanich
2012-05-23 19:04         ` Dimitri Sivanich
2012-05-23 19:24           ` Thomas Gleixner
2012-05-23 19:24           ` Suresh Siddha
2012-05-23 20:02             ` Dimitri Sivanich
2012-05-23 23:49               ` Suresh Siddha
2012-05-24  1:40                 ` Dimitri Sivanich
2012-05-24 14:37                 ` Dimitri Sivanich
2012-05-24 18:19                   ` Suresh Siddha
2012-05-24 19:16                     ` Thomas Gleixner
2012-05-26  0:23                       ` Suresh Siddha
2012-05-26 10:18                         ` Thomas Gleixner
2012-05-27  1:41                           ` Jiang Liu [this message]
2012-05-30 13:46                           ` Dimitri Sivanich
2012-05-24 14:53                 ` Thomas Gleixner
2012-05-24 15:36                   ` Dimitri Sivanich
  -- strict thread matches above, loose matches on Subject: below --
2012-10-16 12:50 Dimitri Sivanich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FC18646.8010301@gmail.com \
    --to=liuj97@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jacob.jun.pan@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=nagananda.chumbalkar@hp.com \
    --cc=sivanich@sgi.com \
    --cc=suresh.b.siddha@intel.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.