lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100824163149.GA7415@redhat.com>
Date:	Tue, 24 Aug 2010 18:31:49 +0200
From:	Oleg Nesterov <oleg@...hat.com>
To:	Yong Zhang <yong.zhang0@...il.com>
Cc:	linux-kernel@...r.kernel.org, tglx@...utronix.de,
	akpm@...ux-foundation.org, mingo@...e.hu, peterz@...radead.org
Subject: Re: [RFC PATCH 1/3] timer: fix comments of try_to_del_timer_sync()

On 08/24, Yong Zhang wrote:
>
> On Tue, Aug 24, 2010 at 02:11:09PM +0200, Oleg Nesterov wrote:
> > On 08/24, Yong Zhang wrote:
> > >
> > > From: Yong Zhang <yong.zhang@...driver.com>
> > >
> > > In commit fd450b7318b75343fd76b3d95416853e34e72c95, it was saying
> > > try_to_del_timer_sync() can be used in interrupt context.
> >
> > Yes, but not in UP case.
>
> Yeah, but in UP case there is no try_to_del_timer_sync(), it's redefined
> to del_timer().

Ah, indeed, I forgot. This was another reason for the comment.

> > Please remove "#ifdef CONFIG_SMP" from set_running_timer(), then iirc
> > it can be used from irq.
>
> I have noticed your comments in the commit log, but I think it's about
> introducing the same semantic of try_to_del_timer_sync() on UP as well
> as SMP. But this patch is focusing on the current code(SMP special).
> Not about realizing try_to_del_timer_sync() on UP case. Do we need
> to do that?

I dunno.

But look, currently try_to_del_timer_sync() is not allowed from interrupt
even if it works with CONFIG_SMP.

If we "officially" allow it to use from irq, it should work on UP too but
it doesn't. del_timer() can't hang, but it can never return -1 to indicate
we hit the running timer.

Consider:

	// runs in interrup context

	if (try_do_del_timer_sync(&TIMER) > 0)
		kfree(something_which_can_be_used_by_TIMER_func);		

This is unsafe on UP.


del_timer_sync == del_timer is fine on UP. Since it must not be called
from irq, it can never hit the running timer.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ