crypto: keembay - Don't pass errors to the caller in .remove()

Returning an error code in the remove function of a platform device has
no effect (compared to returning zero) apart from an error message, that
the error is ignored. Then the device is removed irrespective of the
returned value.

As kmb_ocs_hcu_remove is only called after kmb_ocs_hcu_probe() returned
successfully, platform_get_drvdata() never returns NULL and so the
respective check can just be dropped.

crypto_engine_exit() might return an error code but already emits an
error message in that case, so better return zero in
kmb_ocs_hcu_remove() even in this case to suppress another error
message. All other crypto drivers also ignore the return value of
crypto_engine_exit().

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Uwe Kleine-König 2023-09-23 12:08:05 +02:00 committed by Herbert Xu
parent 141f12be09
commit 0eb85cb3c8

View File

@ -1153,22 +1153,17 @@ static const struct of_device_id kmb_ocs_hcu_of_match[] = {
static int kmb_ocs_hcu_remove(struct platform_device *pdev) static int kmb_ocs_hcu_remove(struct platform_device *pdev)
{ {
struct ocs_hcu_dev *hcu_dev; struct ocs_hcu_dev *hcu_dev = platform_get_drvdata(pdev);
int rc;
hcu_dev = platform_get_drvdata(pdev);
if (!hcu_dev)
return -ENODEV;
crypto_engine_unregister_ahashes(ocs_hcu_algs, ARRAY_SIZE(ocs_hcu_algs)); crypto_engine_unregister_ahashes(ocs_hcu_algs, ARRAY_SIZE(ocs_hcu_algs));
rc = crypto_engine_exit(hcu_dev->engine); crypto_engine_exit(hcu_dev->engine);
spin_lock_bh(&ocs_hcu.lock); spin_lock_bh(&ocs_hcu.lock);
list_del(&hcu_dev->list); list_del(&hcu_dev->list);
spin_unlock_bh(&ocs_hcu.lock); spin_unlock_bh(&ocs_hcu.lock);
return rc; return 0;
} }
static int kmb_ocs_hcu_probe(struct platform_device *pdev) static int kmb_ocs_hcu_probe(struct platform_device *pdev)