From patchwork Tue May 23 15:25:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 98054 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2231683vqo; Tue, 23 May 2023 08:34:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6Cln78zxHZzmPMfPR9W0szGq27bJhmCD+IfJb3H6OiAxRp1Z/wVCvRTmDaGCNSpy13bG5+ X-Received: by 2002:a05:6a21:339a:b0:100:5851:d4ba with SMTP id yy26-20020a056a21339a00b001005851d4bamr15730404pzb.54.1684856088548; Tue, 23 May 2023 08:34:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684856088; cv=none; d=google.com; s=arc-20160816; b=ZnAn3TOEMU+GzYQjGe6kkA+jyv8OcfsdkDqZ4wlfUPLK+8zzlzJxUd2wyyH7P7JK/F Pn6pmvqFlcX/EjEJNRq2nqW1tssij8K/a8G+jlm+ejlam+D6/LBFrwCerbtT5XrgG6DD JtH9SFAkWdPzXPRGd6+Xl1euSAcUjqqDPn4MADGPnlwMKiaz97++TH+1/5qr1xWOtLto aexK8s3UjFDI39Rd+NpCK/mTPlnXFHgRSZ3su6wAooP10C2CfkLvbyeSaKxDbQ8RxZON z2DwfyLS19nNm6tvRZmlFKVXTQzfViRIWC4uOZNGROP4NnV1iFZtdva1mFubO8y3tIig aGQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=vtHjf8tmYI3ZWMqguRcZxgtgzPgY3GUowQhdG2xj7pc=; b=MimEJ1zUTMpZnf5V08FlunyUdoPx8EBDE7Pzl1tMzZVmbmrRTgfydTlgY1ZCjRyn+9 vPnPipYnBPYiFQTULzdNYBxv529WiQK6mlGL1jn09I9TkGaPCCxOqbX2bzIILi6j/fhN wWZTLGrjZ6CEBDB9slSbh6wj29uquiwXeD6dyNu+tjgjAa0gu8jGPE4oIl2b/1lvCuTP SWxVfIC4DncmZKjuwhYsiovoeIWBIiZ9yTZwgyViG44vZ9rI+zpT/2KK4P39rM3a9i1F LRF0f/YU8/v340YzsZi4wmFPv6W1Ux8hoWKDwIc26eBBfR8u8HGpcuI1bNP94dcOeVwK BISg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="xQe/ktWm"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k136-20020a636f8e000000b0051a650b8f62si927384pgc.836.2023.05.23.08.34.33; Tue, 23 May 2023 08:34:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="xQe/ktWm"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237517AbjEWP0A (ORCPT + 99 others); Tue, 23 May 2023 11:26:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237159AbjEWPZ6 (ORCPT ); Tue, 23 May 2023 11:25:58 -0400 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4353911A for ; Tue, 23 May 2023 08:25:57 -0700 (PDT) Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-3f607766059so20666415e9.3 for ; Tue, 23 May 2023 08:25:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1684855556; x=1687447556; 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=vtHjf8tmYI3ZWMqguRcZxgtgzPgY3GUowQhdG2xj7pc=; b=xQe/ktWmD4JMJfhbtklfWDTSH3FXKwlO852JBt3S2tI18wgy9kKp+1J/bUORTGyvlH QprBFnmOmeSHPEZyqgcwvssdRlT9Q5DeEQ/SNLSxDhnHsF2iefOgsqPjz1jSALv1TqdY h5rOL/XEdBc8iTD94MpdkxFaznCINNuCQg0Zp9awHz78ey37y/bjGaOv+KwnMfNIYRzA FoJP0RP/q+Qa3wgF3A+dsAeT2XF+cmf2ye3R0aipSLGhMW6RgYNd6Hem0c5j6QAOMyrY IGx7UvA8gCBmnsVH8XAnMkz7G55JPgZ/a2sWjRB/n2AwQei66NwkTh3vtAFQLXilv69x RhOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684855556; x=1687447556; 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=vtHjf8tmYI3ZWMqguRcZxgtgzPgY3GUowQhdG2xj7pc=; b=Vp3q223sMC6pLUeVzQgMFxkWkaIt9837XxlEsqCBCsJSUaf9sK+lKxL6dw1vxVFRCI fJNEq35/rwPI+LqJ0I80D4hhz5uq6Zc4xeUJ7mNL6Y0zrK7VWIceCbUjw6x6vAELugW3 +ScFeFJD6PTgrjWE+/Ga5JmA3tg9m0TkiXsyJchjXfGU6z7fgcroErzu32ap1MJoO8wi lTOcd4Mf4b76MkxqVlY4tUpkmUlYSVlOyy6HzbhEhLxlA0F/9BenF9BqoLVTbTJ3tbTc YwDguK4iITTWq+BOD0bxsWJntDSdFnuYC/TZOVyliDiGGWEuRx+h7DoGlACOxxoDt4le jlLg== X-Gm-Message-State: AC+VfDxJ5tFohNk4HY+2qO/lwNhWx/FDGgPOAm+FyrOWKkqgj3FIY8Uf GFxCf37SbyiFGdnTK1bZNg6ZEQ== X-Received: by 2002:adf:fa0b:0:b0:309:4a0f:facc with SMTP id m11-20020adffa0b000000b003094a0ffaccmr11390498wrr.40.1684855555777; Tue, 23 May 2023 08:25:55 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id f20-20020a7bc8d4000000b003f6038faa19sm8303887wml.19.2023.05.23.08.25.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 08:25:55 -0700 (PDT) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Ekansh Gupta , stable , Srinivas Kandagatla Subject: [PATCH 1/4] misc: fastrpc: Pass proper scm arguments for secure map request Date: Tue, 23 May 2023 16:25:47 +0100 Message-Id: <20230523152550.438363-2-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230523152550.438363-1-srinivas.kandagatla@linaro.org> References: <20230523152550.438363-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766699657844398940?= X-GMAIL-MSGID: =?utf-8?q?1766699657844398940?= From: Ekansh Gupta If a map request is made with securemap attribute, the memory ownership needs to be reassigned to new VMID to allow access from protection domain. Currently only DSP VMID is passed to the reassign call which is incorrect as only a combination of HLOS and DSP VMID is allowed for memory ownership reassignment and passing only DSP VMID will cause assign call failure. Also pass proper restoring permissions to HLOS as the source permission will now carry both HLOS and DSP VMID permission. Change is also made to get valid physical address from scatter/gather for this allocation request. Fixes: e90d91190619 ("misc: fastrpc: Add support to secure memory map") Cc: stable Tested-by: Ekansh Gupta Signed-off-by: Ekansh Gupta Signed-off-by: Srinivas Kandagatla --- drivers/misc/fastrpc.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index f48466960f1b..32a5415624bf 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -316,12 +316,14 @@ static void fastrpc_free_map(struct kref *ref) if (map->table) { if (map->attr & FASTRPC_ATTR_SECUREMAP) { struct qcom_scm_vmperm perm; + int vmid = map->fl->cctx->vmperms[0].vmid; + u64 src_perms = BIT(QCOM_SCM_VMID_HLOS) | BIT(vmid); int err = 0; perm.vmid = QCOM_SCM_VMID_HLOS; perm.perm = QCOM_SCM_PERM_RWX; err = qcom_scm_assign_mem(map->phys, map->size, - &map->fl->cctx->perms, &perm, 1); + &src_perms, &perm, 1); if (err) { dev_err(map->fl->sctx->dev, "Failed to assign memory phys 0x%llx size 0x%llx err %d", map->phys, map->size, err); @@ -787,8 +789,12 @@ static int fastrpc_map_create(struct fastrpc_user *fl, int fd, goto map_err; } - map->phys = sg_dma_address(map->table->sgl); - map->phys += ((u64)fl->sctx->sid << 32); + if (attr & FASTRPC_ATTR_SECUREMAP) { + map->phys = sg_phys(map->table->sgl); + } else { + map->phys = sg_dma_address(map->table->sgl); + map->phys += ((u64)fl->sctx->sid << 32); + } map->size = len; map->va = sg_virt(map->table->sgl); map->len = len; @@ -798,9 +804,15 @@ static int fastrpc_map_create(struct fastrpc_user *fl, int fd, * If subsystem VMIDs are defined in DTSI, then do * hyp_assign from HLOS to those VM(s) */ + u64 src_perms = BIT(QCOM_SCM_VMID_HLOS); + struct qcom_scm_vmperm dst_perms[2] = {0}; + + dst_perms[0].vmid = QCOM_SCM_VMID_HLOS; + dst_perms[0].perm = QCOM_SCM_PERM_RW; + dst_perms[1].vmid = fl->cctx->vmperms[0].vmid; + dst_perms[1].perm = QCOM_SCM_PERM_RWX; map->attr = attr; - err = qcom_scm_assign_mem(map->phys, (u64)map->size, &fl->cctx->perms, - fl->cctx->vmperms, fl->cctx->vmcount); + err = qcom_scm_assign_mem(map->phys, (u64)map->size, &src_perms, dst_perms, 2); if (err) { dev_err(sess->dev, "Failed to assign memory with phys 0x%llx size 0x%llx err %d", map->phys, map->size, err); From patchwork Tue May 23 15:25:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 98055 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2231860vqo; Tue, 23 May 2023 08:35:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4+4GuwJO/v1RFZsgZ3AgJFydBI73ULIkrrrNKjlva7gF5gco5VWpOz+uZGowYXzH1nhauG X-Received: by 2002:a17:90a:d188:b0:253:4212:9157 with SMTP id fu8-20020a17090ad18800b0025342129157mr15267370pjb.28.1684856102204; Tue, 23 May 2023 08:35:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684856102; cv=none; d=google.com; s=arc-20160816; b=g/K7SB0IlxlkYdAfZ1VDTyCu8wFMqrsHwZvDaLwX3qCTBGtm6rzfmTdrkFll/IWccG DtXGAZKt5AUdUbYCbfivGUZCd6oW+LBttGGQyygQMYU0YYj1DngYozQu+ZsxXrYYBtMr 1hEf8NZX3A8YqIw1gN7xdD8cK/pTPz7NVPOg3zfFN3ERTchxdJ85V/HzjMD378Sz9p/g U3AJImKD5iUcMxNwQJ//oLPh5PxX48VARiC+/VN55npenLoe1b0tu5CNAVhaDdABR2R9 WsxH4AY2/VdXw5xqeWZa+eW4RKKfhmxqAYNYGJAI8J3MRqnX8X59HPsJVvH0yt/FtZ/4 aTSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=S0Ip027E/uKlYL3/noihqKDGdX3mNY2iO9EhIPN4jks=; b=h8GFNeaYIFPe97xeX9339j40t2zo2w55Nd225A5wL4G0gL1rOa9bKXF0vo4ggOeBe/ j4AQXX7fFN5kQX7BjXkj5ZYeNleYFvl55Uj72gwdnQzKwnom19CEbdLoHgQfhdMe9waQ MVM8JY1qjRA5Tq1MGZrNFtpKqWFw4jtYqldC8JfRq8Jf5oqTvhZCSpjT/n/JG9o3LIpz JLS6Iab3bRrLE/l9Q+s/2qXaDo0dwIZmPe7PZc1je8IDilY66zm7KLrMtuFIbAYLnpkc G8rNdj/5nSeFGZZ3s2co5YaZM0p5yv4jbXBzONh4cspcBFxwRjVlBp09b2pJ5iTtHBvj TV4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MTZUoJek; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mv7-20020a17090b198700b002500dd30da9si3051288pjb.6.2023.05.23.08.34.46; Tue, 23 May 2023 08:35:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MTZUoJek; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237532AbjEWP0C (ORCPT + 99 others); Tue, 23 May 2023 11:26:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232696AbjEWPZ7 (ORCPT ); Tue, 23 May 2023 11:25:59 -0400 Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F417FA for ; Tue, 23 May 2023 08:25:58 -0700 (PDT) Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-3f60e730bf2so5165055e9.1 for ; Tue, 23 May 2023 08:25:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1684855557; x=1687447557; 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=S0Ip027E/uKlYL3/noihqKDGdX3mNY2iO9EhIPN4jks=; b=MTZUoJekmmO4noN8ATFda3iRXovin8to6p3Z9xIfX8xIipAop7l4jT1inC03lLOF/z 5OBMj2WDtmpjOZzzgiqvp1BsF3oZWauzcSu1o8bk+aZ+FbYVxpogGjbJaxtVL90G9I4t DuTBgEoBSi4nJd0G73ho/AG6xE3uYqvktewMmyDqHCTh7VlBuvu5MeawVHkKxckXEFeK t4l0/YKmVxw/WOe95Fxt6hcBmaePgFc1v/kkShTxARCHhtKLQ7FHPccbiZv+IRotNPEY /E9CILBQyhmRlMtI4K9QDK/DS12DizRxRnmUuaidIsHsOTXS8JvRq7aOBcUjYwX91e/l egTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684855557; x=1687447557; 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=S0Ip027E/uKlYL3/noihqKDGdX3mNY2iO9EhIPN4jks=; b=AnbH0A/sAs2gepFdBnbcSM5inEHUCR4X/s/ChTpF3XroG5dpukNmfMN1qZFDnAk8ld dbY4m4STFILCL6D9wrSoLjtVrk3LFXD11dpIlCy57w8WbpTjUjIEXF6DqGJeTxStfbaa gA7e9dRH4VJ0SfwgidAWItSMPsL70JmWGh4lkGmvwdsO5gNUCIeeae8wo7A4fkMG7knH Ctkw/X4+d4yZbDH0ibtTMtyQcOoElM6e9yJoBZarqDswBrZHdRK3NvIIwvpksMTDA2Zg Mw9apPFdN4UJwTlrzdoxQGYcAU+OPuk1rfj1qxPDoLjsviQHbVlUIT3Vw4iOxMsD2HzS HL5A== X-Gm-Message-State: AC+VfDwHITHgogjuu52XlQPnrT1lVshNHQe9UqnS6uPI97A1BSnm1StZ uuadeAzsSkMfsf/aMu7y6LjZHQ== X-Received: by 2002:a1c:f217:0:b0:3f4:2c71:b9ad with SMTP id s23-20020a1cf217000000b003f42c71b9admr10655188wmc.30.1684855557091; Tue, 23 May 2023 08:25:57 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id f20-20020a7bc8d4000000b003f6038faa19sm8303887wml.19.2023.05.23.08.25.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 08:25:56 -0700 (PDT) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Ekansh Gupta , stable , Srinivas Kandagatla Subject: [PATCH 2/4] misc: fastrpc: Reassign memory ownership only for remote heap Date: Tue, 23 May 2023 16:25:48 +0100 Message-Id: <20230523152550.438363-3-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230523152550.438363-1-srinivas.kandagatla@linaro.org> References: <20230523152550.438363-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766699672021331965?= X-GMAIL-MSGID: =?utf-8?q?1766699672021331965?= From: Ekansh Gupta The userspace map request for remote heap allocates CMA memory. The ownership of this memory needs to be reassigned to proper owners to allow access from the protection domain running on DSP. This reassigning of ownership is not correct if done for any other supported flags. When any other flag is requested from userspace, fastrpc is trying to reassign the ownership of memory and this reassignment is getting skipped for remote heap request which is incorrect. Add proper flag check to reassign the memory only if remote heap is requested. Fixes: 532ad70c6d44 ("misc: fastrpc: Add mmap request assigning for static PD pool") Cc: stable Tested-by: Ekansh Gupta Signed-off-by: Ekansh Gupta Reviewed-by: Srinivas Kandagatla Signed-off-by: Srinivas Kandagatla --- drivers/misc/fastrpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 32a5415624bf..a654dc416480 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1904,7 +1904,7 @@ static int fastrpc_req_mmap(struct fastrpc_user *fl, char __user *argp) req.vaddrout = rsp_msg.vaddr; /* Add memory to static PD pool, protection thru hypervisor */ - if (req.flags != ADSP_MMAP_REMOTE_HEAP_ADDR && fl->cctx->vmcount) { + if (req.flags == ADSP_MMAP_REMOTE_HEAP_ADDR && fl->cctx->vmcount) { struct qcom_scm_vmperm perm; perm.vmid = QCOM_SCM_VMID_HLOS; From patchwork Tue May 23 15:25:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 98063 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2239416vqo; Tue, 23 May 2023 08:46:50 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5bdyeDtVwfL1bL5aaGNhCLXxyk2I/r6CvmlVwDws7RSTZTAQxzoLFb5UwMqRIK2ueqWzbg X-Received: by 2002:a17:902:ced0:b0:1af:b47e:7892 with SMTP id d16-20020a170902ced000b001afb47e7892mr7625349plg.67.1684856810157; Tue, 23 May 2023 08:46:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684856810; cv=none; d=google.com; s=arc-20160816; b=pBaQ3qYE0saUIp/4tx0dzj8j+o3mL4+8wGKvcyxhk7jlqDgV60Nn2Oz/k889sH/ox5 W4vIvm1oTJ3HXI5cNEbzQL4NDRclXYVPKJ+xN0UA6ILqsq9cZsgnhlibdmmedAONTx6F ujOYpIWULUSpN4RaEk7g1rJv3xbh2w2dHWy2uUR/kURumwqSBkCima6Rm1Q1h3yKYX1+ JFnc1cQtQMNhdKZB6qt1VQeF+iXxRyKCYDrx7SowiKPUqrjbmnG0IYTf7mr9tSKyHDby RCE/WocA6g3lJG4cvkh2lVORpogbWWm7qjJmr2ncIQRMPoERJ8RA21HQ+qL0VKtoRSLm idYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=QM/LRXENQW92kfDEhBKbagV6DNZu10tuXMpBW4Kha3Y=; b=afyd/pq8tg6fl4DEnlCPRL4qVg0o7oPou8T0xxQUWK03v30SG3EL5Qx5kwnC7EM9v0 cWlv90cgURBNEVGdliHNmsoahPikCikg5bamUdmF42ca0xvOZj3Oj5pG/iV137zXEnay 1gi9FdcjIyKKWROvDq70Z37PmG4LFk67wgp7KFQeOau8ieIMGFos/nFi4kXhbrN2wifY RDCfZOWvBJVj1uSq5BlslRRtL6uuSPVllQrCV2xbpcR93VKN+0eiSAbhUQmcTy3cFAem xlNcMyUT5GqaXW7GMW+I2C+n1rZEglhOF+oynSbksUPcd18QGrNiH/UFSMQOpZEzQ79f EQGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GpP3QlEO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j6-20020a170903024600b001a94b91f402si7045531plh.218.2023.05.23.08.46.37; Tue, 23 May 2023 08:46:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GpP3QlEO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237538AbjEWP0F (ORCPT + 99 others); Tue, 23 May 2023 11:26:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237474AbjEWP0A (ORCPT ); Tue, 23 May 2023 11:26:00 -0400 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A662B11A for ; Tue, 23 May 2023 08:25:58 -0700 (PDT) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-3f60444238cso25906405e9.3 for ; Tue, 23 May 2023 08:25:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1684855558; x=1687447558; 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=QM/LRXENQW92kfDEhBKbagV6DNZu10tuXMpBW4Kha3Y=; b=GpP3QlEO868ffEdiFshPBP0wC/K5EmhUiYR1UhNLFmT/1/sG8ZnkK7OBYZtsddw9j0 0HzPGOIE5uiQK3f7lqw48S81m4YQWD+WK2oy1X59AfI7VNpj7kUj1ZJVNP/Wy6U/NxFM GZybTQEpLBZabo/32Nhtig+QGiV4iSwQ1Aw73Ewjbf/uoCFjyecvLc0twnaw2lSdyN7B VasARwg1nz1DlYQqFM32k/Ibj9YZRvjy9pr6CNhiwbUFqk5F2zRcxeSq41saOz2A/OsQ NiC5YVsfp5+cS1U8L54rfMp5Ig4do80EaXx3x5mct6cadRpt+cEk7x2Pmy390LMgq8Nh JXSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684855558; x=1687447558; 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=QM/LRXENQW92kfDEhBKbagV6DNZu10tuXMpBW4Kha3Y=; b=GkzbPX8GOxOEq/bLcp0hUbbLkupQCq59sdzNxfwe18A6TD3jaMGR60w3Y431keA+sC Bxx0K8J0uFznzQltdaAN2/2qWQGa6F44z4yuoFgak4WkohIGE1vmHqyYStLdnTKI3vBh JrGDxr2eXEG93RC5Z9776i262mzlNHakdqsgwuaSXAB5dVzt5iXs7Y6A1rpk9210l88L nakXytruaAFZYgN5YOge0MY5airSU1KHJeyG7kYddnGb7mX06nIu3VXp7Iqrzg9+oI7b 9CimnFjd9NmHVY+FrnBwujiNXeOflfGNhBeR97QM50nkP/olIP/eYYrB9toOBXqWiYGh 2hXA== X-Gm-Message-State: AC+VfDxHiddktgKlAhbbcgm+ueZ82WV0WyY38zZZiw2VVHMebnsN2E6n Htf5iZXBCGYCqEqCP/iKtI++7g== X-Received: by 2002:a1c:7311:0:b0:3f5:6e5:1689 with SMTP id d17-20020a1c7311000000b003f506e51689mr10865100wmb.17.1684855558235; Tue, 23 May 2023 08:25:58 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id f20-20020a7bc8d4000000b003f6038faa19sm8303887wml.19.2023.05.23.08.25.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 08:25:57 -0700 (PDT) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Richard Acayan , stable , Srinivas Kandagatla Subject: [PATCH 3/4] misc: fastrpc: return -EPIPE to invocations on device removal Date: Tue, 23 May 2023 16:25:49 +0100 Message-Id: <20230523152550.438363-4-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230523152550.438363-1-srinivas.kandagatla@linaro.org> References: <20230523152550.438363-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766700414649455810?= X-GMAIL-MSGID: =?utf-8?q?1766700414649455810?= From: Richard Acayan The return value is initialized as -1, or -EPERM. The completion of an invocation implies that the return value is set appropriately, but "Permission denied" does not accurately describe the outcome of the invocation. Set the invocation's return value to a more appropriate "Broken pipe", as the cleanup breaks the driver's connection with rpmsg. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Cc: stable Signed-off-by: Richard Acayan Reviewed-by: Srinivas Kandagatla Signed-off-by: Srinivas Kandagatla --- drivers/misc/fastrpc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index a654dc416480..964f67dad2f9 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -2349,8 +2349,10 @@ static void fastrpc_notify_users(struct fastrpc_user *user) struct fastrpc_invoke_ctx *ctx; spin_lock(&user->lock); - list_for_each_entry(ctx, &user->pending, node) + list_for_each_entry(ctx, &user->pending, node) { + ctx->retval = -EPIPE; complete(&ctx->work); + } spin_unlock(&user->lock); } From patchwork Tue May 23 15:25:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 98067 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2240518vqo; Tue, 23 May 2023 08:48:48 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7HSpXg2SKrIcQW4r31c/yQjwRfdHSGt4h7bGE4jyxPmE+/YZiCEwSQKoJkynCypk0M7gs6 X-Received: by 2002:a17:902:d50d:b0:1ad:d935:a29d with SMTP id b13-20020a170902d50d00b001add935a29dmr17502201plg.39.1684856928406; Tue, 23 May 2023 08:48:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684856928; cv=none; d=google.com; s=arc-20160816; b=xfgV3RQulRfZCEv/kKSJpBDEwlDVYI/pMJY2638EwuzSQou0vQqFcdUSK+dbEnhnjQ tWF51xRNLvmjsjBr9801XxjU/Vy9YqCD6R+ObSAZv2rwQN74bx7A5WSB7nmTJHeNm8VG vt4i9rW3FMzkU/BjZ207iMykRKNNQo/eLCpS8OaiKASLsEsHYXGAmAoQTvRdqhGwOg2u poWxccnZNH9vY4mCDgdkIBxMvrLnrisAEE3SP8tVRVtDqzatGVg6wR6jC2Wzny3xZpTH /hSs6cMCdDSpIFaOR1r1PlhHv9hAnURBneQggvbHpWkh6TUTOxRpztoEZPAzykXdddLE zs/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Zy1nG9pOTv64SKYtr/YgusfuMQ/Wx1uEVdpgzP/dsWo=; b=rcN+X5k5xXOmyvYmUl6iNP6W3YwLnRqKBuh86ufoEWZKsnSpQJEbv9cWdmJ92oKzez 5uDzy827Km/M/wkI2oDQrzcsB7ZQPunKjbdtnjsKWS2nUz1ALqSPxbEarmZBZP+RqMlY FigAKCxm4hsP+kTTRWP5jKaIK7OvS+XpfQp7IA55LkQtA9X/rrITCmLdNVMhrAGaiSPk yuD7FuP3buVnYj8jECGfLxnPeo7NGOwMZfUfKQRhlqti7m7yE4TyT0GHLULzYQnzh0tr WQiOrWoS3hY/czJUI2lX5JmcGg3bOhnvSU/OXOxZP90LfuOhT1FVVM7eGbTEcl2SQ4vu CXMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=JBthonnS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j6-20020a170903024600b001a94b91f402si7045531plh.218.2023.05.23.08.48.34; Tue, 23 May 2023 08:48:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=JBthonnS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237543AbjEWP0J (ORCPT + 99 others); Tue, 23 May 2023 11:26:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237530AbjEWP0C (ORCPT ); Tue, 23 May 2023 11:26:02 -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 13DE711A for ; Tue, 23 May 2023 08:26:01 -0700 (PDT) Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3f60dfc5f93so5091395e9.2 for ; Tue, 23 May 2023 08:26:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1684855559; x=1687447559; 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=Zy1nG9pOTv64SKYtr/YgusfuMQ/Wx1uEVdpgzP/dsWo=; b=JBthonnS/HLuvKwWilhGjrU2q4EYeRpdNJaCWDRl6aTDxfgxOVbMR0TUPTPJiIMHWV Omb8mOcXWLajNxJJbYN0v0ZEV9u+t/e6meqtkILRPYR7SgeTAhHrESQ/OygkPH270pdX j2ZvZIcHx0Brw7EiwhfL2Vd4ssIxxI/KN7qbPgLwJXqiM7qSSwg70PK7q1A66HQBkhwK 1HLwMcvMezb3KAu5Zx5mqJxfNX//u+TffflgMYOCg559hS+xUpa+jkHvuI57hMl+WTyL Id5NDeJSgCqXSAoKAOOxvR5VBI27DVaawlV9shbw1fkb51rRwK1XQO1hWTggrt0uy525 YBfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684855559; x=1687447559; 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=Zy1nG9pOTv64SKYtr/YgusfuMQ/Wx1uEVdpgzP/dsWo=; b=HXnHaifgyOYnndZvaktio9iblOQE8f9pyhPCaRW6ikXUK4GM0Vvg4EkCnhA4O5A/II nGdi+C10CtVqFElVZ5NlZ2xUVWTEM0EUN5ysp5Ndwv/1cPcAKKQnsrZtC6mErCb+2o4N zEIT4fGudcw67DqyGnnsNMNir72i0p7+A5RVMBfJvVu/bUC+N1yEhC1zR/4/tKrzRick XxFQMlpGLKicFXaB0FVckNONWZ1j0f8GDRRaTC0TSMUU1AFbgTqbmp/J0EkyCRMtX35i ImLHu0Bezs1O8UFtDyEu3DP9w2uAP7qWnD6N9Xgw5kFmT8oGLe6itz7Wpj0XyyMYNeaJ kNWg== X-Gm-Message-State: AC+VfDzplaQ7mI3BLkBSTnQuV0mH/ZlqbDh1sRlb5tcYu5D+vy80Q4zE dWKWslt80YayWr1btBhcHtKrINXNzJAEZXsOTNI= X-Received: by 2002:a7b:c044:0:b0:3f4:e853:6a1 with SMTP id u4-20020a7bc044000000b003f4e85306a1mr9955820wmc.38.1684855559544; Tue, 23 May 2023 08:25:59 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id f20-20020a7bc8d4000000b003f6038faa19sm8303887wml.19.2023.05.23.08.25.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 08:25:58 -0700 (PDT) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Richard Acayan , stable , Srinivas Kandagatla Subject: [PATCH 4/4] misc: fastrpc: reject new invocations during device removal Date: Tue, 23 May 2023 16:25:50 +0100 Message-Id: <20230523152550.438363-5-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230523152550.438363-1-srinivas.kandagatla@linaro.org> References: <20230523152550.438363-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766700538694423179?= X-GMAIL-MSGID: =?utf-8?q?1766700538694423179?= From: Richard Acayan The channel's rpmsg object allows new invocations to be made. After old invocations are already interrupted, the driver shouldn't try to invoke anymore. Invalidating the rpmsg at the end of the driver removal function makes it easy to cause a race condition in userspace. Even closing a file descriptor before the driver finishes its cleanup can cause an invocation via fastrpc_release_current_dsp_process() and subsequent timeout. Invalidate the channel before the invocations are interrupted to make sure that no invocations can be created to hang after the device closes. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Cc: stable Signed-off-by: Richard Acayan Signed-off-by: Srinivas Kandagatla --- drivers/misc/fastrpc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 964f67dad2f9..30d4d0476248 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -2363,7 +2363,9 @@ static void fastrpc_rpmsg_remove(struct rpmsg_device *rpdev) struct fastrpc_user *user; unsigned long flags; + /* No invocations past this point */ spin_lock_irqsave(&cctx->lock, flags); + cctx->rpdev = NULL; list_for_each_entry(user, &cctx->users, user) fastrpc_notify_users(user); spin_unlock_irqrestore(&cctx->lock, flags); @@ -2382,7 +2384,6 @@ static void fastrpc_rpmsg_remove(struct rpmsg_device *rpdev) of_platform_depopulate(&rpdev->dev); - cctx->rpdev = NULL; fastrpc_channel_ctx_put(cctx); }