On 13.07.2017 15:32, Lionel Debieve wrote:
> This module register a HASH module that support multiples
> algorithms: MD5, SHA1, SHA224, SHA256. [...]

> +static irqreturn_t stm32_hash_irq_thread(int irq, void *dev_id)
> +{
> +     struct stm32_hash_dev *hdev = dev_id;
> +     int err;

The 'err' var is used without initialize.

> +
> +     if (HASH_FLAGS_CPU & hdev->flags) {
> +             if (HASH_FLAGS_OUTPUT_READY & hdev->flags) {
> +                     hdev->flags &= ~HASH_FLAGS_OUTPUT_READY;
> +                     goto finish;
> +             }
> +     } else if (HASH_FLAGS_DMA_READY & hdev->flags) {
> +             if (HASH_FLAGS_DMA_ACTIVE & hdev->flags) {
> +                     hdev->flags &= ~HASH_FLAGS_DMA_ACTIVE;
> +                             goto finish;
> +             }
> +     }
> +
> +     return IRQ_HANDLED;
> +
> +finish:
> +     /*Finish current request */
> +     stm32_hash_finish_req(hdev->req, err);
> +
> +     return IRQ_HANDLED;
> +}
> +
and here is beginnig for finish_req:

+static void stm32_hash_finish_req(struct ahash_request *req, int err)
+{
+       struct stm32_hash_request_ctx *rctx = ahash_request_ctx(req);
+       struct stm32_hash_dev *hdev = rctx->hdev;
+
+       if (!err && (HASH_FLAGS_FINAL & hdev->flags)) {

-- 
Best regards,
Kamil Konieczny
Samsung R&D Institute Poland

Reply via email to