lkml.org 
[lkml]   [1999]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: race condition in down_interruptible
Date
From
On Sat, 13 Feb 1999, Andrea Arcangeli wrote

> On Fri, 12 Feb 1999, Ulrich Schmid wrote:
>
> > sem->count sem->waking
> >No process holds the semaphore 1 0
> >Process A acquires the semaphore 0 0
> >Process B calls down_interruptible() -1 0
> >Process B is interrupted and passes
> > waking_non_zero() -1 0
> >Process A calls up() (on another CPU) 0 1
>
> B get wakenup and runs waking_non_zero that sees sem->waking == 1 and so
> do sem->waking-- and then B has no way to runs atomic_inc() because
> waking_non_zero returned 1 (owned the semaphore).

If B runs waking_non_zero before A calls up, it will see sem->waking == 0.

Ulrich Schmid



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

\
 
 \ /
  Last update: 2005-03-22 13:50    [W:0.026 / U:0.592 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site