'svc_create_memory_pool()' returns an error pointer on error, not NULL. Fix the corresponding test and return value accordingly. Move the genpool allocation after a few devm_kzalloc in order to ease error handling. Fixes: 7ca5ce896524 ("firmware: add Intel Stratix10 service layer driver") Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> --- drivers/firmware/stratix10-svc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-svc.c index d5f0769f3761..3a176e62754a 100644 --- a/drivers/firmware/stratix10-svc.c +++ b/drivers/firmware/stratix10-svc.c @@ -997,10 +997,6 @@ static int stratix10_svc_drv_probe(struct platform_device *pdev) if (ret) return ret; - genpool = svc_create_memory_pool(pdev, sh_memory); - if (!genpool) - return -ENOMEM; - /* allocate service controller and supporting channel */ controller = devm_kzalloc(dev, sizeof(*controller), GFP_KERNEL); if (!controller) @@ -1011,6 +1007,10 @@ static int stratix10_svc_drv_probe(struct platform_device *pdev) if (!chans) return -ENOMEM; + genpool = svc_create_memory_pool(pdev, sh_memory); + if (IS_ERR(genpool)) + return PTR_ERR(genpool); + controller->dev = dev; controller->num_chans = SVC_NUM_CHANNEL; controller->num_active_client = 0; -- 2.25.1