From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751891AbdJCFX2 (ORCPT ); Tue, 3 Oct 2017 01:23:28 -0400 Received: from mail-qk0-f170.google.com ([209.85.220.170]:54629 "EHLO mail-qk0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751835AbdJCFX0 (ORCPT ); Tue, 3 Oct 2017 01:23:26 -0400 X-Google-Smtp-Source: AOwi7QAu0jZ90KKkRj4DuxI8T2tglUEOmRO1HK5XjYD0XRuP5DSU4ZiC/6m0rKEkaVJ3SjF6rcDaWQ== From: Anup Patel To: Vinod Koul , Dan Williams Cc: Ray Jui , Scott Branden , Florian Fainelli , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, Anup Patel Subject: [PATCH 1/4] dmaengine: bcm-sba-raid: serialize dma_cookie_complete() using reqs_lock Date: Tue, 3 Oct 2017 10:52:57 +0530 Message-Id: <1507008180-27171-2-git-send-email-anup.patel@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1507008180-27171-1-git-send-email-anup.patel@broadcom.com> References: <1507008180-27171-1-git-send-email-anup.patel@broadcom.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As-per documentation in driver/dma/dmaengine.h, the dma_cookie_complete() API should be called with lock held. This patch ensures that Broadcom SBA RAID driver calls the dma_cookie_complete() API with reqs_lock held. Signed-off-by: Anup Patel Reviewed-by: Ray Jui Reviewed-by: Scott Branden --- drivers/dma/bcm-sba-raid.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/dma/bcm-sba-raid.c b/drivers/dma/bcm-sba-raid.c index 6c2c447..15c5585 100644 --- a/drivers/dma/bcm-sba-raid.c +++ b/drivers/dma/bcm-sba-raid.c @@ -442,7 +442,9 @@ static void sba_process_received_request(struct sba_device *sba, WARN_ON(tx->cookie < 0); if (tx->cookie > 0) { + spin_lock_irqsave(&sba->reqs_lock, flags); dma_cookie_complete(tx); + spin_unlock_irqrestore(&sba->reqs_lock, flags); dmaengine_desc_get_callback_invoke(tx, NULL); dma_descriptor_unmap(tx); tx->callback = NULL; -- 2.7.4