linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Catalin Marinas <catalin.marinas@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Guenter Roeck <linux@roeck-us.net>
Subject: [PATCH 4.4 25/28] arm64: Add trace_hardirqs_off annotation in ret_to_user
Date: Thu, 27 Sep 2018 11:06:49 +0200	[thread overview]
Message-ID: <20180927090638.724089888@linuxfoundation.org> (raw)
In-Reply-To: <20180927090637.687829444@linuxfoundation.org>

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Catalin Marinas <catalin.marinas@arm.com>

commit db3899a6477a4dccd26cbfb7f408b6be2cc068e0 upstream.

When a kernel is built with CONFIG_TRACE_IRQFLAGS the following warning
is produced when entering userspace for the first time:

  WARNING: at /work/Linux/linux-2.6-aarch64/kernel/locking/lockdep.c:3519
  Modules linked in:
  CPU: 1 PID: 1 Comm: systemd Not tainted 4.4.0-rc3+ #639
  Hardware name: Juno (DT)
  task: ffffffc9768a0000 ti: ffffffc9768a8000 task.ti: ffffffc9768a8000
  PC is at check_flags.part.22+0x19c/0x1a8
  LR is at check_flags.part.22+0x19c/0x1a8
  pc : [<ffffffc0000fba6c>] lr : [<ffffffc0000fba6c>] pstate: 600001c5
  sp : ffffffc9768abe10
  x29: ffffffc9768abe10 x28: ffffffc9768a8000
  x27: 0000000000000000 x26: 0000000000000001
  x25: 00000000000000a6 x24: ffffffc00064be6c
  x23: ffffffc0009f249e x22: ffffffc9768a0000
  x21: ffffffc97fea5480 x20: 00000000000001c0
  x19: ffffffc00169a000 x18: 0000005558cc7b58
  x17: 0000007fb78e3180 x16: 0000005558d2e238
  x15: ffffffffffffffff x14: 0ffffffffffffffd
  x13: 0000000000000008 x12: 0101010101010101
  x11: 7f7f7f7f7f7f7f7f x10: fefefefefefeff63
  x9 : 7f7f7f7f7f7f7f7f x8 : 6e655f7371726964
  x7 : 0000000000000001 x6 : ffffffc0001079c4
  x5 : 0000000000000000 x4 : 0000000000000001
  x3 : ffffffc001698438 x2 : 0000000000000000
  x1 : ffffffc9768a0000 x0 : 000000000000002e
  Call trace:
  [<ffffffc0000fba6c>] check_flags.part.22+0x19c/0x1a8
  [<ffffffc0000fc440>] lock_is_held+0x80/0x98
  [<ffffffc00064bafc>] __schedule+0x404/0x730
  [<ffffffc00064be6c>] schedule+0x44/0xb8
  [<ffffffc000085bb0>] ret_to_user+0x0/0x24
  possible reason: unannotated irqs-off.
  irq event stamp: 502169
  hardirqs last  enabled at (502169): [<ffffffc000085a98>] el0_irq_naked+0x1c/0x24
  hardirqs last disabled at (502167): [<ffffffc0000bb3bc>] __do_softirq+0x17c/0x298
  softirqs last  enabled at (502168): [<ffffffc0000bb43c>] __do_softirq+0x1fc/0x298
  softirqs last disabled at (502143): [<ffffffc0000bb830>] irq_exit+0xa0/0xf0

This happens because we disable interrupts in ret_to_user before calling
schedule() in work_resched. This patch adds the necessary
trace_hardirqs_off annotation.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


---
 arch/arm64/kernel/entry.S |    3 +++
 1 file changed, 3 insertions(+)

--- a/arch/arm64/kernel/entry.S
+++ b/arch/arm64/kernel/entry.S
@@ -649,6 +649,9 @@ work_pending:
 	bl	do_notify_resume
 	b	ret_to_user
 work_resched:
+#ifdef CONFIG_TRACE_IRQFLAGS
+	bl	trace_hardirqs_off		// the IRQs are off here, inform the tracing code
+#endif
 	bl	schedule
 
 /*



  parent reply	other threads:[~2018-09-27  9:34 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-27  9:06 [PATCH 4.4 00/28] 4.4.159-stable review Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 01/28] NFC: Fix possible memory corruption when handling SHDLC I-Frame commands Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 02/28] NFC: Fix the number of pipes Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 03/28] ASoC: cs4265: fix MMTLR Data switch control Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 04/28] ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 05/28] ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 06/28] platform/x86: alienware-wmi: Correct a memory leak Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 07/28] xen/netfront: dont bug in case of too many frags Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 08/28] xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 09/28] ring-buffer: Allow for rescheduling when removing pages Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 10/28] mm: shmem.c: Correctly annotate new inodes for lockdep Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 11/28] gso_segment: Reset skb->mac_len after modifying network header Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 12/28] ipv6: fix possible use-after-free in ip6_xmit() Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 13/28] net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 14/28] net: hp100: fix always-true check for link up state Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 15/28] neighbour: confirm neigh entries when ARP packet is received Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 16/28] scsi: target: iscsi: Use hex2bin instead of a re-implementation Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 17/28] ocfs2: fix ocfs2 read block panic Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 18/28] drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect() Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 19/28] tty: vt_ioctl: fix potential Spectre v1 Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 20/28] ext4: avoid divide by zero fault when deleting corrupted inline directories Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 21/28] ext4: recalucate superblock checksum after updating free blocks/inodes Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 22/28] ext4: fix online resizes handling of a too-small final block group Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 23/28] ext4: fix online resizing for bigalloc file systems with a 1k block size Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 24/28] ext4: dont mark mmp buffer head dirty Greg Kroah-Hartman
2018-09-27  9:06 ` Greg Kroah-Hartman [this message]
2018-09-27  9:06 ` [PATCH 4.4 26/28] HID: sony: Update device ids Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 27/28] HID: sony: Support DS4 dongle Greg Kroah-Hartman
2018-09-27  9:06 ` [PATCH 4.4 28/28] iw_cxgb4: only allow 1 flush on user qps Greg Kroah-Hartman
2018-09-27 18:58 ` [PATCH 4.4 00/28] 4.4.159-stable review Nathan Chancellor
2018-09-27 19:47 ` Rafael David Tinoco
2018-09-27 20:19 ` Shuah Khan
2018-09-27 23:05 ` Guenter Roeck

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=20180927090638.724089888@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=catalin.marinas@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mark.rutland@arm.com \
    --cc=stable@vger.kernel.org \
    --cc=will.deacon@arm.com \
    /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).