1. 11 Feb, 2023 2 commits
  2. 09 Feb, 2023 1 commit
  3. 27 Jan, 2023 1 commit
    • Robert Richter's avatar
      cxl/mbox: Fix Payload Length check for Get Log command · 623c0751
      Robert Richter authored
      Commit 2aeaf663 introduced strict checking for variable length
      payload size validation. The payload length of received data must
      match the size of the requested data by the caller except for the case
      where the min_out value is set.
      
      The Get Log command does not have a header with a length field set.
      The Log size is determined by the Get Supported Logs command (CXL 3.0,
      8.2.9.5.1). However, the actual size can be smaller and the number of
      valid bytes in the payload output must be determined reading the
      Payload Length field (CXL 3.0, Table 8-36, Note 2).
      
      Two issues arise: The command can successfully complete with a payload
      length of zero. And, the valid payload length must then also be
      consumed by the caller.
      
      Change cxl_xfer_log() to pass the number of payload bytes back to the
      caller to determine the number of log entries. Implement the payload
      handling as a special case where mbox_cmd->size_out is consulted when
      cxl_internal_send_cmd() returns -EIO. A WARN_ONCE() is added to check
      that -EIO is only returned in case of an unexpected output size.
      
      Logs can be bigger than the maximum payload length and multiple Get
      Log commands can be issued. If the received payload size is smaller
      than the maximum payload size we can assume all valid bytes have been
      fetched. Stop sending further Get Log commands then.
      
      On that occasion, change debug messages to also report the opcodes of
      supported commands.
      
      The variable payload commands GET_LSA and SET_LSA are not affected by
      this strict check: SET_LSA cannot be broken because SET_LSA does not
      return an output payload, and GET_LSA never expects short reads.
      
      Fixes: 2aeaf663 ("cxl/mbox: Add variable output size validation for internal commands")
      Signed-off-by: default avatarRobert Richter <rrichter@amd.com>
      Reviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
      Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
      Link: https://lore.kernel.org/r/20230119094934.86067-1-rrichter@amd.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      623c0751
  4. 26 Jan, 2023 3 commits
  5. 25 Jan, 2023 4 commits
  6. 05 Jan, 2023 4 commits
  7. 01 Jan, 2023 6 commits
  8. 31 Dec, 2022 2 commits
  9. 30 Dec, 2022 17 commits