From nobody Tue Dec 16 19:57:04 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4800BCDB47E for ; Fri, 13 Oct 2023 12:20:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231614AbjJMMU2 (ORCPT ); Fri, 13 Oct 2023 08:20:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58044 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231316AbjJMMUZ (ORCPT ); Fri, 13 Oct 2023 08:20:25 -0400 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D767FA9 for ; Fri, 13 Oct 2023 05:20:22 -0700 (PDT) Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4056ce55e7eso20835855e9.2 for ; Fri, 13 Oct 2023 05:20:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1697199621; x=1697804421; 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=XiIL1G6bCBYYSUmLIMeOuFSL+jkm0ieM2MaGuJYDdP4=; b=UbzrCa4uWotcVVOxHsyQ6xG7iSoVxcmNrVbzYaaK/iji1IhTmdWLN5/AEplTGgeOYy XET9g1u1QLcZSqpcFlTYyeUvMddXHWg4F1yoAw7FH4FsnPBTbgxgyZ+jhJawYEuDwO/f G1GtPZNJBEKhdz0eRdkmBlQ3GvbIRvvsXK+U+saNTnkjcE3pYnM8bjEmuQYExgUObrho lvJIbVE7U92ZQaStwnagllYGFRq+Zac/GCkmrefbDAgJUPI7TR4H44YD2tvnuZvxwNTq 0TFGbava8tgJIRLoVcBL5AswzCnjaHPMwoyLi6If5XXdZmJVd3lEEvsQbcngrZNXLcDL cqEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697199621; x=1697804421; 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=XiIL1G6bCBYYSUmLIMeOuFSL+jkm0ieM2MaGuJYDdP4=; b=EaC3pQZEnWELeiGOvMJg8eeT2jwRqyf54QQMLSq6/9y7xy850QqAGlGHrDl3dOGJS9 NK0wS4sGGmWsRbKxKfA6AIl8DwsX3APKd205lH5wziWYtzTAL2FBTShpg9BaOHfubGYo gvC/KfiBjSPq0lA2MwBih8LOL1XQ6D7fcvZ5nPBILxOylZvfT71wxB10gulZ0SH51xOj 69fIMcvGaPOHz/9xGYHVALuRCmoZrh0B8ZOX+XngCixhNP2rWCMX1yUcPm5X4Po9DTMK 3mWeXk/qQAQJiNd71A+67JhzH0HoiN/LPpkBzwY+C8tTNiDIODXx0gK6rUxeSQ7b1Vb1 hBZw== X-Gm-Message-State: AOJu0Yx/OMNo4XemzGbpFcWPFYSiZe5KVMMqqqldaJVhiin2kkVQP9cs W3KOg31NNZYvb3nFuBrQDlP6dw== X-Google-Smtp-Source: AGHT+IEgyDgb676i06I00jxxGCn5xBZM3lEX//EpitjZq22dHFoGDOmJP0jLEwSMDaZAs13pnZqBWQ== X-Received: by 2002:a1c:7711:0:b0:405:959e:dc7c with SMTP id t17-20020a1c7711000000b00405959edc7cmr23674425wmi.30.1697199621165; Fri, 13 Oct 2023 05:20:21 -0700 (PDT) Received: from srini-hackbase.lan ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o41-20020a05600c512900b0040772934b12sm1806751wms.7.2023.10.13.05.20.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Oct 2023 05:20:20 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Ekansh Gupta , stable , Srinivas Kandagatla Subject: [PATCH 1/4] misc: fastrpc: Reset metadata buffer to avoid incorrect free Date: Fri, 13 Oct 2023 13:20:04 +0100 Message-Id: <20231013122007.174464-2-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231013122007.174464-1-srinivas.kandagatla@linaro.org> References: <20231013122007.174464-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1209; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=nJ/oryflpci9PJcvqUQBAXxU2BVP7k1zJ7Aal1R8mSE=; b=owEBbQGS/pANAwAKAXqh/VnHNFU3AcsmYgBlKTX3iRAaMZ60lsLn0tsq6vc/LFoauUQ1ehboD xjtxW0r4TOJATMEAAEKAB0WIQQi509axvzi9vce3Y16of1ZxzRVNwUCZSk19wAKCRB6of1ZxzRV NxGtCAC7/tomZz8lvSY1M/90T2UueEJFViy+O7F8wEvTZXvJUJwBOZnJ52PAXlwkxakbvF7CVOE m4BhmTM9aE75NpZcjRUcZeELy1tq85z1dzLx6w7U9BPrxoewjAoDQcOOzS67H/hF6F2fYhQN+ZZ M1B9EkkgQUkK3LtY2dPFf2AHYbZGwpaK1vzTCxKE87JiTo/gJy4EMsK9rnah7DsD74SkBewVahD xfnnBLfSkKA64BeZLG6mG9vzLbok7spDPSAKClDUz4cxstZqsYSuSER4+MaEF1zuto2MGqwtj9S Vg/t0XMEeiKxosLMv1wlkfLJ9Fi1uZs83Q8Od3Gr2eNgSq1w X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ekansh Gupta Metadata buffer is allocated during get_args for any remote call. This buffer carries buffers, fdlists and other payload information for the call. If the buffer is not reset, put_args might find some garbage FDs in the fdlist which might have an existing mapping in the list. This could result in improper freeing of FD map when DSP might still be using the buffer. Added change to reset the metadata buffer after allocation. Fixes: 8f6c1d8c4f0c ("misc: fastrpc: Add fdlist implementation") Cc: stable Signed-off-by: Ekansh Gupta Signed-off-by: Srinivas Kandagatla --- drivers/misc/fastrpc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index a66b7c111cd5..fb921975b56d 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -958,6 +958,7 @@ static int fastrpc_get_args(u32 kernel, struct fastrpc_= invoke_ctx *ctx) if (err) return err; =20 + memset(ctx->buf->virt, 0, pkt_size); rpra =3D ctx->buf->virt; list =3D fastrpc_invoke_buf_start(rpra, ctx->nscalars); pages =3D fastrpc_phy_page_start(list, ctx->nscalars); --=20 2.25.1 From nobody Tue Dec 16 19:57:04 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BC261CDB47E for ; Fri, 13 Oct 2023 12:20:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231656AbjJMMUf (ORCPT ); Fri, 13 Oct 2023 08:20:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58056 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231381AbjJMMUZ (ORCPT ); Fri, 13 Oct 2023 08:20:25 -0400 Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8FA6BD for ; Fri, 13 Oct 2023 05:20:23 -0700 (PDT) Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-405497850dbso21111395e9.0 for ; Fri, 13 Oct 2023 05:20:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1697199622; x=1697804422; 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=9maBdCKwzsg+Tw6rLdAkiCV8ObC+49aKfX4G+YkoatQ=; b=BEFsVMmIwRvJHAbyZNvDMDxdm/DwW4OQ7fypRWFHG9ojfoo2ugG4PXWyJ86aAAXD0G 5Za72ZTNhZEQ+ZSCOSy0AWNowrKWTDZ8YjO1keoAdqYafKru/3VgYQrjNXHTVHHF5QDg EDahkviDjW5aoRpBWp68dMKGFjZzK4QAzrhlZcTV8nj46SqP/f3bZm4nWNN9yDFkTvMk XauohuxUBCdyA4DhPYA/IH2IikeyB0URa5OGxLZ++RxwvRWj24qLLFimTLsJ/Y+0bMEd bD/isGboBydNPagAkQP9bggAYyR1s9A7atlUUlntS86ZyQe5SB5Dt2IFhYteMuQJV4h0 QztQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697199622; x=1697804422; 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=9maBdCKwzsg+Tw6rLdAkiCV8ObC+49aKfX4G+YkoatQ=; b=dTRS8DWUtI3d/kpRLT5uJGRHwOB8ERLpSCapGkKEDM4PH3BmkgdaMdDLKUEEXKyK3O IFlGX+0Crwqj+xwBisljk6mwDgI0BnxmqjwdVkylJE9Lswc8AhSL85Jcjep6tfcZuOWD FZT7YUytvtog8y/9ODjo8D6Zgm2eiCepqInec3vXmbZKS65vRItqzWub7NiAqLzp78v8 TlUluHNEShBNVZqCNQMv+WQPuM65JQ6qnx6czDc7v75vH5UypiTGkG6vBRUUKD3chNYJ j2eAE/fouo1GL8ViiVPIWGtoqiU7+iSjqNCvSykWgTq4xIljZ/W6B5NXk3ikdyS0LJNf L07w== X-Gm-Message-State: AOJu0YwJF5v8qJtmeYtxYBp+L5HV6+mrqNwNjglkV/Pbc1rQ4fOzaqA+ WaK9DsYhGTC+0wdnnZ+6yFK58Q== X-Google-Smtp-Source: AGHT+IHbhu7Nxnf3Y55I9uxsGYZNnv5SinfVhL+e5F7LXcFujjXl6AH71X1+bA+w+I8mfT6eofVzLA== X-Received: by 2002:a05:600c:3652:b0:3fb:a0fc:1ba1 with SMTP id y18-20020a05600c365200b003fba0fc1ba1mr25171661wmq.35.1697199622323; Fri, 13 Oct 2023 05:20:22 -0700 (PDT) Received: from srini-hackbase.lan ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o41-20020a05600c512900b0040772934b12sm1806751wms.7.2023.10.13.05.20.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Oct 2023 05:20:21 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Ekansh Gupta , stable , Srinivas Kandagatla Subject: [PATCH 2/4] misc: fastrpc: Free DMA handles for RPC calls with no arguments Date: Fri, 13 Oct 2023 13:20:05 +0100 Message-Id: <20231013122007.174464-3-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231013122007.174464-1-srinivas.kandagatla@linaro.org> References: <20231013122007.174464-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2086; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=yd97s/oOAaEGvMi6NJfTTxpJrr9MoheU7y7jr4w7r40=; b=owEBbQGS/pANAwAKAXqh/VnHNFU3AcsmYgBlKTX3LLljk1Rqm0luEZuerO0osYjjQnjtc5T/l VVk06mpCA+JATMEAAEKAB0WIQQi509axvzi9vce3Y16of1ZxzRVNwUCZSk19wAKCRB6of1ZxzRV NycsB/46GpsdDKbvvrvpiTY4vbx40oMgV4igrx7GCLJXgtgOfSS6CNWqOWq7U5B6mtKqDkzPwk7 vs6eEK/HWz3ChrLhqkarWT0CFfUV3zPxt/VeSpupZuHkN49gbAj5i5xULjuB9R3q0Ka7RsY76V9 3VDxrbakb47yC1gzfBE4uWNnRsdlaTkgWxdYhy29NTpxkThgigDaoLiTBu4KdohjiDnufMIT/Zk o8kiAVxsqVTnXQw4f18WJslSDSsKAoA9lWJMBxwGnt790yesWEtfvAMXBnS+41eydsHAudPW5Vw NNIXvaC162vaz4Ih0GpfWYLF6S3bCgzlhBmUViLF10c528wn X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ekansh Gupta The FDs for DMA handles to be freed is updated in fdlist by DSP over a remote call. This holds true even for remote calls with no arguments. To handle this, get_args and put_args are needed to be called for remote calls with no arguments also as fdlist is allocated in get_args and FDs updated in fdlist is freed in put_args. Fixes: 8f6c1d8c4f0c ("misc: fastrpc: Add fdlist implementation") Cc: stable Signed-off-by: Ekansh Gupta Signed-off-by: Srinivas Kandagatla --- drivers/misc/fastrpc.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index fb921975b56d..a52701c1b018 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1091,6 +1091,7 @@ static int fastrpc_put_args(struct fastrpc_invoke_ctx= *ctx, } } =20 + /* Clean up fdlist which is updated by DSP */ for (i =3D 0; i < FASTRPC_MAX_FDLIST; i++) { if (!fdlist[i]) break; @@ -1157,11 +1158,9 @@ static int fastrpc_internal_invoke(struct fastrpc_us= er *fl, u32 kernel, if (IS_ERR(ctx)) return PTR_ERR(ctx); =20 - if (ctx->nscalars) { - err =3D fastrpc_get_args(kernel, ctx); - if (err) - goto bail; - } + err =3D fastrpc_get_args(kernel, ctx); + if (err) + goto bail; =20 /* make sure that all CPU memory writes are seen by DSP */ dma_wmb(); @@ -1185,14 +1184,12 @@ static int fastrpc_internal_invoke(struct fastrpc_u= ser *fl, u32 kernel, if (err) goto bail; =20 - if (ctx->nscalars) { - /* make sure that all memory writes by DSP are seen by CPU */ - dma_rmb(); - /* populate all the output buffers with results */ - err =3D fastrpc_put_args(ctx, kernel); - if (err) - goto bail; - } + /* make sure that all memory writes by DSP are seen by CPU */ + dma_rmb(); + /* populate all the output buffers with results */ + err =3D fastrpc_put_args(ctx, kernel); + if (err) + goto bail; =20 bail: if (err !=3D -ERESTARTSYS && err !=3D -ETIMEDOUT) { --=20 2.25.1 From nobody Tue Dec 16 19:57:04 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DAB08CDB47E for ; Fri, 13 Oct 2023 12:20:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231666AbjJMMUi (ORCPT ); Fri, 13 Oct 2023 08:20:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43350 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231621AbjJMMU2 (ORCPT ); Fri, 13 Oct 2023 08:20:28 -0400 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23694C9 for ; Fri, 13 Oct 2023 05:20:25 -0700 (PDT) Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-40666aa674fso21092565e9.0 for ; Fri, 13 Oct 2023 05:20:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1697199623; x=1697804423; 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=oN0ITJHTojInGZA3keypX639mxo/rJNGkS60FWqtiI8=; b=bX+LrHAxiGneFB+T3CFoIr2seNA+1MVPcHtaVIZ7evfVdYdp6ygB43DY+gm/kUk/iP iUIceqSMmgkhtY4N6sE01JHgEXsCLLv/BfHO1YWtHfJ+TsFOwjsRbRdPaqeLvqQsgX0d F1I0Gz9UCLCniz2xReCmqT2m8SVYDXjPt5ErLRq5tOcjR07qZBDPEkdVr4WQgwCPbI5x zmcMQT2Z0D/pgLOWrrAWEZsE61jV9bhpBf7UGXS7r6T52bACiGCcNaSQ7cLK/l8ndrUh MdHzdzOoncNjnPUinqFU/ZyyTxlCRk+pzGWVMmQ/+e2WFrsk+kP0lMJhkkfBE2+PJu0/ zeOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697199623; x=1697804423; 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=oN0ITJHTojInGZA3keypX639mxo/rJNGkS60FWqtiI8=; b=Pr9yAtfJ6ZfNxfo41JpCUQuVQuXwXQhobyCqQH63MFuIOjr57L+y12PG9bYV/Ghuyl E/gifAhiJRcU1Vng7FpxIo/ujLYW72YkN5eRNQUrydgsm0xfODIN7H0Yoecy7mqe5cFr os4+8VIkOv/duUDa9bovQHyTYgddbxjF6Yzvnbw3xcL9ROYnK+caWQ2UOXp31+E/TAFu dizmPOWOTxkKQ8hSpu9Nsegk7THskf933oAnhKSuqEYgpdBpAmThdzqG4u8RiDI3sq0V lSICHXNi2/J/asIfbob+I6e94w8LuK6vk40PhrVUSOAPzmnfAyn2NimwnIWSHE3l9Tek 8LBg== X-Gm-Message-State: AOJu0Yw9u9+uwdJu+hwqpaTxv6l27+OBtKVbmOJLOYcU5sI7TGNE31Ty V5MAPxacIMQ2rNLmt8Um5ayksWBiQAZ4qAfquewgRA== X-Google-Smtp-Source: AGHT+IFX09iqP49ngFgPtjinx51FlFNm1a+U4ttHUJMtFVvH4kjoDPxCLTtK4q4WClIwDlk6jJv/qw== X-Received: by 2002:a05:600c:2050:b0:405:40c6:2ba4 with SMTP id p16-20020a05600c205000b0040540c62ba4mr22708053wmg.5.1697199623556; Fri, 13 Oct 2023 05:20:23 -0700 (PDT) Received: from srini-hackbase.lan ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o41-20020a05600c512900b0040772934b12sm1806751wms.7.2023.10.13.05.20.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Oct 2023 05:20:22 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Ekansh Gupta , stable , Srinivas Kandagatla Subject: [PATCH 3/4] misc: fastrpc: Clean buffers on remote invocation failures Date: Fri, 13 Oct 2023 13:20:06 +0100 Message-Id: <20231013122007.174464-4-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231013122007.174464-1-srinivas.kandagatla@linaro.org> References: <20231013122007.174464-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1452; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=2F5oS3hFPDLq3LPK12cuaWAqGv8XXJpvGPqicRayT3g=; b=owEBbQGS/pANAwAKAXqh/VnHNFU3AcsmYgBlKTX3TRvZqlRZnYGXiaaARQSCcyfGxjaYymriB mvjrOhZ4I2JATMEAAEKAB0WIQQi509axvzi9vce3Y16of1ZxzRVNwUCZSk19wAKCRB6of1ZxzRV N1DtCACSfN3vZQSrBgMcNpBV/RJXKnIrZFQUS2CzUmAGt+DnDJcumOxbFuvTmCUlQTHVOgruI36 /rAkxy4t+xFh9XeKwEsDhDhSwqrCkkadEPfBheGxMrO8dpiVvGMZ1uBVYLuE9AlfATFunXn1pUD v8U/d85P2KXOZnFcD0HNuVpfXWiYn0HouAqKUX3Xcuuz2LQ5ULMD9Vn78TsKN+ELVKtI+R+wpb2 48s9nSLxMz8K1LH6PFfQgslYLzf0p6sk+DwqXAXZ1ndN3G/bjDcKa7iD8grLejNlkYFXKISBunN pPM/LcSnrwdQFlkzUNSjmvTpdf6ce0Hs2oHVvQm/AJw0B1B5 X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ekansh Gupta With current design, buffers and dma handles are not freed in case of remote invocation failures returned from DSP. This could result in buffer leakings and dma handle pointing to wrong memory in the fastrpc kernel. Adding changes to clean buffers and dma handles even when remote invocation to DSP returns failures. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Cc: stable Signed-off-by: Ekansh Gupta Signed-off-by: Srinivas Kandagatla --- drivers/misc/fastrpc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index a52701c1b018..3cdc58488db1 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1176,11 +1176,6 @@ static int fastrpc_internal_invoke(struct fastrpc_us= er *fl, u32 kernel, err =3D wait_for_completion_interruptible(&ctx->work); } =20 - if (err) - goto bail; - - /* Check the response from remote dsp */ - err =3D ctx->retval; if (err) goto bail; =20 @@ -1191,6 +1186,11 @@ static int fastrpc_internal_invoke(struct fastrpc_us= er *fl, u32 kernel, if (err) goto bail; =20 + /* Check the response from remote dsp */ + err =3D ctx->retval; + if (err) + goto bail; + bail: if (err !=3D -ERESTARTSYS && err !=3D -ETIMEDOUT) { /* We are done with this compute context */ --=20 2.25.1 From nobody Tue Dec 16 19:57:04 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 213F2CDB47E for ; Fri, 13 Oct 2023 12:20:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231735AbjJMMUm (ORCPT ); Fri, 13 Oct 2023 08:20:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231625AbjJMMU2 (ORCPT ); Fri, 13 Oct 2023 08:20:28 -0400 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60B41A9 for ; Fri, 13 Oct 2023 05:20:26 -0700 (PDT) Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-405524e6769so13094245e9.1 for ; Fri, 13 Oct 2023 05:20:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1697199625; x=1697804425; 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=9QuEY/BkA+iusTWA196/qwz28yJ4ApeauEOwS+0/N8s=; b=D8qzgYHiNF/lgJbOa2PMZ3d23/VDO3zyFWMNaMo5Iz0L8LYBDgq7VibqLaQtCtU9nF /3EK4STOnaL2H6Bz1tCgUeheqr/WrxnAUv2QrYgEBFn3vqtHc+QXc7oa4rPrfRtJX7LA 423lMkxOjZHhI7HkkWUnXIDykBSlfNlFY3ZLhN6hSlV8u3hbz1YmtV+it9DqlSikPl+R 73Zhh24zGNbpB0sg/2JLElmJRBUUciXD1O+32fvU+XstF0O47Yur2OtaYYdFLbblO9GY xQr669jQ8YYQfIIBnSzI3McBikV7BN3NF/D1CN6KCHs4rwpNq1P/7KcBF/a49I6dOIND R0yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697199625; x=1697804425; 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=9QuEY/BkA+iusTWA196/qwz28yJ4ApeauEOwS+0/N8s=; b=ld0TreXYcKx1CkTeGg18bO4vAcUXNrYu1Ucty9Nz9cnO37f92dfrMIJB84l0gBpEYh 77m3MxHm4rRweXUN8+IW44ChKnOudopux+dnMAuXcbTJdhwB662ZhQGVzmTmOw9uWKEh FsER8CbNp61s/YwIxFXV2tViHab8GF0utVEjV4MvIfpOUtFq1H8ql5Q6VBFhXeoUKikG XntUOMQB9S+QuHrDhqhY4wT8cW/eIVxGDXTloMs6RF7+H8LPbtnGIXe0/DOM3cPz6TCC x52SUY96D1rksgBzLvCy+wDHcdWnVDKXvPi4hXbl1rJ9mJ40IpDwdTknLfMkOhyYbw/q CyJA== X-Gm-Message-State: AOJu0YxJEHZOX/F/+4nWMunWaYlbvTqGSzg9Qj2/ZsKYpevWi9Z4ENAW 1jjRr+wQqvg9TVaDvQWs7LD2eA== X-Google-Smtp-Source: AGHT+IHFLpSbfdncO2+7arwCNpRJ/rZnCljjzSY8Yv0yaL5+TFf5xY0UMhGELTHE3/2ev2DEKbrWoA== X-Received: by 2002:a05:600c:4f51:b0:403:aced:f7f4 with SMTP id m17-20020a05600c4f5100b00403acedf7f4mr20823575wmq.12.1697199624750; Fri, 13 Oct 2023 05:20:24 -0700 (PDT) Received: from srini-hackbase.lan ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id o41-20020a05600c512900b0040772934b12sm1806751wms.7.2023.10.13.05.20.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Oct 2023 05:20:23 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Ekansh Gupta , stable , Srinivas Kandagatla Subject: [PATCH 4/4] misc: fastrpc: Unmap only if buffer is unmapped from DSP Date: Fri, 13 Oct 2023 13:20:07 +0100 Message-Id: <20231013122007.174464-5-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231013122007.174464-1-srinivas.kandagatla@linaro.org> References: <20231013122007.174464-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1283; i=srinivas.kandagatla@linaro.org; h=from:subject; bh=K17Bp8aGP1xLD7b1/oIdzDEEQgA3+HQufQZkkoSYOj8=; b=owEBbQGS/pANAwAKAXqh/VnHNFU3AcsmYgBlKTX3NPlR1/eK5BGogepyP/eWtTfO2D+ZHHsCl wqhugmKm9WJATMEAAEKAB0WIQQi509axvzi9vce3Y16of1ZxzRVNwUCZSk19wAKCRB6of1ZxzRV NwhyCACbUWWkkJSoDSlF0ZVBBB3/WmCdIBUx1qeyEjOVO8ymP3DNJvr+NMaIyk5eyQ2dWQJJ50d WHSu8J2kopVo0zM5E8QGI3d7AzarGtICBwc8JD6rB2kK8zvdk4YzBcNaaoBbaT5nvaad3bN7geb o9twsMMfZRtfdcqJcwkD+IuEI8CeBsVfuKqL30SxSaPiB5bQs03GwJbUNWrOPKcZ287HlmiU69p htHZDzITiEZ7JwklB9NFD2OXqs7P8CVNJCais838T773ihv52NWlzoIZGsXoLncKypKfjiP1Fmp gkQu8B685mTEy5U0xvU1AzUVKTEf0+RN4WhHk0HQIKlg04q3 X-Developer-Key: i=srinivas.kandagatla@linaro.org; a=openpgp; fpr=ED6472765AB36EC43B3EF97AD77E3FC0562560D6 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ekansh Gupta For unmapping any buffer from kernel, it should first be unmapped from DSP. In case unmap from DSP request fails, the map should not be removed from kernel as it might lead to SMMU faults and other memory issues. Fixes: 5c1b97c7d7b7 ("misc: fastrpc: add support for FASTRPC_IOCTL_MEM_MAP/= UNMAP") Cc: stable Signed-off-by: Ekansh Gupta Signed-off-by: Srinivas Kandagatla --- drivers/misc/fastrpc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 3cdc58488db1..1c6c62a7f7f5 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1981,11 +1981,13 @@ static int fastrpc_req_mem_unmap_impl(struct fastrp= c_user *fl, struct fastrpc_me sc =3D FASTRPC_SCALARS(FASTRPC_RMID_INIT_MEM_UNMAP, 1, 0); err =3D fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE, sc, &args[0]); - fastrpc_map_put(map); - if (err) + if (err) { dev_err(dev, "unmmap\tpt fd =3D %d, 0x%09llx error\n", map->fd, map->ra= ddr); + return err; + } + fastrpc_map_put(map); =20 - return err; + return 0; } =20 static int fastrpc_req_mem_unmap(struct fastrpc_user *fl, char __user *arg= p) --=20 2.25.1