From: Colin Ian King <colin.king@xxxxxxxxxxxxx> The assignment of pointer port with a dereference of pointer cxl_port occurs before cxl_port is null checked. Fix this by only assigning port once cxl_port has been null checked. Addresses-Coverity: ("Dereference before null check") Fixes: b7ca54b62551 ("cxl/core: Split decoder setup into alloc + add") Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx> --- drivers/cxl/core/bus.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/cxl/core/bus.c b/drivers/cxl/core/bus.c index 0b85351be6bf..55db46ba8a18 100644 --- a/drivers/cxl/core/bus.c +++ b/drivers/cxl/core/bus.c @@ -494,7 +494,7 @@ EXPORT_SYMBOL_GPL(cxl_decoder_alloc); int devm_cxl_add_decoder(struct device *host, struct cxl_decoder *cxld, int *target_map) { - struct cxl_port *port = to_cxl_port(cxld->dev.parent); + struct cxl_port *port; struct device *dev; int rc = 0, i; @@ -509,6 +509,7 @@ int devm_cxl_add_decoder(struct device *host, struct cxl_decoder *cxld, goto err; } + port = to_cxl_port(cxld->dev.parent); device_lock(&port->dev); if (list_empty(&port->dports)) rc = -EINVAL; -- 2.32.0