Merge branch 'akpm' (patches from Andrew)
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 Jul 2015 00:47:51 +0000 (17:47 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 Jul 2015 00:47:51 +0000 (17:47 -0700)
Merge third patchbomb from Andrew Morton:

 - the rest of MM

 - scripts/gdb updates

 - ipc/ updates

 - lib/ updates

 - MAINTAINERS updates

 - various other misc things

* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (67 commits)
  genalloc: rename of_get_named_gen_pool() to of_gen_pool_get()
  genalloc: rename dev_get_gen_pool() to gen_pool_get()
  x86: opt into HAVE_COPY_THREAD_TLS, for both 32-bit and 64-bit
  MAINTAINERS: add zpool
  MAINTAINERS: BCACHE: Kent Overstreet has changed email address
  MAINTAINERS: move Jens Osterkamp to CREDITS
  MAINTAINERS: remove unused nbd.h pattern
  MAINTAINERS: update brcm gpio filename pattern
  MAINTAINERS: update brcm dts pattern
  MAINTAINERS: update sound soc intel patterns
  MAINTAINERS: remove website for paride
  MAINTAINERS: update Emulex ocrdma email addresses
  bcache: use kvfree() in various places
  libcxgbi: use kvfree() in cxgbi_free_big_mem()
  target: use kvfree() in session alloc and free
  IB/ehca: use kvfree() in ipz_queue_{cd}tor()
  drm/nouveau/gem: use kvfree() in u_free()
  drm: use kvfree() in drm_free_large()
  cxgb4: use kvfree() in t4_free_mem()
  cxgb3: use kvfree() in cxgb_free_mem()
  ...

1  2 
MAINTAINERS
arch/arc/include/asm/dma-mapping.h
fs/seq_file.c
include/linux/kernel.h

diff --combined MAINTAINERS
index ab6fb58b3873cc4b628784cec6b2488c0cb7c850,af61ea8d21626c8d42e6e386f20f63f618eb8ed6..058b0fbc52ff041f544f3f4e955159eae9c7efa1
@@@ -2026,10 -2026,10 +2026,10 @@@ S:   Maintaine
  F:    drivers/net/hamradio/baycom*
  
  BCACHE (BLOCK LAYER CACHE)
- M:    Kent Overstreet <kmo@daterainc.com>
+ M:    Kent Overstreet <kent.overstreet@gmail.com>
  L:    linux-bcache@vger.kernel.org
  W:    http://bcache.evilpiepirate.org
- S:    Maintained:
+ S:    Maintained
  F:    drivers/md/bcache/
  
  BDISP ST MEDIA DRIVER
@@@ -2280,7 -2280,7 +2280,7 @@@ S:      Maintaine
  F:    arch/mips/bmips/*
  F:    arch/mips/include/asm/mach-bmips/*
  F:    arch/mips/kernel/*bmips*
- F:    arch/mips/boot/dts/bcm*.dts*
+ F:    arch/mips/boot/dts/brcm/bcm*.dts*
  F:    drivers/irqchip/irq-bcm7*
  F:    drivers/irqchip/irq-brcmstb*
  
@@@ -2339,7 -2339,7 +2339,7 @@@ M:      Ray Jui <rjui@broadcom.com
  L:    bcm-kernel-feedback-list@broadcom.com
  S:    Supported
  F:    drivers/gpio/gpio-bcm-kona.c
- F:    Documentation/devicetree/bindings/gpio/gpio-bcm-kona.txt
+ F:    Documentation/devicetree/bindings/gpio/brcm,kona-gpio.txt
  
  BROADCOM NVRAM DRIVER
  M:    Rafał Miłecki <zajec5@gmail.com>
@@@ -5285,11 -5285,10 +5285,10 @@@ INTEL ASoC BDW/HSW DRIVER
  M:    Jie Yang <yang.jie@linux.intel.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
- F:    sound/soc/intel/sst-haswell*
- F:    sound/soc/intel/sst-dsp*
- F:    sound/soc/intel/sst-firmware.c
- F:    sound/soc/intel/broadwell.c
- F:    sound/soc/intel/haswell.c
+ F:    sound/soc/intel/common/sst-dsp*
+ F:    sound/soc/intel/common/sst-firmware.c
+ F:    sound/soc/intel/boards/broadwell.c
+ F:    sound/soc/intel/haswell/
  
  INTEL C600 SERIES SAS CONTROLLER DRIVER
  M:    Intel SCU Linux support <intel-linux-scu@intel.com>
@@@ -7019,7 -7018,6 +7018,6 @@@ L:      nbd-general@lists.sourceforge.ne
  T:    git git://git.pengutronix.de/git/mpa/linux-nbd.git
  F:    Documentation/blockdev/nbd.txt
  F:    drivers/block/nbd.c
- F:    include/linux/nbd.h
  F:    include/uapi/linux/nbd.h
  
  NETWORK DROP MONITOR
@@@ -7647,7 -7645,6 +7645,6 @@@ F:      arch/*/include/asm/paravirt.
  PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES
  M:    Tim Waugh <tim@cyberelk.net>
  L:    linux-parport@lists.infradead.org (subscribers-only)
- W:    http://www.torque.net/linux-pp.html
  S:    Maintained
  F:    Documentation/blockdev/paride.txt
  F:    drivers/block/paride/
@@@ -9091,9 -9088,9 +9088,9 @@@ S:      Supporte
  F:    drivers/net/ethernet/emulex/benet/
  
  EMULEX ONECONNECT ROCE DRIVER
- M:    Selvin Xavier <selvin.xavier@emulex.com>
- M:    Devesh Sharma <devesh.sharma@emulex.com>
- M:    Mitesh Ahuja <mitesh.ahuja@emulex.com>
+ M:    Selvin Xavier <selvin.xavier@avagotech.com>
+ M:    Devesh Sharma <devesh.sharma@avagotech.com>
+ M:    Mitesh Ahuja <mitesh.ahuja@avagotech.com>
  L:    linux-rdma@vger.kernel.org
  W:    http://www.emulex.com
  S:    Supported
@@@ -9593,7 -9590,6 +9590,6 @@@ F:      include/uapi/linux/spi
  
  SPIDERNET NETWORK DRIVER for CELL
  M:    Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
- M:    Jens Osterkamp <jens@de.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    Documentation/networking/spider_net.txt
@@@ -9832,13 -9828,6 +9828,13 @@@ F:    arch/arc
  F:    Documentation/devicetree/bindings/arc/
  F:    drivers/tty/serial/arc_uart.c
  
 +SYNOPSYS ARC SDP platform support
 +M:    Alexey Brodkin <abrodkin@synopsys.com>
 +S:    Supported
 +F:    arch/arc/plat-axs10x
 +F:    arch/arc/boot/dts/ax*
 +F:    Documentation/devicetree/bindings/arc/axs10*
 +
  SYSTEM CONFIGURATION (SYSCON)
  M:    Lee Jones <lee.jones@linaro.org>
  M:    Arnd Bergmann <arnd@arndb.de>
@@@ -11354,6 -11343,13 +11350,13 @@@ L: zd1211-devs@lists.sourceforge.net (s
  S:    Maintained
  F:    drivers/net/wireless/zd1211rw/
  
+ ZPOOL COMPRESSED PAGE STORAGE API
+ M:    Dan Streetman <ddstreet@ieee.org>
+ L:    linux-mm@kvack.org
+ S:    Maintained
+ F:    mm/zpool.c
+ F:    include/linux/zpool.h
  ZR36067 VIDEO FOR LINUX DRIVER
  L:    mjpeg-users@lists.sourceforge.net
  L:    linux-media@vger.kernel.org
index fd6cdb56d4fd7e2956cee9a88fb6e6c7520c8c26,f787894613addf07030feaa4560726a6fd8cc9f9..2d28ba939d8edc71c693442b4464076f840ea5ff
  #include <asm-generic/dma-coherent.h>
  #include <asm/cacheflush.h>
  
 -#ifndef CONFIG_ARC_PLAT_NEEDS_CPU_TO_DMA
 -/*
 - * dma_map_* API take cpu addresses, which is kernel logical address in the
 - * untranslated address space (0x8000_0000) based. The dma address (bus addr)
 - * ideally needs to be 0x0000_0000 based hence these glue routines.
 - * However given that intermediate bus bridges can ignore the high bit, we can
 - * do with these routines being no-ops.
 - * If a platform/device comes up which sriclty requires 0 based bus addr
 - * (e.g. AHB-PCI bridge on Angel4 board), then it can provide it's own versions
 - */
 -#define plat_dma_addr_to_kernel(dev, addr) ((unsigned long)(addr))
 -#define plat_kernel_addr_to_dma(dev, ptr) ((dma_addr_t)(ptr))
 -
 -#else
 -#include <plat/dma_addr.h>
 -#endif
 -
  void *dma_alloc_noncoherent(struct device *dev, size_t size,
                            dma_addr_t *dma_handle, gfp_t gfp);
  
@@@ -77,7 -94,7 +77,7 @@@ dma_map_single(struct device *dev, voi
               enum dma_data_direction dir)
  {
        _dma_cache_sync((unsigned long)cpu_addr, size, dir);
 -      return plat_kernel_addr_to_dma(dev, cpu_addr);
 +      return (dma_addr_t)cpu_addr;
  }
  
  static inline void
@@@ -130,14 -147,16 +130,14 @@@ static inline voi
  dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
                        size_t size, enum dma_data_direction dir)
  {
 -      _dma_cache_sync(plat_dma_addr_to_kernel(dev, dma_handle), size,
 -                      DMA_FROM_DEVICE);
 +      _dma_cache_sync(dma_handle, size, DMA_FROM_DEVICE);
  }
  
  static inline void
  dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle,
                           size_t size, enum dma_data_direction dir)
  {
 -      _dma_cache_sync(plat_dma_addr_to_kernel(dev, dma_handle), size,
 -                      DMA_TO_DEVICE);
 +      _dma_cache_sync(dma_handle, size, DMA_TO_DEVICE);
  }
  
  static inline void
@@@ -145,7 -164,8 +145,7 @@@ dma_sync_single_range_for_cpu(struct de
                              unsigned long offset, size_t size,
                              enum dma_data_direction direction)
  {
 -      _dma_cache_sync(plat_dma_addr_to_kernel(dev, dma_handle) + offset,
 -                      size, DMA_FROM_DEVICE);
 +      _dma_cache_sync(dma_handle + offset, size, DMA_FROM_DEVICE);
  }
  
  static inline void
@@@ -153,26 -173,29 +153,28 @@@ dma_sync_single_range_for_device(struc
                                 unsigned long offset, size_t size,
                                 enum dma_data_direction direction)
  {
 -      _dma_cache_sync(plat_dma_addr_to_kernel(dev, dma_handle) + offset,
 -                      size, DMA_TO_DEVICE);
 +      _dma_cache_sync(dma_handle + offset, size, DMA_TO_DEVICE);
  }
  
  static inline void
- dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
+ dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sglist, int nelems,
                    enum dma_data_direction dir)
  {
        int i;
+       struct scatterlist *sg;
  
-       for (i = 0; i < nelems; i++, sg++)
+       for_each_sg(sglist, sg, nelems, i)
                _dma_cache_sync((unsigned int)sg_virt(sg), sg->length, dir);
  }
  
  static inline void
- dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
-                      enum dma_data_direction dir)
+ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sglist,
+                      int nelems, enum dma_data_direction dir)
  {
        int i;
+       struct scatterlist *sg;
  
-       for (i = 0; i < nelems; i++, sg++)
+       for_each_sg(sglist, sg, nelems, i)
                _dma_cache_sync((unsigned int)sg_virt(sg), sg->length, dir);
  }
  
diff --combined fs/seq_file.c
index 52b492721603db1e37a8fb424a7f112a4932da2f,760e25dad9850b77a3a73568cbf109e2a88a9a7c..1d9c1cbd4d0b4a1a17dd924e876c854b8d722169
@@@ -48,18 -48,21 +48,21 @@@ static void *seq_buf_alloc(unsigned lon
   *    ERR_PTR(error).  In the end of sequence they return %NULL. ->show()
   *    returns 0 in case of success and negative number in case of error.
   *    Returning SEQ_SKIP means "discard this element and move on".
+  *    Note: seq_open() will allocate a struct seq_file and store its
+  *    pointer in @file->private_data. This pointer should not be modified.
   */
  int seq_open(struct file *file, const struct seq_operations *op)
  {
-       struct seq_file *p = file->private_data;
+       struct seq_file *p;
+       WARN_ON(file->private_data);
+       p = kzalloc(sizeof(*p), GFP_KERNEL);
+       if (!p)
+               return -ENOMEM;
+       file->private_data = p;
  
-       if (!p) {
-               p = kmalloc(sizeof(*p), GFP_KERNEL);
-               if (!p)
-                       return -ENOMEM;
-               file->private_data = p;
-       }
-       memset(p, 0, sizeof(*p));
        mutex_init(&p->lock);
        p->op = op;
  #ifdef CONFIG_USER_NS
@@@ -538,7 -541,6 +541,7 @@@ int seq_dentry(struct seq_file *m, stru
  
        return res;
  }
 +EXPORT_SYMBOL(seq_dentry);
  
  static void *single_start(struct seq_file *p, loff_t *pos)
  {
diff --combined include/linux/kernel.h
index cfa9351c7536ff686ff89256b5a3c00aec3de2ab,0dfa4e31563decb63f12c76a26a7a3f275453cff..5f0be58640ea6e73f88dd02cb3ac3bc7cdb6a0e6
@@@ -439,6 -439,9 +439,9 @@@ extern int panic_on_unrecovered_nmi
  extern int panic_on_io_nmi;
  extern int panic_on_warn;
  extern int sysctl_panic_on_stackoverflow;
+ extern bool crash_kexec_post_notifiers;
  /*
   * Only to be used by arch init code. If the user over-wrote the default
   * CONFIG_PANIC_TIMEOUT, honor it.
@@@ -813,15 -816,13 +816,15 @@@ static inline void ftrace_dump(enum ftr
  #endif
  
  /* Permissions on a sysfs file: you didn't miss the 0 prefix did you? */
 -#define VERIFY_OCTAL_PERMISSIONS(perms)                                       \
 -      (BUILD_BUG_ON_ZERO((perms) < 0) +                               \
 -       BUILD_BUG_ON_ZERO((perms) > 0777) +                            \
 -       /* User perms >= group perms >= other perms */                 \
 -       BUILD_BUG_ON_ZERO(((perms) >> 6) < (((perms) >> 3) & 7)) +     \
 -       BUILD_BUG_ON_ZERO((((perms) >> 3) & 7) < ((perms) & 7)) +      \
 -       /* Other writable?  Generally considered a bad idea. */        \
 -       BUILD_BUG_ON_ZERO((perms) & 2) +                               \
 +#define VERIFY_OCTAL_PERMISSIONS(perms)                                               \
 +      (BUILD_BUG_ON_ZERO((perms) < 0) +                                       \
 +       BUILD_BUG_ON_ZERO((perms) > 0777) +                                    \
 +       /* USER_READABLE >= GROUP_READABLE >= OTHER_READABLE */                \
 +       BUILD_BUG_ON_ZERO((((perms) >> 6) & 4) < (((perms) >> 3) & 4)) +       \
 +       BUILD_BUG_ON_ZERO((((perms) >> 3) & 4) < ((perms) & 4)) +              \
 +       /* USER_WRITABLE >= GROUP_WRITABLE */                                  \
 +       BUILD_BUG_ON_ZERO((((perms) >> 6) & 2) < (((perms) >> 3) & 2)) +       \
 +       /* OTHER_WRITABLE?  Generally considered a bad idea. */                \
 +       BUILD_BUG_ON_ZERO((perms) & 2) +                                       \
         (perms))
  #endif