Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1998164pxb; Wed, 2 Feb 2022 18:18:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJwjxKSACVTnBTXdEMuV5OY9vqOeZA7v1QYs0S1eX3JR6o98Ld1rudIY9vTCrdDP5cCFHg9H X-Received: by 2002:a17:907:94cb:: with SMTP id dn11mr17227840ejc.81.1643854713961; Wed, 02 Feb 2022 18:18:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643854713; cv=none; d=google.com; s=arc-20160816; b=L92lA652zlLhkWrydf/rc2Ump1qUTp8yae3XPrtqskY9a7byxZjg5CXCYpw0Ft1Oir Ea4/PBKUW7Pw/Cr7VMh4GJDMped2j011mnh4AkWUxzYV03TrOXQvDgaAWocNzwskF41F QTMOgNa42BrUz6fBGip9Fb3hg0FKSlAnSGGVSAKL6wGRGwmfc+J4q3mFhJHxUw0JEMw0 vYAenj1GY0qtGy6E/lgFUH24QsWZlRDqwDj9vXoDo6yb4Z08qBLsSEeMypRPg/dubJFw oV4F7RmvffklsBxKlANWiFnLHWYFGlpi3GOm/KkKHbOd6uNFDvSqlTpijxoYsYYAh743 fuWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=loFJofZ0upYIa6MaCH4FG5SzbgXsqGe4yUUK/6ip4ys=; b=tpS5Jjc3ijaIcz1R6Ar4pTgUy1xCzP3pLPZZipsFEZyEtUrXjD+zlogQnKGp5f9Qz0 Bx5lPT4YdFkiGDtV+J11c1IZtk6bRnfr/t8Kd1i9gGiO672aOnOGlZfS35xNdaUc+u3f BxYcy3n3DpLtBBejnLlYY7HffhcxmU0gjMFGlXexUf/9XR48EHBHwUVV0MLvIYAVeDnE gbihSXpWAnXENnLfEVipA4/hlg6qqqL3qAKssJDyIlPC5wl6jUzWMx9idvh9mLdCBhvV z0Jrwiz2tSLzxzkrBBrTNLwBX9BpzKZiBxHnHh4x7txo8nHjEQvHBDQ1eVFx/08DhU1d FC2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=YQ3Fu2n4; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=cnmIh8hZ; 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=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v4si11356364ejv.60.2022.02.02.18.18.09; Wed, 02 Feb 2022 18:18:33 -0800 (PST) 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=@linutronix.de header.s=2020 header.b=YQ3Fu2n4; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=cnmIh8hZ; 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=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242303AbiBAWzN (ORCPT + 99 others); Tue, 1 Feb 2022 17:55:13 -0500 Received: from Galois.linutronix.de ([193.142.43.55]:42490 "EHLO galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241098AbiBAWzL (ORCPT ); Tue, 1 Feb 2022 17:55:11 -0500 From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1643756110; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=loFJofZ0upYIa6MaCH4FG5SzbgXsqGe4yUUK/6ip4ys=; b=YQ3Fu2n4ujeRr37+Cp6epxQJfQbvKLhUkoBsi6/yVre2ZeWh5hsZugPjzQPRaCwmOhCffL IOv7mjn2IkYpSuCS0XYnXpMerGLtCSURMR/UT/RMXr2FUfRvkK6J/EU97H/7zX+H7/tAS+ h89HnQNRavWZhRFGdhX8xF08QXk6KiB2W/YLubMI+3g43tYRn3CMit2MbWkJ61khP9ec43 uX3MfA6Ieqca0whWb+ugUs/QXDk8stVlklwFe0yWeP5jxhCGL4g5b6aY5qqMGh0xO/BkbA JF+G+yKzu9JC5wjF4AgY4qKqbLf/US2iuWgRbbUs7da92ErtLubUnVEm5V5jpA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1643756110; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=loFJofZ0upYIa6MaCH4FG5SzbgXsqGe4yUUK/6ip4ys=; b=cnmIh8hZRPZSkfgD/9hCeLCOpOAWtZlltsRY2zk3cg+Hp8NdbOo42CPkWTIM4Zmgv60XJZ eq7fJVU3IfRX/qCg== To: "Kirill A. Shutemov" , mingo@redhat.com, bp@alien8.de, dave.hansen@intel.com, luto@kernel.org, peterz@infradead.org Cc: sathyanarayanan.kuppuswamy@linux.intel.com, aarcange@redhat.com, ak@linux.intel.com, dan.j.williams@intel.com, david@redhat.com, hpa@zytor.com, jgross@suse.com, jmattson@google.com, joro@8bytes.org, jpoimboe@redhat.com, knsathya@kernel.org, pbonzini@redhat.com, sdeep@vmware.com, seanjc@google.com, tony.luck@intel.com, vkuznets@redhat.com, wanpengli@tencent.com, x86@kernel.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" Subject: Re: [PATCHv2 12/29] x86/boot/compressed: Support TDX guest port I/O at decompression time In-Reply-To: <20220124150215.36893-13-kirill.shutemov@linux.intel.com> References: <20220124150215.36893-1-kirill.shutemov@linux.intel.com> <20220124150215.36893-13-kirill.shutemov@linux.intel.com> Date: Tue, 01 Feb 2022 23:55:10 +0100 Message-ID: <87bkzqxkmp.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jan 24 2022 at 18:01, Kirill A. Shutemov wrote: > +static inline unsigned int tdx_io_in(int size, int port) > +{ > + struct tdx_hypercall_output out; > + > + __tdx_hypercall(TDX_HYPERCALL_STANDARD, EXIT_REASON_IO_INSTRUCTION, > + size, 0, port, 0, &out); > + > + return out.r10 ? UINT_MAX : out.r11; > +} > + > +static inline void tdx_io_out(int size, int port, u64 value) > +{ > + struct tdx_hypercall_output out; > + > + __tdx_hypercall(TDX_HYPERCALL_STANDARD, EXIT_REASON_IO_INSTRUCTION, > + size, 1, port, value, &out); > +} > + > +static inline unsigned char tdx_inb(int port) > +{ > + return tdx_io_in(1, port); > +} > + > +static inline unsigned short tdx_inw(int port) > +{ > + return tdx_io_in(2, port); > +} > + > +static inline unsigned int tdx_inl(int port) > +{ > + return tdx_io_in(4, port); > +} > + > +static inline void tdx_outb(unsigned char value, int port) > +{ > + tdx_io_out(1, port, value); > +} > + > +static inline void tdx_outw(unsigned short value, int port) > +{ > + tdx_io_out(2, port, value); > +} > + > +static inline void tdx_outl(unsigned int value, int port) > +{ > + tdx_io_out(4, port, value); > +} Looks good but the u8, u16, u32 comment applies here as well obviously. Thanks, tglx