]> git.baikalelectronics.ru Git - kernel.git/commit
x86/static_call: Serialize __static_call_fixup() properly
authorThomas Gleixner <tglx@linutronix.de>
Tue, 12 Jul 2022 12:01:06 +0000 (14:01 +0200)
committerBorislav Petkov <bp@suse.de>
Tue, 12 Jul 2022 12:23:32 +0000 (14:23 +0200)
commitd00d8db9d3e10fa5023021400452625a323daf90
treea4d18070f91417e41f85c3f4fb1906f4acce0893
parent647c1deea862d606a8dc364c20d149b5595a21d8
x86/static_call: Serialize __static_call_fixup() properly

__static_call_fixup() invokes __static_call_transform() without holding
text_mutex, which causes lockdep to complain in text_poke_bp().

Adding the proper locking cures that, but as this is either used during
early boot or during module finalizing, it's not required to use
text_poke_bp(). Add an argument to __static_call_transform() which tells
it to use text_poke_early() for it.

Fixes: 9bd2b3a6b6f0 ("x86,static_call: Use alternative RET encoding")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
arch/x86/kernel/static_call.c