lkml.org 
[lkml]   [2020]   [Mar]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectWhy is text_mutex used in jump_label_transform for x86_64
Date
Hi,everyone

I'm sorry to disturb you. I have a problem about jump_label, and a bit
confused about the code

I noticed that text_mutex is used in this function under x86_64
architecture,
but other architectures do not.

in arch/x86/kernel/jump_label.c
        static void __ref jump_label_transform(struct jump_entry *entry,
             enum jump_label_type type,
             int init)
        {
         mutex_lock(&text_mutex);
         __jump_label_transform(entry, type, init);
         mutex_unlock(&text_mutex);

in arch/arm64/kernel/jump_label.c

        void arch_jump_label_transform(struct jump_entry *entry,
                                       enum jump_label_type type)
        {
                void *addr = (void *)jump_entry_code(entry);
                u32 insn;

                if (type == JUMP_LABEL_JMP) {
                        insn =
aarch64_insn_gen_branch_imm(jump_entry_code(entry),
jump_entry_target(entry),
AARCH64_INSN_BRANCH_NOLINK);
                } else {
                        insn = aarch64_insn_gen_nop();
                }

                aarch64_insn_patch_text_nosync(addr, insn);
        }


Is there anything wrong with x86

or

is this missing for other architectures?


Thanks

---- Cheng Jian





\
 
 \ /
  Last update: 2020-03-19 14:50    [W:0.062 / U:2.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site