Received: by 2002:a05:7412:98c1:b0:fa:551:50a7 with SMTP id kc1csp1598909rdb; Mon, 8 Jan 2024 04:43:59 -0800 (PST) X-Google-Smtp-Source: AGHT+IGohCItz00Vy3OKbVu1kHH46xQnhL6jbL3XiEr3Gvv3RpRLkE/UKdz4KmdKzppl0NOx6+La X-Received: by 2002:a17:906:da85:b0:a26:f1e7:2b6d with SMTP id xh5-20020a170906da8500b00a26f1e72b6dmr1812440ejb.50.1704717839789; Mon, 08 Jan 2024 04:43:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704717839; cv=none; d=google.com; s=arc-20160816; b=GXpCIG15t39hQMSheBtk1qIEvU23lsSTWcXptC7L0/6hES+HasMgMsVC20Y6NXvM36 7XMDbg3E5Zk1Q6eNW1usJa3d2iT/kIjUTKuj16jMd3jzZLh8B4t0nYtak73eFZ8I3lp6 VayOhoL3r9vL/TPM2frJXKqnSRSR5R2fYj+66nQwVd5jkY0Ft7RVi9Hm2W6rgf4RYnHq h2I1tWyu8vRWbrVBcBIxGyqMzNYKxBhxpQIHZXj7fnHJKt0DGu1r5AkBoPMsckTq4z1w RoRrpzbKSn+x13Ze4G9/+HUVnhUu5IpN0q4wsmKUQ42hDLKdpqIPPemPNElKEEkUlx6E MpDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from; bh=RFlh8ohF6AoX6LJZqwN9ADcEcRo21qT+Z+egWNTMZyc=; fh=yC+rbCZNfEFN2DLpTF2BdyYiHEbBGXmYn79WNneL20w=; b=xWWAaWNC7Z378FZ+Ew4gUfhCfPzWkIHBc5Ug14NwS5Gys23wOXiHsyOKk93gwkbN8Y NEuVbIsm9unn01GfPU+CDs2AIl+jIYNphfZfI+shrHNqqt/JQmTM6g+mpXQ3V2zhNrs7 h4p+Q1KWO/oBJ/aBkb6jNg8SCxPDPX1wex56veUv05FgiX/mGRfg7O3pyb/IsLT8JfrW gOyGX4jkDWb1ZJ05gnzi6oFSDaJ0FcbHCy5w/Gjv9bwrHn+9nEoDNkqtTVMJmTllUy2v qKZLLp+jDCJSWMXf+EfytNMK6rZFLczuRjP+QOw2AAaKPmmAIxJTKLjNjJ0d7htnKBaK K+Ew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-19545-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-19545-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id fi3-20020a1709073ac300b00a2a2ad85e13si1581002ejc.926.2024.01.08.04.43.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Jan 2024 04:43:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-19545-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-19545-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-19545-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 8BE3C1F22DAC for ; Mon, 8 Jan 2024 12:43:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AA88345C01; Mon, 8 Jan 2024 12:34:51 +0000 (UTC) X-Original-To: linux-kernel@vger.kernel.org Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 959C344C9D for ; Mon, 8 Jan 2024 12:34:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C60051480; Mon, 8 Jan 2024 04:35:34 -0800 (PST) Received: from [127.0.1.1] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 28D113F64C; Mon, 8 Jan 2024 04:34:48 -0800 (PST) From: Cristian Marussi Date: Mon, 08 Jan 2024 12:34:13 +0000 Subject: [PATCH 3/6] firmware: arm_ffa: Check xa_load() return value Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240108-ffa_fixes_6-8-v1-3-75bf7035bc50@arm.com> References: <20240108-ffa_fixes_6-8-v1-0-75bf7035bc50@arm.com> In-Reply-To: <20240108-ffa_fixes_6-8-v1-0-75bf7035bc50@arm.com> To: Sudeep Holla Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Cristian Marussi X-Mailer: b4 0.12.4 Add a check to verify the result of xa_load() during partition lookups. Fixes: 0184450b8b1e ("firmware: arm_ffa: Add schedule receiver callback mechanism") Signed-off-by: Cristian Marussi --- drivers/firmware/arm_ffa/driver.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm_ffa/driver.c index 8df92c9521f4..0ea1dd6e55c4 100644 --- a/drivers/firmware/arm_ffa/driver.c +++ b/drivers/firmware/arm_ffa/driver.c @@ -733,6 +733,11 @@ static void __do_sched_recv_cb(u16 part_id, u16 vcpu, bool is_per_vcpu) void *cb_data; partition = xa_load(&drv_info->partition_info, part_id); + if (!partition) { + pr_err("%s: Invalid partition ID 0x%x\n", __func__, part_id); + return; + } + read_lock(&partition->rw_lock); callback = partition->callback; cb_data = partition->cb_data; @@ -915,6 +920,11 @@ static int ffa_sched_recv_cb_update(u16 part_id, ffa_sched_recv_cb callback, return -EOPNOTSUPP; partition = xa_load(&drv_info->partition_info, part_id); + if (!partition) { + pr_err("%s: Invalid partition ID 0x%x\n", __func__, part_id); + return -EINVAL; + } + write_lock(&partition->rw_lock); cb_valid = !!partition->callback; -- 2.34.1