@@ -698,7 +698,7 @@ __cmpxchg_acquire(void *ptr, unsigned long old, unsigned long new,
698698}
699699#define arch_cmpxchg (ptr , o , n ) \
700700 ({ \
701- __typeof__(*(ptr)) _o_ = (o); \
701+ __typeof__(*(ptr)) _o_ = (__typeof__(*(ptr)))( o); \
702702 __typeof__(*(ptr)) _n_ = (n); \
703703 (__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long)_o_, \
704704 (unsigned long)_n_, sizeof(*(ptr))); \
@@ -707,15 +707,15 @@ __cmpxchg_acquire(void *ptr, unsigned long old, unsigned long new,
707707
708708#define arch_cmpxchg_local (ptr , o , n ) \
709709 ({ \
710- __typeof__(*(ptr)) _o_ = (o); \
710+ __typeof__(*(ptr)) _o_ = (__typeof__(*(ptr)))( o); \
711711 __typeof__(*(ptr)) _n_ = (n); \
712712 (__typeof__(*(ptr))) __cmpxchg_local((ptr), (unsigned long)_o_, \
713713 (unsigned long)_n_, sizeof(*(ptr))); \
714714 })
715715
716716#define arch_cmpxchg_relaxed (ptr , o , n ) \
717717({ \
718- __typeof__(*(ptr)) _o_ = (o); \
718+ __typeof__(*(ptr)) _o_ = (__typeof__(*(ptr)))( o); \
719719 __typeof__(*(ptr)) _n_ = (n); \
720720 (__typeof__(*(ptr))) __cmpxchg_relaxed((ptr), \
721721 (unsigned long)_o_, (unsigned long)_n_, \
@@ -724,7 +724,7 @@ __cmpxchg_acquire(void *ptr, unsigned long old, unsigned long new,
724724
725725#define arch_cmpxchg_acquire (ptr , o , n ) \
726726({ \
727- __typeof__(*(ptr)) _o_ = (o); \
727+ __typeof__(*(ptr)) _o_ = (__typeof__(*(ptr)))( o); \
728728 __typeof__(*(ptr)) _n_ = (n); \
729729 (__typeof__(*(ptr))) __cmpxchg_acquire((ptr), \
730730 (unsigned long)_o_, (unsigned long)_n_, \
0 commit comments