Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2403643ybl; Sat, 14 Dec 2019 11:50:33 -0800 (PST) X-Google-Smtp-Source: APXvYqyqNuVYfpYY9HdT0Gx+llr4t3uE0ZyJK8H4GZcxzxZJ85aXxt09xlBfvLkF58zpBj5OYf8U X-Received: by 2002:a9d:4d99:: with SMTP id u25mr21476777otk.56.1576353033099; Sat, 14 Dec 2019 11:50:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576353033; cv=none; d=google.com; s=arc-20160816; b=JycOO09pD8lG+Pa763Y512N2Zt9iFxYdPaixeKLFW26odEFbQoRqARjTz/BSWXhM1a SUtlDW0qUfZA6N8i9axbIdzDzYxEAlt2I0Lv1FPh+yc3YdL7+afXrnLd5pi3zhWmzsCg 02nQwy2ho7Ya2p+HNDOfajtY9oLa+7QQkEHqvBce1Ts7jAn49XEcekFwiwsI3CwnTrw3 P0a5dn1Lg9vMWYpA31Js1Cns496S5OjXy7TH5YiMlItPcHHK6ON3/dmgBbMiPUtVom4x 113+m+j+UOOUov5VmGzDVfq5kdva/ta0mtplixP3XsaPkpLO9VD/WYrlqIbJvRUbVV+5 gozA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:date:from:dkim-signature; bh=EiEOyIeEYvLm23BDpqDgm3buXGZnOEEPsvT4cTrvLn0=; b=N5SrOn78dJFZcs2Uo6XJNm5uKcWx5VnBXxy3NiuGiF0UDHDymTxVRuBSgu2PUxuVL8 vhUPp6RmNY7qAXykuMCMuvPNKzOJhH6laZtPba7vysasZG4/+fGIY8TtyV/3d3+NHosV iZeWTdFaBEGmlB/6bS0EzOFLuuQnWToMwGQY3QJ3P6rnYfpki+WLQE0KWxB+NJ6c/p+/ dSBk/diiYe+SuAVIKa9iKPGMWnSCFLMjcqh8J2F5vCJVlDBBbYTwuLxtvOdS9mE7/J4x rYVS6ENpCDcXaLBdBs3lp3vCQBq6iKW+52zNsx0UmVfgQ2B2LsVsq6qCwHmNqiBw3R9v G8Pw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=tcACFTjn; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g7si7676685otq.28.2019.12.14.11.50.22; Sat, 14 Dec 2019 11:50:33 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=tcACFTjn; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726834AbfLNTtj (ORCPT + 99 others); Sat, 14 Dec 2019 14:49:39 -0500 Received: from mail-qk1-f193.google.com ([209.85.222.193]:39350 "EHLO mail-qk1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726484AbfLNTtj (ORCPT ); Sat, 14 Dec 2019 14:49:39 -0500 Received: by mail-qk1-f193.google.com with SMTP id c16so2106462qko.6; Sat, 14 Dec 2019 11:49:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:date:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=EiEOyIeEYvLm23BDpqDgm3buXGZnOEEPsvT4cTrvLn0=; b=tcACFTjnrwnAGKiV2jbSZeT9tZqbWzhCFnfX7Z2iRPuu37wGDsE39kjA7QMrBM40Xi kKT7l7KE77Ve2diIme7a57APLM4vJgBYsG7IfiwpILPSbj2t2RsolmJ4HgFz1K4fW158 hHDbIYpTNGudHNgkMxcq5cnOLgYGx2VvpO5Ei6OZYTiiNpmgXQGadIA66W/Bh+sUoBQs UGMsgaGVsEyTn+RMJnVkahZBNjD5f51kM7lNvsj8V2+fgm7euaRC99mTLAu1M4ICbXLU o2atIZnCvrJX6h0eWXjkSndAQEr/Ud8wdOFSzFJH9MYYn1ITelXS4Nq2qFGhDa+3sa20 pCJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:date:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=EiEOyIeEYvLm23BDpqDgm3buXGZnOEEPsvT4cTrvLn0=; b=DP9p1+nkzHd9ni96NK8brbGEoHWYlkOkYar47Pbo3B6weNXeT7R3OghYJtohMsZ+Qj omB7pSw1vyEeTO9JJPhPrHmv0l+S8ED0HMSq5k/EiaPKA+Sbr6cw3yptQd02tzQHDCuz D+ybFFVdk7/kGypHxOacp9+t54w3wASv1OgXViM+/y8A+eAICZR6x4be29otNx1QQfV2 qY0FGhcria3OxM3bmY/QBC6hpPzIoV1TkjNvh1DVnpIkSpisvV8MREqhTgX+93JNfW93 KUxNmiverhi+Ip6h028kLSuJdl2AeeqxHxQ/MZdjMixFj1ot551qkN+adzeqMFs0Tnwd 5/eA== X-Gm-Message-State: APjAAAXRvMTiPJjKVLsCcIwhs0dAnPLNjBvcc/jyXHq/+7nbitTOfyVc eyk2QsiYBLoBoBo8t844qA/yUG5HQfM= X-Received: by 2002:a37:4841:: with SMTP id v62mr18737521qka.444.1576352978391; Sat, 14 Dec 2019 11:49:38 -0800 (PST) Received: from rani.riverdale.lan ([2001:470:1f07:5f3::b55f]) by smtp.gmail.com with ESMTPSA id 24sm4224597qka.32.2019.12.14.11.49.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Dec 2019 11:49:38 -0800 (PST) From: Arvind Sankar X-Google-Original-From: Arvind Sankar Date: Sat, 14 Dec 2019 14:49:36 -0500 To: Arvind Sankar Cc: Ard Biesheuvel , linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org, Hans de Goede , Matthew Garrett , Ingo Molnar , Andy Lutomirski , Thomas Gleixner Subject: Re: [PATCH 05/10] efi/libstub: distinguish between native/mixed not 32/64 bit Message-ID: <20191214194936.GB140998@rani.riverdale.lan> References: <20191214175735.22518-1-ardb@kernel.org> <20191214175735.22518-6-ardb@kernel.org> <20191214194626.GA140998@rani.riverdale.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20191214194626.GA140998@rani.riverdale.lan> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Dec 14, 2019 at 02:46:27PM -0500, Arvind Sankar wrote: > On Sat, Dec 14, 2019 at 06:57:30PM +0100, Ard Biesheuvel wrote: > > + > > +#define efi_table_attr(table, attr, instance) ({ \ > > + __typeof__(((table##_t *)0)->attr) __ret; \ > > + if (efi_is_native()) { \ > > + __ret = ((table##_t *)instance)->attr; \ > > + } else { \ > > + __typeof__(((table##_32_t *)0)->attr) at; \ > > + at = (((table##_32_t *)(unsigned long)instance)->attr); \ > > + __ret = (__typeof__(__ret))(unsigned long)at; \ > > + } \ > > + __ret; \ > > +}) > > The casting of `at' is appropriate if the attr is a pointer type which > needs to be zero-extended to 64-bit, but for other fields it is > unnecessary at best and possibly dangerous. There are probably no > instances currently where it is called for a non-pointer field, but is > it possible to detect if the type is pointer and avoid the cast if not? To clarify, I mean the casting via `unsigned long' -- casting to type of __ret should be ok. We could also use uintptr_t for cleanliness when the cast is required?