]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'tip/auto-latest'
authorStephen Rothwell <sfr@canb.auug.org.au>
Fri, 30 May 2014 04:21:30 +0000 (14:21 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Fri, 30 May 2014 04:21:30 +0000 (14:21 +1000)
Conflicts:
arch/arm64/include/asm/thread_info.h
arch/arm64/mm/mmu.c
drivers/block/mtip32xx/mtip32xx.c

65 files changed:
1  2 
arch/arm/Kconfig
arch/arm/kernel/topology.c
arch/arm64/Kconfig
arch/arm64/include/asm/atomic.h
arch/arm64/include/asm/barrier.h
arch/arm64/include/asm/thread_info.h
arch/arm64/kernel/Makefile
arch/arm64/kernel/head.S
arch/arm64/kernel/setup.c
arch/arm64/mm/mmu.c
arch/mips/kernel/irq.c
arch/powerpc/kernel/smp.c
arch/s390/kernel/topology.c
arch/s390/pci/pci.c
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/tile/include/asm/thread_info.h
arch/x86/Kconfig
arch/x86/kernel/entry_32.S
arch/x86/kernel/entry_64.S
block/blk-iopoll.c
drivers/firewire/ohci.c
drivers/gpu/drm/drm_irq.c
drivers/gpu/drm/i915/i915_irq.c
drivers/md/dm-snap.c
drivers/md/dm.c
drivers/md/raid5.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
drivers/net/ethernet/chelsio/cxgb/cxgb2.c
drivers/net/ethernet/chelsio/cxgb4/sge.c
drivers/net/ethernet/chelsio/cxgb4vf/sge.c
drivers/net/ethernet/freescale/gianfar.c
drivers/net/ethernet/intel/i40e/i40e_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
drivers/net/wireless/ti/wlcore/main.c
fs/btrfs/inode.c
fs/ext4/resize.c
fs/gfs2/glops.c
fs/gfs2/recovery.c
fs/gfs2/sys.c
fs/nfs/filelayout/filelayoutdev.c
fs/nfs/inode.c
fs/nfs/pagelist.c
fs/nfs/pnfs.c
fs/nfs/pnfs.h
fs/nfs/write.c
include/asm-generic/vmlinux.lds.h
include/linux/netdevice.h
include/linux/sched.h
include/linux/uprobes.h
init/main.c
kernel/events/uprobes.c
kernel/sysctl.c
lib/Makefile
mm/filemap.c
net/bluetooth/hci_event.c
net/core/dev.c
net/ipv4/inetpeer.c
net/ipv4/tcp_output.c
net/sunrpc/xprtsock.c
net/unix/af_unix.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 9c086c63f91133ae2d512058ebeec081bf83d08e,7b8e3a2a00fb3e54214c44d663e6cb37720c7d67..e40b6d06d515ab9f390faf389487fdb96c7d41e8
@@@ -103,12 -99,7 +102,11 @@@ static inline struct thread_info *curre
  #define TIF_SIGPENDING                0
  #define TIF_NEED_RESCHED      1
  #define TIF_NOTIFY_RESUME     2       /* callback before returning to user */
 +#define TIF_FOREIGN_FPSTATE   3       /* CPU's FP state is not current's */
  #define TIF_SYSCALL_TRACE     8
- #define TIF_POLLING_NRFLAG    16
 +#define TIF_SYSCALL_AUDIT     9
 +#define TIF_SYSCALL_TRACEPOINT        10
 +#define TIF_SECCOMP           11
  #define TIF_MEMDIE            18      /* is terminating due to OOM killer */
  #define TIF_FREEZE            19
  #define TIF_RESTORE_SIGMASK   20
Simple merge
Simple merge
Simple merge
index 3a729de96f1506239d239423bd9f47d0be20b5bc,4a829a210bb6cb4a6b1e66a21388735609452bb2..b252c55349a824370f1c67a053674145c8e7ce01
@@@ -158,6 -192,17 +160,17 @@@ static void __init alloc_init_pmd(pud_
  {
        pmd_t *pmd;
        unsigned long next;
 -              prot_sect = prot_sect_kernel;
+       pmdval_t prot_sect;
+       pgprot_t prot_pte;
+       if (map_io) {
+               prot_sect = PMD_TYPE_SECT | PMD_SECT_AF |
+                           PMD_ATTRINDX(MT_DEVICE_nGnRE);
+               prot_pte = __pgprot(PROT_DEVICE_nGnRE);
+       } else {
++              prot_sect = PROT_SECT_NORMAL_EXEC;
+               prot_pte = PAGE_KERNEL_EXEC;
+       }
  
        /*
         * Check for initial section mappings in the pgd/pud and remove them.
@@@ -195,30 -242,7 +210,30 @@@ static void __init alloc_init_pud(pgd_
  
        do {
                next = pud_addr_end(addr, end);
 -              alloc_init_pmd(pud, addr, next, phys, map_io);
 +
 +              /*
 +               * For 4K granule only, attempt to put down a 1GB block
 +               */
 +              if ((PAGE_SHIFT == 12) &&
 +                  ((addr | next | phys) & ~PUD_MASK) == 0) {
 +                      pud_t old_pud = *pud;
 +                      set_pud(pud, __pud(phys | PROT_SECT_NORMAL_EXEC));
 +
 +                      /*
 +                       * If we have an old value for a pud, it will
 +                       * be pointing to a pmd table that we no longer
 +                       * need (from swapper_pg_dir).
 +                       *
 +                       * Look up the old pmd table and free it.
 +                       */
 +                      if (!pud_none(old_pud)) {
 +                              phys_addr_t table = __pa(pmd_offset(&old_pud, 0));
 +                              memblock_free(table, PAGE_SIZE);
 +                              flush_tlb_all();
 +                      }
 +              } else {
-                       alloc_init_pmd(pud, addr, next, phys);
++                      alloc_init_pmd(pud, addr, next, phys, map_io);
 +              }
                phys += next - addr;
        } while (pud++, addr = next, addr != end);
  }
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0582c02a6b0cc16851e1ae3f963e0a7c751c9e15,8b2f1bde2889bee05cada1d71c19370dc52b5ee3..bb894c8bec562c337e3166c3509ba11334c864c2
@@@ -106,12 -107,6 +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 0135028e48299799ad69dc140bab02e04468ab04,f1a051ca301a472605915aee308980879ed11ab8..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
Simple merge
Simple merge
Simple merge
index b565372a91f36cd90493720f3a12e484d435548d,ec5c3f4cdd011de07be08bc1b74a955fb4b3fcda..0de123afdb346164d278bf801424629e2059b242
@@@ -868,47 -864,11 +868,47 @@@ static void drm_update_vblank_count(str
                vblanktimestamp(dev, crtc, tslot) = t_vblank;
        }
  
-       smp_mb__before_atomic_inc();
+       smp_mb__before_atomic();
        atomic_add(diff, &dev->vblank[crtc].count);
-       smp_mb__after_atomic_inc();
+       smp_mb__after_atomic();
  }
  
 +/**
 + * drm_vblank_enable - enable the vblank interrupt on a CRTC
 + * @dev: DRM device
 + * @crtc: CRTC in question
 + */
 +static int drm_vblank_enable(struct drm_device *dev, int crtc)
 +{
 +      int ret = 0;
 +
 +      assert_spin_locked(&dev->vbl_lock);
 +
 +      spin_lock(&dev->vblank_time_lock);
 +
 +      if (!dev->vblank[crtc].enabled) {
 +              /*
 +               * Enable vblank irqs under vblank_time_lock protection.
 +               * All vblank count & timestamp updates are held off
 +               * until we are done reinitializing master counter and
 +               * timestamps. Filtercode in drm_handle_vblank() will
 +               * prevent double-accounting of same vblank interval.
 +               */
 +              ret = dev->driver->enable_vblank(dev, crtc);
 +              DRM_DEBUG("enabling vblank on crtc %d, ret: %d\n", crtc, ret);
 +              if (ret)
 +                      atomic_dec(&dev->vblank[crtc].refcount);
 +              else {
 +                      dev->vblank[crtc].enabled = true;
 +                      drm_update_vblank_count(dev, crtc);
 +              }
 +      }
 +
 +      spin_unlock(&dev->vblank_time_lock);
 +
 +      return ret;
 +}
 +
  /**
   * drm_vblank_get - get a reference count on vblank events
   * @dev: DRM device
Simple merge
Simple merge
diff --cc drivers/md/dm.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc fs/gfs2/glops.c
Simple merge
Simple merge
diff --cc fs/gfs2/sys.c
Simple merge
Simple merge
diff --cc fs/nfs/inode.c
Simple merge
Simple merge
diff --cc fs/nfs/pnfs.c
Simple merge
diff --cc fs/nfs/pnfs.h
Simple merge
diff --cc fs/nfs/write.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc init/main.c
Simple merge
Simple merge
diff --cc kernel/sysctl.c
Simple merge
diff --cc lib/Makefile
Simple merge
diff --cc mm/filemap.c
Simple merge
Simple merge
diff --cc net/core/dev.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge