diff options
Diffstat (limited to 'arch/ia64')
| -rw-r--r-- | arch/ia64/include/asm/atomic.h | 69 | ||||
| -rw-r--r-- | arch/ia64/include/asm/bug.h | 6 | ||||
| -rw-r--r-- | arch/ia64/kernel/Makefile | 1 | ||||
| -rw-r--r-- | arch/ia64/kernel/err_inject.c | 4 | ||||
| -rw-r--r-- | arch/ia64/scripts/unwcheck.py | 16 | 
5 files changed, 38 insertions, 58 deletions
diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h index 762eeb0fcc1d..2524fb60fbc2 100644 --- a/arch/ia64/include/asm/atomic.h +++ b/arch/ia64/include/asm/atomic.h @@ -66,38 +66,35 @@ ATOMIC_OPS(add, +)  ATOMIC_OPS(sub, -)  #ifdef __OPTIMIZE__ -#define __ia64_atomic_const(i)	__builtin_constant_p(i) ?		\ +#define __ia64_atomic_const(i)						\ +	static const int __ia64_atomic_p = __builtin_constant_p(i) ?	\  		((i) == 1 || (i) == 4 || (i) == 8 || (i) == 16 ||	\ -		 (i) == -1 || (i) == -4 || (i) == -8 || (i) == -16) : 0 +		 (i) == -1 || (i) == -4 || (i) == -8 || (i) == -16) : 0;\ +	__ia64_atomic_p +#else +#define __ia64_atomic_const(i)	0 +#endif -#define atomic_add_return(i, v)						\ +#define atomic_add_return(i,v)						\  ({									\ -	int __i = (i);							\ -	static const int __ia64_atomic_p = __ia64_atomic_const(i);	\ -	__ia64_atomic_p ? ia64_fetch_and_add(__i, &(v)->counter) :	\ -				ia64_atomic_add(__i, v);		\ +	int __ia64_aar_i = (i);						\ +	__ia64_atomic_const(i)						\ +		? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter)	\ +		: ia64_atomic_add(__ia64_aar_i, v);			\  }) -#define atomic_sub_return(i, v)						\ +#define atomic_sub_return(i,v)						\  ({									\ -	int __i = (i);							\ -	static const int __ia64_atomic_p = __ia64_atomic_const(i);	\ -	__ia64_atomic_p ? ia64_fetch_and_add(-__i, &(v)->counter) :	\ -				ia64_atomic_sub(__i, v);		\ +	int __ia64_asr_i = (i);						\ +	__ia64_atomic_const(i)						\ +		? ia64_fetch_and_add(-__ia64_asr_i, &(v)->counter)	\ +		: ia64_atomic_sub(__ia64_asr_i, v);			\  }) -#else -#define atomic_add_return(i, v)	ia64_atomic_add(i, v) -#define atomic_sub_return(i, v)	ia64_atomic_sub(i, v) -#endif  #define atomic_fetch_add(i,v)						\  ({									\  	int __ia64_aar_i = (i);						\ -	(__builtin_constant_p(i)					\ -	 && (   (__ia64_aar_i ==  1) || (__ia64_aar_i ==   4)		\ -	     || (__ia64_aar_i ==  8) || (__ia64_aar_i ==  16)		\ -	     || (__ia64_aar_i == -1) || (__ia64_aar_i ==  -4)		\ -	     || (__ia64_aar_i == -8) || (__ia64_aar_i == -16)))		\ +	__ia64_atomic_const(i)						\  		? ia64_fetchadd(__ia64_aar_i, &(v)->counter, acq)	\  		: ia64_atomic_fetch_add(__ia64_aar_i, v);		\  }) @@ -105,11 +102,7 @@ ATOMIC_OPS(sub, -)  #define atomic_fetch_sub(i,v)						\  ({									\  	int __ia64_asr_i = (i);						\ -	(__builtin_constant_p(i)					\ -	 && (   (__ia64_asr_i ==   1) || (__ia64_asr_i ==   4)		\ -	     || (__ia64_asr_i ==   8) || (__ia64_asr_i ==  16)		\ -	     || (__ia64_asr_i ==  -1) || (__ia64_asr_i ==  -4)		\ -	     || (__ia64_asr_i ==  -8) || (__ia64_asr_i == -16)))	\ +	__ia64_atomic_const(i)						\  		? ia64_fetchadd(-__ia64_asr_i, &(v)->counter, acq)	\  		: ia64_atomic_fetch_sub(__ia64_asr_i, v);		\  }) @@ -170,11 +163,7 @@ ATOMIC64_OPS(sub, -)  #define atomic64_add_return(i,v)					\  ({									\  	long __ia64_aar_i = (i);					\ -	(__builtin_constant_p(i)					\ -	 && (   (__ia64_aar_i ==  1) || (__ia64_aar_i ==   4)		\ -	     || (__ia64_aar_i ==  8) || (__ia64_aar_i ==  16)		\ -	     || (__ia64_aar_i == -1) || (__ia64_aar_i ==  -4)		\ -	     || (__ia64_aar_i == -8) || (__ia64_aar_i == -16)))		\ +	__ia64_atomic_const(i)						\  		? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter)	\  		: ia64_atomic64_add(__ia64_aar_i, v);			\  }) @@ -182,11 +171,7 @@ ATOMIC64_OPS(sub, -)  #define atomic64_sub_return(i,v)					\  ({									\  	long __ia64_asr_i = (i);					\ -	(__builtin_constant_p(i)					\ -	 && (   (__ia64_asr_i ==   1) || (__ia64_asr_i ==   4)		\ -	     || (__ia64_asr_i ==   8) || (__ia64_asr_i ==  16)		\ -	     || (__ia64_asr_i ==  -1) || (__ia64_asr_i ==  -4)		\ -	     || (__ia64_asr_i ==  -8) || (__ia64_asr_i == -16)))	\ +	__ia64_atomic_const(i)						\  		? ia64_fetch_and_add(-__ia64_asr_i, &(v)->counter)	\  		: ia64_atomic64_sub(__ia64_asr_i, v);			\  }) @@ -194,11 +179,7 @@ ATOMIC64_OPS(sub, -)  #define atomic64_fetch_add(i,v)						\  ({									\  	long __ia64_aar_i = (i);					\ -	(__builtin_constant_p(i)					\ -	 && (   (__ia64_aar_i ==  1) || (__ia64_aar_i ==   4)		\ -	     || (__ia64_aar_i ==  8) || (__ia64_aar_i ==  16)		\ -	     || (__ia64_aar_i == -1) || (__ia64_aar_i ==  -4)		\ -	     || (__ia64_aar_i == -8) || (__ia64_aar_i == -16)))		\ +	__ia64_atomic_const(i)						\  		? ia64_fetchadd(__ia64_aar_i, &(v)->counter, acq)	\  		: ia64_atomic64_fetch_add(__ia64_aar_i, v);		\  }) @@ -206,11 +187,7 @@ ATOMIC64_OPS(sub, -)  #define atomic64_fetch_sub(i,v)						\  ({									\  	long __ia64_asr_i = (i);					\ -	(__builtin_constant_p(i)					\ -	 && (   (__ia64_asr_i ==   1) || (__ia64_asr_i ==   4)		\ -	     || (__ia64_asr_i ==   8) || (__ia64_asr_i ==  16)		\ -	     || (__ia64_asr_i ==  -1) || (__ia64_asr_i ==  -4)		\ -	     || (__ia64_asr_i ==  -8) || (__ia64_asr_i == -16)))	\ +	__ia64_atomic_const(i)						\  		? ia64_fetchadd(-__ia64_asr_i, &(v)->counter, acq)	\  		: ia64_atomic64_fetch_sub(__ia64_asr_i, v);		\  }) diff --git a/arch/ia64/include/asm/bug.h b/arch/ia64/include/asm/bug.h index bd3eeb8d1cfa..66b37a532765 100644 --- a/arch/ia64/include/asm/bug.h +++ b/arch/ia64/include/asm/bug.h @@ -4,7 +4,11 @@  #ifdef CONFIG_BUG  #define ia64_abort()	__builtin_trap() -#define BUG() do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); ia64_abort(); } while (0) +#define BUG() do {						\ +	printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__);	\ +	barrier_before_unreachable();				\ +	ia64_abort();						\ +} while (0)  /* should this BUG be made generic? */  #define HAVE_ARCH_BUG diff --git a/arch/ia64/kernel/Makefile b/arch/ia64/kernel/Makefile index 0b4c65a1af25..498f3da3f225 100644 --- a/arch/ia64/kernel/Makefile +++ b/arch/ia64/kernel/Makefile @@ -41,7 +41,6 @@ ifneq ($(CONFIG_IA64_ESI),)  obj-y				+= esi_stub.o	# must be in kernel proper  endif  obj-$(CONFIG_INTEL_IOMMU)	+= pci-dma.o -obj-$(CONFIG_SWIOTLB)		+= pci-swiotlb.o  obj-$(CONFIG_BINFMT_ELF)	+= elfcore.o diff --git a/arch/ia64/kernel/err_inject.c b/arch/ia64/kernel/err_inject.c index 85bba43e7d5d..8b5b8e6bc9d9 100644 --- a/arch/ia64/kernel/err_inject.c +++ b/arch/ia64/kernel/err_inject.c @@ -117,7 +117,7 @@ store_call_start(struct device *dev, struct device_attribute *attr,  #ifdef ERR_INJ_DEBUG  	printk(KERN_DEBUG "Returns: status=%d,\n", (int)status[cpu]); -	printk(KERN_DEBUG "capapbilities=%lx,\n", capabilities[cpu]); +	printk(KERN_DEBUG "capabilities=%lx,\n", capabilities[cpu]);  	printk(KERN_DEBUG "resources=%lx\n", resources[cpu]);  #endif  	return size; @@ -142,7 +142,7 @@ store_virtual_to_phys(struct device *dev, struct device_attribute *attr,  	u64 virt_addr=simple_strtoull(buf, NULL, 16);  	int ret; -	ret = get_user_pages(virt_addr, 1, FOLL_WRITE, NULL, NULL); +	ret = get_user_pages_fast(virt_addr, 1, FOLL_WRITE, NULL);  	if (ret<=0) {  #ifdef ERR_INJ_DEBUG  		printk("Virtual address %lx is not existing.\n",virt_addr); diff --git a/arch/ia64/scripts/unwcheck.py b/arch/ia64/scripts/unwcheck.py index 89f3a1480a63..c55276e31b6b 100644 --- a/arch/ia64/scripts/unwcheck.py +++ b/arch/ia64/scripts/unwcheck.py @@ -16,7 +16,7 @@ import re  import sys  if len(sys.argv) != 2: -    print "Usage: %s FILE" % sys.argv[0] +    print("Usage: %s FILE" % sys.argv[0])      sys.exit(2)  readelf = os.getenv("READELF", "readelf") @@ -29,7 +29,7 @@ def check_func (func, slots, rlen_sum):          global num_errors          num_errors += 1          if not func: func = "[%#x-%#x]" % (start, end) -        print "ERROR: %s: %lu slots, total region length = %lu" % (func, slots, rlen_sum) +        print("ERROR: %s: %lu slots, total region length = %lu" % (func, slots, rlen_sum))      return  num_funcs = 0 @@ -43,23 +43,23 @@ for line in os.popen("%s -u %s" % (readelf, sys.argv[1])):          check_func(func, slots, rlen_sum)          func  = m.group(1) -        start = long(m.group(2), 16) -        end   = long(m.group(3), 16) +        start = int(m.group(2), 16) +        end   = int(m.group(3), 16)          slots = 3 * (end - start) / 16 -        rlen_sum = 0L +        rlen_sum = 0          num_funcs += 1      else:          m = rlen_pattern.match(line)          if m: -            rlen_sum += long(m.group(1)) +            rlen_sum += int(m.group(1))  check_func(func, slots, rlen_sum)  if num_errors == 0: -    print "No errors detected in %u functions." % num_funcs +    print("No errors detected in %u functions." % num_funcs)  else:      if num_errors > 1:          err="errors"      else:          err="error" -    print "%u %s detected in %u functions." % (num_errors, err, num_funcs) +    print("%u %s detected in %u functions." % (num_errors, err, num_funcs))      sys.exit(1)  | 

