Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: atmel - fix checks of error code returned by devm_ioremap_resource()

The change fixes potential oops while accessing iomem on invalid
address, if devm_ioremap_resource() fails due to some reason.

The devm_ioremap_resource() function returns ERR_PTR() and never
returns NULL, which makes useless a following check for NULL.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Fixes: b0e8b3417a62 ("crypto: atmel - use devm_xxx() managed function")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Vladimir Zapolskiy and committed by
Herbert Xu
9b52d55f 84a0ced0

+6 -6
+2 -2
drivers/crypto/atmel-aes.c
··· 2079 2079 } 2080 2080 2081 2081 aes_dd->io_base = devm_ioremap_resource(&pdev->dev, aes_res); 2082 - if (!aes_dd->io_base) { 2082 + if (IS_ERR(aes_dd->io_base)) { 2083 2083 dev_err(dev, "can't ioremap\n"); 2084 - err = -ENOMEM; 2084 + err = PTR_ERR(aes_dd->io_base); 2085 2085 goto res_err; 2086 2086 } 2087 2087
+2 -2
drivers/crypto/atmel-sha.c
··· 1486 1486 } 1487 1487 1488 1488 sha_dd->io_base = devm_ioremap_resource(&pdev->dev, sha_res); 1489 - if (!sha_dd->io_base) { 1489 + if (IS_ERR(sha_dd->io_base)) { 1490 1490 dev_err(dev, "can't ioremap\n"); 1491 - err = -ENOMEM; 1491 + err = PTR_ERR(sha_dd->io_base); 1492 1492 goto res_err; 1493 1493 } 1494 1494
+2 -2
drivers/crypto/atmel-tdes.c
··· 1417 1417 } 1418 1418 1419 1419 tdes_dd->io_base = devm_ioremap_resource(&pdev->dev, tdes_res); 1420 - if (!tdes_dd->io_base) { 1420 + if (IS_ERR(tdes_dd->io_base)) { 1421 1421 dev_err(dev, "can't ioremap\n"); 1422 - err = -ENOMEM; 1422 + err = PTR_ERR(tdes_dd->io_base); 1423 1423 goto res_err; 1424 1424 } 1425 1425