• Jacob Keller's avatar
    ice: add error message when pldmfw_flash_image fails · e872b94f
    Jacob Keller authored
    When flashing a new firmware image onto the device, the pldmfw library
    parses the image contents looking for a matching record. If no record
    can be found, the function reports an error of -ENOENT. This can produce
    a very confusing error message and experience for the user:
    
      $devlink dev flash pci/0000:ab:00.0 file image.bin
      devlink answers: No such file or directory
    
    This is because the ENOENT error code is interpreted as a missing file
    or directory. The pldmfw library does not have direct access to the
    extack pointer as it is generic and non-netdevice specific. The only way
    that ENOENT is returned by the pldmfw library is when no record matches.
    
    Catch this specific error and report a suitable extended ack message:
    
      $devlink dev flash pci/0000:ab:00.0 file image.bin
      Error: ice: Firmware image has no record matching this device
      devlink answers: No such file or directory
    
    In addition, ensure that we log an error message to the console whenever
    this function fails. Because our driver specific PLDM operation
    functions potentially set the extended ACK message, avoid overwriting
    this with a generic message.
    
    This change should result in an improved experience when attempting to
    flash an image that does not have a compatible record.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Tested-by: default avatarTony Brelinski <tonyx.brelinski@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    e872b94f
ice_fw_update.c 25.7 KB