Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp663456pxb; Thu, 30 Sep 2021 14:25:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxBP9xdliaw9tNGyFISOTjflLC49EhFDavLWzuco0y/kJa61y7a/BDCUP60HWnwMNqsELKM X-Received: by 2002:a50:e046:: with SMTP id g6mr9831772edl.296.1633037150843; Thu, 30 Sep 2021 14:25:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633037150; cv=none; d=google.com; s=arc-20160816; b=BENNyz6ikEgb+YlgzljYzOzb9Gxg3F6LmO+uEgiszC4SSf1CvdObWnLHHLAoWfCeLK Z7UsyUvJb+UKJBS2Db8MSUvX0TVHLuGpnWoG5L4Z9/7TJZPuLys7C3q6ojIA8fydfLVB e1pMnqi35dY6GNY7EiKifE49DUDI0bh/D4zS//sO/VtW5K8gZE638nNFdRVqkIiDbXUa PXKNkWFdjIK21iw5+97phfX78EPJwFc+8eHruIauvF7WaSpVNI+yJkBc8OWsoI/phSU4 2BKWBK7rrfdpaHLz8f4Ct623loDKiJbAQKinXJQxnLG5yVT/bmfPEIShxXpqtc4gr69/ u0kg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=AWz5foWcr+bWR6CSFDKJoUEhYPxpGczQBoONhahdcus=; b=XE75Wlz174oAnE6WtcLoLO9T4kL9sA5nR1XyNl7O+ldo5f6YPJdfStBAthWxjeKRlj 7UkxtZNEbvYhwz3TX6ry9d1MkBwwcUThPEFP0BFt+XMD8LQnZfqSv1tQXfFOFlzUD2Vg 6LwBfabTJTp+4HBC5/VjdnQkmG2QYGgsYEqWpDjb8IIIlqDtOh02eu8ONrLgiBOWnlrw PUkl80JgzIqowme60egJpqjFh2ZF76w/SXildhm3zT0gf4mFGTGqVYhzfGlIvE6HUfeS tf+VZgAjdc9Y8AghcjAnc6PEtA02mnbi4aTWArKdfoBKjOWe0kd8B1qUz9o3PTlVfM/T IJdg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u17si4359748edx.113.2021.09.30.14.25.23; Thu, 30 Sep 2021 14:25:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245407AbhI3Syy (ORCPT + 99 others); Thu, 30 Sep 2021 14:54:54 -0400 Received: from mail-oo1-f52.google.com ([209.85.161.52]:34506 "EHLO mail-oo1-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231637AbhI3Syx (ORCPT ); Thu, 30 Sep 2021 14:54:53 -0400 Received: by mail-oo1-f52.google.com with SMTP id k11-20020a4abd8b000000b002b5c622a4ddso2158707oop.1; Thu, 30 Sep 2021 11:53:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AWz5foWcr+bWR6CSFDKJoUEhYPxpGczQBoONhahdcus=; b=6zI9O/BfzTHbkcmFk6j3uN5Yaq53uE0Z9r2yZMNJvSSqQIan/jE8vZOG+xg13DreMs hv6O0UiVv6459N+21foxCzQbUg83Q5NJygstIZMZvSbWmFtp6M4U8xomc3mg4MBrHzQC x4o9xdr8Xmv6r3UMcCFT6+igaqmsc1uNkuT5pU31l/gKG1SFoL/ynefVCuftE5np9ihw dQmEN9OJBEHnGiSbr3ycnlsJRRWRhVEeDIUNuIouN93Eu9ZUyegHiLv6KbikUhS44yMu J0Oz1XDaI1oV0jNYOoKwQtmpTDLZR5XV5ZJo2Y0uUkD4sijIRolfPIIzCeYCp3z6ZUNC 8/MQ== X-Gm-Message-State: AOAM532e9r7QhmXW42AmXja79zo9+trtQV4OY49HQvFF2UrKzCf2UWwW 9RKo614sURhPGRNr+Pwbsf0em5cypRRWdKA8FWry/6jgKkI= X-Received: by 2002:a05:6820:17a:: with SMTP id k26mr6219832ood.37.1633027990202; Thu, 30 Sep 2021 11:53:10 -0700 (PDT) MIME-Version: 1.0 References: <20210927121338.938994-1-arnd@kernel.org> In-Reply-To: From: "Rafael J. Wysocki" Date: Thu, 30 Sep 2021 20:52:59 +0200 Message-ID: Subject: Re: [PATCH] ACPI: avoid NULL pointer arithmetic To: Arnd Bergmann Cc: Len Brown , Robert Moore , Arnd Bergmann , "Rafael J. Wysocki" , Nathan Chancellor , Nick Desaulniers , Erik Kaneda , ACPI Devel Maling List , "open list:ACPI COMPONENT ARCHITECTURE (ACPICA)" , Linux Kernel Mailing List , llvm@lists.linux.dev Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 29, 2021 at 8:47 PM Rafael J. Wysocki wrote: > > On Mon, Sep 27, 2021 at 2:13 PM Arnd Bergmann wrote: > > > > From: Arnd Bergmann > > > > There are some very old macros for doing an open-coded offsetof() and > > cast between pointer and integer in ACPI headers. clang-14 now complains > > about these: > > > > drivers/acpi/acpica/tbfadt.c:86:3: error: performing pointer subtraction with a null pointer has undefined behavior [-Werror,-Wnull-pointer-subtraction] > > ACPI_FADT_OFFSET(pm_timer_block), > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > include/acpi/actbl.h:376:47: note: expanded from macro 'ACPI_FADT_OFFSET' > > #define ACPI_FADT_OFFSET(f) (u16) ACPI_OFFSET (struct acpi_table_fadt, f) > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > include/acpi/actypes.h:511:41: note: expanded from macro 'ACPI_OFFSET' > > #define ACPI_OFFSET(d, f) ACPI_PTR_DIFF (&(((d *) 0)->f), (void *) 0) > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > include/acpi/actypes.h:505:79: note: expanded from macro 'ACPI_PTR_DIFF' > > #define ACPI_PTR_DIFF(a, b) ((acpi_size) (ACPI_CAST_PTR (u8, (a)) - ACPI_CAST_PTR (u8, (b)))) > > ^ ~~~~~~~~~~~~~~~~~~~~~~~ > > Convert them to the modern equivalents. > > > > Signed-off-by: Arnd Bergmann > > --- > > include/acpi/actypes.h | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h > > index 92c71dfce0d5..285bc7b73de3 100644 > > --- a/include/acpi/actypes.h > > +++ b/include/acpi/actypes.h > > @@ -507,8 +507,8 @@ typedef u64 acpi_integer; > > /* Pointer/Integer type conversions */ > > > > #define ACPI_TO_POINTER(i) ACPI_CAST_PTR (void, (acpi_size) (i)) > > -#define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) 0) > > -#define ACPI_OFFSET(d, f) ACPI_PTR_DIFF (&(((d *) 0)->f), (void *) 0) > > +#define ACPI_TO_INTEGER(p) ((uintptr_t)(p)) > > +#define ACPI_OFFSET(d, f) offsetof(d, f) > > #define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) > > #define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) > > > > -- > > Queued up as 5.16 material, converted into an upstream ACPICA pull > request and submitted, thanks! And reverted from there, because it introduced build issues. Can we use alternative definitions that don't depend on uintptr_t and offsetof()?