From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Sasha Levin <sashal@kernel.org>,
mmarek@suse.com, linux-kbuild@vger.kernel.org
Subject: [PATCH AUTOSEL 5.15 32/41] gcc-12: disable '-Wdangling-pointer' warning for now
Date: Mon, 13 Jun 2022 22:06:57 -0400 [thread overview]
Message-ID: <20220614020707.1099487-32-sashal@kernel.org> (raw)
In-Reply-To: <20220614020707.1099487-1-sashal@kernel.org>
From: Linus Torvalds <torvalds@linux-foundation.org>
[ Upstream commit 49beadbd47c270a00754c107a837b4f29df4c822 ]
While the concept of checking for dangling pointers to local variables
at function exit is really interesting, the gcc-12 implementation is not
compatible with reality, and results in false positives.
For example, gcc sees us putting things on a local list head allocated
on the stack, which involves exactly those kinds of pointers to the
local stack entry:
In function ‘__list_add’,
inlined from ‘list_add_tail’ at include/linux/list.h:102:2,
inlined from ‘rebuild_snap_realms’ at fs/ceph/snap.c:434:2:
include/linux/list.h:74:19: warning: storing the address of local variable ‘realm_queue’ in ‘*&realm_27(D)->rebuild_item.prev’ [-Wdangling-pointer=]
74 | new->prev = prev;
| ~~~~~~~~~~^~~~~~
But then gcc - understandably - doesn't really understand the big
picture how the doubly linked list works, so doesn't see how we then end
up emptying said list head in a loop and the pointer we added has been
removed.
Gcc also complains about us (intentionally) using this as a way to store
a kind of fake stack trace, eg
drivers/acpi/acpica/utdebug.c:40:38: warning: storing the address of local variable ‘current_sp’ in ‘acpi_gbl_entry_stack_pointer’ [-Wdangling-pointer=]
40 | acpi_gbl_entry_stack_pointer = ¤t_sp;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
which is entirely reasonable from a compiler standpoint, and we may want
to change those kinds of patterns, but not not.
So this is one of those "it would be lovely if the compiler were to
complain about us leaving dangling pointers to the stack", but not this
way.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
Makefile | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Makefile b/Makefile
index ce943bc3eda4..aee9309bb3e1 100644
--- a/Makefile
+++ b/Makefile
@@ -811,6 +811,9 @@ endif
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
+# These result in bogus false positives
+KBUILD_CFLAGS += $(call cc-disable-warning, dangling-pointer)
+
ifdef CONFIG_FRAME_POINTER
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
else
--
2.35.1
next prev parent reply other threads:[~2022-06-14 2:16 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-14 2:06 [PATCH AUTOSEL 5.15 01/41] powerpc/kasan: Silence KASAN warnings in __get_wchan() Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 02/41] ASoC: nau8822: Add operation for internal PLL off and on Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 03/41] drm/amd/display: Read Golden Settings Table from VBIOS Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 04/41] drm/amd/display: Fix DMUB outbox trace in S4 (#4465) Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 05/41] drm/amdkfd: Use mmget_not_zero in MMU notifier Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 06/41] dma-debug: make things less spammy under memory pressure Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 07/41] ASoC: cs42l52: Fix TLV scales for mixer controls Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 08/41] ASoC: cs35l36: Update digital volume TLV Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 09/41] ASoC: cs53l30: Correct number of volume levels on SX controls Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 10/41] ASoC: cs42l52: Correct TLV for Bypass Volume Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 11/41] ASoC: cs42l56: Correct typo in minimum level for SX volume controls Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 12/41] ASoC: cs42l51: Correct minimum value for SX volume control Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 13/41] drm/amdkfd: add pinned BOs to kfd_bo_list Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 14/41] ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo() Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 15/41] quota: Prevent memory allocation recursion while holding dq_lock Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 16/41] ASoC: wm8962: Fix suspend while playing music Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 17/41] ASoC: es8328: Fix event generation for deemphasis control Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 18/41] ASoC: wm_adsp: Fix event generation for wm_adsp_fw_put() Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 19/41] Input: soc_button_array - also add Lenovo Yoga Tablet2 1051F to dmi_use_low_level_irq Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 20/41] scsi: vmw_pvscsi: Expand vcpuHint to 16 bits Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 21/41] scsi: lpfc: Resolve NULL ptr dereference after an ELS LOGO is aborted Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 22/41] scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 23/41] scsi: lpfc: Allow reduced polling rate for nvme_admin_async_event cmd completion Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 24/41] scsi: mpt3sas: Fix out-of-bounds compiler warning Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 25/41] scsi: ipr: Fix missing/incorrect resource cleanup in error case Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 26/41] scsi: pmcraid: Fix missing " Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 27/41] ALSA: hda/realtek - Add HW8326 support Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 28/41] virtio-mmio: fix missing put_device() when vm_cmdline_parent registration failed Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 29/41] nfc: nfcmrvl: Fix memory leak in nfcmrvl_play_deferred Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 30/41] ipv6: Fix signed integer overflow in l2tp_ip6_sendmsg Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 31/41] net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface netdev[napi]_alloc_frag Sasha Levin
2022-06-14 2:06 ` Sasha Levin [this message]
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 33/41] mellanox: mlx5: avoid uninitialized variable warning with gcc-12 Sasha Levin
2022-06-14 2:06 ` [PATCH AUTOSEL 5.15 34/41] netfs: gcc-12: temporarily disable '-Wattribute-warning' for now Sasha Levin
2022-06-14 2:07 ` [PATCH AUTOSEL 5.15 35/41] MIPS: Loongson-3: fix compile mips cpu_hwmon as module build error Sasha Levin
2022-06-14 2:07 ` [PATCH AUTOSEL 5.15 36/41] random: credit cpu and bootloader seeds by default Sasha Levin
2022-06-14 2:07 ` [PATCH AUTOSEL 5.15 37/41] gpio: dwapb: Don't print error on -EPROBE_DEFER Sasha Levin
2022-06-14 2:07 ` [PATCH AUTOSEL 5.15 38/41] platform/x86/intel: pmc: Support Intel Raptorlake P Sasha Levin
2022-06-14 2:07 ` [PATCH AUTOSEL 5.15 39/41] platform/x86: gigabyte-wmi: Add Z690M AORUS ELITE AX DDR4 support Sasha Levin
2022-06-14 2:07 ` [PATCH AUTOSEL 5.15 40/41] platform/x86: gigabyte-wmi: Add support for B450M DS3H-CF Sasha Levin
2022-06-14 2:07 ` [PATCH AUTOSEL 5.15 41/41] platform/x86/intel: hid: Add Surface Go to VGBS allow list Sasha Levin
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=20220614020707.1099487-32-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mmarek@suse.com \
--cc=stable@vger.kernel.org \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox