Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp3874378rwi; Wed, 12 Oct 2022 07:51:13 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4cE09XXtDCSLnqoCdzvN9RYkQczXNrtmdqA7JOvsGncW6MBLhpMcyu9VGkOJapB/KbWtQx X-Received: by 2002:a63:82c6:0:b0:460:a691:356 with SMTP id w189-20020a6382c6000000b00460a6910356mr18390421pgd.621.1665586273601; Wed, 12 Oct 2022 07:51:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665586273; cv=none; d=google.com; s=arc-20160816; b=0ZP597bObARSWOt+4HuTU1uO/MH1tneNu+NJBOW9hk9XL+EHkU8jToOQL9w/52e9V5 ceFyCWmajgD2ERlBEPgv8i8OTkfAvYU58lqx3vs4wIDK0hxLGzK0SnwoaS1R4YjsFTaT nW6nb/pPdLqO3MxIg8/pD6LD1CXXfyVPtW+p/9ijqv3A5QleXxBGXNQ4hOJL3IShaSe2 TKDBXDjK45oUd/k6GvurFq0VPetIFZYXt7zDiyZnWMsu9W2IAHjbjvtI8MYsxpz9Ha2+ 6u/YXfNuGEaQzxUxmqx5eX30LWSQ7dz8Se3wrU2z6po0NMZx4b/tO1gE/HOeqfORzuT1 jmaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=Xx7qdtZSdBtODFjVr123aDOe5PJL8vXeXOGIgwvSwo8=; b=kupmX0hoQiMp15X80wmluKdM7TuiWka2LttrqpVbBKWgEtgz+lZgJtYIT93GGSc5uv 86AKZpaYIYRuveyWfR85VhWsKQP+F0NKC4lvLaUCSrfSsIjW3964u7mCdd4eC9cLTw/w ro193D9yViWnIdIMWmmfjjGtIFG2AbmMQUCCZTwdfCykNeA12vHwPe/3pg8uPvOQOaw3 iZVSCGhwT5rkE/Z/bhlbanSxRM9loM8gnfS0PoXzFgDxlZlpMApMKoqiVTr233Eb/uTk qljvqBuCVZFFptzx+Sh1OJ9JgPiTqVKiBpU8s33ilLE5yPw+xbB94ey8UTbwSCFSPSeT qOvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=frVNzTDe; 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=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u41-20020a056a0009a900b0053e8981932esi21265234pfg.330.2022.10.12.07.51.01; Wed, 12 Oct 2022 07:51:13 -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=@intel.com header.s=Intel header.b=frVNzTDe; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229872AbiJLNgG (ORCPT + 99 others); Wed, 12 Oct 2022 09:36:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229682AbiJLNf7 (ORCPT ); Wed, 12 Oct 2022 09:35:59 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 765F1AC397; Wed, 12 Oct 2022 06:35:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1665581758; x=1697117758; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=8xYxlUm+MGiT1FvcaNdZ+RqLNhLPP9G29jYSgD4vhhk=; b=frVNzTDe9W6qdbSYbRsJ0KxcUA1Jl2sU7wUl6/ZJk1p0eYQjzyeUuN19 AeVWp5B/ijeMl79VSc0v+WGiRFtTb3Cqao8apgjDjNvTWpzRygCcNLlIw djQa6wRe0f9C9qzJYIfaRo75kJmFCY2tKDHXkk5NuzQH6MaEhHL7UkWJ4 7CWqPPw0UePKAj/3LQvs2gex9wkEkDQXeK1sMB8jXdJ/T+EzTJv6qbxfc 2cgr+BeVcu/dUYxs43hlrcNsJCJ1N+cd7xCiEnOI943eNk68PGkNbnO0Q 3R6IGd6jS7DqlnEg83o6Ubv+tV6QcJCGt7KkjYO32yG3I1taGAsxsDy4D w==; X-IronPort-AV: E=McAfee;i="6500,9779,10497"; a="391099733" X-IronPort-AV: E=Sophos;i="5.95,179,1661842800"; d="scan'208";a="391099733" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2022 06:35:58 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10497"; a="955754152" X-IronPort-AV: E=Sophos;i="5.95,179,1661842800"; d="scan'208";a="955754152" Received: from mmarathe-mobl3.amr.corp.intel.com (HELO [10.209.65.51]) ([10.209.65.51]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2022 06:35:56 -0700 Message-ID: Date: Wed, 12 Oct 2022 06:35:56 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 Thunderbird/91.11.0 Subject: Re: [PATCH v14 1/3] x86/tdx: Make __tdx_module_call() usable in driver module Content-Language: en-US To: Borislav Petkov Cc: Thomas Gleixner , Ingo Molnar , Dave Hansen , x86@kernel.org, Shuah Khan , Jonathan Corbet , "H . Peter Anvin" , Greg Kroah-Hartman , "Kirill A . Shutemov" , Tony Luck , Kai Huang , Wander Lairson Costa , Isaku Yamahata , marcelo.cerri@canonical.com, tim.gardner@canonical.com, khalid.elmously@canonical.com, philip.cox@canonical.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-doc@vger.kernel.org References: <20220928215535.26527-1-sathyanarayanan.kuppuswamy@linux.intel.com> <20220928215535.26527-2-sathyanarayanan.kuppuswamy@linux.intel.com> From: Sathyanarayanan Kuppuswamy In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 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 On 10/12/22 3:18 AM, Borislav Petkov wrote: > On Wed, Sep 28, 2022 at 02:55:33PM -0700, Kuppuswamy Sathyanarayanan wrote: >> To support TDX attestation, the TDX guest user interface driver must >> use the __tdx module_call() function in the driver to allow the user to >> obtain the TDREPORT. >> >> So export the __tdx_module_call() and move the TDX Module IDs to >> asm/tdx.h. > > The functions with the __ prefix are usually lower-level interfaces > which should be internal. Usually. > > Why aren't you exporting the tdx_module_call() one instead? tdx_module_call() calls panic() on a non-zero error value. So it is only used for cases where failure is fatal to the guest. But in the case of TDG.MR.REPORT TDCALL, there are valid cases for failure (like invalid param or busy condition) and the failure is non-fatal. So we should create a new wrapper for this use case or use __tdx_module_call() which is already exposed in asm/tdx.h. > -- Sathyanarayanan Kuppuswamy Linux Kernel Developer