Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp1715081ybb; Fri, 29 Mar 2019 09:50:02 -0700 (PDT) X-Google-Smtp-Source: APXvYqzQJmzeLAJJM/1xxz+PeHTr5GVITtMixxVPU3a8S9sr1bemtrrDEs1ySsXoyncpgpj4HX2x X-Received: by 2002:a65:6241:: with SMTP id q1mr19200148pgv.244.1553878202239; Fri, 29 Mar 2019 09:50:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553878202; cv=none; d=google.com; s=arc-20160816; b=Hk9j1WJC4JM5ZJxXyyMEVUghTygZ4pGU2xLWwIfbsYyNAUlotBDMKRIjlqvMjKin4J VQ0otuLuc+Rv97FKTzL8pblWgmvRM6OswIQgF2BBTQViSW1OeP3bwWiGqaD6bm9yKbB+ P0jFwC/mZPeKHUtjA17YoymP1Ju994XFth6usiLq5AuLzyWjR4X2MOeUgHc8U8MYCSnN OyWeaITMnHB11Fk8q+d+WxmultAJ0mwkH2Txwxbml2npmhVtRS8eFOD6N4c1JXrYBtG3 uxDRkE0yNdN+ODgi1woj30Fb5zkLHlMMqYv8psMzWuYegOGS/9pw8n00rPeloS2hNzrN aVUg== 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=JaOWiwaKjM/I8d+hQLjfmNO8tEmcYpcTncowB6z1DDU=; b=SW++BxshCS3DJHWpDtTIeVv0HqEweXeWmMjGyHvyVbIr8SG0KCmHRifxkTjMwVR26J wiAI8NsVAz1+d8hL3Ze/xmXDqUXu6V5+ByQqnQb/qbB7SMJRvde2hLZtUT6nJBOS7P3O o4Qy+/IeP+3dl2D6dElUfoj5Dzdl8271090KXKqZaQEFdALIV2CYIySZw9IZW+szQrpf GUWPsyaatNqFp4ppQGlIHwrSyTpDe4cNDktY9zjNZfL261BpH87Zp+LL+2KRYzynh0Iv u49wiWikxipS6/HY5aow+irnJLLYbNwsV55RO5qqoXGUCY5QjQOjr5VK2x/iqX8pNWpY cRHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=ExtgvdXs; 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 w10si2192227plq.328.2019.03.29.09.49.46; Fri, 29 Mar 2019 09:50:02 -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=ExtgvdXs; 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 S1729819AbfC2QtG (ORCPT + 99 others); Fri, 29 Mar 2019 12:49:06 -0400 Received: from mail-oi1-f193.google.com ([209.85.167.193]:37768 "EHLO mail-oi1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728936AbfC2QtG (ORCPT ); Fri, 29 Mar 2019 12:49:06 -0400 Received: by mail-oi1-f193.google.com with SMTP id v84so2185710oif.4 for ; Fri, 29 Mar 2019 09:49:05 -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=JaOWiwaKjM/I8d+hQLjfmNO8tEmcYpcTncowB6z1DDU=; b=ExtgvdXsHJcSeieqJ7N5ScpYmu8tDtRSUQml9XKuZm8rsSnCFaeaoxQUt1flK8oCDU G62NJC6NGcgJr/TDkTiZyyKdDQhEpuI4QL9qd+NfZ3pzO6pCMO3/HF2Bm40dgZ2il7eD TEHVOjuw1v9iAYYds61GShDszbSD+CAvXmnXB/lOmRDCssvZeXD2+Sa2+SmdP21XCulv REWN1qGykUpTgDUfKbO+mCjyEZ0ZyPOyBdK0WfEuVbnOVSuCtOmVwOYiEK+Z9/xfMD79 BNrn1p80jCSiqd5PlOuP2gLNcS7f159p2V8vx19RQ2G4SLuAG2zM3VhLADaly414MEbQ ZrWQ== 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=JaOWiwaKjM/I8d+hQLjfmNO8tEmcYpcTncowB6z1DDU=; b=M+lnyLLpmp77dT3hx3xy7/Jh5xUHZ0Md2PSfqMHl13pKFZUH69/Z51sNn20naahwI9 5IEdQ1DYnwJoQ3beyqly1f01QoREqVhBEibQ8+mmOX4wLgKEjDqKD19OtkP4krqb0K2I ED0Cv9Uwpi7TZpG1+4hams9gYP4ogTK3vRlJEE7Npb2vAY68adgPh7Suivnd8/WQOEbV NSn7YZTPIqukDncctZw3hLQUVvZe5qZ49myYajK/7/adzPnU1ic3FP11AxYy9mu25Zf0 XL+Wr614Oy54imddUKSDPQewza4Du+F81XlbSZGl3xqCUroZ3XRAnLbmPZAhIoPhJwYJ papw== X-Gm-Message-State: APjAAAVG9O3LqcaheuU6105RPdFj7wkxrdsE/cHV5Au4lo7Zjl4F06Yn 9zXMyE2jI82S7+dKcfW75kkcGnVAKrEsvSdo0ZmGsQ== X-Received: by 2002:aca:eb44:: with SMTP id j65mr1440087oih.0.1553878144628; Fri, 29 Mar 2019 09:49:04 -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 17:48:38 +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 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" Oooh! I didn't realize that those exist. I'll change that and send a v2.