diff options
author | Alison Schofield <alison.schofield@intel.com> | 2023-04-18 10:39:03 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2023-04-23 11:45:26 -0700 |
commit | d0abf5787adc0341a04667d3b4a23b4d0999af30 (patch) | |
tree | 0f20372836d7d4dc3a5e76daee16712520869ccd /drivers/cxl/pci.c | |
parent | dec441d32a9a1e4a891ccda3356cac61cc1ffe79 (diff) | |
download | lwn-d0abf5787adc0341a04667d3b4a23b4d0999af30.tar.gz lwn-d0abf5787adc0341a04667d3b4a23b4d0999af30.zip |
cxl/mbox: Initialize the poison state
Driver reads of the poison list are synchronized to ensure that a
reader does not get an incomplete list because their request
overlapped (was interrupted or preceded by) another read request
of the same DPA range. (CXL Spec 3.0 Section 8.2.9.8.4.1). The
driver maintains state information to achieve this goal.
To initialize the state, first recognize the poison commands in
the CEL (Command Effects Log). If the device supports Get Poison
List, allocate a single buffer for the poison list and protect it
with a lock.
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Link: https://lore.kernel.org/r/9078d180769be28a5087288b38cdfc827cae58bf.1681838291.git.alison.schofield@intel.com
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/cxl/pci.c')
-rw-r--r-- | drivers/cxl/pci.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/cxl/pci.c b/drivers/cxl/pci.c index 60b23624d167..827ea0895778 100644 --- a/drivers/cxl/pci.c +++ b/drivers/cxl/pci.c @@ -769,6 +769,10 @@ static int cxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (rc) return rc; + rc = cxl_poison_state_init(cxlds); + if (rc) + return rc; + rc = cxl_dev_state_identify(cxlds); if (rc) return rc; |