From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752014AbbHJAPM (ORCPT ); Sun, 9 Aug 2015 20:15:12 -0400 Received: from mailout1.w1.samsung.com ([210.118.77.11]:31920 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751588AbbHJAPJ (ORCPT ); Sun, 9 Aug 2015 20:15:09 -0400 X-AuditID: cbfec7f4-f79c56d0000012ee-3d-55c7ed07dc41 Message-id: <55C7ED03.2030000@samsung.com> Date: Mon, 10 Aug 2015 09:14:59 +0900 From: Krzysztof Kozlowski User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-version: 1.0 To: Robert Baldyga , vinod.koul@intel.com Cc: dan.j.williams@intel.com, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, m.szyprowski@samsung.com Subject: Re: [PATCH] dmaengine: fix balance of privatecnt inc/dec operations References: <1438943207-4840-1-git-send-email-r.baldyga@samsung.com> In-reply-to: <1438943207-4840-1-git-send-email-r.baldyga@samsung.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLLMWRmVeSWpSXmKPExsVy+t/xK7rsb4+HGrz7aG0xfeoFRovVU/+y Wrx+YWhxedccNou1R+6yWzw4vJPd4mXffhYHdo/Fe14yefRtWcXo8XmTXABzFJdNSmpOZllq kb5dAlfGmW8zWAs2cVdcvvqJuYHxFGcXIyeHhICJxJH1k1kgbDGJC/fWs4HYQgJLGSVm7jTs YuQCsr8wSlzZ0MAEkuAV0JI48PsBWBGLgKrEk8+n2UFsNgFjic3Ll4DFRQUiJJavPskIUS8o 8WPyPaAFHBwiAg4SVw4zg4SZBQolGifuBysXFvCRuHp5HivEXheJRU+Wgt3DKeAq0f1vGytI K7OAnsT9i1oQrfISm9e8ZZ7AKDALyYJZCFWzkFQtYGRexSiaWppcUJyUnmuoV5yYW1yal66X nJ+7iRESyF92MC4+ZnWIUYCDUYmHd8bm46FCrIllxZW5hxglOJiVRHj9zgKFeFMSK6tSi/Lj i0pzUosPMUpzsCiJ887d9T5ESCA9sSQ1OzW1ILUIJsvEwSnVwDir+o5jjm3SrvM7T8+cwti9 7u2DCGHn6IvXtwvks7yz1un9xH54A+O1c8d/HHRexb1u/7+8XJUFFu0yt6Y+O/9nt88Tvirf U7qzbGVFtS2nKd15cu9138PehxLvCppW17lt/mM4pSZEp85i/bSiqvddjP+C/qwoyXfRWm6x Tbky/+w09rAbPQxKLMUZiYZazEXFiQCblcUGYAIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07.08.2015 19:26, Robert Baldyga wrote: > This patch increments privatecnt value and set DMA_PRIVATE in device > caps in dma_request_slave_channel() function. This is needed to keep > privatecnt increment/decrement balance. > > As function dma_release_channel() decrements privatecnt counter, we need > to increment it when channel is requested. Otherwise privatecnt drops > into negatives after few dma_release_channel() calls. > > Reported-by: Krzysztof Kozlowski > Signed-off-by: Robert Baldyga > --- > drivers/dma/dmaengine.c | 4 ++++ > 1 file changed, 4 insertions(+) Fixes issue [0] (reported after applying [1]). Tested on Trats2 board (Exynos4412, pl330, serial with DMA) Best regards, Krzysztof [0] http://www.spinics.net/lists/linux-serial/msg18369.html [1] http://www.spinics.net/lists/linux-samsung-soc/msg45700.html > > diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c > index 4a4cce1..3ff284c 100644 > --- a/drivers/dma/dmaengine.c > +++ b/drivers/dma/dmaengine.c > @@ -689,6 +689,10 @@ struct dma_chan *dma_request_slave_channel(struct device *dev, > struct dma_chan *ch = dma_request_slave_channel_reason(dev, name); > if (IS_ERR(ch)) > return NULL; > + > + dma_cap_set(DMA_PRIVATE, ch->device->cap_mask); > + ch->device->privatecnt++; > + > return ch; > } > EXPORT_SYMBOL_GPL(dma_request_slave_channel); >