• Chris Rankin's avatar
    [media] dvb_frontend: regression fix: userspace ABI broken for xine · 556a0442
    Chris Rankin authored
    The commit e399ce77 has broken the DVB ABI for xine:
    
    The problem is that xine is expecting every event after a successful
    FE_SET_FRONTEND ioctl to have a non-zero frequency parameter, regardless
    of whether the tuning process has LOCKed yet. What used to happen is
    that the events inherited the initial tuning parameters from the
    FE_SET_FRONTEND call. However, the fepriv->parameters_out struct is now
    not initialised until the status contains the FE_HAS_LOCK bit.
    
    You might argue that this behaviour is intentional, except that if an
    application other than xine uses the DVB adapter and manages to set the
    parameters_out.frequency field to something other than zero, then xine
    no longer has any problems until either the adapter is replugged or the
    kernel modules reloaded. This can only mean that the
    fepriv->parameters_out struct still contains the (stale) tuning
    information from the previous application.
    Signed-off-by: default avatarChris Rankin <rankincj@yahoo.com>
    Cc: stable@kernel.org # for kernel version 3.3
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    556a0442
dvb_frontend.c 65.3 KB