All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Richey <joerichey94@gmail.com>
To: trivial@kernel.org
Cc: Joe Richey <joerichey@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Zhangfei Gao <zhangfei.gao@linaro.org>,
	Zhou Wang <wangzhou1@hisilicon.com>,
	Andy Whitcroft <apw@canonical.com>, Joe Perches <joe@perches.com>,
	Dwaipayan Ray <dwaipayanray1@gmail.com>,
	Lukas Bulwahn <lukas.bulwahn@gmail.com>,
	Andi Kleen <ak@linux.intel.com>,
	"Chang S. Bae" <chang.seok.bae@intel.com>,
	Sasha Levin <sashal@kernel.org>, Peter Xu <peterx@redhat.com>,
	Lei Cao <lei.cao@stratus.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Kenneth Lee <liguozhu@hisilicon.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jean-Philippe Brucker <jean-philippe@linaro.org>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org, linux-accelerators@lists.ozlabs.org
Subject: [PATCH v2 0/7] Don't use BIT() macro in UAPI headers
Date: Fri, 21 May 2021 01:58:41 -0700	[thread overview]
Message-ID: <20210521085849.37676-1-joerichey94@gmail.com> (raw)
In-Reply-To: <20210520104343.317119-1-joerichey94@gmail.com>

From: Joe Richey <joerichey@google.com>

The BIT(n) macro is used in the kernel as an alias for (1 << n).
However, it is not defined in the UAPI headers, they should instead use
the _BITUL(n) macro. This patch chages all existing usages in UAPI
headers and updates ./scripts/checkpatch.pl to properly reccomend the
correct macro depending on context.

Running the below commands shows no more incorrect macro usages:
    rg "BIT\(" **/uapi/**
    rg "BIT_ULL\(" **/uapi/**

Tested by building a basic kernel. Changes are trivial.

I encountered this issue when compiling the following program:
    #include <sys/auxv.h>
    #include <asm/hwcap2.h>
    // Detect if FSGSBASE instructions are enabled
    int main() {
        unsigned long val = getauxval(AT_HWCAP2);
        return !(val & HWCAP2_FSGSBASE);
    }

Resulting in the following likner error:
    /usr/bin/ld: /tmp/cceFpAdR.o: in function `main':
    gs.c:(.text+0x21): undefined reference to `BIT'

Changes from V1 to V2:
  - Use _BITUL() macro instead of open-coding
  - Fixup HWCAP2_RING3MWAIT as well
  - Shorten commits and added "Fixes" per reviewer comments
  - checkpatch: Broaden UAPI regex
  - checkpatch: Reccomend _BITULL()/_BITUL() for UAPI headers

Joe Richey (7):
  x86/elf: Use _BITUL() macro in UAPI headers
  KVM: X86: Use _BITUL() macro in UAPI headers
  drivers: firmware: psci:  Use _BITUL() macro in UAPI headers
  uacce: Use _BITUL() macro in UAPI headers
  media: vicodec: Use _BITUL() macro in UAPI headers
  tools headers UAPI: Sync pkt_sched.h with the kernel sources
  checkpatch: suggest _BITULL() and _BITUL() for UAPI headers

 arch/x86/include/uapi/asm/hwcap2.h   |   6 +-
 include/uapi/linux/kvm.h             |   5 +-
 include/uapi/linux/psci.h            |   4 +-
 include/uapi/linux/v4l2-controls.h   |  23 ++---
 include/uapi/misc/uacce/uacce.h      |   3 +-
 scripts/checkpatch.pl                |  16 ++--
 tools/include/uapi/linux/kvm.h       |   5 +-
 tools/include/uapi/linux/pkt_sched.h | 122 ++++++++++++++++++++++++---
 8 files changed, 148 insertions(+), 36 deletions(-)

-- 
2.31.1


WARNING: multiple messages have this Message-ID (diff)
From: Joe Richey <joerichey94@gmail.com>
To: trivial@kernel.org
Cc: Joe Richey <joerichey@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Zhangfei Gao <zhangfei.gao@linaro.org>,
	Zhou Wang <wangzhou1@hisilicon.com>,
	Andy Whitcroft <apw@canonical.com>, Joe Perches <joe@perches.com>,
	Dwaipayan Ray <dwaipayanray1@gmail.com>,
	Lukas Bulwahn <lukas.bulwahn@gmail.com>,
	Andi Kleen <ak@linux.intel.com>,
	"Chang S. Bae" <chang.seok.bae@intel.com>,
	Sasha Levin <sashal@kernel.org>, Peter Xu <peterx@redhat.com>,
	Lei Cao <lei.cao@stratus.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Kenneth Lee <liguozhu@hisilicon.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jean-Philippe Brucker <jean-philippe@linaro.org>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org, linux-accelerators@lists.ozlabs.org
Subject: [PATCH v2 0/7] Don't use BIT() macro in UAPI headers
Date: Fri, 21 May 2021 01:58:41 -0700	[thread overview]
Message-ID: <20210521085849.37676-1-joerichey94@gmail.com> (raw)
In-Reply-To: <20210520104343.317119-1-joerichey94@gmail.com>

From: Joe Richey <joerichey@google.com>

The BIT(n) macro is used in the kernel as an alias for (1 << n).
However, it is not defined in the UAPI headers, they should instead use
the _BITUL(n) macro. This patch chages all existing usages in UAPI
headers and updates ./scripts/checkpatch.pl to properly reccomend the
correct macro depending on context.

Running the below commands shows no more incorrect macro usages:
    rg "BIT\(" **/uapi/**
    rg "BIT_ULL\(" **/uapi/**

Tested by building a basic kernel. Changes are trivial.

I encountered this issue when compiling the following program:
    #include <sys/auxv.h>
    #include <asm/hwcap2.h>
    // Detect if FSGSBASE instructions are enabled
    int main() {
        unsigned long val = getauxval(AT_HWCAP2);
        return !(val & HWCAP2_FSGSBASE);
    }

Resulting in the following likner error:
    /usr/bin/ld: /tmp/cceFpAdR.o: in function `main':
    gs.c:(.text+0x21): undefined reference to `BIT'

Changes from V1 to V2:
  - Use _BITUL() macro instead of open-coding
  - Fixup HWCAP2_RING3MWAIT as well
  - Shorten commits and added "Fixes" per reviewer comments
  - checkpatch: Broaden UAPI regex
  - checkpatch: Reccomend _BITULL()/_BITUL() for UAPI headers

Joe Richey (7):
  x86/elf: Use _BITUL() macro in UAPI headers
  KVM: X86: Use _BITUL() macro in UAPI headers
  drivers: firmware: psci:  Use _BITUL() macro in UAPI headers
  uacce: Use _BITUL() macro in UAPI headers
  media: vicodec: Use _BITUL() macro in UAPI headers
  tools headers UAPI: Sync pkt_sched.h with the kernel sources
  checkpatch: suggest _BITULL() and _BITUL() for UAPI headers

 arch/x86/include/uapi/asm/hwcap2.h   |   6 +-
 include/uapi/linux/kvm.h             |   5 +-
 include/uapi/linux/psci.h            |   4 +-
 include/uapi/linux/v4l2-controls.h   |  23 ++---
 include/uapi/misc/uacce/uacce.h      |   3 +-
 scripts/checkpatch.pl                |  16 ++--
 tools/include/uapi/linux/kvm.h       |   5 +-
 tools/include/uapi/linux/pkt_sched.h | 122 ++++++++++++++++++++++++---
 8 files changed, 148 insertions(+), 36 deletions(-)

-- 
2.31.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-05-21  8:59 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-20 10:43 [PATCH 0/6] Don't use BIT() macro in UAPI headers Joe Richey
2021-05-20 10:43 ` Joe Richey
2021-05-20 10:43 ` [PATCH 1/6] x86/elf: " Joe Richey
2021-05-20 10:43   ` Joe Richey
2021-05-20 10:43 ` [PATCH 2/6] KVM: X86: " Joe Richey
2021-05-20 10:43   ` Joe Richey
2021-05-20 15:46   ` Sean Christopherson
2021-05-20 15:46     ` Sean Christopherson
2021-05-20 10:43 ` [PATCH 3/6] drivers: firmware: psci: " Joe Richey
2021-05-20 10:43   ` Joe Richey
2021-05-20 10:43 ` [PATCH 4/6] uacce: " Joe Richey
2021-05-20 10:43   ` Joe Richey
2021-05-20 10:43 ` [PATCH 5/6] media: vicodec: " Joe Richey
2021-05-20 10:43   ` Joe Richey
2021-05-20 10:43 ` [PATCH 6/6] tools headers UAPI: Sync pkt_sched.h with the kernel sources Joe Richey
2021-05-20 10:43   ` Joe Richey
2021-05-20 11:07 ` [PATCH 0/6] Don't use BIT() macro in UAPI headers Borislav Petkov
2021-05-20 11:07   ` Borislav Petkov
2021-05-20 11:50   ` Joseph Richey
2021-05-20 11:50     ` Joseph Richey
2021-05-20 15:59     ` Borislav Petkov
2021-05-20 15:59       ` Borislav Petkov
2021-05-20 15:50   ` Sean Christopherson
2021-05-20 15:50     ` Sean Christopherson
2021-05-20 11:11 ` Mark Rutland
2021-05-20 11:11   ` Mark Rutland
2021-05-20 11:40   ` Joseph Richey
2021-05-20 11:40     ` Joseph Richey
2021-05-20 12:09 ` Paolo Bonzini
2021-05-20 12:09   ` Paolo Bonzini
2021-05-20 15:47 ` Sean Christopherson
2021-05-20 15:47   ` Sean Christopherson
2021-05-21  8:58 ` Joe Richey [this message]
2021-05-21  8:58   ` [PATCH v2 0/7] " Joe Richey
2021-05-21  8:58   ` [PATCH v2 1/7] x86/elf: Use _BITUL() " Joe Richey
2021-05-21  8:58     ` Joe Richey
2021-05-21  9:25     ` [tip: x86/misc] " tip-bot2 for Joe Richey
2021-05-21  8:58   ` [PATCH v2 2/7] KVM: X86: " Joe Richey
2021-05-21  8:58     ` Joe Richey
2021-05-24 12:28     ` Paolo Bonzini
2021-05-24 12:28       ` Paolo Bonzini
2021-05-21  8:58   ` [PATCH v2 3/7] drivers: firmware: psci: " Joe Richey
2021-05-21  8:58     ` Joe Richey
2021-05-21 13:25     ` Mark Rutland
2021-05-21 13:25       ` Mark Rutland
2021-05-21  8:58   ` [PATCH v2 4/7] uacce: " Joe Richey
2021-05-21  8:58     ` Joe Richey
2021-05-21 13:56     ` Zhangfei Gao
2021-05-21 13:56       ` Zhangfei Gao
2021-05-21  8:58   ` [PATCH v2 5/7] media: vicodec: " Joe Richey
2021-05-21  8:58     ` Joe Richey
2021-05-21  8:58   ` [PATCH v2 6/7] tools headers UAPI: Sync pkt_sched.h with the kernel sources Joe Richey
2021-05-21  8:58     ` Joe Richey
2021-05-21  8:58   ` [PATCH v2 7/7] checkpatch: suggest _BITULL() and _BITUL() for UAPI headers Joe Richey
2021-05-21  8:58     ` Joe Richey
2021-05-21 14:45     ` Joe Perches
2021-05-21 14:45       ` Joe Perches
2021-05-24 11:46 ` [PATCH 0/6] Don't use BIT() macro in " Christoph Hellwig
2021-05-24 11:46   ` Christoph Hellwig
2021-05-24 12:29   ` Mark Rutland
2021-05-24 12:29     ` Mark Rutland
2021-05-24 16:34     ` David Laight
2021-05-24 16:34       ` David Laight

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210521085849.37676-1-joerichey94@gmail.com \
    --to=joerichey94@gmail.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=ak@linux.intel.com \
    --cc=apw@canonical.com \
    --cc=bp@alien8.de \
    --cc=chang.seok.bae@intel.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=dwaipayanray1@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=jean-philippe@linaro.org \
    --cc=joe@perches.com \
    --cc=joerichey@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=lei.cao@stratus.com \
    --cc=liguozhu@hisilicon.com \
    --cc=linux-accelerators@lists.ozlabs.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=lukas.bulwahn@gmail.com \
    --cc=mark.rutland@arm.com \
    --cc=mchehab@kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=sashal@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=trivial@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=wangzhou1@hisilicon.com \
    --cc=x86@kernel.org \
    --cc=zhangfei.gao@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.