• Daniel Stone's avatar
    Input: evdev - fall back to vmalloc for client event buffer · 92eb77d0
    Daniel Stone authored
    evdev always tries to allocate the event buffer for clients using
    kzalloc rather than vmalloc, presumably to avoid mapping overhead where
    possible.  However, drivers like bcm5974, which claims support for
    reporting 16 fingers simultaneously, can have an extraordinarily large
    buffer.  The resultant contiguous order-4 allocation attempt fails due
    to fragmentation, and the device is thus unusable until reboot.
    
    Try kzalloc if we can to avoid the mapping overhead, but if that fails,
    fall back to vzalloc.
    Signed-off-by: default avatarDaniel Stone <daniels@collabora.com>
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    92eb77d0
evdev.c 27.9 KB