From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0864A402426 for ; Wed, 13 May 2026 12:48:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778676510; cv=none; b=FjoV0S1EHE0TZc/a6sUdib+rvVgAEyJIiuVjoniKKy41iTBfh41besc+UdUS796P1iqcuSfMzalDMlel7hGLW4ZqZlldK6g9vazn3pXPjxWaSkUcUq5Adk/3BrLh+Nsfh1fB6v9BrKIw1BO4RuUYdomy/xcZ/z02gg4RaKEy2iY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778676510; c=relaxed/simple; bh=+GsX+CdK0ydxnGXslSMT5BS3MNBH9LFYKOpievZvUwc=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=IZhR6SPzzwyrtd2ld0VZWvOOQXHF7CYrhhTQ9xxk+oSlXGHA7/qOcanJBj9BqvPdyCvw1pE+i9WnnElygU/WcCpqZuQ6MAzRgR5MzDKlv845B072ViFCx/DZ6J+brjojrB3aLRjvitZC2PFASvZIQLz9zPNU6NBTuPagVlIul0k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=mnej4WuZ; arc=none smtp.client-ip=209.85.210.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="mnej4WuZ" Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-82fa2165c3eso4668201b3a.0 for ; Wed, 13 May 2026 05:48:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1778676508; x=1779281308; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=+5eHMVfb/Er3xuFGOIw7f+q4SdOyV+C6CS8hVi39b+g=; b=mnej4WuZcLYu2spTIG5qsYwOGpRrFVWUh1G6pwOf2Mx5QM6vOMiV6D30zRyvyQEdfq PmxYTNYJRFI5MvXCCvaQ4eQx1ZYsdyPJW2Y/X1NN/Jzf5q0SLrhvqB2sgUAoBAVoVIr8 fBx9mmJ/FdusAKWtzQmEWYCb9txBI9RwHIO8TMLJCHfzBCj1ffWFXKqM4Z613nojbOl1 V1NbzgsMF8zmpmkph2/+n+uQGeicHvVjPt24LoGDs0URNtZrRasEtNLbm0Ul+yDxJqH/ lc7yY4iIL1Ru0STc+UcnNdS3NukWypz3OdoHdRzBNkmDYUIz2P9UYbDZNeyM9celjfnV RwBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778676508; x=1779281308; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+5eHMVfb/Er3xuFGOIw7f+q4SdOyV+C6CS8hVi39b+g=; b=bpLE48G4VnCkAH4G/FXj0J4780cW4bsvCXIVozxbXEHXKjoNj0vH7NDkInsn8310Xt wzwXFjCojVNx4eZ9UMxouqxMRBNL2ARwqTci106JzsyHLBZqVuk8RP5Pu+XbnR9LDMao wKrg6LvDEZTKgrhi3oKb7ABpzsIe/8smNS1HpcO1g0T1ZWtItbgQaIJqDg4VNBlf2ors VrptymQpdyxZrQXhqBahMdMYt159fgJxwri69sYLfFLy1WwSPGffNNg2mz0Jzlmsq2Oi JnmbjclUG18QTLyg0pE5gxmlexBHNCM0gYK1yE2tpbdRtKHqKsnmaBQPWs1SIOgningi VcRA== X-Forwarded-Encrypted: i=1; AFNElJ9CoOKraODG6V/mth0OwMOU657fyTUdMi+Zd09U6S0LRWkm09z5FGD1WblUU3BomnMTSOHvyNRla5V0icA=@vger.kernel.org X-Gm-Message-State: AOJu0YxDRIKArDA9rwpEz5FYCtB7TPCvtYx9FSqCD91/fwzxwLnEI6FN rxmaK1SZtUwaWshVQZuqszU8J3UC+Mh/EYuGxoLNSZ7Gzikla/DE1EJ97cQ0olw4Bi46cjp7Rkt A80VtKw== X-Received: from pfnn24.prod.google.com ([2002:a05:6a00:2b98:b0:835:4568:a5a0]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:aa7:8887:0:b0:837:b5b6:1b97 with SMTP id d2e1a72fcca58-83f03fcc53amr3291170b3a.12.1778676507889; Wed, 13 May 2026 05:48:27 -0700 (PDT) Date: Wed, 13 May 2026 05:48:27 -0700 In-Reply-To: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260428125632.129770-1-kas@kernel.org> <20260428125632.129770-3-kas@kernel.org> Message-ID: Subject: Re: [PATCH v2 2/2] x86/tdx: Fix zero-extension for 32-bit port I/O From: Sean Christopherson To: "H. Peter Anvin" Cc: Dave Hansen , "Kiryl Shutsemau (Meta)" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Rick Edgecombe , Kuppuswamy Sathyanarayanan , Kai Huang , Borys Tsyrulnikov , linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev, kvm@vger.kernel.org, stable@vger.kernel.org Content-Type: text/plain; charset="us-ascii" On Tue, May 12, 2026, H. Peter Anvin wrote: > On May 12, 2026 6:14:13 PM PDT, Dave Hansen wrote: > >On 4/28/26 05:56, Kiryl Shutsemau (Meta) wrote: > >> + if (size == 4) > >> + regs->ax = 0; > >> + else > >> + regs->ax &= ~mask; > > > >I haven't thought about this _that_ much, but this feels wrong. Why is > >is 4 so special cased? > > > >Also, what _are_ the limits on the registers that 'in' can be used on? > > > >RAX - n/a, no 64-bit I/O > >EAX - size=4 > >AX - size=2 > >AH - n/a no encoding for inb > >AL - size=1 > > > >I'd find this much easier to grasp if there was a nice table of what the > >registers, sizes, and masks ended up being usable. As usual, x86 is > >"fun" here. > > Because zero extension only applies to dwords. > > x86-64 has three subregisters per GPR: Aren't there four? The fourth being 31:0, which is the one that is zero-extended and so "clobbers" 63:32. > Bits 7-0 > Bits 15-8 > Bits 63-16 I assume you mean 15:0? 63:16 isn't addressable. And these are the ones that aren't zero-extended, i.e. don't "clobber" other bits.