Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp1944538ybb; Fri, 29 Mar 2019 14:48:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqyztAhoxoZ0jXDmHn0sc9i7nWktC2NQ594wxAeJ9eDd3WUb5PKjO0TDdJFsalSbX3SnL1G8 X-Received: by 2002:a17:902:2a2a:: with SMTP id i39mr10259366plb.211.1553896085678; Fri, 29 Mar 2019 14:48:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553896085; cv=none; d=google.com; s=arc-20160816; b=M6mpEigDVqlVB8/LQkJTjZNLzfONUHw6Ggv5LSvFbPOVBPGONiWAY49hJ63liIppei B5Pufjf++3Pa006kGpyhbZwJibo6zt8cNnkJb6YQxBXKjkvzGDsSHY0hY38+/0niYABr ydTX0eIOEIQtPGRZT6qT0ySuZQeP1HDV0jq86W9Gl+Io4RtZtdPhyrtQoSxwW5zgg2qW p1ZAfgqRuwZkmht0rSzrGNg0plhWw39HGQw71CZUKYgH61V7AzUR7paR0F0IFXKoYTpF MnoVTz/9aidWRLRqjWAb6b/Tj18sfukRSHjNXbVyhJ0iGi31iFpB25rrCux1MNxEnTJn YjIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=O0OFsvlxEQNd0+haHfsVo0YdMyMm7iz+X8iwm5qqJGw=; b=ND7+fBAVdmXusj0skuiFaNkzIe4lNDetKQel91FH3XBvaSrIqv4QAkGQ0AE7MacNb3 eCk5mAOF4YGFTSIpbSjyfLCHK8DiHZiRnOh3NlqgkaUXk2h4a5E+G3TzJtDdDNBI1OIa 27y+5TMXrZ4ukQ4ImQhbdkknmMSRNe39VFcFDRs97vyCxeoEMo8AsFRLtERauP+1O/La iI85aJsmdguzwyJAMvn+1jE3AnZcx2g6NB9Hftk/YxltZ//H8CzPgj7Az53wfAnmhGQH qqj5Kzrp9FlFi2bOI9Z+6nvR4oinnlbIniZhYEiK55rjOIgXCX8TmOyxYbokhV/XnZ5g 2Wtw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=ln8pCRJD; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j17si2808822pfn.210.2019.03.29.14.47.50; Fri, 29 Mar 2019 14:48:05 -0700 (PDT) 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=pass header.i=@google.com header.s=20161025 header.b=ln8pCRJD; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730122AbfC2Vps (ORCPT + 99 others); Fri, 29 Mar 2019 17:45:48 -0400 Received: from mail-ot1-f65.google.com ([209.85.210.65]:37659 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729939AbfC2Vps (ORCPT ); Fri, 29 Mar 2019 17:45:48 -0400 Received: by mail-ot1-f65.google.com with SMTP id c16so3480836otn.4 for ; Fri, 29 Mar 2019 14:45:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=O0OFsvlxEQNd0+haHfsVo0YdMyMm7iz+X8iwm5qqJGw=; b=ln8pCRJDI582zd9uMCAAliHnXOsO+68A2KPuCuwp8QrWe4kUAhw/qVOqpm4u2p/Ajr jix8y1jGwT7MSqswVuWFG+Uc2oILC2RifyiSgvKImoSitxjcY22GIZGpcXwrKa7ww/Md cslQCGlxb7c4jOaHJe2YvELdzt3LcI7R3ViEj2jvlUMEaz9I3x9s0Z68X+MOsx5oOBvw bYwnCI1kRqRTHMqlbXwiY+5e8sneFjZZi1TI9jyxhboWJJSZgkmzuKbkFFYbYUcSzxfk 6xtuAXfWNWb6xXRZQna0P2IbP4nk3hKanttBhMoEH24Y3fsRJjkYZ82Kl4jcxdEqY+mZ fHgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=O0OFsvlxEQNd0+haHfsVo0YdMyMm7iz+X8iwm5qqJGw=; b=Df7B3ARgYiwR0GsGJU6IXVFG3oaMrhXY3keh2rvRXnplKuteRNN5qO96Rbg8LGU7Gr OShGOiQyK78rmYSPjfu26LtCgm1F2mw8E0ZcM5lZAg0ZFRwV027wtaao8l3kVzvrL5kM hGI4PMWHRvgaMRaodWCUDqJbQqRgMApeihg5xL3errDasOeTIV7WdEap3FrHtRn3TOA6 rIgYNGFkU9JTL8hr61ezkacRScqcR6dGnXyu72qoROoYqCG5sALleK9IF2x8dYF4JEZe 60XQHGGwgYoam32z3IpV1HQlnSxIJNiCxzrDGmmS5FzyTcw/LPHo30OrSB0pryPN0+Lk Rrow== X-Gm-Message-State: APjAAAUhjhOKxeGE/QNUvgVy4cZnmRwnSRyagr+sPYeBwStmfecgyqnj qzDgAD9h/KMd+CN+Los98m3EXvxsCoINTsyt1IDyBg== X-Received: by 2002:a9d:309:: with SMTP id 9mr35244289otv.230.1553895947677; Fri, 29 Mar 2019 14:45:47 -0700 (PDT) MIME-Version: 1.0 References: <20190328225925.241998-1-jannh@google.com> <530a0823-5dcd-9006-2057-ae5b9da2389a@codeaurora.org> In-Reply-To: <530a0823-5dcd-9006-2057-ae5b9da2389a@codeaurora.org> From: Jann Horn Date: Fri, 29 Mar 2019 22:45:21 +0100 Message-ID: Subject: Re: [PATCH] x86/calgary: fix bitcast type warnings To: Mukesh Ojha Cc: Muli Ben-Yehuda , Jon Mason , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , "the arch/x86 maintainers" , iommu@lists.linux-foundation.org, kernel list , Logan Gunthorpe Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 29, 2019 at 9:19 AM Mukesh Ojha wrote: > On 3/29/2019 4:29 AM, Jann Horn wrote: > > The sparse checker attempts to ensure that all conversions between > > fixed-endianness numbers and numbers with native endianness are explicit. > > However, the calgary code reads and writes big-endian numbers from/to IO > > memory using {read,write}{l,q}(), which return native-endian numbers. > > > > This could be addressed by putting __force casts all over the place, but > > that would kind of defeat the point of the warning. Instead, create new > > helpers {read,write}{l,q}_be() for big-endian IO that convert from/to > > native endianness. > > > > Most of this patch is a straightforward conversion; the following parts > > aren't just mechanical replacement: > > > > - ->tar_val is now a native-endian number instead of big-endian > > - calioc2_handle_quirks() did `cpu_to_be32(readl(target))` when it > > intended to do `be32_to_cpu(readl(target))` (but that has no actual > > effects outside of type warnings) > > > > This gets rid of 108 lines of sparse warnings. > > > > Signed-off-by: Jann Horn > > --- > > compile-tested only > > > > arch/x86/kernel/pci-calgary_64.c | 108 ++++++++++++++++++------------- > > 1 file changed, 64 insertions(+), 44 deletions(-) > > > > diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c > > index c70720f61a34..36cd66d940fb 100644 > > --- a/arch/x86/kernel/pci-calgary_64.c > > +++ b/arch/x86/kernel/pci-calgary_64.c > > @@ -534,6 +534,26 @@ static inline int is_cal_pci_dev(unsigned short device) > > return (is_calgary(device) || is_calioc2(device)); > > } > > > Can the existing api's not be used here like iowrite64be/ioread64be/ or > similar variant in "include/asm-generic/io.h" Given what Logan said, I think it probably makes sense to keep the patch as-is?