• Andrew Morton's avatar
    [PATCH] Fix race in epoll_ctl(EPOLL_CTL_MOD) · 2328d92a
    Andrew Morton authored
    From: Davide Libenzi <davidel@xmailserver.org>
    
    A potential race can happen in epoll_ctl(EPOLL_CTL_MOD) where an event can
    happen in between f_op->poll() and the lock on ep->lock (we cannot call
    f_op->poll() inside a lock, and the f_op->poll() callback does not carry
    any info at the current time - missing wake_up_info() already ;).  In that
    case the event would be removed.  We can easily leave the event inside the
    ready list and have the ep_send_events() logic do the job for us at later
    time.  (Thanks to david.lee@teracruz.com for reporting the thing, since it
    shouldn't have been a nice one ;)
    2328d92a
eventpoll.c 46.4 KB