Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5042afe7 authored by Ingo Molnar's avatar Ingo Molnar Committed by Ingo Molnar
Browse files

generic: Use raw local irq variant for generic cmpxchg



The interrupt disabled region is extremly tiny and therefor not
latency relevant. Avoid cluttering the traces with those pointless
entries.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 9fb1b90c
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ static inline unsigned long __cmpxchg_local_generic(volatile void *ptr,
	if (size == 8 && sizeof(unsigned long) != 8)
		wrong_size_cmpxchg(ptr);

	local_irq_save(flags);
	raw_local_irq_save(flags);
	switch (size) {
	case 1: prev = *(u8 *)ptr;
		if (prev == old)
@@ -42,7 +42,7 @@ static inline unsigned long __cmpxchg_local_generic(volatile void *ptr,
	default:
		wrong_size_cmpxchg(ptr);
	}
	local_irq_restore(flags);
	raw_local_irq_restore(flags);
	return prev;
}

@@ -55,11 +55,11 @@ static inline u64 __cmpxchg64_local_generic(volatile void *ptr,
	u64 prev;
	unsigned long flags;

	local_irq_save(flags);
	raw_local_irq_save(flags);
	prev = *(u64 *)ptr;
	if (prev == old)
		*(u64 *)ptr = new;
	local_irq_restore(flags);
	raw_local_irq_restore(flags);
	return prev;
}