Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 12 Jul 2015 03:44:31 +0000 (20:44 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 12 Jul 2015 03:44:31 +0000 (20:44 -0700)
Pull libnvdimm fixes from Dan Williams:
 "1) Fixes for a handful of smatch reports (Thanks Dan C.!) and minor
     bug fixes (patches 1-6)

  2) Correctness fixes to the BLK-mode nvdimm driver (patches 7-10).

     Granted these are slightly large for a -rc update.  They have been
     out for review in one form or another since the end of May and were
     deferred from the merge window while we settled on the "PMEM API"
     for the PMEM-mode nvdimm driver (ie memremap_pmem, memcpy_to_pmem,
     and wmb_pmem).

     Now that those apis are merged we implement them in the BLK driver
     to guarantee that mmio aperture moves stay ordered with respect to
     incoming read/write requests, and that writes are flushed through
     those mmio-windows and platform-buffers to be persistent on media.

  These pass the sub-system unit tests with the updates to
  tools/testing/nvdimm, and have received a successful build-report from
  the kbuild robot (468 configs).

  With acks from Rafael for the touches to drivers/acpi/"

* 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm:
  nfit: add support for NVDIMM "latch" flag
  nfit: update block I/O path to use PMEM API
  tools/testing/nvdimm: add mock acpi_nfit_flush_address entries to nfit_test
  tools/testing/nvdimm: fix return code for unimplemented commands
  tools/testing/nvdimm: mock ioremap_wt
  pmem: add maintainer for include/linux/pmem.h
  nfit: fix smatch "use after null check" report
  nvdimm: Fix return value of nvdimm_bus_init() if class_create() fails
  libnvdimm: smatch cleanups in __nd_ioctl
  sparse: fix misplaced __pmem definition

1  2 
MAINTAINERS
include/linux/compiler.h

diff --combined MAINTAINERS
index b3ea3b687a25b6e53ea2574fc6b542367b8cfbf5,a8306b25c13c9a604f9844d6918e07aab6d5f523..fd60784430838fb99d5cb13ae8767298f6b9b35d
@@@ -1614,7 -1614,6 +1614,7 @@@ M:      Lorenzo Pieralisi <lorenzo.pieralisi
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/vexpress*
 +F:    arch/arm64/boot/dts/arm/vexpress*
  F:    arch/arm/mach-vexpress/
  F:    */*/vexpress*
  F:    */*/*/vexpress*
@@@ -2027,10 -2026,10 +2027,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
@@@ -2281,7 -2280,7 +2281,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*
  
@@@ -2340,7 -2339,7 +2340,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>
@@@ -2563,31 -2562,19 +2563,31 @@@ F:   arch/powerpc/include/uapi/asm/spu*.
  F:    arch/powerpc/oprofile/*cell*
  F:    arch/powerpc/platforms/cell/
  
 -CEPH DISTRIBUTED FILE SYSTEM CLIENT
 +CEPH COMMON CODE (LIBCEPH)
 +M:    Ilya Dryomov <idryomov@gmail.com>
  M:    "Yan, Zheng" <zyan@redhat.com>
  M:    Sage Weil <sage@redhat.com>
  L:    ceph-devel@vger.kernel.org
  W:    http://ceph.com/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
 +T:    git git://github.com/ceph/ceph-client.git
  S:    Supported
 -F:    Documentation/filesystems/ceph.txt
 -F:    fs/ceph/
  F:    net/ceph/
  F:    include/linux/ceph/
  F:    include/linux/crush/
  
 +CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH)
 +M:    "Yan, Zheng" <zyan@redhat.com>
 +M:    Sage Weil <sage@redhat.com>
 +M:    Ilya Dryomov <idryomov@gmail.com>
 +L:    ceph-devel@vger.kernel.org
 +W:    http://ceph.com/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
 +T:    git git://github.com/ceph/ceph-client.git
 +S:    Supported
 +F:    Documentation/filesystems/ceph.txt
 +F:    fs/ceph/
 +
  CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
  L:    linux-usb@vger.kernel.org
  S:    Orphan
@@@ -2776,7 -2763,7 +2776,7 @@@ F:      Documentation/devicetree/bindings/me
  F:    drivers/media/platform/coda/
  
  COMMON CLK FRAMEWORK
 -M:    Mike Turquette <mturquette@linaro.org>
 +M:    Michael Turquette <mturquette@baylibre.com>
  M:    Stephen Boyd <sboyd@codeaurora.org>
  L:    linux-clk@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
@@@ -3229,11 -3216,6 +3229,11 @@@ L:    platform-driver-x86@vger.kernel.or
  S:    Maintained
  F:    drivers/platform/x86/dell-laptop.c
  
 +DELL LAPTOP RBTN DRIVER
 +M:    Pali Rohár <pali.rohar@gmail.com>
 +S:    Maintained
 +F:    drivers/platform/x86/dell-rbtn.*
 +
  DELL LAPTOP FREEFALL DRIVER
  M:    Pali Rohár <pali.rohar@gmail.com>
  S:    Maintained
@@@ -4443,11 -4425,9 +4443,11 @@@ FUSE: FILESYSTEM IN USERSPAC
  M:    Miklos Szeredi <miklos@szeredi.hu>
  L:    fuse-devel@lists.sourceforge.net
  W:    http://fuse.sourceforge.net/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git
  S:    Maintained
  F:    fs/fuse/
  F:    include/uapi/linux/fuse.h
 +F:    Documentation/filesystems/fuse.txt
  
  FUTURE DOMAIN TMC-16x0 SCSI DRIVER (16-bit)
  M:    Rik Faith <faith@cs.unc.edu>
@@@ -5305,10 -5285,11 +5305,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>
@@@ -5483,13 -5464,6 +5483,13 @@@ F:    include/linux/mei_cl_bus.
  F:    drivers/misc/mei/*
  F:    Documentation/misc-devices/mei/*
  
 +INTEL PMC IPC DRIVER
 +M:    Zha Qipeng<qipeng.zha@intel.com>
 +L:    platform-driver-x86@vger.kernel.org
 +S:    Maintained
 +F:    drivers/platform/x86/intel_pmc_ipc.c
 +F:    arch/x86/include/asm/intel_pmc_ipc.h
 +
  IOC3 ETHERNET DRIVER
  M:    Ralf Baechle <ralf@linux-mips.org>
  L:    linux-mips@linux-mips.org
@@@ -6160,6 -6134,7 +6160,7 @@@ L:      linux-nvdimm@lists.01.or
  Q:    https://patchwork.kernel.org/project/linux-nvdimm/list/
  S:    Supported
  F:    drivers/nvdimm/pmem.c
+ F:    include/linux/pmem.h
  
  LINUX FOR IBM pSERIES (RS/6000)
  M:    Paul Mackerras <paulus@au.ibm.com>
@@@ -6174,7 -6149,7 +6175,7 @@@ M:      Michael Ellerman <mpe@ellerman.id.au
  W:    http://www.penguinppc.org/
  L:    linuxppc-dev@lists.ozlabs.org
  Q:    http://patchwork.ozlabs.org/project/linuxppc-dev/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git
  S:    Supported
  F:    Documentation/powerpc/
  F:    arch/powerpc/
@@@ -6813,8 -6788,9 +6814,8 @@@ S:      Maintaine
  F:    drivers/platform/x86/msi-laptop.c
  
  MSI WMI SUPPORT
 -M:    Anisse Astier <anisse@astier.eu>
  L:    platform-driver-x86@vger.kernel.org
 -S:    Supported
 +S:    Orphan
  F:    drivers/platform/x86/msi-wmi.c
  
  MSI001 MEDIA DRIVER
@@@ -7044,6 -7020,7 +7045,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
@@@ -7232,25 -7209,15 +7233,25 @@@ F:   drivers/power/bq27x00_battery.
  F:    drivers/power/isp1704_charger.c
  F:    drivers/power/rx51_battery.c
  
 -NTB DRIVER
 +NTB DRIVER CORE
  M:    Jon Mason <jdmason@kudzu.us>
  M:    Dave Jiang <dave.jiang@intel.com>
 +M:    Allen Hubbe <Allen.Hubbe@emc.com>
  S:    Supported
  W:    https://github.com/jonmason/ntb/wiki
  T:    git git://github.com/jonmason/ntb.git
  F:    drivers/ntb/
  F:    drivers/net/ntb_netdev.c
  F:    include/linux/ntb.h
 +F:    include/linux/ntb_transport.h
 +
 +NTB INTEL DRIVER
 +M:    Jon Mason <jdmason@kudzu.us>
 +M:    Dave Jiang <dave.jiang@intel.com>
 +S:    Supported
 +W:    https://github.com/jonmason/ntb/wiki
 +T:    git git://github.com/jonmason/ntb.git
 +F:    drivers/ntb/hw/intel/
  
  NTFS FILESYSTEM
  M:    Anton Altaparmakov <anton@tuxera.com>
@@@ -7394,6 -7361,7 +7395,6 @@@ M:      Ohad Ben-Cohen <ohad@wizery.com
  L:    linux-omap@vger.kernel.org
  S:    Maintained
  F:    drivers/hwspinlock/omap_hwspinlock.c
 -F:    arch/arm/mach-omap2/hwspinlock.c
  
  OMAP MMC SUPPORT
  M:    Jarkko Lavinen <jarkko.lavinen@nokia.com>
@@@ -7680,6 -7648,7 +7681,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/
@@@ -8379,12 -8348,10 +8380,12 @@@ RADOS BLOCK DEVICE (RBD
  M:    Ilya Dryomov <idryomov@gmail.com>
  M:    Sage Weil <sage@redhat.com>
  M:    Alex Elder <elder@kernel.org>
 -M:    ceph-devel@vger.kernel.org
 +L:    ceph-devel@vger.kernel.org
  W:    http://ceph.com/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
 +T:    git git://github.com/ceph/ceph-client.git
  S:    Supported
 +F:    Documentation/ABI/testing/sysfs-bus-rbd
  F:    drivers/block/rbd.c
  F:    drivers/block/rbd_types.h
  
@@@ -9125,9 -9092,9 +9126,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
@@@ -9627,6 -9594,7 +9628,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
@@@ -9865,13 -9833,6 +9866,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>
@@@ -11387,13 -11348,6 +11388,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
diff --combined include/linux/compiler.h
index 7f8ad9593da725438aaefb397b99d9fea4109f90,d8fbd500330e9822bb3e1e4a5c0b41f52b09a1c9..e08a6ae7c0a422fa72fe0b05d47faf14e651e5fb
  # define __release(x) __context__(x,-1)
  # define __cond_lock(x,c)     ((c) ? ({ __acquire(x); 1; }) : 0)
  # define __percpu     __attribute__((noderef, address_space(3)))
+ # define __pmem               __attribute__((noderef, address_space(5)))
  #ifdef CONFIG_SPARSE_RCU_POINTER
  # define __rcu                __attribute__((noderef, address_space(4)))
  #else
  # define __rcu
- # define __pmem               __attribute__((noderef, address_space(5)))
  #endif
  extern void __chk_user_ptr(const volatile void __user *);
  extern void __chk_io_ptr(const volatile void __iomem *);
@@@ -475,21 -475,6 +475,21 @@@ static __always_inline void __write_onc
        (volatile typeof(x) *)&(x); })
  #define ACCESS_ONCE(x) (*__ACCESS_ONCE(x))
  
 +/**
 + * lockless_dereference() - safely load a pointer for later dereference
 + * @p: The pointer to load
 + *
 + * Similar to rcu_dereference(), but for situations where the pointed-to
 + * object's lifetime is managed by something other than RCU.  That
 + * "something other" might be reference counting or simple immortality.
 + */
 +#define lockless_dereference(p) \
 +({ \
 +      typeof(p) _________p1 = READ_ONCE(p); \
 +      smp_read_barrier_depends(); /* Dependency order vs. p above. */ \
 +      (_________p1); \
 +})
 +
  /* Ignore/forbid kprobes attach on very low level functions marked by this attribute: */
  #ifdef CONFIG_KPROBES
  # define __kprobes    __attribute__((__section__(".kprobes.text")))