• David Herrmann's avatar
    HID: uhid: allow poll()'ing on uhid devices · 1f9dec1e
    David Herrmann authored
    As long as the internal buffer is not empty, we return POLLIN to
    user-space.
    
    uhid->head and uhid->tail are no atomics so the comparison may return
    inexact results. However, this doesn't matter here as user-space would
    need to poll() in two threads simultaneously to trigger this. And in this
    case it doesn't matter if a cached result is returned or the exact new
    result as user-space does not know which thread returns first from poll()
    and the following read(). So it is safe to compare the values without
    locking.
    Signed-off-by: default avatarDavid Herrmann <dh.herrmann@googlemail.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    1f9dec1e
uhid.c 3.24 KB