diff --git a/include/linux/bitops.h b/include/linux/bitops.h
index 705f7c44269177d232a57c8f25ca00ba7faf9482..602af23b98c7856af4c7ee0473630b4866b3e54d 100644
--- a/include/linux/bitops.h
+++ b/include/linux/bitops.h
@@ -246,7 +246,7 @@ static __always_inline void __assign_bit(long nr, volatile unsigned long *addr,
 		new__ = (old__ & ~mask__) | bits__;		\
 	} while (cmpxchg(ptr, old__, new__) != old__);		\
 								\
-	new__;							\
+	old__;							\
 })
 #endif