diff options
author | LABBE Corentin <clabbe.montjoie@gmail.com> | 2015-10-12 13:47:03 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2015-10-14 10:23:38 -0400 |
commit | b0e8b3417a620e6e0a91fd526fbc6db78714198e (patch) | |
tree | c94520f907b4c3f2bdd84ef2de0647a15e02dd27 | |
parent | dc97fa02328b79f05a2ec1693b7596fae52c0e02 (diff) |
crypto: atmel - use devm_xxx() managed function
Using the devm_xxx() managed function to stripdown the error and remove
code.
Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | drivers/crypto/atmel-aes.c | 38 | ||||
-rw-r--r-- | drivers/crypto/atmel-sha.c | 27 | ||||
-rw-r--r-- | drivers/crypto/atmel-tdes.c | 29 |
3 files changed, 25 insertions, 69 deletions
diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c index de8f5da75a0f..fb16d812c8f5 100644 --- a/drivers/crypto/atmel-aes.c +++ b/drivers/crypto/atmel-aes.c | |||
@@ -1324,7 +1324,6 @@ static int atmel_aes_probe(struct platform_device *pdev) | |||
1324 | struct crypto_platform_data *pdata; | 1324 | struct crypto_platform_data *pdata; |
1325 | struct device *dev = &pdev->dev; | 1325 | struct device *dev = &pdev->dev; |
1326 | struct resource *aes_res; | 1326 | struct resource *aes_res; |
1327 | unsigned long aes_phys_size; | ||
1328 | int err; | 1327 | int err; |
1329 | 1328 | ||
1330 | pdata = pdev->dev.platform_data; | 1329 | pdata = pdev->dev.platform_data; |
@@ -1341,7 +1340,7 @@ static int atmel_aes_probe(struct platform_device *pdev) | |||
1341 | goto aes_dd_err; | 1340 | goto aes_dd_err; |
1342 | } | 1341 | } |
1343 | 1342 | ||
1344 | aes_dd = kzalloc(sizeof(struct atmel_aes_dev), GFP_KERNEL); | 1343 | aes_dd = devm_kzalloc(&pdev->dev, sizeof(*aes_dd), GFP_KERNEL); |
1345 | if (aes_dd == NULL) { | 1344 | if (aes_dd == NULL) { |
1346 | dev_err(dev, "unable to alloc data struct.\n"); | 1345 | dev_err(dev, "unable to alloc data struct.\n"); |
1347 | err = -ENOMEM; | 1346 | err = -ENOMEM; |
@@ -1372,36 +1371,35 @@ static int atmel_aes_probe(struct platform_device *pdev) | |||
1372 | goto res_err; | 1371 | goto res_err; |
1373 | } | 1372 | } |
1374 | aes_dd->phys_base = aes_res->start; | 1373 | aes_dd->phys_base = aes_res->start; |
1375 | aes_phys_size = resource_size(aes_res); | ||
1376 | 1374 | ||
1377 | /* Get the IRQ */ | 1375 | /* Get the IRQ */ |
1378 | aes_dd->irq = platform_get_irq(pdev, 0); | 1376 | aes_dd->irq = platform_get_irq(pdev, 0); |
1379 | if (aes_dd->irq < 0) { | 1377 | if (aes_dd->irq < 0) { |
1380 | dev_err(dev, "no IRQ resource info\n"); | 1378 | dev_err(dev, "no IRQ resource info\n"); |
1381 | err = aes_dd->irq; | 1379 | err = aes_dd->irq; |
1382 | goto aes_irq_err; | 1380 | goto res_err; |
1383 | } | 1381 | } |
1384 | 1382 | ||
1385 | err = request_irq(aes_dd->irq, atmel_aes_irq, IRQF_SHARED, "atmel-aes", | 1383 | err = devm_request_irq(&pdev->dev, aes_dd->irq, atmel_aes_irq, |
1386 | aes_dd); | 1384 | IRQF_SHARED, "atmel-aes", aes_dd); |
1387 | if (err) { | 1385 | if (err) { |
1388 | dev_err(dev, "unable to request aes irq.\n"); | 1386 | dev_err(dev, "unable to request aes irq.\n"); |
1389 | goto aes_irq_err; | 1387 | goto res_err; |
1390 | } | 1388 | } |
1391 | 1389 | ||
1392 | /* Initializing the clock */ | 1390 | /* Initializing the clock */ |
1393 | aes_dd->iclk = clk_get(&pdev->dev, "aes_clk"); | 1391 | aes_dd->iclk = devm_clk_get(&pdev->dev, "aes_clk"); |
1394 | if (IS_ERR(aes_dd->iclk)) { | 1392 | if (IS_ERR(aes_dd->iclk)) { |
1395 | dev_err(dev, "clock initialization failed.\n"); | 1393 | dev_err(dev, "clock initialization failed.\n"); |
1396 | err = PTR_ERR(aes_dd->iclk); | 1394 | err = PTR_ERR(aes_dd->iclk); |
1397 | goto clk_err; | 1395 | goto res_err; |
1398 | } | 1396 | } |
1399 | 1397 | ||
1400 | aes_dd->io_base = ioremap(aes_dd->phys_base, aes_phys_size); | 1398 | aes_dd->io_base = devm_ioremap_resource(&pdev->dev, aes_res); |
1401 | if (!aes_dd->io_base) { | 1399 | if (!aes_dd->io_base) { |
1402 | dev_err(dev, "can't ioremap\n"); | 1400 | dev_err(dev, "can't ioremap\n"); |
1403 | err = -ENOMEM; | 1401 | err = -ENOMEM; |
1404 | goto aes_io_err; | 1402 | goto res_err; |
1405 | } | 1403 | } |
1406 | 1404 | ||
1407 | atmel_aes_hw_version_init(aes_dd); | 1405 | atmel_aes_hw_version_init(aes_dd); |
@@ -1438,17 +1436,9 @@ err_algs: | |||
1438 | err_aes_dma: | 1436 | err_aes_dma: |
1439 | atmel_aes_buff_cleanup(aes_dd); | 1437 | atmel_aes_buff_cleanup(aes_dd); |
1440 | err_aes_buff: | 1438 | err_aes_buff: |
1441 | iounmap(aes_dd->io_base); | ||
1442 | aes_io_err: | ||
1443 | clk_put(aes_dd->iclk); | ||
1444 | clk_err: | ||
1445 | free_irq(aes_dd->irq, aes_dd); | ||
1446 | aes_irq_err: | ||
1447 | res_err: | 1439 | res_err: |
1448 | tasklet_kill(&aes_dd->done_task); | 1440 | tasklet_kill(&aes_dd->done_task); |
1449 | tasklet_kill(&aes_dd->queue_task); | 1441 | tasklet_kill(&aes_dd->queue_task); |
1450 | kfree(aes_dd); | ||
1451 | aes_dd = NULL; | ||
1452 | aes_dd_err: | 1442 | aes_dd_err: |
1453 | dev_err(dev, "initialization failed.\n"); | 1443 | dev_err(dev, "initialization failed.\n"); |
1454 | 1444 | ||
@@ -1473,16 +1463,6 @@ static int atmel_aes_remove(struct platform_device *pdev) | |||
1473 | 1463 | ||
1474 | atmel_aes_dma_cleanup(aes_dd); | 1464 | atmel_aes_dma_cleanup(aes_dd); |
1475 | 1465 | ||
1476 | iounmap(aes_dd->io_base); | ||
1477 | |||
1478 | clk_put(aes_dd->iclk); | ||
1479 | |||
1480 | if (aes_dd->irq > 0) | ||
1481 | free_irq(aes_dd->irq, aes_dd); | ||
1482 | |||
1483 | kfree(aes_dd); | ||
1484 | aes_dd = NULL; | ||
1485 | |||
1486 | return 0; | 1466 | return 0; |
1487 | } | 1467 | } |
1488 | 1468 | ||
diff --git a/drivers/crypto/atmel-sha.c b/drivers/crypto/atmel-sha.c index 5e6cf0891b4d..660d8c06540b 100644 --- a/drivers/crypto/atmel-sha.c +++ b/drivers/crypto/atmel-sha.c | |||
@@ -1349,11 +1349,9 @@ static int atmel_sha_probe(struct platform_device *pdev) | |||
1349 | struct crypto_platform_data *pdata; | 1349 | struct crypto_platform_data *pdata; |
1350 | struct device *dev = &pdev->dev; | 1350 | struct device *dev = &pdev->dev; |
1351 | struct resource *sha_res; | 1351 | struct resource *sha_res; |
1352 | unsigned long sha_phys_size; | ||
1353 | int err; | 1352 | int err; |
1354 | 1353 | ||
1355 | sha_dd = devm_kzalloc(&pdev->dev, sizeof(struct atmel_sha_dev), | 1354 | sha_dd = devm_kzalloc(&pdev->dev, sizeof(*sha_dd), GFP_KERNEL); |
1356 | GFP_KERNEL); | ||
1357 | if (sha_dd == NULL) { | 1355 | if (sha_dd == NULL) { |
1358 | dev_err(dev, "unable to alloc data struct.\n"); | 1356 | dev_err(dev, "unable to alloc data struct.\n"); |
1359 | err = -ENOMEM; | 1357 | err = -ENOMEM; |
@@ -1382,7 +1380,6 @@ static int atmel_sha_probe(struct platform_device *pdev) | |||
1382 | goto res_err; | 1380 | goto res_err; |
1383 | } | 1381 | } |
1384 | sha_dd->phys_base = sha_res->start; | 1382 | sha_dd->phys_base = sha_res->start; |
1385 | sha_phys_size = resource_size(sha_res); | ||
1386 | 1383 | ||
1387 | /* Get the IRQ */ | 1384 | /* Get the IRQ */ |
1388 | sha_dd->irq = platform_get_irq(pdev, 0); | 1385 | sha_dd->irq = platform_get_irq(pdev, 0); |
@@ -1392,26 +1389,26 @@ static int atmel_sha_probe(struct platform_device *pdev) | |||
1392 | goto res_err; | 1389 | goto res_err; |
1393 | } | 1390 | } |
1394 | 1391 | ||
1395 | err = request_irq(sha_dd->irq, atmel_sha_irq, IRQF_SHARED, "atmel-sha", | 1392 | err = devm_request_irq(&pdev->dev, sha_dd->irq, atmel_sha_irq, |
1396 | sha_dd); | 1393 | IRQF_SHARED, "atmel-sha", sha_dd); |
1397 | if (err) { | 1394 | if (err) { |
1398 | dev_err(dev, "unable to request sha irq.\n"); | 1395 | dev_err(dev, "unable to request sha irq.\n"); |
1399 | goto res_err; | 1396 | goto res_err; |
1400 | } | 1397 | } |
1401 | 1398 | ||
1402 | /* Initializing the clock */ | 1399 | /* Initializing the clock */ |
1403 | sha_dd->iclk = clk_get(&pdev->dev, "sha_clk"); | 1400 | sha_dd->iclk = devm_clk_get(&pdev->dev, "sha_clk"); |
1404 | if (IS_ERR(sha_dd->iclk)) { | 1401 | if (IS_ERR(sha_dd->iclk)) { |
1405 | dev_err(dev, "clock initialization failed.\n"); | 1402 | dev_err(dev, "clock initialization failed.\n"); |
1406 | err = PTR_ERR(sha_dd->iclk); | 1403 | err = PTR_ERR(sha_dd->iclk); |
1407 | goto clk_err; | 1404 | goto res_err; |
1408 | } | 1405 | } |
1409 | 1406 | ||
1410 | sha_dd->io_base = ioremap(sha_dd->phys_base, sha_phys_size); | 1407 | sha_dd->io_base = devm_ioremap_resource(&pdev->dev, sha_res); |
1411 | if (!sha_dd->io_base) { | 1408 | if (!sha_dd->io_base) { |
1412 | dev_err(dev, "can't ioremap\n"); | 1409 | dev_err(dev, "can't ioremap\n"); |
1413 | err = -ENOMEM; | 1410 | err = -ENOMEM; |
1414 | goto sha_io_err; | 1411 | goto res_err; |
1415 | } | 1412 | } |
1416 | 1413 | ||
1417 | atmel_sha_hw_version_init(sha_dd); | 1414 | atmel_sha_hw_version_init(sha_dd); |
@@ -1425,12 +1422,12 @@ static int atmel_sha_probe(struct platform_device *pdev) | |||
1425 | if (IS_ERR(pdata)) { | 1422 | if (IS_ERR(pdata)) { |
1426 | dev_err(&pdev->dev, "platform data not available\n"); | 1423 | dev_err(&pdev->dev, "platform data not available\n"); |
1427 | err = PTR_ERR(pdata); | 1424 | err = PTR_ERR(pdata); |
1428 | goto err_pdata; | 1425 | goto res_err; |
1429 | } | 1426 | } |
1430 | } | 1427 | } |
1431 | if (!pdata->dma_slave) { | 1428 | if (!pdata->dma_slave) { |
1432 | err = -ENXIO; | 1429 | err = -ENXIO; |
1433 | goto err_pdata; | 1430 | goto res_err; |
1434 | } | 1431 | } |
1435 | err = atmel_sha_dma_init(sha_dd, pdata); | 1432 | err = atmel_sha_dma_init(sha_dd, pdata); |
1436 | if (err) | 1433 | if (err) |
@@ -1461,12 +1458,6 @@ err_algs: | |||
1461 | if (sha_dd->caps.has_dma) | 1458 | if (sha_dd->caps.has_dma) |
1462 | atmel_sha_dma_cleanup(sha_dd); | 1459 | atmel_sha_dma_cleanup(sha_dd); |
1463 | err_sha_dma: | 1460 | err_sha_dma: |
1464 | err_pdata: | ||
1465 | iounmap(sha_dd->io_base); | ||
1466 | sha_io_err: | ||
1467 | clk_put(sha_dd->iclk); | ||
1468 | clk_err: | ||
1469 | free_irq(sha_dd->irq, sha_dd); | ||
1470 | res_err: | 1461 | res_err: |
1471 | tasklet_kill(&sha_dd->done_task); | 1462 | tasklet_kill(&sha_dd->done_task); |
1472 | sha_dd_err: | 1463 | sha_dd_err: |
diff --git a/drivers/crypto/atmel-tdes.c b/drivers/crypto/atmel-tdes.c index 504e90340074..2c7a628d0375 100644 --- a/drivers/crypto/atmel-tdes.c +++ b/drivers/crypto/atmel-tdes.c | |||
@@ -1359,7 +1359,6 @@ static int atmel_tdes_probe(struct platform_device *pdev) | |||
1359 | struct crypto_platform_data *pdata; | 1359 | struct crypto_platform_data *pdata; |
1360 | struct device *dev = &pdev->dev; | 1360 | struct device *dev = &pdev->dev; |
1361 | struct resource *tdes_res; | 1361 | struct resource *tdes_res; |
1362 | unsigned long tdes_phys_size; | ||
1363 | int err; | 1362 | int err; |
1364 | 1363 | ||
1365 | tdes_dd = devm_kmalloc(&pdev->dev, sizeof(*tdes_dd), GFP_KERNEL); | 1364 | tdes_dd = devm_kmalloc(&pdev->dev, sizeof(*tdes_dd), GFP_KERNEL); |
@@ -1393,7 +1392,6 @@ static int atmel_tdes_probe(struct platform_device *pdev) | |||
1393 | goto res_err; | 1392 | goto res_err; |
1394 | } | 1393 | } |
1395 | tdes_dd->phys_base = tdes_res->start; | 1394 | tdes_dd->phys_base = tdes_res->start; |
1396 | tdes_phys_size = resource_size(tdes_res); | ||
1397 | 1395 | ||
1398 | /* Get the IRQ */ | 1396 | /* Get the IRQ */ |
1399 | tdes_dd->irq = platform_get_irq(pdev, 0); | 1397 | tdes_dd->irq = platform_get_irq(pdev, 0); |
@@ -1403,26 +1401,26 @@ static int atmel_tdes_probe(struct platform_device *pdev) | |||
1403 | goto res_err; | 1401 | goto res_err; |
1404 | } | 1402 | } |
1405 | 1403 | ||
1406 | err = request_irq(tdes_dd->irq, atmel_tdes_irq, IRQF_SHARED, | 1404 | err = devm_request_irq(&pdev->dev, tdes_dd->irq, atmel_tdes_irq, |
1407 | "atmel-tdes", tdes_dd); | 1405 | IRQF_SHARED, "atmel-tdes", tdes_dd); |
1408 | if (err) { | 1406 | if (err) { |
1409 | dev_err(dev, "unable to request tdes irq.\n"); | 1407 | dev_err(dev, "unable to request tdes irq.\n"); |
1410 | goto tdes_irq_err; | 1408 | goto res_err; |
1411 | } | 1409 | } |
1412 | 1410 | ||
1413 | /* Initializing the clock */ | 1411 | /* Initializing the clock */ |
1414 | tdes_dd->iclk = clk_get(&pdev->dev, "tdes_clk"); | 1412 | tdes_dd->iclk = devm_clk_get(&pdev->dev, "tdes_clk"); |
1415 | if (IS_ERR(tdes_dd->iclk)) { | 1413 | if (IS_ERR(tdes_dd->iclk)) { |
1416 | dev_err(dev, "clock initialization failed.\n"); | 1414 | dev_err(dev, "clock initialization failed.\n"); |
1417 | err = PTR_ERR(tdes_dd->iclk); | 1415 | err = PTR_ERR(tdes_dd->iclk); |
1418 | goto clk_err; | 1416 | goto res_err; |
1419 | } | 1417 | } |
1420 | 1418 | ||
1421 | tdes_dd->io_base = ioremap(tdes_dd->phys_base, tdes_phys_size); | 1419 | tdes_dd->io_base = devm_ioremap_resource(&pdev->dev, tdes_res); |
1422 | if (!tdes_dd->io_base) { | 1420 | if (!tdes_dd->io_base) { |
1423 | dev_err(dev, "can't ioremap\n"); | 1421 | dev_err(dev, "can't ioremap\n"); |
1424 | err = -ENOMEM; | 1422 | err = -ENOMEM; |
1425 | goto tdes_io_err; | 1423 | goto res_err; |
1426 | } | 1424 | } |
1427 | 1425 | ||
1428 | atmel_tdes_hw_version_init(tdes_dd); | 1426 | atmel_tdes_hw_version_init(tdes_dd); |
@@ -1478,12 +1476,6 @@ err_tdes_dma: | |||
1478 | err_pdata: | 1476 | err_pdata: |
1479 | atmel_tdes_buff_cleanup(tdes_dd); | 1477 | atmel_tdes_buff_cleanup(tdes_dd); |
1480 | err_tdes_buff: | 1478 | err_tdes_buff: |
1481 | iounmap(tdes_dd->io_base); | ||
1482 | tdes_io_err: | ||
1483 | clk_put(tdes_dd->iclk); | ||
1484 | clk_err: | ||
1485 | free_irq(tdes_dd->irq, tdes_dd); | ||
1486 | tdes_irq_err: | ||
1487 | res_err: | 1479 | res_err: |
1488 | tasklet_kill(&tdes_dd->done_task); | 1480 | tasklet_kill(&tdes_dd->done_task); |
1489 | tasklet_kill(&tdes_dd->queue_task); | 1481 | tasklet_kill(&tdes_dd->queue_task); |
@@ -1514,13 +1506,6 @@ static int atmel_tdes_remove(struct platform_device *pdev) | |||
1514 | 1506 | ||
1515 | atmel_tdes_buff_cleanup(tdes_dd); | 1507 | atmel_tdes_buff_cleanup(tdes_dd); |
1516 | 1508 | ||
1517 | iounmap(tdes_dd->io_base); | ||
1518 | |||
1519 | clk_put(tdes_dd->iclk); | ||
1520 | |||
1521 | if (tdes_dd->irq >= 0) | ||
1522 | free_irq(tdes_dd->irq, tdes_dd); | ||
1523 | |||
1524 | return 0; | 1509 | return 0; |
1525 | } | 1510 | } |
1526 | 1511 | ||