Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp856146ybg; Mon, 1 Jun 2020 16:41:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyKXc7WxjRODV4n5cqFEo36xpWe3+LEwsdDbL5a8lwxakM0weRwXQZRbPj0K5OZ95PQgbG3 X-Received: by 2002:a17:906:1cd3:: with SMTP id i19mr10212895ejh.321.1591054896320; Mon, 01 Jun 2020 16:41:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591054896; cv=none; d=google.com; s=arc-20160816; b=VPNqi5c00PybDHTFhjXS4xwscAS73vQ4KKFGZU/BMlQDaoEYmzYHJi2KSkMPZbUqJV I9/ZXgTWtbPKI13ODiv5wXhV70fd0imcrlf+X7xt1Zmy8KlACIexC8+4pX2YPuw7Sd6R OaNMVs2axcfd9RKociihtpArkeEUh330JXnNgQXE+dEEv7P7juWrc0p+7tXYgVaqkMVu xzF7DXuoCxtKyBPlYugHXhp4DsJJbc0S+YKjsn/g/n8oL5iwbe+qlq37QLbj82DyI0QA Y/KT2IrfmCLiqqhIL+CNR1aRSsiHmkFPzGl8lAOLhEiKH0ok7JsbvYANmGps94WQlZXJ ckCQ== 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=h8sFjChvsOnugroGpTaalX2UTFDmVFNgsXBxH4Psjpo=; b=WsmJS83FZlpvusNZHH4aubJ86JJ86zFmkc6DXVIpiti5p/FElBodgEHFXCovzzdb9m PPtnCLj4r7uCoejcmgVxU4RPhKM6AJquSdjC0hkwmNfYh8hFOZnFLnMHofBO/tV9TYWF R99FfM3Vnv8htoaIJOR5zPffigmNX1Zu98UhRAVIqrilB18KPugcbP/cV7WbEpodoIw+ wOImbcOYgfJzvmxJ0GZAKJwwht/dl/LbCwqNKU9TdeJziqzaXLDL+Y2UOdQu7uZWrogf 2oInhiRfsLhQ2pd6aBzPeSAEl2OkfT2nM0NNCiVGO4Edp+YOttO16eMnfjW4N6VgYYSV a67g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=gy5WnoYj; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j11si484634edp.371.2020.06.01.16.41.13; Mon, 01 Jun 2020 16:41:36 -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; dkim=pass header.i=@google.com header.s=20161025 header.b=gy5WnoYj; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728814AbgFAXh6 (ORCPT + 99 others); Mon, 1 Jun 2020 19:37:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726007AbgFAXh6 (ORCPT ); Mon, 1 Jun 2020 19:37:58 -0400 Received: from mail-vs1-xe44.google.com (mail-vs1-xe44.google.com [IPv6:2607:f8b0:4864:20::e44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EFBD2C03E96B for ; Mon, 1 Jun 2020 16:37:57 -0700 (PDT) Received: by mail-vs1-xe44.google.com with SMTP id y123so980210vsb.6 for ; Mon, 01 Jun 2020 16:37:57 -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=h8sFjChvsOnugroGpTaalX2UTFDmVFNgsXBxH4Psjpo=; b=gy5WnoYjwVwT+AdnTnVAcMO6xsUKQ3HV+niGGFpzvpJ71eeOdaiZZSd7kfAobSbMVB XOrGkvuWpDYrUOFUBsilWffiTomQfNPW7uKYsoyR5y2XD36uCo2cUMgt6nHkaWzaO123 T/6WbGm0oG6415mxA7zL7ifNyV53xlL8haCkWgNxo3DqkVlGD6vVClPWynqWqBMIFxOG CKMngEVfHsCMjzEGuOCRn2tiWiHx9PpwmVZzhCGVvXXb9ZRuJmjy4V3WDGb/sf8PFy6t YX4uEKTDgj/YpyQo0UeuDPOfsqKmCY+dYqlnG3yA7r72gF+ohPsap55WdgXcuBtl8nrm 7LHg== 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=h8sFjChvsOnugroGpTaalX2UTFDmVFNgsXBxH4Psjpo=; b=aIDwzsfdAnmGvxxTFFJwvAZH/oeAlmgTw7jtkN3PqaXAmo6CfNEVL0ZLy7cnuPn5NX e2cKrqSxhbUxOTyiVWoexNKsbSi4rvnPB1DQ5oNAavsjKKoFBIm4/bX1vnlm8fZ7E1Gz NUanTlqh/566B34CpqCqCnkddHFjKLzP04nh9IuH5GE7Izs4aT5htg8xnjTJjNyBsYf5 cbvYrQaJOZYIw1L+I7TyFtOK+vFTvBMxUkXeRWOT7nIGxomKxCaHwfKjwqvD4U/FSSe1 205R6yd8Pm+hloz9j4fsv4eKM/JGAjYSzh9rKe6WHZ47QXnVGEYe5/7MBAUhGfGRSfmb vGLg== X-Gm-Message-State: AOAM532+UKQMOUc1ma7zJ19x26sPtD+avHcd7iX6Yu0zbfdWlyT0Ppol rqQyRnGxrB9UbZdN3A5zDmu47Lmki5keVhzyWHdy3A== X-Received: by 2002:a67:ce86:: with SMTP id c6mr16538165vse.51.1591054676310; Mon, 01 Jun 2020 16:37:56 -0700 (PDT) MIME-Version: 1.0 References: <20200601231805.207441-1-ndesaulniers@google.com> In-Reply-To: <20200601231805.207441-1-ndesaulniers@google.com> From: Peter Collingbourne Date: Mon, 1 Jun 2020 16:37:45 -0700 Message-ID: Subject: Re: [PATCH] ACPICA: fix UBSAN warning using __builtin_offsetof To: Nick Desaulniers Cc: Robert Moore , Erik Kaneda , "Rafael J. Wysocki" , Len Brown , Ard Biesheuvel , Dmitry Vyukov , Alexander Potapenko , guohanjun@huawei.com, Linux ARM , Linux Kernel Mailing List , lorenzo.pieralisi@arm.com, Mark Rutland , rjw@rjwysocki.net, Will Deacon , stable@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org 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 Mon, Jun 1, 2020 at 4:18 PM Nick Desaulniers wrote: > > Will reported UBSAN warnings: > UBSAN: null-ptr-deref in drivers/acpi/acpica/tbfadt.c:459:37 > UBSAN: null-ptr-deref in arch/arm64/kernel/smp.c:596:6 > > Looks like the emulated offsetof macro ACPI_OFFSET is causing these. We > can avoid this by using the compiler builtin, __builtin_offsetof. Would it be better to s/ACPI_OFFSET/offsetof/g the existing users of this macro and remove it? It looks like offsetof is already being used pervasively in the kernel, and its definition comes from . Peter Peter > The non-kernel runtime of UBSAN would print: > runtime error: member access within null pointer of type > for this macro. > > Link: https://lore.kernel.org/lkml/20200521100952.GA5360@willie-the-truck/ > Cc: stable@vger.kernel.org > Reported-by: Will Deacon > Suggested-by: Ard Biesheuvel > Signed-off-by: Nick Desaulniers > --- > include/acpi/actypes.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h > index 4defed58ea33..04359c70b198 100644 > --- a/include/acpi/actypes.h > +++ b/include/acpi/actypes.h > @@ -508,7 +508,7 @@ typedef u64 acpi_integer; > > #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_OFFSET(d, f) __builtin_offsetof(d, f) > #define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) > #define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) > > -- > 2.27.0.rc2.251.g90737beb825-goog >