Re: [PATCH 2/4] x86/alternatives: Don't need text_mutex when text_poke() on UP

From: zhouchengming
Date: Sat Oct 28 2017 - 21:21:42 EST


Oops, this is very wrong. Please ignore this patchset. Sorry for the noise...

Thanks!

On 2017/10/28 20:50, Zhou Chengming wrote:
The alternatives_smp_lock/unlock only be used on UP, so we don't
need to hold the text_mutex when text_poke(). Then in the next patch,
we can remove the outside smp_alt mutex too.

Signed-off-by: Zhou Chengming<zhouchengming1@xxxxxxxxxx>
---
arch/x86/kernel/alternative.c | 4 ----
1 file changed, 4 deletions(-)

diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index 8549269..5c3f593 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -442,7 +442,6 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
{
const s32 *poff;

- mutex_lock(&text_mutex);
for (poff = start; poff< end; poff++) {
u8 *ptr = (u8 *)poff + *poff;

@@ -452,7 +451,6 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
if (*ptr == 0x3e)
text_poke(ptr, ((unsigned char []){0xf0}), 1);
}
- mutex_unlock(&text_mutex);
}

static void alternatives_smp_unlock(const s32 *start, const s32 *end,
@@ -460,7 +458,6 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
{
const s32 *poff;

- mutex_lock(&text_mutex);
for (poff = start; poff< end; poff++) {
u8 *ptr = (u8 *)poff + *poff;

@@ -470,7 +467,6 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
if (*ptr == 0xf0)
text_poke(ptr, ((unsigned char []){0x3E}), 1);
}
- mutex_unlock(&text_mutex);
}

struct smp_alt_module {