1. 10 Mar, 2016 1 commit
  2. 09 Mar, 2016 9 commits
    • Dan Williams's avatar
      libnvdimm, pmem: clear poison on write · 59e64739
      Dan Williams authored
      If a write is directed at a known bad block perform the following:
      
      1/ write the data
      
      2/ send a clear poison command
      
      3/ invalidate the poison out of the cache hierarchy
      
      Cc: <x86@kernel.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarVishal Verma <vishal.l.verma@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      59e64739
    • Dan Williams's avatar
      libnvdimm, pmem: fix kmap_atomic() leak in error path · b5ebc8ec
      Dan Williams authored
      When we enounter a bad block we need to kunmap_atomic() before
      returning.
      
      Cc: <stable@vger.kernel.org>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarVishal Verma <vishal.l.verma@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      b5ebc8ec
    • NeilBrown's avatar
      nvdimm/btt: don't allocate unused major device number · ff8e92d5
      NeilBrown authored
      alloc_disk(0) does not require or use a ->major number,
      all devices are allocated with a major of BLOCK_EXT_MAJOR.
      
      So don't allocate btt_major.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      ff8e92d5
    • NeilBrown's avatar
      nvdimm/blk: don't allocate unused major device number · ec56151d
      NeilBrown authored
      When alloc_disk(0) is used ->major is completely ignored, all devices
      are allocated with a "major" of BLOCK_EXT_MAJOR.
      
      So don't allocate nd_blk_major
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      ec56151d
    • NeilBrown's avatar
      pmem: don't allocate unused major device number · 55155291
      NeilBrown authored
      When alloc_disk(0) or alloc_disk-node(0, XX) is used, the ->major
      number is completely ignored:  all devices are allocated with a
      major of BLOCK_EXT_MAJOR.
      
      So there is no point allocating pmem_major.
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      55155291
    • Toshi Kani's avatar
      ACPI: Change NFIT driver to insert new resource · af1996ef
      Toshi Kani authored
      ACPI 6 defines persistent memory (PMEM) ranges in multiple
      firmware interfaces, e820, EFI, and ACPI NFIT table.  This EFI
      change, however, leads to hit a bug in the grub bootloader, which
      treats EFI_PERSISTENT_MEMORY type as regular memory and corrupts
      stored user data [1].
      
      Therefore, BIOS may set generic reserved type in e820 and EFI to
      cover PMEM ranges.  The kernel can initialize PMEM ranges from
      ACPI NFIT table alone.
      
      This scheme causes a problem in the iomem table, though.  On x86,
      for instance, e820_reserve_resources() initializes top-level entries
      (iomem_resource.child) from the e820 table at early boot-time.
      This creates "reserved" entry for a PMEM range, which does not allow
      region_intersects() to check with PMEM type.
      
      Change acpi_nfit_register_region() to call acpi_nfit_insert_resource(),
      which calls insert_resource() to insert a PMEM entry from NFIT when
      the iomem table does not have a PMEM entry already.  That is, when
      a PMEM range is marked as reserved type in e820, it inserts
      "Persistent Memory" entry, which results as follows.
      
       + "Persistent Memory"
          + "reserved"
      
      This allows the EINJ driver, which calls region_intersects() to check
      PMEM ranges, to work continuously even if BIOS sets reserved type
      (or sets nothing) to PMEM ranges in e820 and EFI.
      
      [1]: https://lists.gnu.org/archive/html/grub-devel/2015-11/msg00209.htmlSigned-off-by: default avatarToshi Kani <toshi.kani@hpe.com>
      Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      af1996ef
    • Toshi Kani's avatar
      resource: Export insert_resource and remove_resource · 8095d0f2
      Toshi Kani authored
      insert_resource() and remove_resouce() are called by producers
      of resources, such as FW modules and bus drivers.  These modules
      may be implemented as loadable modules.
      
      Export insert_resource() and remove_resouce() so that they can
      be called from such modules.
      
      link: https://lkml.org/lkml/2016/3/8/872Signed-off-by: default avatarToshi Kani <toshi.kani@hpe.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      8095d0f2
    • Toshi Kani's avatar
      resource: Add remove_resource interface · ff3cc952
      Toshi Kani authored
      insert_resource() and insert_resource_conflict() are called
      by resource producers to insert a new resource.  When there
      is any conflict, they move conflicting resources down to the
      children of the new resource.  There is no destructor of these
      interfaces, however.
      
      Add remove_resource(), which removes a resource previously
      inserted by insert_resource() or insert_resource_conflict(),
      and moves the children up to where they were before.
      
      __release_resource() is changed to have @release_child, so
      that this function can be used for remove_resource() as well.
      
      Also add comments to clarify that these functions are intended
      for producers of resources to avoid any confusion with
      request/release_resource() for consumers.
      Signed-off-by: default avatarToshi Kani <toshi.kani@hpe.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      ff3cc952
    • Toshi Kani's avatar
      resource: Change __request_region to inherit from immediate parent · 4e0d8f7e
      Toshi Kani authored
      __request_region() sets 'flags' of a new resource from @parent
      as it inherits the parent's attribute.  When a target resource
      has a conflict, this function inserts the new resource entry
      under the conflicted entry by updating @parent.  In this case,
      the new resource entry needs to inherit attribute from the updated
      parent.  This conflict is a typical case since __request_region()
      is used to allocate a new resource from a specific resource range.
      
      For instance, request_mem_region() calls __request_region() with
      @parent set to &iomem_resource, which is the root entry of the
      whole iomem range.  When this request results in inserting a new
      entry "DEV-A" under "BUS-1", "DEV-A" needs to inherit from the
      immediate parent "BUS-1" as it holds specific attribute for the
      range.
      
      root (&iomem_resource)
       :
       + "BUS-1"
          + "DEV-A"
      
      Change __request_region() to set 'flags' and 'desc' of a new entry
      from the immediate parent.
      Signed-off-by: default avatarToshi Kani <toshi.kani@hpe.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      4e0d8f7e
  3. 06 Mar, 2016 2 commits
  4. 05 Mar, 2016 16 commits
  5. 04 Mar, 2016 1 commit
  6. 28 Feb, 2016 11 commits
    • Linus Torvalds's avatar
      Linux 4.5-rc6 · fc77dbd3
      Linus Torvalds authored
      fc77dbd3
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1b9540ce
      Linus Torvalds authored
      Pull perf fixes from Thomas Gleixner:
       "A rather largish series of 12 patches addressing a maze of race
        conditions in the perf core code from Peter Zijlstra"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf: Robustify task_function_call()
        perf: Fix scaling vs. perf_install_in_context()
        perf: Fix scaling vs. perf_event_enable()
        perf: Fix scaling vs. perf_event_enable_on_exec()
        perf: Fix ctx time tracking by introducing EVENT_TIME
        perf: Cure event->pending_disable race
        perf: Fix race between event install and jump_labels
        perf: Fix cloning
        perf: Only update context time when active
        perf: Allow perf_release() with !event->ctx
        perf: Do not double free
        perf: Close install vs. exit race
      1b9540ce
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4b696dcb
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "This update contains:
      
         - Hopefully the last ASM CLAC fixups
      
         - A fix for the Quark family related to the IMR lock which makes
           kexec work again
      
         - A off-by-one fix in the MPX code.  Ironic, isn't it?
      
         - A fix for X86_PAE which addresses once more an unsigned long vs
           phys_addr_t hickup"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mpx: Fix off-by-one comparison with nr_registers
        x86/mm: Fix slow_virt_to_phys() for X86_PAE again
        x86/entry/compat: Add missing CLAC to entry_INT80_32
        x86/entry/32: Add an ASM_CLAC to entry_SYSENTER_32
        x86/platform/intel/quark: Change the kernel's IMR lock bit to false
      4b696dcb
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 76c03f0f
      Linus Torvalds authored
      Pull scheduler fixlet from Thomas Gleixner:
       "A trivial printk typo fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/deadline: Fix trivial typo in printk() message
      76c03f0f
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f055ae04
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "Four small fixes for irqchip drivers:
      
         - Add missing low level irq handler initialization on mxs, so
           interrupts can acutally be delivered
      
         - Add a missing barrier to the GIC driver
      
         - Two fixes for the GIC-V3-ITS driver, addressing a double EOI write
           and a cache flush beyond the actual region"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic-v3: Add missing barrier to 32bit version of gic_read_iar()
        irqchip/mxs: Add missing set_handle_irq()
        irqchip/gicv3-its: Avoid cache flush beyond ITS_BASERn memory size
        irqchip/gic-v3-its: Fix double ICC_EOIR write for LPI in EOImode==1
      f055ae04
    • Linus Torvalds's avatar
      Merge tag 'staging-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 8da51430
      Linus Torvalds authored
      Pull staging/android fix from Greg KH:
       "Here is one patch, for the android binder driver, to resolve a
        reported problem.  Turns out it has been around for a while (since
        3.15), so it is good to finally get it resolved.
      
        It has been in linux-next for a while with no reported issues"
      
      * tag 'staging-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        drivers: android: correct the size of struct binder_uintptr_t for BC_DEAD_BINDER_DONE
      8da51430
    • Linus Torvalds's avatar
      Merge tag 'usb-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 62718e30
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a few USB fixes for 4.5-rc6
      
        They fix a reported bug for some USB 3 devices by reverting the recent
        patch, a MAINTAINERS change for some drivers, some new device ids, and
        of course, the usual bunch of USB gadget driver fixes.
      
        All have been in linux-next for a while with no reported issues"
      
      * tag 'usb-4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        MAINTAINERS: drop OMAP USB and MUSB maintainership
        usb: musb: fix DMA for host mode
        usb: phy: msm: Trigger USB state detection work in DRD mode
        usb: gadget: net2280: fix endpoint max packet for super speed connections
        usb: gadget: gadgetfs: unregister gadget only if it got successfully registered
        usb: gadget: remove driver from pending list on probe error
        Revert "usb: hub: do not clear BOS field during reset device"
        usb: chipidea: fix return value check in ci_hdrc_pci_probe()
        usb: chipidea: error on overflow for port_test_write
        USB: option: add "4G LTE usb-modem U901"
        USB: cp210x: add IDs for GE B650V3 and B850V3 boards
        USB: option: add support for SIM7100E
        usb: musb: Fix DMA desired mode for Mentor DMA engine
        usb: gadget: fsl_qe_udc: fix IS_ERR_VALUE usage
        usb: dwc2: USB_DWC2 should depend on HAS_DMA
        usb: dwc2: host: fix the data toggle error in full speed descriptor dma
        usb: dwc2: host: fix logical omissions in dwc2_process_non_isoc_desc
        usb: dwc3: Fix assignment of EP transfer resources
        usb: dwc2: Add extra delay when forcing dr_mode
      62718e30
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 12b9fa6a
      Linus Torvalds authored
      Pull vfs fixes from Al Viro.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        do_last(): ELOOP failure exit should be done after leaving RCU mode
        should_follow_link(): validate ->d_seq after having decided to follow
        namei: ->d_inode of a pinned dentry is stable only for positives
        do_last(): don't let a bogus return value from ->open() et.al. to confuse us
        fs: return -EOPNOTSUPP if clone is not supported
        hpfs: don't truncate the file when delete fails
      12b9fa6a
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 340b3a5b
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "We didn't have a batch last week, so this one is slightly larger.
      
        None of them are scary though, a handful of fixes for small DT pieces,
        replacing properties with newer conventions.
      
        Highlights:
         - N900 fix for setting system revision
         - onenand init fix to avoid filesystem corruption
         - Clock fix for audio on Beaglebone-x15
         - Fixes on shmobile to deal with CONFIG_DEBUG_RODATA (default y in 4.6)
      
        + misc smaller stuff"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        MAINTAINERS: Extend info, add wiki and ml for meson arch
        MAINTAINERS: alpine: add a new maintainer and update the entry
        ARM: at91/dt: fix typo in sama5d2 pinmux descriptions
        ARM: OMAP2+: Fix onenand initialization to avoid filesystem corruption
        Revert "regulator: tps65217: remove tps65217.dtsi file"
        ARM: shmobile: Remove shmobile_boot_arg
        ARM: shmobile: Move shmobile_smp_{mpidr, fn, arg}[] from .text to .bss
        ARM: shmobile: r8a7779: Remove remainings of removed SCU boot setup code
        ARM: shmobile: Move shmobile_scu_base from .text to .bss
        ARM: OMAP2+: Fix omap_device for module reload on PM runtime forbid
        ARM: OMAP2+: Improve omap_device error for driver writers
        ARM: DTS: am57xx-beagle-x15: Select SYS_CLK2 for audio clocks
        ARM: dts: am335x/am57xx: replace gpio-key,wakeup with wakeup-source property
        ARM: OMAP2+: Set system_rev from ATAGS for n900
        ARM: dts: orion5x: fix the missing mtd flash on linkstation lswtgl
        ARM: dts: kirkwood: use unique machine name for ds112
        ARM: dts: imx6: remove bogus interrupt-parent from CAAM node
      340b3a5b
    • Al Viro's avatar
      do_last(): ELOOP failure exit should be done after leaving RCU mode · 5129fa48
      Al Viro authored
      ... or we risk seeing a bogus value of d_is_symlink() there.
      
      Cc: stable@vger.kernel.org # v4.2+
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      5129fa48
    • Al Viro's avatar
      should_follow_link(): validate ->d_seq after having decided to follow · a7f77542
      Al Viro authored
      ... otherwise d_is_symlink() above might have nothing to do with
      the inode value we've got.
      
      Cc: stable@vger.kernel.org # v4.2+
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      a7f77542