From f1624bf16729b17faf2afcb71ec3cf3e0d3e74c9 Mon Sep 17 00:00:00 2001 From: Xiao Guangrong Date: Tue, 21 Jun 2011 10:35:55 +0800 Subject: [PATCH] --- yaml --- r: 254695 b: refs/heads/master c: 140fe3b1ab9c082182ef13359fab4ddba95c24c3 h: refs/heads/master i: 254693: 9418a1d9777cb29e8385b2f6b263f8772f506909 254691: 7e9d6139f42aef159a004b2597037caa21cbd283 254687: 2a247d742893782605272eb933abfb4bbe46af99 v: v3 --- [refs] | 2 +- trunk/kernel/jump_label.c | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index ad538e4265fd..b5824fc5adf4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: debf1d4948bccf58fa172acb1a7306792d77705d +refs/heads/master: 140fe3b1ab9c082182ef13359fab4ddba95c24c3 diff --git a/trunk/kernel/jump_label.c b/trunk/kernel/jump_label.c index fa27e750dbc0..a8ce45097f3d 100644 --- a/trunk/kernel/jump_label.c +++ b/trunk/kernel/jump_label.c @@ -375,15 +375,19 @@ int jump_label_text_reserved(void *start, void *end) static void jump_label_update(struct jump_label_key *key, int enable) { - struct jump_entry *entry = key->entries; - - /* if there are no users, entry can be NULL */ - if (entry) - __jump_label_update(key, entry, __stop___jump_table, enable); + struct jump_entry *entry = key->entries, *stop = __stop___jump_table; #ifdef CONFIG_MODULES + struct module *mod = __module_address((jump_label_t)key); + __jump_label_mod_update(key, enable); + + if (mod) + stop = mod->jump_entries + mod->num_jump_entries; #endif + /* if there are no users, entry can be NULL */ + if (entry) + __jump_label_update(key, entry, stop, enable); } #endif