• Stefan Richter's avatar
    firewire: cdev: freeze FW_CDEV_VERSION due to libraw1394 bug · 604f4516
    Stefan Richter authored
    libraw1394 v2.0.0...v2.0.5 takes FW_CDEV_VERSION from an externally
    installed header file and uses it to declare its own implementation
    level in FW_CDEV_IOC_GET_INFO.  This is wrong; it should set the real
    version for which it was actually written.
    
    If we add features to the kernel ABI that require the kernel to check
    a client's implementation level, we can not trust the client version if
    it was set from FW_CDEV_VERSION.
    
    Hence freeze FW_CDEV_VERSION at the current value (no damage has been
    done yet), clearly document FW_CDEV_VERSION as a dummy version and what
    clients are expected to do with fw_cdev_get_info.version, and use a new
    defined constant (which is not placed into the exported header file) as
    kernel implementation level.
    
    Note, in order to check in client program source code which features are
    present in an externally installed linux/firewire-cdev.h, use
    preprocessor directives like
      #ifdef FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE
    or
      #ifdef FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED
    instead of a check of FW_CDEV_VERSION.
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    604f4516
core-cdev.c 38.4 KB