Hi James,

On 11.11.2014 16:59, James Hartley wrote:
> Hi Vladimir, thanks for the review! 
> 
>> -----Original Message-----
>> From: Vladimir Zapolskiy [mailto:[email protected]]
>> Sent: 10 November 2014 15:10
>> To: James Hartley; [email protected]; [email protected];
>> [email protected]; [email protected]; [email protected];
>> [email protected]; [email protected];
>> [email protected]; [email protected]; [email protected]; linux-
>> [email protected]
>> Cc: [email protected]; [email protected];
>> [email protected]; [email protected];
>> [email protected]; [email protected]; Ezequiel Garcia
>> Subject: Re: [PATCH 1/2] crypto: Add Imagination Technologies hw hash
>> accelerator
>>
>> Hello James,
>>
>> On 10.11.2014 14:10, James Hartley wrote:
>>> This adds support for the Imagination Technologies hash accelerator
>>> that provides hardware acceleration for
>>> SHA1 SHA224 SHA256 and MD5 Hashes.
>>>
>>> Signed-off-by: James Hartley <[email protected]>
>>> ---
>>

[snip]

>>> +
>>> +   return 0;
>>> +
>>> +err_algs:
>>> +   spin_lock(&img_hash.lock);
>>> +   list_del(&hdev->list);
>>> +   spin_unlock(&img_hash.lock);
>>> +   dma_release_channel(hdev->dma_lch);
>>> +err_dma:
>>> +   iounmap(hdev->io_base);
>>
>> Mixing of devm_* resource initialization and commodity resource release
>> leads to double decrement of clock usage count reference.
> 
> Ok, changed to devm_iounmap
> 

just one small comment, please double check, but most probably you don't
need to call devm_iounmap() explicitly on error path.

[snip]

> 
>>
>>> +
>>> +static int img_hash_remove(struct platform_device *pdev) {
>>> +   static struct img_hash_dev *hdev;
>>> +
>>> +   hdev = platform_get_drvdata(pdev);
>>> +   if (!hdev)
>>> +           return -ENODEV;
>>> +   spin_lock(&img_hash.lock);
>>> +   list_del(&hdev->list);
>>> +   spin_unlock(&img_hash.lock);
>>> +
>>> +   img_unregister_algs(hdev);
>>> +
>>> +   tasklet_kill(&hdev->done_task);
>>> +   tasklet_kill(&hdev->dma_task);
>>> +   img_hash_dma_cleanup(hdev);
>>> +
>>> +   iounmap(hdev->io_base);
>>
>> Same as above, devres iounmap() is good enough.
> 
> Done
> 

Same as above, I suppose you can simply remove iounmap() call without
adding explicit devm_iounmap().

--
With best wishes,
Vladimir
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to