• Linus Torvalds's avatar
    Merge tag 'libnvdimm-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 8759957b
    Linus Torvalds authored
    Pull libnvdimm updates from Dan Williams:
     - Asynchronous address range scrub:
         Given the capacities of next generation persistent memory devices a
         scrub operation to find all poison may take 10s of seconds.  We
         want this scrub work to be done asynchronously with the rest of
         system initialization, so we move it out of line from the NFIT
         probing, i.e. acpi_nfit_add().
     - Clear poison:
         ACPI 6.1 introduces the ability to send "clear error" commands to
         the ACPI0012:00 device representing the root of an "nvdimm bus".
         Similar to relocating a bad block on a disk, this support clears
         media errors in response to a write.
     - Persistent memory resource tracking:
         A persistent memory range may be designated as simply "reserved" by
         platform firmware in the efi/e820 memory map.  Later when the NFIT
         driver loads it discovers that the range is "Persistent Memory".
         The NFIT bus driver inserts a resource to advertise that
         "persistent" attribute in the system resource tree for /proc/iomem
         and kernel-internal usages.
     - Miscellaneous cleanups and fixes:
         Workaround section misaligned pmem ranges when allocating a struct
         page memmap, fix handling of the read-only case in the ioctl path,
         and clean up block device major number allocation.
    * tag 'libnvdimm-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (26 commits)
      libnvdimm, pmem: clear poison on write
      libnvdimm, pmem: fix kmap_atomic() leak in error path
      nvdimm/btt: don't allocate unused major device number
      nvdimm/blk: don't allocate unused major device number
      pmem: don't allocate unused major device number
      ACPI: Change NFIT driver to insert new resource
      resource: Export insert_resource and remove_resource
      resource: Add remove_resource interface
      resource: Change __request_region to inherit from immediate parent
      libnvdimm, pmem: fix ia64 build, use PHYS_PFN
      nfit, libnvdimm: clear poison command support
      libnvdimm, pfn: 'resource'-address and 'size' attributes for pfn devices
      libnvdimm, pmem: adjust for section collisions with 'System RAM'
      libnvdimm, pmem: fix 'pfn' support for section-misaligned namespaces
      libnvdimm: Fix security issue with DSM IOCTL.
      libnvdimm: Clean-up access mode check.
      tools/testing/nvdimm: expand ars unit testing
      nfit: disable userspace initiated ars during scrub
      nfit: scrub and register regions in a workqueue
      nfit, libnvdimm: async region scrub workqueue
ioport.h 10.3 KB