linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Josh Poimboeuf <jpoimboe@redhat.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Borislav Petkov <bp@suse.de>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 5.8 18/20] objtool: Fix noreturn detection for ignored functions
Date: Mon, 21 Sep 2020 10:40:25 -0400	[thread overview]
Message-ID: <20200921144027.2135390-18-sashal@kernel.org> (raw)
In-Reply-To: <20200921144027.2135390-1-sashal@kernel.org>

From: Josh Poimboeuf <jpoimboe@redhat.com>

[ Upstream commit db6c6a0df840e3f52c84cc302cc1a08ba11a4416 ]

When a function is annotated with STACK_FRAME_NON_STANDARD, objtool
doesn't validate its code paths.  It also skips sibling call detection
within the function.

But sibling call detection is actually needed for the case where the
ignored function doesn't have any return instructions.  Otherwise
objtool naively marks the function as implicit static noreturn, which
affects the reachability of its callers, resulting in "unreachable
instruction" warnings.

Fix it by just enabling sibling call detection for ignored functions.
The 'insn->ignore' check in add_jump_destinations() is no longer needed
after

  e6da9567959e ("objtool: Don't use ignore flag for fake jumps").

Fixes the following warning:

  arch/x86/kvm/vmx/vmx.o: warning: objtool: vmx_handle_exit_irqoff()+0x142: unreachable instruction

which triggers on an allmodconfig with CONFIG_GCOV_KERNEL unset.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lkml.kernel.org/r/5b1e2536cdbaa5246b60d7791b76130a74082c62.1599751464.git.jpoimboe@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 tools/objtool/check.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 5e0d70a89fb87..773e6c7ee5f93 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -619,7 +619,7 @@ static int add_jump_destinations(struct objtool_file *file)
 		if (!is_static_jump(insn))
 			continue;
 
-		if (insn->ignore || insn->offset == FAKE_JUMP_OFFSET)
+		if (insn->offset == FAKE_JUMP_OFFSET)
 			continue;
 
 		rela = find_rela_by_dest_range(file->elf, insn->sec,
-- 
2.25.1


  parent reply	other threads:[~2020-09-21 14:43 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-21 14:40 [PATCH AUTOSEL 5.8 01/20] device_cgroup: Fix RCU list debugging warning Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 02/20] ASoC: pcm3168a: ignore 0 Hz settings Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 03/20] ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811 Sasha Levin
2020-09-21 15:07   ` Mark Brown
2020-09-22 14:25     ` Sasha Levin
2020-09-22 14:42       ` Mark Brown
2020-09-22 17:46         ` Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 04/20] ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 05/20] ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1 Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 06/20] clk: versatile: Add of_node_put() before return statement Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 07/20] RISC-V: Take text_mutex in ftrace_init_nop() Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 08/20] i2c: aspeed: Mask IRQ status to relevant bits Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 09/20] s390/init: add missing __init annotations Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 10/20] lockdep: fix order in trace_hardirqs_off_caller() Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 11/20] EDAC/ghes: Check whether the driver is on the safe list correctly Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 12/20] drm/amdkfd: fix a memory leak issue Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 13/20] drm/amd/display: Don't use DRM_ERROR() for DTM add topology Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 14/20] drm/amd/display: update nv1x stutter latencies Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 15/20] drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 16/20] drm/amd/display: Don't log hdcp module warnings in dmesg Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 17/20] i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices() Sasha Levin
2020-10-14 11:09   ` Kieran Bingham
2020-10-14 11:23     ` Hans de Goede
2020-10-14 11:52       ` Kieran Bingham
2020-10-14 13:46       ` Hans de Goede
2020-09-21 14:40 ` Sasha Levin [this message]
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 19/20] i2c: mediatek: Send i2c master code at more than 1MHz Sasha Levin
2020-09-21 14:40 ` [PATCH AUTOSEL 5.8 20/20] riscv: Fix Kendryte K210 device tree Sasha Levin
2020-09-23  0:27   ` Damien Le Moal
2020-09-26 19:42     ` Palmer Dabbelt
2020-09-26 20:51       ` 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=20200921144027.2135390-18-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=bp@suse.de \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --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;
as well as URLs for NNTP newsgroup(s).