From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758833AbcHDQAg (ORCPT ); Thu, 4 Aug 2016 12:00:36 -0400 Received: from www381.your-server.de ([78.46.137.84]:35900 "EHLO www381.your-server.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758345AbcHDQAa (ORCPT ); Thu, 4 Aug 2016 12:00:30 -0400 Subject: Re: [PATCH] dmaengine: qcom_hidma: release the descriptor before the callback To: Russell King - ARM Linux , Sinan Kaya References: <1468465076-27324-1-git-send-email-okaya@codeaurora.org> <20160724062425.GW9681@localhost> <971733d9-fd18-2a1b-07c0-349b47747d49@codeaurora.org> <20160804125525.GF9681@localhost> <71a15611-645f-7523-1c26-14b420aff667@codeaurora.org> <20160804144003.GV1041@n2100.armlinux.org.uk> <20160804153835.GY1041@n2100.armlinux.org.uk> Cc: Vinod Koul , linux-arm-msm@vger.kernel.org, timur@codeaurora.org, linux-kernel@vger.kernel.org, Christopher Covington , dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org From: Lars-Peter Clausen X-Enigmail-Draft-Status: N1110 Message-ID: <32339445-5a1c-5a3e-cd07-d64e35dce2c4@metafoo.de> Date: Thu, 4 Aug 2016 17:59:30 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.1.0 MIME-Version: 1.0 In-Reply-To: <20160804153835.GY1041@n2100.armlinux.org.uk> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Authenticated-Sender: lars@metafoo.de Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/04/2016 05:38 PM, Russell King - ARM Linux wrote: [...] > What you instead need to do is to find some way to record in your > driver that transaction 2 failed, and when dma_cookie_status() says > that a transaction has DMA_COMPLETE status, you need to look up to > see whether it failed. In my opinion this is where the current API is broken by design. For each transfer that fails you need to store the cookie associated with that transfer in some kind of lookup table. Since there is no lifetime associated with a cookie entries in this table would need to be retained forever and it will grow unbound. Ideally we'd mark error reporting through this interface as deprecated and discourage new users of the interface. As far as I can see most of the few drivers that do return DMA_ERROR get it wrong anyway, e.g. return it unconditionally for all cookies when an error occurred for any of them. - Lars