Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3138838pxj; Mon, 14 Jun 2021 15:37:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz0VsrYTKbQfURqFj4vLIQBzSDtP8lLLpStzUR6nZUy2wRMFp978/GOHtAdnGUhN1P59mwE X-Received: by 2002:a17:907:2cef:: with SMTP id hz15mr17245806ejc.253.1623710258082; Mon, 14 Jun 2021 15:37:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623710258; cv=none; d=google.com; s=arc-20160816; b=N4wzsRMUqg4HFzpxqNiWpjBGzakBEcwS4ThaLDvK3cP0NlpkTkREF2y2SxA7elCSvy EzYOeQjuErU0G4RKz8iwL3dn91DozmNHCyxvLDZgAKtC3rBC2DcN59xIk63BdwESH+Q+ lL0TjAW0N6DtjbVta6cHugHfT5VuDNeBxJn72JFsk0vTHnXfOwniOWWHfFLzAJTIznHz KJloziKtvfQA1Fcb0fYDmZyRlp/UfEjKrVoPfFpcQt/uIJu5ygd8lHB1gBLS0bqkXTdr OIK642csibOpAdNHnaFSUIeSQTxKK3UL4s9UOamnAf7g/xTckpd54ki3MXCn8SQ/Us9c smyw== 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:dkim-filter; bh=whxJsdq8XkOwGGGAaS4MNf4W2jApHz0t3z79hHnMR+o=; b=FTWrb5iLU1xvF81v1Z7Ql0k59bNoom8vL9Us6jxDZfBHLrAC2XLWmi+jWixasxv1nK T7lUDTI9qFfMddflpj+HCAuY9xMzKzRA6avCOB3LAPgE0sUl+1G0UrtkBrg0ZdambFIl 9AjGAWGcI6sBuf7hMxgDcQV5zJKZpDE7rD6hMq/gykB1xBTZyjNa8AdR/Js0C+njiRbT IInIAHKDk3/0x90nYD1Scv2RF6aYHa825u0GQObqgzsUqYKomgcVPRIntNnVORHRMQsS MtvyjMNnc9tGtXzpmozNHLlB8G8wPB6KRaAk+V2CMtyUlS5W+0v0P5wzDh1y0dq3wfm8 jaOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=sjHXc5wz; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id la12si12596016ejc.560.2021.06.14.15.37.15; Mon, 14 Jun 2021 15:37:38 -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; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=sjHXc5wz; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231760AbhFNWft (ORCPT + 99 others); Mon, 14 Jun 2021 18:35:49 -0400 Received: from linux.microsoft.com ([13.77.154.182]:56138 "EHLO linux.microsoft.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231556AbhFNWfn (ORCPT ); Mon, 14 Jun 2021 18:35:43 -0400 Received: from sequoia.work.tihix.com (162-237-133-238.lightspeed.rcsntx.sbcglobal.net [162.237.133.238]) by linux.microsoft.com (Postfix) with ESMTPSA id DAE3120B83DC; Mon, 14 Jun 2021 15:33:38 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com DAE3120B83DC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1623710019; bh=whxJsdq8XkOwGGGAaS4MNf4W2jApHz0t3z79hHnMR+o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sjHXc5wzAlVflM9Bxv3gCkjbXdSiPyMWHpqCuaR7gnjM3UUr1qKHg+jMBQQeFCjrc ZnSw/wDbzVjeJAn3JAIIA/e4NOg+J3RtNkon/TSdEByug0tAAVhcqW9w5gXNXpd6VT kGJwORrIrT4L5xrefcvylpBvXWPl2iP3ie3LIcXQ= From: Tyler Hicks To: Jens Wiklander , Allen Pais , Sumit Garg , Peter Huewe , Jarkko Sakkinen , Jason Gunthorpe , Vikas Gupta Cc: Thirupathaiah Annapureddy , Pavel Tatashin , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , op-tee@lists.trustedfirmware.org, linux-integrity@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 5/8] tee: add tee_shm_alloc_kernel_buf() Date: Mon, 14 Jun 2021 17:33:14 -0500 Message-Id: <20210614223317.999867-6-tyhicks@linux.microsoft.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210614223317.999867-1-tyhicks@linux.microsoft.com> References: <20210614223317.999867-1-tyhicks@linux.microsoft.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jens Wiklander Adds a new function tee_shm_alloc_kernel_buf() to allocate shared memory from a kernel driver. This function can later be made more lightweight by unnecessary dma-buf export. Cc: stable@vger.kernel.org Signed-off-by: Jens Wiklander Reviewed-by: Tyler Hicks --- drivers/tee/tee_shm.c | 18 ++++++++++++++++++ include/linux/tee_drv.h | 1 + 2 files changed, 19 insertions(+) diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c index 00472f5ce22e..c65e44707cd6 100644 --- a/drivers/tee/tee_shm.c +++ b/drivers/tee/tee_shm.c @@ -193,6 +193,24 @@ struct tee_shm *tee_shm_alloc(struct tee_context *ctx, size_t size, u32 flags) } EXPORT_SYMBOL_GPL(tee_shm_alloc); +/** + * tee_shm_alloc_kernel_buf() - Allocate shared memory for kernel buffer + * @ctx: Context that allocates the shared memory + * @size: Requested size of shared memory + * + * The returned memory registered in secure world and is suitable to be + * passed as a memory buffer in parameter argument to + * tee_client_invoke_func(). The memory allocated is later freed with a + * call to tee_shm_free(). + * + * @returns a pointer to 'struct tee_shm' + */ +struct tee_shm *tee_shm_alloc_kernel_buf(struct tee_context *ctx, size_t size) +{ + return tee_shm_alloc(ctx, size, TEE_SHM_MAPPED | TEE_SHM_DMA_BUF); +} +EXPORT_SYMBOL_GPL(tee_shm_alloc_kernel_buf); + struct tee_shm *tee_shm_register(struct tee_context *ctx, unsigned long addr, size_t length, u32 flags) { diff --git a/include/linux/tee_drv.h b/include/linux/tee_drv.h index 54269e47ac9a..8990f7628387 100644 --- a/include/linux/tee_drv.h +++ b/include/linux/tee_drv.h @@ -332,6 +332,7 @@ void *tee_get_drvdata(struct tee_device *teedev); * @returns a pointer to 'struct tee_shm' */ struct tee_shm *tee_shm_alloc(struct tee_context *ctx, size_t size, u32 flags); +struct tee_shm *tee_shm_alloc_kernel_buf(struct tee_context *ctx, size_t size); /** * tee_shm_register() - Register shared memory buffer -- 2.25.1