Address a number of objtool warnings that got reported.
No change in behavior intended, but code generation might be impacted by:1f008d46f1
: ("x86: Always inline task_size_max()") Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmDUK9ERHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1jIUg/8CMtepfPe5KAJKW0Q1Fi9c5mfsQqKJToQ rNk25Rna+oH1P2kiHxW8920/0gjQJwqO1nkdUfQhI2pcPdTSg63DMQJeakX1aBq5 v8bGq5TRe8xYx07sp6ATiqD2kntvdS3NW0kOzSa3N7e4jO7U8bJd+J/4DYW6KIrI yAIgkHPPsOW/UAbk6Nza/lyjbhqJ7xxzhpfzGHB1k0bbb9d5X8HHJ2b7BOq/0tom 5m2vFKu8EUy8o8qqeZrWVoJHBQNo28Eh33bAuv2ZQWpFKih6p++ZyyH8QG9SiDUv sIHneKDNs1XZ25F0Q7fHHi2xcUCcoI4ssJldatC0stTpZySw8u6JKVaqC/LFxEWz veaqQ5ENrsemOksXoIT4ECObwaw+mInEYZNQIEa1ntTGe9WJRqwmJPjkcgdZTHBM sV3HmQcIDycB7qy3MZ+vYt0WtCm1ihGcEECkyxNnnPLko4PJS+SN2zU/uOakHeO+ sTfGVzgAixBy3JxJk1nECOHLhSmdRr3b0+DU6/32hNiHGliABZiyrStUGEYAk6We 4g1zy9EwJKrB61y3QXJN6yMdc0yTQ1e2C1aXtohU57hVGv92gigRz/bt3YqMytZq Y7F+aF5nWjt6AcmjhDFpxHTQXwNsQB3P8waXe/pcFUHMg5xKU/JvRd3FsvPD8Az3 uqIa2LhiKw4= =FtTl -----END PGP SIGNATURE----- Merge tag 'objtool-urgent-2021-06-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull objtool fixes from Ingo Molnar: "Address a number of objtool warnings that got reported. No change in behavior intended, but code generation might be impacted by commit1f008d46f1
("x86: Always inline task_size_max()")" * tag 'objtool-urgent-2021-06-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/lockdep: Improve noinstr vs errors x86: Always inline task_size_max() x86/xen: Fix noinstr fail in exc_xen_unknown_trap() x86/xen: Fix noinstr fail in xen_pv_evtchn_do_upcall() x86/entry: Fix noinstr fail in __do_fast_syscall_32() objtool/x86: Ignore __x86_indirect_alt_* symbols
This commit is contained in:
commit
c0e457851f
@ -130,8 +130,8 @@ static noinstr bool __do_fast_syscall_32(struct pt_regs *regs)
|
||||
/* User code screwed up. */
|
||||
regs->ax = -EFAULT;
|
||||
|
||||
instrumentation_end();
|
||||
local_irq_disable();
|
||||
instrumentation_end();
|
||||
irqentry_exit_to_user_mode(regs);
|
||||
return false;
|
||||
}
|
||||
@ -269,15 +269,16 @@ __visible noinstr void xen_pv_evtchn_do_upcall(struct pt_regs *regs)
|
||||
irqentry_state_t state = irqentry_enter(regs);
|
||||
bool inhcall;
|
||||
|
||||
instrumentation_begin();
|
||||
run_sysvec_on_irqstack_cond(__xen_pv_evtchn_do_upcall, regs);
|
||||
|
||||
inhcall = get_and_clear_inhcall();
|
||||
if (inhcall && !WARN_ON_ONCE(state.exit_rcu)) {
|
||||
instrumentation_begin();
|
||||
irqentry_exit_cond_resched();
|
||||
instrumentation_end();
|
||||
restore_inhcall(inhcall);
|
||||
} else {
|
||||
instrumentation_end();
|
||||
irqentry_exit(regs, state);
|
||||
}
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ void copy_page(void *to, void *from);
|
||||
*
|
||||
* With page table isolation enabled, we map the LDT in ... [stay tuned]
|
||||
*/
|
||||
static inline unsigned long task_size_max(void)
|
||||
static __always_inline unsigned long task_size_max(void)
|
||||
{
|
||||
unsigned long ret;
|
||||
|
||||
|
@ -58,12 +58,16 @@ SYM_FUNC_START_NOALIGN(__x86_indirect_alt_call_\reg)
|
||||
2: .skip 5-(2b-1b), 0x90
|
||||
SYM_FUNC_END(__x86_indirect_alt_call_\reg)
|
||||
|
||||
STACK_FRAME_NON_STANDARD(__x86_indirect_alt_call_\reg)
|
||||
|
||||
SYM_FUNC_START_NOALIGN(__x86_indirect_alt_jmp_\reg)
|
||||
ANNOTATE_RETPOLINE_SAFE
|
||||
1: jmp *%\reg
|
||||
2: .skip 5-(2b-1b), 0x90
|
||||
SYM_FUNC_END(__x86_indirect_alt_jmp_\reg)
|
||||
|
||||
STACK_FRAME_NON_STANDARD(__x86_indirect_alt_jmp_\reg)
|
||||
|
||||
.endm
|
||||
|
||||
/*
|
||||
|
@ -592,8 +592,10 @@ DEFINE_IDTENTRY_RAW(xenpv_exc_debug)
|
||||
DEFINE_IDTENTRY_RAW(exc_xen_unknown_trap)
|
||||
{
|
||||
/* This should never happen and there is no way to handle it. */
|
||||
instrumentation_begin();
|
||||
pr_err("Unknown trap in Xen PV mode.");
|
||||
BUG();
|
||||
instrumentation_end();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_MCE
|
||||
|
@ -27,8 +27,10 @@ extern int debug_locks_off(void);
|
||||
int __ret = 0; \
|
||||
\
|
||||
if (!oops_in_progress && unlikely(c)) { \
|
||||
instrumentation_begin(); \
|
||||
if (debug_locks_off() && !debug_locks_silent) \
|
||||
WARN(1, "DEBUG_LOCKS_WARN_ON(%s)", #c); \
|
||||
instrumentation_end(); \
|
||||
__ret = 1; \
|
||||
} \
|
||||
__ret; \
|
||||
|
@ -843,7 +843,7 @@ static int count_matching_names(struct lock_class *new_class)
|
||||
}
|
||||
|
||||
/* used from NMI context -- must be lockless */
|
||||
static __always_inline struct lock_class *
|
||||
static noinstr struct lock_class *
|
||||
look_up_lock_class(const struct lockdep_map *lock, unsigned int subclass)
|
||||
{
|
||||
struct lockdep_subclass_key *key;
|
||||
@ -851,12 +851,14 @@ look_up_lock_class(const struct lockdep_map *lock, unsigned int subclass)
|
||||
struct lock_class *class;
|
||||
|
||||
if (unlikely(subclass >= MAX_LOCKDEP_SUBCLASSES)) {
|
||||
instrumentation_begin();
|
||||
debug_locks_off();
|
||||
printk(KERN_ERR
|
||||
"BUG: looking up invalid subclass: %u\n", subclass);
|
||||
printk(KERN_ERR
|
||||
"turning off the locking correctness validator.\n");
|
||||
dump_stack();
|
||||
instrumentation_end();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ EXPORT_SYMBOL_GPL(debug_locks_silent);
|
||||
/*
|
||||
* Generic 'turn off all lock debugging' function:
|
||||
*/
|
||||
noinstr int debug_locks_off(void)
|
||||
int debug_locks_off(void)
|
||||
{
|
||||
if (debug_locks && __debug_locks_off()) {
|
||||
if (!debug_locks_silent) {
|
||||
|
Loading…
Reference in New Issue
Block a user