Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 19 Jun 2014 17:50:07 +0000 (07:50 -1000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 19 Jun 2014 17:50:07 +0000 (07:50 -1000)
Pull sparc fixes from David Miller:
 "Sparc sparse fixes from Sam Ravnborg"

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next: (67 commits)
  sparc64: fix sparse warnings in int_64.c
  sparc64: fix sparse warning in ftrace.c
  sparc64: fix sparse warning in kprobes.c
  sparc64: fix sparse warning in kgdb_64.c
  sparc64: fix sparse warnings in compat_audit.c
  sparc64: fix sparse warnings in init_64.c
  sparc64: fix sparse warnings in aes_glue.c
  sparc: fix sparse warnings in smp_32.c + smp_64.c
  sparc64: fix sparse warnings in perf_event.c
  sparc64: fix sparse warnings in kprobes.c
  sparc64: fix sparse warning in tsb.c
  sparc64: clean up compat_sigset_t.seta handling
  sparc64: fix sparse "Should it be static?" warnings in signal32.c
  sparc64: fix sparse warnings in sys_sparc32.c
  sparc64: fix sparse warning in pci.c
  sparc64: fix sparse warnings in smp_64.c
  sparc64: fix sparse warning in prom_64.c
  sparc64: fix sparse warning in btext.c
  sparc64: fix sparse warnings in sys_sparc_64.c + unaligned_64.c
  sparc64: fix sparse warning in process_64.c
  ...

Conflicts:
arch/sparc/include/asm/pgtable_64.h

15 files changed:
1  2 
arch/sparc/include/asm/atomic_32.h
arch/sparc/include/asm/atomic_64.h
arch/sparc/include/asm/bitops_32.h
arch/sparc/include/asm/bitops_64.h
arch/sparc/include/asm/checksum_32.h
arch/sparc/include/asm/checksum_64.h
arch/sparc/include/asm/pci_64.h
arch/sparc/include/asm/pgtable_64.h
arch/sparc/kernel/pci.c
arch/sparc/kernel/smp_64.c
arch/sparc/kernel/unaligned_64.c
arch/sparc/mm/fault_64.c
arch/sparc/mm/init_64.c
arch/sparc/mm/tsb.c
kernel/sysctl.c

Simple merge
index 8b2f1bde2889bee05cada1d71c19370dc52b5ee3,0582c02a6b0cc16851e1ae3f963e0a7c751c9e15..bb894c8bec562c337e3166c3509ba11334c864c2
@@@ -107,6 -106,12 +107,6 @@@ static inline long atomic64_add_unless(
  
  #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
  
extern long atomic64_dec_if_positive(atomic64_t *v);
+ long atomic64_dec_if_positive(atomic64_t *v);
  
 -/* Atomic operations are already serializing */
 -#define smp_mb__before_atomic_dec()   barrier()
 -#define smp_mb__after_atomic_dec()    barrier()
 -#define smp_mb__before_atomic_inc()   barrier()
 -#define smp_mb__after_atomic_inc()    barrier()
 -
  #endif /* !(__ARCH_SPARC64_ATOMIC__) */
Simple merge
index f1a051ca301a472605915aee308980879ed11ab8,0135028e48299799ad69dc140bab02e04468ab04..2d522402a9375ca22aac8f06276c2bc530b61107
  
  #include <linux/compiler.h>
  #include <asm/byteorder.h>
 +#include <asm/barrier.h>
  
extern int test_and_set_bit(unsigned long nr, volatile unsigned long *addr);
extern int test_and_clear_bit(unsigned long nr, volatile unsigned long *addr);
extern int test_and_change_bit(unsigned long nr, volatile unsigned long *addr);
extern void set_bit(unsigned long nr, volatile unsigned long *addr);
extern void clear_bit(unsigned long nr, volatile unsigned long *addr);
extern void change_bit(unsigned long nr, volatile unsigned long *addr);
+ int test_and_set_bit(unsigned long nr, volatile unsigned long *addr);
+ int test_and_clear_bit(unsigned long nr, volatile unsigned long *addr);
+ int test_and_change_bit(unsigned long nr, volatile unsigned long *addr);
+ void set_bit(unsigned long nr, volatile unsigned long *addr);
+ void clear_bit(unsigned long nr, volatile unsigned long *addr);
+ void change_bit(unsigned long nr, volatile unsigned long *addr);
  
  #include <asm-generic/bitops/non-atomic.h>
  
Simple merge
Simple merge
Simple merge
index 1a49ffdf9da91056cb24357b6fdefea772658201,521b8d8c1f96b9c6148179a4e457ad94a19dcce2..3770bf5c6e1b434feedd15150a23aaac0b15e51e
@@@ -765,23 -757,9 +765,23 @@@ static inline int pmd_present(pmd_t pmd
  
  #define pmd_none(pmd)                 (!pmd_val(pmd))
  
 +/* pmd_bad() is only called on non-trans-huge PMDs.  Our encoding is
 + * very simple, it's just the physical address.  PTE tables are of
 + * size PAGE_SIZE so make sure the sub-PAGE_SIZE bits are clear and
 + * the top bits outside of the range of any physical address size we
 + * support are clear as well.  We also validate the physical itself.
 + */
 +#define pmd_bad(pmd)                  ((pmd_val(pmd) & ~PAGE_MASK) || \
 +                                       !__kern_addr_valid(pmd_val(pmd)))
 +
 +#define pud_none(pud)                 (!pud_val(pud))
 +
 +#define pud_bad(pud)                  ((pud_val(pud) & ~PAGE_MASK) || \
 +                                       !__kern_addr_valid(pud_val(pud)))
 +
  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
extern void set_pmd_at(struct mm_struct *mm, unsigned long addr,
-                      pmd_t *pmdp, pmd_t pmd);
+ void set_pmd_at(struct mm_struct *mm, unsigned long addr,
+               pmd_t *pmdp, pmd_t pmd);
  #else
  static inline void set_pmd_at(struct mm_struct *mm, unsigned long addr,
                              pmd_t *pmdp, pmd_t pmd)
@@@ -900,28 -881,24 +900,28 @@@ static inline void __set_pte_at(struct 
  extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
  extern pmd_t swapper_low_pmd_dir[PTRS_PER_PMD];
  
extern void paging_init(void);
extern unsigned long find_ecache_flush_span(unsigned long size);
+ void paging_init(void);
+ unsigned long find_ecache_flush_span(unsigned long size);
  
  struct seq_file;
extern void mmu_info(struct seq_file *);
+ void mmu_info(struct seq_file *);
  
  struct vm_area_struct;
extern void update_mmu_cache(struct vm_area_struct *, unsigned long, pte_t *);
+ void update_mmu_cache(struct vm_area_struct *, unsigned long, pte_t *);
  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
extern void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr,
-                                pmd_t *pmd);
+ void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr,
+                         pmd_t *pmd);
  
 +#define __HAVE_ARCH_PMDP_INVALIDATE
 +extern void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address,
 +                          pmd_t *pmdp);
 +
  #define __HAVE_ARCH_PGTABLE_DEPOSIT
extern void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp,
-                                      pgtable_t pgtable);
+ void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp,
+                               pgtable_t pgtable);
  
  #define __HAVE_ARCH_PGTABLE_WITHDRAW
extern pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp);
+ pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp);
  #endif
  
  /* Encode and de-code a swap entry */
  #define __swp_entry_to_pte(x)         ((pte_t) { (x).val })
  
  /* File offset in PTE support. */
extern unsigned long pte_file(pte_t);
+ unsigned long pte_file(pte_t);
  #define pte_to_pgoff(pte)     (pte_val(pte) >> PAGE_SHIFT)
extern pte_t pgoff_to_pte(unsigned long);
+ pte_t pgoff_to_pte(unsigned long);
  #define PTE_FILE_MAX_BITS     (64UL - PAGE_SHIFT - 1UL)
  
- extern int page_in_phys_avail(unsigned long paddr);
 -extern unsigned long sparc64_valid_addr_bitmap[];
 -
 -/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
 -static inline bool kern_addr_valid(unsigned long addr)
 -{
 -      unsigned long paddr = __pa(addr);
 -
 -      if ((paddr >> 41UL) != 0UL)
 -              return false;
 -      return test_bit(paddr >> 22, sparc64_valid_addr_bitmap);
 -}
 -
+ int page_in_phys_avail(unsigned long paddr);
  
  /*
   * For sparc32&64, the pfn in io_remap_pfn_range() carries <iospace> in
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/sysctl.c
Simple merge