• Arnd Bergmann's avatar
    media: v4l2-core: fix VIDIOC_DQEVENT for time64 ABI · 1a6c0b36
    Arnd Bergmann authored
    The v4l2_event structure contains a 'struct timespec' member that is
    defined by the user space C library, creating an ABI incompatibility
    when that gets updated to a 64-bit time_t.
    
    While passing a 32-bit time_t here would be sufficient for CLOCK_MONOTONIC
    timestamps, simply redefining the structure to use the kernel's
    __kernel_old_timespec would not work for any library that uses a copy
    of the linux/videodev2.h header file rather than including the copy from
    the latest kernel headers.
    
    This means the kernel has to be changed to handle both versions of the
    structure layout on a 32-bit architecture. The easiest way to do this
    is during the copy from/to user space.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
    1a6c0b36
v4l2-ioctl.c 103 KB