Message ID | 1534250715-4543-1-git-send-email-clombard@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 6f8e45f7eb1bee5efdbe4a9cfe4a45627403c5fb |
Headers | show |
Series | [V3] ocxl: Fix access to the AFU Descriptor Data | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | next/apply_patch Successfully applied |
snowpatch_ozlabs/checkpatch | warning | Test checkpatch on branch next |
snowpatch_ozlabs/build-ppc64le | success | Test build-ppc64le on branch next |
snowpatch_ozlabs/build-ppc64be | success | Test build-ppc64be on branch next |
snowpatch_ozlabs/build-ppc64e | success | Test build-ppc64e on branch next |
snowpatch_ozlabs/build-ppc32 | success | Test build-ppc32 on branch next |
On Tue, 2018-08-14 at 12:45:15 UTC, Christophe Lombard wrote: > The AFU Information DVSEC capability is a means to extract common, > general information about all of the AFUs associated with a Function > independent of the specific functionality that each AFU provides. > Write in the AFU Index field allows to access to the descriptor data > for each AFU. > > With the current code, we are not able to access to these specific data > when the index >= 1 because we are writing to the wrong location. > All requests to the data of each AFU are pointing to those of the AFU 0, > which could have impacts when using a card with more than one AFU per > function. > > This patch fixes the access to the AFU Descriptor Data indexed by the > AFU Info Index field. > > Fixes: 5ef3166e8a32 ("ocxl: Driver code for 'generic' opencapi devices") > Cc: stable <stable@vger.kernel.org> # 4.16 > Signed-off-by: Christophe Lombard <clombard@linux.vnet.ibm.com> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/6f8e45f7eb1bee5efdbe4a9cfe4a45 cheers
diff --git a/drivers/misc/ocxl/config.c b/drivers/misc/ocxl/config.c index 2e30de9..57a6bb1 100644 --- a/drivers/misc/ocxl/config.c +++ b/drivers/misc/ocxl/config.c @@ -280,7 +280,9 @@ int ocxl_config_check_afu_index(struct pci_dev *dev, u32 val; int rc, templ_major, templ_minor, len; - pci_write_config_word(dev, fn->dvsec_afu_info_pos, afu_idx); + pci_write_config_byte(dev, + fn->dvsec_afu_info_pos + OCXL_DVSEC_AFU_INFO_AFU_IDX, + afu_idx); rc = read_afu_info(dev, fn, OCXL_DVSEC_TEMPL_VERSION, &val); if (rc) return rc;