Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932134AbcC2BTq (ORCPT ); Mon, 28 Mar 2016 21:19:46 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:44481 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753373AbcC2BTo (ORCPT ); Mon, 28 Mar 2016 21:19:44 -0400 X-AuditID: cbfee690-f79e56d0000012c4-8a-56f9d82dc9f9 Message-id: <56F9D82D.4010305@samsung.com> Date: Tue, 29 Mar 2016 10:19:41 +0900 From: Jaehoon Chung User-Agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-version: 1.0 To: Shawn Lin , Ulf Hansson Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] mmc: dw_mmc: avoid using dmaengine_terminate_all References: <1457490886-18092-1-git-send-email-shawn.lin@rock-chips.com> In-reply-to: <1457490886-18092-1-git-send-email-shawn.lin@rock-chips.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmkeLIzCtJLcpLzFFi42JZI2JSrKt742eYwev3hhaXd81hszjyv5/R 4s6T9awWx9eGO7B43Lm2h83j76z9LB6fN8kFMEdx2aSk5mSWpRbp2yVwZSzYup25YCFXxelF U1kbGPdzdDFyckgImEjM3bGSDcIWk7hwbz2QzcUhJLCCUaJhxTf2LkYOsKLzC50h4ksZJf7+ amMBaRASeMAo8fWDMIjNK6AlMaG1jxWknkVAVWLui1qQMJuAjsT2b8eZQGxRgTCJB+v2skKU C0r8mHwPbIyIgJ/E1h1bwW5gFrCW+PmjFWyMsICnxIOHIRCbPCQWHp4KVs4JFL67/B4jSAmz gJ7E/YtaEJ3yEpvXvGWG+GQVu0R/Vx6IzSIgIPFt8iEWiEdkJTYdgCqRlDi44gbLBEaxWUju mYUwdBaSoQsYmVcxiqYWJBcUJ6UXmegVJ+YWl+al6yXn525iBMbN6X/PJuxgvHfA+hCjAAej Eg8vw4KfYUKsiWXFlbmHGE2BjpjILCWanA+MzrySeENjMyMLUxNTYyNzSzMlcd7XUj+DhQTS E0tSs1NTC1KL4otKc1KLDzEycXBKNTDOt2QT3flslt0ji5jqPUqfk/x/9XpsW3v2fkjxqnKz zZvNPohOSnzxataj3TLbvr6b+T858VqJxs+t1nEcT1erc0xft/TpE1/7g532LLrzBKe//xZ4 7t90ngs3kuSfK89Lz5JUX3Hz1Z/DCblqV2ffDqxRmCL8mbvjkIBomFfqy0sn7Wf8Lee4o8RS nJFoqMVcVJwIAPafpweWAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrIIsWRmVeSWpSXmKPExsVy+t9jAV3dGz/DDM636Fpc3jWHzeLI/35G iztP1rNaHF8b7sDicefaHjaPv7P2s3h83iQXwBzVwGiTkZqYklqkkJqXnJ+SmZduq+QdHO8c b2pmYKhraGlhrqSQl5ibaqvk4hOg65aZA7RNSaEsMacUKBSQWFyspG+HaUJoiJuuBUxjhK5v SBBcj5EBGkhYw5ixYOt25oKFXBWnF01lbWDcz9HFyMEhIWAicX6hcxcjJ5ApJnHh3nq2LkYu DiGBpYwSf3+1sYAkhAQeMEp8/SAMYvMKaElMaO1jBellEVCVmPuiFiTMJqAjsf3bcSYQW1Qg TOLBur2sEOWCEj8m3wMbIyLgJ7F1x1Y2EJtZwFri549WsDHCAp4SDx6GQGzykFh4eCpYOSdQ +O7ye4wgJcwCehL3L2pBdMpLbF7zlnkCo8AsJAtmIVTNQlK1gJF5FaNEakFyQXFSeq5hXmq5 XnFibnFpXrpecn7uJkZwdD6T2sF4cJf7IUYBDkYlHl6GBT/DhFgTy4orcw8xSnAwK4nwvr8G FOJNSaysSi3Kjy8qzUktPsRoCgyAicxSosn5wMSRVxJvaGxiZmRpZG5oYWRsriTO+/j/ujAh gfTEktTs1NSC1CKYPiYOTqkGRvbfqc2CTTWP+m5WRy7+16YhEOdw/f6ZlM7I8zfK6sOWsn0p O/WnN/5gplaXbub3uqKyM9pyJ79sdC3qMlIT2SiUvmFudP8MtYh06bZnDp012i9/8hruu/v/ PfdXrhsl9260hWmJ+wl/OlJYU5W+fPUsPnX+wFNHLVczuOpse7LTOWO1U8lSJZbijERDLeai 4kQAEgmXj+QCAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1271 Lines: 40 Hi Shawn, Sorry for applying late. Applied on my repository. Best Regards, Jaehoon Chung On 03/09/2016 11:34 AM, Shawn Lin wrote: > dmaengine_terminate_all is deprecated and should be > replaced by more explicit synchronous and asynchronous > terminate functions. This change is based on the > commit b36f09c3c441 ("dmaengine: Add transfer termination > synchronization support"). Currently dw_mci_stop_dma > may be called under the spinlock, let's migrate > dmaengine_terminate_all to async terminate. This could > avoid the race condition of use-after-free resouce of > dmaengine once slave-dma driver implement the synchronize > method. > > Signed-off-by: Shawn Lin > --- > > drivers/mmc/host/dw_mmc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 242f9a0..45a406f 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -680,7 +680,7 @@ static const struct dw_mci_dma_ops dw_mci_idmac_ops = { > > static void dw_mci_edmac_stop_dma(struct dw_mci *host) > { > - dmaengine_terminate_all(host->dms->ch); > + dmaengine_terminate_async(host->dms->ch); > } > > static int dw_mci_edmac_start_dma(struct dw_mci *host, >