From: gregkh@linuxfoundation.org (Greg Kroah-Hartman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4.4 13/78] ARM: Hide finish_arch_post_lock_switch() from modules
Date: Fri, 22 Dec 2017 09:45:54 +0100 [thread overview]
Message-ID: <20171222084558.435742678@linuxfoundation.org> (raw)
In-Reply-To: <20171222084556.909780563@linuxfoundation.org>
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Steven Rostedt <rostedt@goodmis.org>
commit ef0491ea17f8019821c7e9c8e801184ecf17f85a upstream.
The introduction of switch_mm_irqs_off() brought back an old bug
regarding the use of preempt_enable_no_resched:
As part of:
62b94a08da1b ("sched/preempt: Take away preempt_enable_no_resched() from modules")
the definition of preempt_enable_no_resched() is only available in
built-in code, not in loadable modules, so we can't generally use
it from header files.
However, the ARM version of finish_arch_post_lock_switch()
calls preempt_enable_no_resched() and is defined as a static
inline function in asm/mmu_context.h. This in turn means we cannot
include asm/mmu_context.h from modules.
With today's tip tree, asm/mmu_context.h gets included from
linux/mmu_context.h, which is normally the exact pattern one would
expect, but unfortunately, linux/mmu_context.h can be included from
the vhost driver that is a loadable module, now causing this compile
time error with modular configs:
In file included from ../include/linux/mmu_context.h:4:0,
from ../drivers/vhost/vhost.c:18:
../arch/arm/include/asm/mmu_context.h: In function 'finish_arch_post_lock_switch':
../arch/arm/include/asm/mmu_context.h:88:3: error: implicit declaration of function 'preempt_enable_no_resched' [-Werror=implicit-function-declaration]
preempt_enable_no_resched();
Andy already tried to fix the bug by including linux/preempt.h
from asm/mmu_context.h, but that didn't help. Arnd suggested reordering
the header files, which wasn't popular, so let's use this
workaround instead:
The finish_arch_post_lock_switch() definition is now also hidden
inside of #ifdef MODULE, so we don't see anything referencing
preempt_enable_no_resched() from a header file. I've built a
few hundred randconfig kernels with this, and did not see any
new problems.
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russell King - ARM Linux <linux@armlinux.org.uk>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: linux-arm-kernel at lists.infradead.org
Fixes: f98db6013c55 ("sched/core: Add switch_mm_irqs_off() and use it in the scheduler")
Link: http://lkml.kernel.org/r/1463146234-161304-1-git-send-email-arnd at arndb.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/include/asm/mmu_context.h | 2 ++
1 file changed, 2 insertions(+)
--- a/arch/arm/include/asm/mmu_context.h
+++ b/arch/arm/include/asm/mmu_context.h
@@ -61,6 +61,7 @@ static inline void check_and_switch_cont
cpu_switch_mm(mm->pgd, mm);
}
+#ifndef MODULE
#define finish_arch_post_lock_switch \
finish_arch_post_lock_switch
static inline void finish_arch_post_lock_switch(void)
@@ -82,6 +83,7 @@ static inline void finish_arch_post_lock
preempt_enable_no_resched();
}
}
+#endif /* !MODULE */
#endif /* CONFIG_MMU */
WARNING: multiple messages have this Message-ID (diff)
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Guenter Roeck <linux@roeck-us.net>,
Steven Rostedt <rostedt@goodmis.org>,
Arnd Bergmann <arnd@arndb.de>,
Russell King <rmk+kernel@arm.linux.org.uk>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Andy Lutomirski <luto@amacapital.net>,
Andy Lutomirski <luto@kernel.org>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Borislav Petkov <bp@suse.de>,
Frederic Weisbecker <fweisbec@gmail.com>,
Jiri Olsa <jolsa@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Mel Gorman <mgorman@techsingularity.net>,
Peter Zijlstra <peterz@infradead.org>,
Russell King - ARM Linux <linux@armlinux.org.uk>,
Stephane Eranian <eranian@google.com>,
Thomas Gleixner <tglx@linutronix.de>,
Vince Weaver <vincent.weaver@maine.edu>,
linux-arm-kernel@lists.infradead.org,
Ingo Molnar <mingo@kernel.org>
Subject: [PATCH 4.4 13/78] ARM: Hide finish_arch_post_lock_switch() from modules
Date: Fri, 22 Dec 2017 09:45:54 +0100 [thread overview]
Message-ID: <20171222084558.435742678@linuxfoundation.org> (raw)
In-Reply-To: <20171222084556.909780563@linuxfoundation.org>
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Steven Rostedt <rostedt@goodmis.org>
commit ef0491ea17f8019821c7e9c8e801184ecf17f85a upstream.
The introduction of switch_mm_irqs_off() brought back an old bug
regarding the use of preempt_enable_no_resched:
As part of:
62b94a08da1b ("sched/preempt: Take away preempt_enable_no_resched() from modules")
the definition of preempt_enable_no_resched() is only available in
built-in code, not in loadable modules, so we can't generally use
it from header files.
However, the ARM version of finish_arch_post_lock_switch()
calls preempt_enable_no_resched() and is defined as a static
inline function in asm/mmu_context.h. This in turn means we cannot
include asm/mmu_context.h from modules.
With today's tip tree, asm/mmu_context.h gets included from
linux/mmu_context.h, which is normally the exact pattern one would
expect, but unfortunately, linux/mmu_context.h can be included from
the vhost driver that is a loadable module, now causing this compile
time error with modular configs:
In file included from ../include/linux/mmu_context.h:4:0,
from ../drivers/vhost/vhost.c:18:
../arch/arm/include/asm/mmu_context.h: In function 'finish_arch_post_lock_switch':
../arch/arm/include/asm/mmu_context.h:88:3: error: implicit declaration of function 'preempt_enable_no_resched' [-Werror=implicit-function-declaration]
preempt_enable_no_resched();
Andy already tried to fix the bug by including linux/preempt.h
from asm/mmu_context.h, but that didn't help. Arnd suggested reordering
the header files, which wasn't popular, so let's use this
workaround instead:
The finish_arch_post_lock_switch() definition is now also hidden
inside of #ifdef MODULE, so we don't see anything referencing
preempt_enable_no_resched() from a header file. I've built a
few hundred randconfig kernels with this, and did not see any
new problems.
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russell King - ARM Linux <linux@armlinux.org.uk>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: linux-arm-kernel@lists.infradead.org
Fixes: f98db6013c55 ("sched/core: Add switch_mm_irqs_off() and use it in the scheduler")
Link: http://lkml.kernel.org/r/1463146234-161304-1-git-send-email-arnd@arndb.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/include/asm/mmu_context.h | 2 ++
1 file changed, 2 insertions(+)
--- a/arch/arm/include/asm/mmu_context.h
+++ b/arch/arm/include/asm/mmu_context.h
@@ -61,6 +61,7 @@ static inline void check_and_switch_cont
cpu_switch_mm(mm->pgd, mm);
}
+#ifndef MODULE
#define finish_arch_post_lock_switch \
finish_arch_post_lock_switch
static inline void finish_arch_post_lock_switch(void)
@@ -82,6 +83,7 @@ static inline void finish_arch_post_lock
preempt_enable_no_resched();
}
}
+#endif /* !MODULE */
#endif /* CONFIG_MMU */
next prev parent reply other threads:[~2017-12-22 8:45 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-22 8:45 [PATCH 4.4 00/78] 4.4.108-stable review Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 01/78] arm64: Initialise high_memory global variable earlier Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 02/78] cxl: Check if vphb exists before iterating over AFU devices Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 03/78] x86/mm: Add INVPCID helpers Greg Kroah-Hartman
2017-12-22 8:45 ` Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 04/78] x86/mm: Fix INVPCID asm constraint Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 05/78] x86/mm: Add a noinvpcid boot option to turn off INVPCID Greg Kroah-Hartman
2017-12-22 8:45 ` Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 06/78] x86/mm: If INVPCID is available, use it to flush global mappings Greg Kroah-Hartman
2017-12-22 8:45 ` Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 07/78] mm/rmap: batched invalidations should use existing api Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 08/78] mm/mmu_context, sched/core: Fix mmu_context.h assumption Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 09/78] sched/core: Add switch_mm_irqs_off() and use it in the scheduler Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 10/78] x86/mm: Build arch/x86/mm/tlb.c even on !SMP Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 11/78] x86/mm, sched/core: Uninline switch_mm() Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 12/78] x86/mm, sched/core: Turn off IRQs in switch_mm() Greg Kroah-Hartman
2017-12-22 8:45 ` Greg Kroah-Hartman [this message]
2017-12-22 8:45 ` [PATCH 4.4 13/78] ARM: Hide finish_arch_post_lock_switch() from modules Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 14/78] sched/core: Idle_task_exit() shouldnt use switch_mm_irqs_off() Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 15/78] x86/irq: Do not substract irq_tlb_count from irq_call_count Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 16/78] ALSA: hda - add support for docking station for HP 820 G2 Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 17/78] ALSA: hda - add support for docking station for HP 840 G3 Greg Kroah-Hartman
2017-12-22 8:45 ` [PATCH 4.4 18/78] arm: kprobes: Fix the return address of multiple kretprobes Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 19/78] arm: kprobes: Align stack to 8-bytes in test code Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 20/78] cpuidle: Validate cpu_dev in cpuidle_add_sysfs() Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 21/78] r8152: fix the list rx_done may be used without initialization Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 22/78] crypto: deadlock between crypto_alg_sem/rtnl_mutex/genl_mutex Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 23/78] sch_dsmark: fix invalid skb_cow() usage Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 24/78] bna: integer overflow bug in debugfs Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 26/78] usb: gadget: f_uvc: Sanity check wMaxPacketSize for SuperSpeed Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 27/78] usb: gadget: udc: remove pointer dereference after free Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 28/78] netfilter: nfnl_cthelper: fix runtime expectation policy updates Greg Kroah-Hartman
2018-01-20 18:37 ` Ben Hutchings
2017-12-22 8:46 ` [PATCH 4.4 29/78] netfilter: nfnl_cthelper: Fix memory leak Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 30/78] inet: frag: release spinlock before calling icmp_send() Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 31/78] pinctrl: st: add irq_request/release_resources callbacks Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 32/78] scsi: lpfc: Fix PT2PT PRLI reject Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 36/78] hwmon: (asus_atk0110) fix uninitialized data access Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 37/78] i2c: mux: pca954x: Add missing pca9546 definition to chip_desc Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 38/78] HID: xinmo: fix for out of range for THT 2P arcade controller Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 39/78] r8152: prevent the driver from transmitting packets with carrier off Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 40/78] s390/qeth: no ETH header for outbound AF_IUCV Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 41/78] bna: avoid writing uninitialized data into hw registers Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 42/78] net: Do not allow negative values for busy_read and busy_poll sysctl interfaces Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 43/78] i40e: Do not enable NAPI on q_vectors that have no rings Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 44/78] RDMA/iser: Fix possible mr leak on device removal event Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 45/78] irda: vlsi_ir: fix check for DMA mapping errors Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 46/78] netfilter: nfnl_cthelper: fix a race when walk the nf_ct_helper_hash table Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 47/78] netfilter: nf_nat_snmp: Fix panic when snmp_trap_helper fails to register Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 48/78] ARM: dts: am335x-evmsk: adjust mmc2 param to allow suspend Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 49/78] KVM: pci-assign: do not map smm memory slot pages in vt-d page tables Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 50/78] isdn: kcapi: avoid uninitialized data Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 51/78] xhci: plat: Register shutdown for xhci_plat Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 52/78] netfilter: nfnetlink_queue: fix secctx memory leak Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 53/78] ARM: dma-mapping: disallow dma_get_sgtable() for non-kernel managed memory Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 54/78] cpuidle: powernv: Pass correct drv->cpumask for registration Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 55/78] bnxt_en: Fix NULL pointer dereference in reopen failure path Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 56/78] backlight: pwm_bl: Fix overflow condition Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 57/78] crypto: crypto4xx - increase context and scatter ring buffer elements Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 58/78] rtc: pl031: make interrupt optional Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 59/78] net: phy: at803x: Change error to EINVAL for invalid MAC Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 60/78] PCI: Avoid bus reset if bridge itself is broken Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 61/78] scsi: cxgb4i: fix Tx skb leak Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 62/78] scsi: mpt3sas: Fix IO error occurs on pulling out a drive from RAID1 volume created on two SATA drive Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 63/78] PCI: Create SR-IOV virtfn/physfn links before attaching driver Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 64/78] igb: check memory allocation failure Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 65/78] ixgbe: fix use of uninitialized padding Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 66/78] PCI/AER: Report non-fatal errors only to the affected endpoint Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 67/78] scsi: lpfc: Fix secure firmware updates Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 68/78] scsi: lpfc: PLOGI failures during NPIV testing Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 69/78] fm10k: ensure we process SM mbx when processing VF mbx Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 70/78] tcp: fix under-evaluated ssthresh in TCP Vegas Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 71/78] rtc: set the alarm to the next expiring timer Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 72/78] cpuidle: fix broadcast control when broadcast can not be entered Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 73/78] thermal: hisilicon: Handle return value of clk_prepare_enable Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 74/78] MIPS: math-emu: Fix final emulation phase for certain instructions Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 75/78] Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature" Greg Kroah-Hartman
2017-12-22 17:32 ` Brian Norris
2017-12-23 9:16 ` Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 76/78] ALSA: hda - Clear the leftover component assignment at snd_hdac_i915_exit() Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 77/78] ALSA: hda - Degrade i915 binding failure message Greg Kroah-Hartman
2017-12-22 8:46 ` [PATCH 4.4 78/78] ALSA: hda - Fix yet another i915 pointer leftover in error path Greg Kroah-Hartman
2017-12-22 15:48 ` [PATCH 4.4 00/78] 4.4.108-stable review Nathan Chancellor
2017-12-22 15:58 ` Greg Kroah-Hartman
2017-12-22 17:24 ` Naresh Kamboju
2017-12-23 9:17 ` Greg Kroah-Hartman
2017-12-22 18:18 ` Guenter Roeck
2017-12-23 9:19 ` Greg Kroah-Hartman
2017-12-23 14:46 ` Greg Kroah-Hartman
2017-12-23 16:13 ` Guenter Roeck
2017-12-23 16:26 ` Greg Kroah-Hartman
2017-12-23 17:11 ` Guenter Roeck
2017-12-23 21:20 ` Guenter Roeck
2017-12-22 21:11 ` Shuah Khan
2017-12-24 1:30 ` Guenter Roeck
2017-12-24 7:43 ` Greg Kroah-Hartman
2017-12-24 16:52 ` Guenter Roeck
2017-12-25 13:35 ` Greg Kroah-Hartman
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=20171222084558.435742678@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-arm-kernel@lists.infradead.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.