On 29/01/2019 07:15, Vaibhav Jain wrote:
Within cxl module, iteration over array 'adapter->slices' may be racy
at few points as it might be simultaneously read during an EEH and its
contents being set to NULL while driver is being unloaded or unbound
from the adapter. This might result in a NULL pointer to 'struct afu'
being de-referenced during an EEH thereby causing a kernel oops.
This patch fixes this by making sure that all access to the array
'adapter->slices' is wrapped within the context of spin-lock
'adapter->afu_list_lock'.
Signed-off-by: Vaibhav Jain <vaib...@linux.ibm.com>
---
Changelog:
v3:
* Updated a slice loop in cxl_pci_error_detectected() to ignore NULL
slices [Fred]
* Added a NULL AFU check in cxl_pci_slot_reset() [Fred]
v2:
* Fixed a wrong comparison of non-null pointer [Fred]
* Moved a call to cxl_vphb_error_detected() within a branch that
checks for not null AFU pointer in 'adapter->slices' [Fred]
* Removed a misleading comment in code.
---
Thanks
Acked-by: Christophe Lombard<clomb...@linux.vnet.ibm.com>