Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1711728ybz; Sat, 2 May 2020 06:13:11 -0700 (PDT) X-Google-Smtp-Source: APiQypLdJO5uJnvt/kKoDxYeFe77HRffroRQdhZJAXUbcbLKFLFWxX9Kny2irTLfhv5BDNdFDyZ9 X-Received: by 2002:a50:950a:: with SMTP id u10mr7737722eda.45.1588425191158; Sat, 02 May 2020 06:13:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588425191; cv=none; d=google.com; s=arc-20160816; b=AlUWP5T4FAvUZZz4YS2N7gaNKR3FL4XJsrMUjySG6nWDQ0thEcoqyWMz/mO0Q+QpjG geYL3w5uBKtAFmiGJ1EZuKQgxuFFtMdSdVMUzLNqT3CEhmReji3ywHJVyctfg4sEqDK0 yvsHwC4kWsSTFjiQJ+h3c6KVxTI5aGj6w1PzWs4jtSkP8ufLlcgr4ZYxwJB7Fjy8fPiq 8IGVAoPBHJPhDfxfh74lNR4GC3h1Vv4AyBoftbpUB3KUCBnmjvgJ16vY5LyF4mtcKVTp DNTga7N6cMiJtyoELVsYpk6t9WQovQF9eXiyWDrIp+HidpJAVDEjNqhvAWNdmPXe97Ls Bpxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=j/18gsY2Ryj3ZjaYvlBRLrvY46bK6cpEVFZE9Q63lQk=; b=SgG0UBuyUKOgBCHaoYoYS4oDv7qjQQ6RqlnMnhOWoOEsWJ5Zym+npOh+qUNH6h8+G9 3tZPFQnogo9ghJuhAK6BhwUQdmjKwVIDz2Xo+SjKuJEEjT333TCan/380nWJr9+tkAx7 bh9RFTallMzBGcZ4osHu1vwlbVJjzkwjF6SykqeNgo+YlQR256gk8vig0Tb2pmuGVcDC XBu/qYTmOJyqJvfAmAoOs/Mag4AaZaQfDIGTaEcjcVYKPNPeYr7zf7Z3dAgaBITH8ykb odbhBIDEzyIkrP4s9UMt1EIHwyQV1g6ydFSIJ2r8CnKwIEQ1IEG8bW349PQABixxZmls goqQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x17si4339239edi.378.2020.05.02.06.12.47; Sat, 02 May 2020 06:13:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727997AbgEBNI6 (ORCPT + 99 others); Sat, 2 May 2020 09:08:58 -0400 Received: from mail.secom.com.pl ([213.216.87.26]:44139 "EHLO mail.secom.com.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727880AbgEBNI6 (ORCPT ); Sat, 2 May 2020 09:08:58 -0400 Received: from [192.168.1.110] (host-85.14.70.3.static.3s.pl [85.14.70.3]) by mail.secom.com.pl; Sat, 02 May 2020 15:08:20 +0200 Subject: Re: [PATCH] dma: zynqmp_dma: Initialize descriptor list after freeing during reset To: Vinod Koul Cc: Appana Durga Kedareswara rao , Radhey Shyam Pandey , Harini Katakam , Dan Williams , Michal Simek , "open list:DMA GENERIC OFFLOAD ENGINE SUBSYSTEM" , "moderated list:ARM/ZYNQ ARCHITECTURE" , open list References: <20200428143225.3357-1-rafal.hibner@secom.com.pl> <20200502123242.GB1375924@vkoul-mobl> From: =?UTF-8?Q?Rafa=c5=82_Hibner?= Message-ID: <1330934e-342e-1e16-6451-d8952463119c@secom.com.pl> Date: Sat, 2 May 2020 15:00:06 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: <20200502123242.GB1375924@vkoul-mobl> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Vinod, On 02.05.2020 14:32, Vinod Koul wrote: > Would it not be better to use list_del_init() where we delete it rather > than do the init here? > It is not a problem of list element itself not being initialized. The problem is that during fault conditions (zynqmp_dma_reset) all elements are moved to free list. List head however is not reinitialized. In normal flow elements are removed by list_del and resubmitted to free list with zynqmp_dma_free_descriptor. static void zynqmp_dma_chan_desc_cleanup(struct zynqmp_dma_chan *chan) {     ...     list_for_each_entry_safe(desc, next, &chan->done_list, node) {         ...         list_del(&desc->node);         ...         zynqmp_dma_free_descriptor(chan, desc);     } } The zynqmp_dma_free_descriptor does not delete elements from the list by itself. I am not he author of this driver so I fixed it by doing non intrusive changes. Anyways, I do not see how using list_del_init would fix the bug. Regards, Rafal