Skip to content
  • Mauro Carvalho Chehab's avatar
    media: dvb_frontend: fix return values for FE_SET_PROPERTY · 259a41d9
    Mauro Carvalho Chehab authored
    
    
    There are several problems with regards to the return of
    FE_SET_PROPERTY. The original idea were to return per-property
    return codes via tvp->result field, and to return an updated
    set of values.
    
    However, that never worked. What's actually implemented is:
    
    - the FE_SET_PROPERTY implementation doesn't call .get_frontend
      callback in order to get the actual parameters after return;
    
    - the tvp->result field is only filled if there's no error.
      So, it is always filled with zero;
    
    - FE_SET_PROPERTY doesn't call memdup_user() nor any other
      copy_to_user() function. So, any changes to the properties
      will be lost;
    
    - FE_SET_PROPERTY is declared as a write-only ioctl (IOW).
    
    While we could fix the above, it could cause regressions.
    
    So, let's just assume what the code really does, updating
    the documentation accordingly and removing the logic that
    would update the discarded tvp->result.
    
    Reviewed-by: default avatarShuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
    259a41d9