From patchwork Sun Jun 1 22:42:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qasim Ijaz X-Patchwork-Id: 893682 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 477B25674E; Sun, 1 Jun 2025 22:42:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748817776; cv=none; b=GJOlLd4A78TiE5+rbTNMnpXtx3iH5hfDXhsfEC4txvwabLi5mdli1OrovMNj5TTRqZo4Im0/+/pvw2KEc3yFRCDhhHk3oWQT8q84Fm1M6JyCkUfIpqBxwZQAwoe0dV9difsdnG80iEs7cO4fKlKNEb4iTfvM65H5a96+IBwseVQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748817776; c=relaxed/simple; bh=OwtEGgMBw3KRAYa6XNqI7gOVNBLirULiL2OhVC2WxcQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=kc3HyUaAB2DHHHp7TI12SJTwldysE7UBAvQ8thwNJMR0DA2MaVwSDrBz7ryxot1MWmpYp12ADn5qJDOUpEHB/QOi3us3KD2IppW2QUq0DbSUFdfhha2mvyk9tcgqchKzpTiJI67MO7juLMuWj1UsY7RaAogG2xt94iOYj0Dksg4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aEKq18TA; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aEKq18TA" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-450ce671a08so23471445e9.3; Sun, 01 Jun 2025 15:42:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748817773; x=1749422573; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KLnY+e4DmR9UwbO0AVGv5r5TxRv2i22KZH8nci/gU7o=; b=aEKq18TAzyPub6qfwym43G5QttPEPIeytj8p+mH81pxOvJKRzPOWCEZHW/i6wQSBS4 k7u1KKWT9LuXWGL9Jnd3EYNkUP60avBtJILFNEOhWaLCeboq5vo7IdVspTQbhd8w1iT6 jhnsZQBTM0WjuIONw0U66oKgWvT4ev3omWC+Fnv7ACu5pSodqHpdoE8Q9g1KSy7Ucdey kTrSRNQH/F3iuGGt+uN1wF35nTcB457JtgD1izaxikNB5MUTJ+vlhVJr3IHADC3K7xkS bxvuLPCG2JbrOOhf/A9N79sHv9AbdnzvW2m9jLhIcG8HWe4T1XIrmgKmBHVh7rtGxqwJ V4JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748817773; x=1749422573; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KLnY+e4DmR9UwbO0AVGv5r5TxRv2i22KZH8nci/gU7o=; b=IUScN9kFz0l0t+C1r/Bz2Pe/vbsVoKCvB0MmZeUQz+ocLeKu8Tnr5jPGtETwkup82s X5971LhVidDfLcQDxcwlvaLxa7TyMNZ3PDrhmECy9x1XHe7nlXuNXzhc/r++4d8U8yEc NoaBU58CXjZsejB++ELVhEPl4jvzlk5nt6mt7KG2BYVWxZdrCDIHJ2G8oMYqJXZvaH/g sg1yL7W2L0O/g4g9Wdf536wX4GhkGDyPwDhAfsVc32+ZQz0MnifAq2NkAaymFXPFL1af 07ty2K8rHaPoGBiNguevKEqshqJFXK4H3BqJ5U6FeREerX50mquGxCKQ1lgFOvzq+tNX 4UbQ== X-Forwarded-Encrypted: i=1; AJvYcCUH3ujZbGpSdOrLTfsAaTHXhQ5DJfUGl2gf4JRfm1UUEuoa+Xrwc0eLyQEHa+SgnqLhUnJG16s22cg=@vger.kernel.org, AJvYcCVJbVA4NhaGle0Jbqmgb9gPbqVnWvRJrC+l6XrPhfiMDxun1oNFM4ZA+Boh37lfytplCP8lzIIU@vger.kernel.org, AJvYcCVYzRbKqii3jaRaLDMuvGVQ7c8+PJII+aaCVDdnl9hCY/cxJXaTUJcZhevMR9D1f6gN/lmrbLx4GyxImyFGDg==@vger.kernel.org, AJvYcCXQ35P5RJzz0tnE7Loaj8eHjrswGep7WIzpp5IWM2RiKog9wvWf2E2hFqg8zokMUqqNPJjEnvfrjy/zbcKd@vger.kernel.org X-Gm-Message-State: AOJu0YwPP7WyHxd5ZmNmg+nUTpQPiLTvDjAjRNc1X7owduKb3TFztw7g zp+6KaR3nXuEvrhkV/RlYbz3o4SBnW9ZQbse+OScrz9LhwKlaXbuLdNJQaB22w== X-Gm-Gg: ASbGncsL0XDyQnMMsSu1cV85DR2IjxDzLsFG9gRCNtu6ZwlNvblSB5exYMl95JgvIn5 9FitGFnRTrenJ+91vI/H7yEeC+K7CPJL9S3TLHsxgTTWePQRtKLyGFaS+IAJ2Z/l6gUUI1zFdkU nnXOUKokjR7CJuOg8iXvRDPX1NuqwaHhQz/VTxCzWGqndZSzZuMkW9yoVIGlhP37E1uVMUdDjG4 bIWftM+gHmYZNa4zxFoHxfyKSNAs4wh8QrjlPhhyg6LaWY9xgszccu1cg8oj9O+jLb6kF5CXcX4 hUVccBS2J1G0LL9gojMh89th77hiIB1kCy2bWpD3ZaEph4enaS1x X-Google-Smtp-Source: AGHT+IHxEKNQmFH5Esn7+vrvKFhdlzvPKzJzwz+54lO3XiTb8Qi5En7rA6ezLo4Cpju1T9Y1p/Pn6Q== X-Received: by 2002:a05:600c:a53:b0:43d:fa59:cc8f with SMTP id 5b1f17b1804b1-4511ee1103fmr45441295e9.33.1748817773483; Sun, 01 Jun 2025 15:42:53 -0700 (PDT) Received: from qasdev.Home ([2a02:c7c:6696:8300:4518:757b:6751:290f]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4efe74165sm12916554f8f.53.2025.06.01.15.42.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Jun 2025 15:42:52 -0700 (PDT) From: Qasim Ijaz To: Sinan Kaya , Vinod Koul , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Qasim Ijaz , stable@vger.kernel.org Subject: [PATCH 1/2] dmaengine: qcom_hidma: fix memory leak on probe failure Date: Sun, 1 Jun 2025 23:42:30 +0100 Message-Id: <20250601224231.24317-2-qasdev00@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250601224231.24317-1-qasdev00@gmail.com> References: <20250601224231.24317-1-qasdev00@gmail.com> Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 hidma_ll_init() is invoked to create and initialise a struct hidma_lldev object during hidma probe. During this a FIFO buffer is allocated, but if some failure occurs after (like hidma_ll_setup failure) we should clean up the FIFO. Fixes: d1615ca2e085 ("dmaengine: qcom_hidma: implement lower level hardware interface") Cc: stable@vger.kernel.org Signed-off-by: Qasim Ijaz Reviewed-by: Eugen Hristev --- drivers/dma/qcom/hidma_ll.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/dma/qcom/hidma_ll.c b/drivers/dma/qcom/hidma_ll.c index 53244e0e34a3..fee448499777 100644 --- a/drivers/dma/qcom/hidma_ll.c +++ b/drivers/dma/qcom/hidma_ll.c @@ -788,8 +788,10 @@ struct hidma_lldev *hidma_ll_init(struct device *dev, u32 nr_tres, return NULL; rc = hidma_ll_setup(lldev); - if (rc) + if (rc) { + kfifo_free(&lldev->handoff_fifo); return NULL; + } spin_lock_init(&lldev->lock); tasklet_setup(&lldev->task, hidma_ll_tre_complete); From patchwork Sun Jun 1 22:42:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qasim Ijaz X-Patchwork-Id: 893745 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E3C95674E; Sun, 1 Jun 2025 22:43:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748817782; cv=none; b=BNDrysYXep1gW1I8uWTTt+/28EEqbTwm49DZ+jEHVrJ7B9pX7l+wyTHaLZoRavTwXneqoIzZH/0jX9BOpVLrxhlFdJO/Qj7lU/DyhrxLEP4c13ew+OiFKfJl5Yppw3UydX3cbaGDa2wmYKukziaAxwXOhmK/ENFUmncwOxn00XM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748817782; c=relaxed/simple; bh=Qh+NNgy2Htt9SRQ9f/fplZWpWNIBbv9cYrP6I+711Dk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=UofXSl1jZpRrr+ilwSkxQbwyUuhsFbTqdfi9Iy4cVnW0d01tWj3I4Ew6+gTML65HOZs/fvyACz5ITFf4sK4isswFkhsVR54OcvPKZGNEqBXQOw0C8c9gLrOPz4OZsUE/TU4OVVfBez9Cor4ALQ0yEzeEdq1bo806r1QcNAQPy2o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=H7asz3lM; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="H7asz3lM" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-3a50956e5d3so397349f8f.1; Sun, 01 Jun 2025 15:43:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748817779; x=1749422579; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4kWWXJ7FZ3GSQ1AVSLuDSr03mU7wdwc2Hu2NuHuHCJ0=; b=H7asz3lMqKXTk3of/ndMcZWJW7/a+dK3Z0XB4fKikLsIEZmsu1d+G69ikfn+xgSzNj 3nzUMtsk2A7MNB4UKbN9843aoOwJxtxpST5WsdQasag5ycgTCs6Dpmk/hhshiE/gQyXQ ght7EgRsPuwp4rF334qWKcd11rVPMDlLQcG8r5nhufJhLITRSUBc1iMSLxBAmFAww89M h9HVbWZv8Z8Ie4RNw9A5XA7RWB1zF9DvLvvu9Q26tGWWhVJTOWHcI75vNuMHZrateXp+ rOZIKc3OXjVzxb4eZ9APU9FSE98QnZp10XYs5OPOIe4HkLn6haCZC/pUimqdO9IkoCr5 2oJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748817779; x=1749422579; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4kWWXJ7FZ3GSQ1AVSLuDSr03mU7wdwc2Hu2NuHuHCJ0=; b=G+5fGmY/DvGTYBtMpukzmWsv9njIUSBJFBPC0+CY8RA/IkE+pVvwGeTEN+TAVuKIj1 60Z95ggZrUJy0aklgcWnqASAfBWm5ZfzUIadoN2a2Fmb3OvLYefa7WLB7RrHW/Rt8EAN 3vi4pFpWmfEED5mFrjDeeAFyld8AHI/OaPEzi75g5LUpQKF2RWqDYe2/Oh1c+CXs5oT5 p4PZeKUXTr4//ezdAyAPVgKDr+vdugHVrleJaMyVIBeYcvQaTvkeEfw5R8edBpsyBGaI O35vkKybfcifO/JzayeoQvJA7eG8dgrFCfeQK3oCp5Ts7Oa3y2NkDYLZuaNLdmRi6m+y GhBA== X-Forwarded-Encrypted: i=1; AJvYcCWdgyqO+JN8j0NdT59zVB5rD9IBAXLPPv9ZteCTaeZ+ZkuisJBSv+XDXSRkhzl7+FMmKdPEhJd0QWw=@vger.kernel.org, AJvYcCXKZgsCTBp+JMNT0gtLcfnAHMM8QjMMl25hy77qZrWGqAsuuj4eTp4U9qt+B6kWHPOeTJ3LtQzNYE6ED0Ojow==@vger.kernel.org, AJvYcCXPuy8g+v0ThPmqJV+/9rhb1l2Ho9HYBAxVCDKxcXrDCMXz54Ad0g6d716hJFfjKVfa8P4WDkoAOMEB7/Gm@vger.kernel.org, AJvYcCXlq0fyJm5noHt+Tx2Ab6GWc33oT0YToZtvbCmSpQR87WC4Y9dVfeGjFGQmDLce2v1GF0IGaPWk@vger.kernel.org X-Gm-Message-State: AOJu0Yz7VW4zgu9EUVtZ+AbXjikfFotjNUsGGNWstjAGs6bJhO5LmUDT lDoPK6AXX7dFVF10WiQFOj2iZ3iJB42lyhy9GHHOMMZfws0U91dmDl0/OwwY5Q== X-Gm-Gg: ASbGncuMWsGbXoZ8VJRpBj4cglIFuP0uYCnNZcMRJ2Zf38MK6qsueNvFJ5uNGmV87ZS mwM08DIZJ3/U58FY9zUIfS5Ji9O5EymFVafLcR+D/LY3YKS3oUnk8Fo2LfJ1mvP3/QgdSEkHx5D bew0PCCAvhzmDln1pqrn3hNYQmWAwq4APS2h5GDGDz99Ss1lY2vr5WqPLId27Ony61jS9As7GdT blAxcSkUQl3VSvIJQgR1jzOPMYzXUqR+W74Zp5I7eIR1JwjGUXlfaiFkxminzuK5/OFNoTwV0TM /aeWuQX8xeYY9XgxA/4zVGuRLb+TKpyoUobxqqdeRGPqWx32Nr+pHDYuMLxQfcQ= X-Google-Smtp-Source: AGHT+IFVzpxyXLCtBRbAQTyeYAjleNHnDwVMGvtUL11IWaYeITMphSowW190mBTSVIH8CGVCZ/soCg== X-Received: by 2002:a05:6000:220b:b0:3a4:d53d:be23 with SMTP id ffacd0b85a97d-3a4f7a816edmr8112878f8f.30.1748817778595; Sun, 01 Jun 2025 15:42:58 -0700 (PDT) Received: from qasdev.Home ([2a02:c7c:6696:8300:4518:757b:6751:290f]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4efe74165sm12916554f8f.53.2025.06.01.15.42.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Jun 2025 15:42:57 -0700 (PDT) From: Qasim Ijaz To: Sinan Kaya , Vinod Koul , linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Qasim Ijaz , stable@vger.kernel.org Subject: [PATCH 2/2] dmaengine: qcom_hidma: fix handoff FIFO memory leak on driver removal Date: Sun, 1 Jun 2025 23:42:31 +0100 Message-Id: <20250601224231.24317-3-qasdev00@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250601224231.24317-1-qasdev00@gmail.com> References: <20250601224231.24317-1-qasdev00@gmail.com> Precedence: bulk X-Mailing-List: linux-arm-msm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 hidma_ll_init() allocates a handoff FIFO, but the matching hidma_ll_uninit() function (which is invoked in remove()) never releases it, leaking memory. To fix this call kfifo_free in hidma_ll_uninit(). Fixes: d1615ca2e085 ("dmaengine: qcom_hidma: implement lower level hardware interface") Cc: stable@vger.kernel.org Signed-off-by: Qasim Ijaz --- drivers/dma/qcom/hidma_ll.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/dma/qcom/hidma_ll.c b/drivers/dma/qcom/hidma_ll.c index fee448499777..0c2bae46746c 100644 --- a/drivers/dma/qcom/hidma_ll.c +++ b/drivers/dma/qcom/hidma_ll.c @@ -816,6 +816,7 @@ int hidma_ll_uninit(struct hidma_lldev *lldev) required_bytes = sizeof(struct hidma_tre) * lldev->nr_tres; tasklet_kill(&lldev->task); + kfifo_free(&lldev->handoff_fifo); memset(lldev->trepool, 0, required_bytes); lldev->trepool = NULL; atomic_set(&lldev->pending_tre_count, 0);