1. 09 May, 2015 5 commits
    • Linus Torvalds's avatar
      Merge tag 'dm-4.1-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 5d5df5ee
      Linus Torvalds authored
      Pull device mapper fixes from Mike Snitzer:
       "Two additional fixes for changes introduced via DM during the 4.1
        merge window.
      
        The first reverts a dm-crypt change that wasn't correct.  The second
        fixes a device format regression that impacted userspace"
      
      * tag 'dm-4.1-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        init: fix regression by supporting devices with major:minor:offset format
        Revert "dm crypt: fix deadlock when async crypto algorithm returns -EBUSY"
      5d5df5ee
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 1daac193
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A collection of fixes since the merge window;
      
         - fix for a double elevator module release, from Chao Yu.  Ancient bug.
      
         - the splice() MORE flag fix from Christophe Leroy.
      
         - a fix for NVMe, fixing a patch that went in in the merge window.
           From Keith.
      
         - two fixes for blk-mq CPU hotplug handling, from Ming Lei.
      
         - bdi vs blockdev lifetime fix from Neil Brown, fixing and oops in md.
      
         - two blk-mq fixes from Shaohua, fixing a race on queue stop and a
           bad merge issue with FUA writes.
      
         - division-by-zero fix for writeback from Tejun.
      
         - a block bounce page accounting fix, making sure we inc/dec after
           bouncing so that pre/post IO pages match up.  From Wang YanQing"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        splice: sendfile() at once fails for big files
        blk-mq: don't lose requests if a stopped queue restarts
        blk-mq: fix FUA request hang
        block: destroy bdi before blockdev is unregistered.
        block:bounce: fix call inc_|dec_zone_page_state on different pages confuse value of NR_BOUNCE
        elevator: fix double release of elevator module
        writeback: use |1 instead of +1 to protect against div by zero
        blk-mq: fix CPU hotplug handling
        blk-mq: fix race between timeout and CPU hotplug
        NVMe: Fix VPD B0 max sectors translation
      1daac193
    • Linus Torvalds's avatar
      Merge tag 'gpio-v4.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 41c64bb1
      Linus Torvalds authored
      Pull GPIO fixes from Linus Walleij:
       "Here is a bunch of GPIO fixes that I collected since -rc1, nothing
        controversial, nothing special:
      
         - fix a memory leak for GPIO hotplug.
      
         - fix a signedness bug in the ACPI GPIO pin validation.
      
         - driver fixes: Qualcomm SPMI and OMAP MPUIO IRQ issues"
      
      * tag 'gpio-v4.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio: omap: Fix regression for MPUIO interrupts
        gpio: sysfs: fix memory leaks and device hotplug
        pinctrl: qcom-spmi-gpio: Fix input value report
        pinctrl: qcom-spmi-gpio: Fix output type configuration
        gpiolib: change gpio pin from unsigned to signed in acpi callback
      41c64bb1
    • Linus Torvalds's avatar
      Merge tag 'mmc-4.1-rc2' of git://git.linaro.org/people/ulf.hansson/mmc · a8a08113
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "MMC core:
         - Don't access RPMB partitions for normal read/write
         - Fix hibernation restore sequence
      
        MMC host:
         - dw_mmc: Fix card detection for non removable cards
         - dw_mmc: Fix sglist issue in 32-bit mode
         - sh_mmcif: Fix timeout value for command request"
      
      * tag 'mmc-4.1-rc2' of git://git.linaro.org/people/ulf.hansson/mmc:
        mmc: dw_mmc: dw_mci_get_cd check MMC_CAP_NONREMOVABLE
        mmc: dw_mmc: init desc in dw_mci_idmac_init
        mmc: card: Don't access RPMB partitions for normal read/write
        mmc: sh_mmcif: Fix timeout value for command request
        mmc: core: add missing pm event in mmc_pm_notify to fix hib restore
      a8a08113
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v4.1-rc2' of... · 26b293e8
      Linus Torvalds authored
      Merge tag 'trace-fixes-v4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing fix from Steven Rostedt:
       "The newly added ftrace_print_array_seq() function had a bug in it.
        Luckily, the only user of it didn't make the 4.1 merge window.
      
        But the helper function should be fixed before 4.2 when the users
        start coming in"
      
      * tag 'trace-fixes-v4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Make ftrace_print_array_seq compute buf_len
      26b293e8
  2. 08 May, 2015 2 commits
  3. 07 May, 2015 7 commits
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3e0283a5
      Linus Torvalds authored
      Pull power management and ACPI fixes from Rafael Wysocki:
       "These include three regression fixes (PCI resources management,
        ACPI/PNP device enumeration, ACPI SBS on MacBook) and two ACPI
        documentation fixes related to GPIO.
      
        Specifics:
      
         - Fix for a PCI resources management regression introduced during the
           4.0 cycle and related to the handling of ACPI resources'
           Producer/Consumer flags that turn out to be useless (Jiang Liu)
      
         - Fix for a MacBook regression related to the Smart Battery Subsystem
           (SBS) driver causing various problems (stalls on boot, failure to
           detect or report battery) to happen and introduced during the 3.18
           cycle (Chris Bainbridge)
      
         - Fix for an ACPI/PNP device enumeration regression introduced during
           the 3.16 cycle caused by failing to include two PNP device IDs into
           the list of IDs that PNP device objects need to be created for
           (Witold Szczeponik)
      
         - Fixes for two minor mistakes in the ACPI GPIO properties
           documentation (Antonio Ospite, Rafael J Wysocki)"
      
      * tag 'pm+acpi-4.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / PNP: add two IDs to list for PNPACPI device enumeration
        ACPI / documentation: Fix ambiguity in the GPIO properties document
        ACPI / documentation: fix a sentence about GPIO resources
        ACPI / SBS: Add 5 us delay to fix SBS hangs on MacBook
        x86/PCI/ACPI: Make all resources except [io 0xcf8-0xcff] available on PCI bus
      3e0283a5
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-resources', 'acpi-battery', 'acpi-doc' and 'acpi-pnp' · 9a5d9315
      Rafael J. Wysocki authored
      * acpi-resources:
        x86/PCI/ACPI: Make all resources except [io 0xcf8-0xcff] available on PCI bus
      
      * acpi-battery:
        ACPI / SBS: Add 5 us delay to fix SBS hangs on MacBook
      
      * acpi-doc:
        ACPI / documentation: Fix ambiguity in the GPIO properties document
        ACPI / documentation: fix a sentence about GPIO resources
      
      * acpi-pnp:
        ACPI / PNP: add two IDs to list for PNPACPI device enumeration
      9a5d9315
    • Linus Torvalds's avatar
      Merge tag 'for-f2fs-4.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 68c2f356
      Linus Torvalds authored
      Pull f2fs fixes from Jaegeuk Kim:
       "Fix a performance regression and a bug"
      
      * tag 'for-f2fs-4.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:
        f2fs: fix wrong error hanlder in f2fs_follow_link
        Revert "f2fs: enhance multi-threads performance"
      68c2f356
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · fbb7b92f
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Here is a smallish set of pin control fixes for the v4.1 cycle,
        collected the last two weeks:
      
         - fix a real nasty legacy bug that has screwed up the protection of
           adding pinctrl maps dynamically.  Normally this didn't happen so
           much but Dough Anderson ran into it and fixed it, kudos!
      
        - minor driver fixes for Qualcomm spmi, mediatek and Marvell drivers"
      
      * tag 'pinctrl-v4.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: Don't just pretend to protect pinctrl_maps, do it for real
        pinctrl: mediatek: mtk-common: initialize unmask
        pinctrl: qcom-spmi-mpp: Fix input value report
        pinctrl: qcom-spmi: Fix pin direction configuration
        pinctrl: mvebu: Fix mapping of pin 63 (gpo -> gpio)
      fbb7b92f
    • Linus Torvalds's avatar
      Merge tag 'vfio-v4.1-rc3' of git://github.com/awilliam/linux-vfio · 7bbcd1b8
      Linus Torvalds authored
      Pull vfio fixes from Alex Williamson:
       "Fix some undesirable behavior with the vfio device request interface:
      
         - increase verbosity of device request channel (Alex Williamson)
      
         - fix runaway interruptible timeout (Alex Williamson)"
      
      * tag 'vfio-v4.1-rc3' of git://github.com/awilliam/linux-vfio:
        vfio: Fix runaway interruptible timeout
        vfio-pci: Log device requests more verbosely
      7bbcd1b8
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/dledford/linux · 8cb7c15b
      Linus Torvalds authored
      Pull infiniband updates from Doug Ledford:
       "Minor updates for 4.1-rc
      
        Most of the changes are fairly small and well confined.  The iWARP
        address reporting changes are the only ones that are a medium size.  I
        had these queued up prior to rc1, but due to the shuffle in
        maintainers, they did not get submitted when I expected.  My apologies
        for that.  I feel comfortable with them however due to the testing
        they've received, so I left them in this submission"
      
      * tag 'for-linus' of git://github.com/dledford/linux:
        MAINTAINERS: Update InfiniBand subsystem maintainer
        MAINTAINERS: add include/rdma/ to InfiniBand subsystem
        IPoIB/CM: Fix indentation level
        iw_cxgb4: Remove negative advice dmesg warnings
        IB/core: Fix unaligned accesses
        IB/core: change rdma_gid2ip into void function as it always return zero
        IB/qib: use arch_phys_wc_add()
        IB/qib: add acounting for MTRR
        IB/core: dma unmap optimizations
        IB/core: dma map/unmap locking optimizations
        RDMA/cxgb4: Report the actual address of the remote connecting peer
        RDMA/nes: Report the actual address of the remote connecting peer
        RDMA/core: Enable the iWarp Port Mapper to provide the actual address of the connecting peer to its clients
        iw_cxgb4: enforce qp/cq id requirements
        iw_cxgb4: use BAR2 GTS register for T5 kernel mode CQs
        iw_cxgb4: 32b platform fixes
        iw_cxgb4: Cleanup register defines/MACROS
        RDMA/CMA: Canonize IPv4 on IPV6 sockets properly
      8cb7c15b
    • Alex Bennée's avatar
      tracing: Make ftrace_print_array_seq compute buf_len · ac01ce14
      Alex Bennée authored
      The only caller to this function (__print_array) was getting it wrong by
      passing the array length instead of buffer length. As the element size
      was already being passed for other reasons it seems reasonable to push
      the calculation of buffer length into the function.
      
      Link: http://lkml.kernel.org/r/1430320727-14582-1-git-send-email-alex.bennee@linaro.orgSigned-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      ac01ce14
  4. 06 May, 2015 26 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.1b-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 0e1dc427
      Linus Torvalds authored
      Pull xen bug fixes from David Vrabel:
      
       - fix blkback regression if using persistent grants
      
       - fix various event channel related suspend/resume bugs
      
       - fix AMD x86 regression with X86_BUG_SYSRET_SS_ATTRS
      
       - SWIOTLB on ARM now uses frames <4 GiB (if available) so device only
         capable of 32-bit DMA work.
      
      * tag 'for-linus-4.1b-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen: Add __GFP_DMA flag when xen_swiotlb_init gets free pages on ARM
        hypervisor/x86/xen: Unset X86_BUG_SYSRET_SS_ATTRS on Xen PV guests
        xen/events: Set irq_info->evtchn before binding the channel to CPU in __startup_pirq()
        xen/console: Update console event channel on resume
        xen/xenbus: Update xenbus event channel on resume
        xen/events: Clear cpu_evtchn_mask before resuming
        xen-pciback: Add name prefix to global 'permissive' variable
        xen: Suspend ticks on all CPUs during suspend
        xen/grant: introduce func gnttab_unmap_refs_sync()
        xen/blkback: safely unmap purge persistent grants
      0e1dc427
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3d54ac9e
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "EFI fixes, and FPU fix, a ticket spinlock boundary condition fix and
        two build fixes"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu: Always restore_xinit_state() when use_eager_cpu()
        x86: Make cpu_tss available to external modules
        efi: Fix error handling in add_sysfs_runtime_map_entry()
        x86/spinlocks: Fix regression in spinlock contention detection
        x86/mm: Clean up types in xlate_dev_mem_ptr()
        x86/efi: Store upper bits of command line buffer address in ext_cmd_line_ptr
        efivarfs: Ensure VariableName is NUL-terminated
      3d54ac9e
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d8fce2db
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Mostly tooling fixes, but also an uncore PMU driver fix and an uncore
        PMU driver hardware-enablement addition"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf probe: Fix segfault if passed with ''.
        perf report: Fix -T/--threads option to work again
        perf bench numa: Fix immediate meeting of convergence condition
        perf bench numa: Fixes of --quiet argument
        perf bench futex: Fix hung wakeup tasks after requeueing
        perf probe: Fix bug with global variables handling
        perf top: Fix a segfault when kernel map is restricted.
        tools lib traceevent: Fix build failure on 32-bit arch
        perf kmem: Fix compiles on RHEL6/OL6
        tools lib api: Undefine _FORTIFY_SOURCE before setting it
        perf kmem: Consistently use PRIu64 for printing u64 values
        perf trace: Disable events and drain events when forked workload ends
        perf trace: Enable events when doing system wide tracing and starting a workload
        perf/x86/intel/uncore: Move PCI IDs for IMC to uncore driver
        perf/x86/intel/uncore: Add support for Intel Haswell ULT (lower power Mobile Processor) IMC uncore PMUs
        perf/x86/intel: Add cpu_(prepare|starting|dying) for core_pmu
      d8fce2db
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 02f0f572
      Linus Torvalds authored
      Pull RCU fix from Ingo Molnar:
       "An RCU Kconfig fix that eliminates an annoying interactive kconfig
        question for CONFIG_RCU_TORTURE_TEST_SLOW_INIT"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        rcu: Control grace-period delays directly from value
      02f0f572
    • Christophe Leroy's avatar
      splice: sendfile() at once fails for big files · 0ff28d9f
      Christophe Leroy authored
      Using sendfile with below small program to get MD5 sums of some files,
      it appear that big files (over 64kbytes with 4k pages system) get a
      wrong MD5 sum while small files get the correct sum.
      This program uses sendfile() to send a file to an AF_ALG socket
      for hashing.
      
      /* md5sum2.c */
      #include <stdio.h>
      #include <stdlib.h>
      #include <unistd.h>
      #include <string.h>
      #include <fcntl.h>
      #include <sys/socket.h>
      #include <sys/stat.h>
      #include <sys/types.h>
      #include <linux/if_alg.h>
      
      int main(int argc, char **argv)
      {
      	int sk = socket(AF_ALG, SOCK_SEQPACKET, 0);
      	struct stat st;
      	struct sockaddr_alg sa = {
      		.salg_family = AF_ALG,
      		.salg_type = "hash",
      		.salg_name = "md5",
      	};
      	int n;
      
      	bind(sk, (struct sockaddr*)&sa, sizeof(sa));
      
      	for (n = 1; n < argc; n++) {
      		int size;
      		int offset = 0;
      		char buf[4096];
      		int fd;
      		int sko;
      		int i;
      
      		fd = open(argv[n], O_RDONLY);
      		sko = accept(sk, NULL, 0);
      		fstat(fd, &st);
      		size = st.st_size;
      		sendfile(sko, fd, &offset, size);
      		size = read(sko, buf, sizeof(buf));
      		for (i = 0; i < size; i++)
      			printf("%2.2x", buf[i]);
      		printf("  %s\n", argv[n]);
      		close(fd);
      		close(sko);
      	}
      	exit(0);
      }
      
      Test below is done using official linux patch files. First result is
      with a software based md5sum. Second result is with the program above.
      
      root@vgoip:~# ls -l patch-3.6.*
      -rw-r--r--    1 root     root         64011 Aug 24 12:01 patch-3.6.2.gz
      -rw-r--r--    1 root     root         94131 Aug 24 12:01 patch-3.6.3.gz
      
      root@vgoip:~# md5sum patch-3.6.*
      b3ffb9848196846f31b2ff133d2d6443  patch-3.6.2.gz
      c5e8f687878457db77cb7158c38a7e43  patch-3.6.3.gz
      
      root@vgoip:~# ./md5sum2 patch-3.6.*
      b3ffb9848196846f31b2ff133d2d6443  patch-3.6.2.gz
      5fd77b24e68bb24dcc72d6e57c64790e  patch-3.6.3.gz
      
      After investivation, it appears that sendfile() sends the files by blocks
      of 64kbytes (16 times PAGE_SIZE). The problem is that at the end of each
      block, the SPLICE_F_MORE flag is missing, therefore the hashing operation
      is reset as if it was the end of the file.
      
      This patch adds SPLICE_F_MORE to the flags when more data is pending.
      
      With the patch applied, we get the correct sums:
      
      root@vgoip:~# md5sum patch-3.6.*
      b3ffb9848196846f31b2ff133d2d6443  patch-3.6.2.gz
      c5e8f687878457db77cb7158c38a7e43  patch-3.6.3.gz
      
      root@vgoip:~# ./md5sum2 patch-3.6.*
      b3ffb9848196846f31b2ff133d2d6443  patch-3.6.2.gz
      c5e8f687878457db77cb7158c38a7e43  patch-3.6.3.gz
      Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      0ff28d9f
    • Doug Anderson's avatar
      pinctrl: Don't just pretend to protect pinctrl_maps, do it for real · c5272a28
      Doug Anderson authored
      Way back, when the world was a simpler place and there was no war, no
      evil, and no kernel bugs, there was just a single pinctrl lock.  That
      was how the world was when (57291ce2 pinctrl: core device tree mapping
      table parsing support) was written.  In that case, there were
      instances where the pinctrl mutex was already held when
      pinctrl_register_map() was called, hence a "locked" parameter was
      passed to the function to indicate that the mutex was already locked
      (so we shouldn't lock it again).
      
      A few years ago in (42fed7ba pinctrl: move subsystem mutex to
      pinctrl_dev struct), we switched to a separate pinctrl_maps_mutex.
      ...but (oops) we forgot to re-think about the whole "locked" parameter
      for pinctrl_register_map().  Basically the "locked" parameter appears
      to still refer to whether the bigger pinctrl_dev mutex is locked, but
      we're using it to skip locks of our (now separate) pinctrl_maps_mutex.
      
      That's kind of a bad thing(TM).  Probably nobody noticed because most
      of the calls to pinctrl_register_map happen at boot time and we've got
      synchronous device probing.  ...and even cases where we're
      asynchronous don't end up actually hitting the race too often.  ...but
      after banging my head against the wall for a bug that reproduced 1 out
      of 1000 reboots and lots of looking through kgdb, I finally noticed
      this.
      
      Anyway, we can now safely remove the "locked" parameter and go back to
      a war-free, evil-free, and kernel-bug-free world.
      
      Fixes: 42fed7ba ("pinctrl: move subsystem mutex to pinctrl_dev struct")
      Signed-off-by: default avatarDoug Anderson <dianders@chromium.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      c5272a28
    • Stefano Stabellini's avatar
      xen: Add __GFP_DMA flag when xen_swiotlb_init gets free pages on ARM · 8746515d
      Stefano Stabellini authored
      Make sure that xen_swiotlb_init allocates buffers that are DMA capable
      when at least one memblock is available below 4G. Otherwise we assume
      that all devices on the SoC can cope with >4G addresses. We do this on
      ARM and ARM64, where dom0 is mapped 1:1, so pfn == mfn in this case.
      
      No functional changes on x86.
      
      From: Chen Baozi <baozich@gmail.com>
      Signed-off-by: default avatarChen Baozi <baozich@gmail.com>
      Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
      Tested-by: default avatarChen Baozi <baozich@gmail.com>
      Acked-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
      8746515d
    • Tony Lindgren's avatar
      gpio: omap: Fix regression for MPUIO interrupts · d2d05c65
      Tony Lindgren authored
      At some point with all the GPIO clean-up we've broken the
      MPUIO interrupts. Those are just a little bit different from
      the GPIO interrupts, so we can fix it up just by setting
      different irqchip functions for it. And then we can just
      remove all old code trying to do the same.
      
      Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
      Cc: Javier Martinez Canillas <javier@dowhile0.org>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      Cc: Nishanth Menon <nm@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Reviewed-by: default avatarGrygorii Strashko <grygorii.strashko@linaro.org>
      Acked-by: default avatarSantosh Shilimkar <ssantosh@kernel.org>
      Reviewed-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      d2d05c65
    • Chuanxiao Dong's avatar
      mmc: card: Don't access RPMB partitions for normal read/write · 4e93b9a6
      Chuanxiao Dong authored
      During kernel boot, it will try to read some logical sectors
      of each block device node for the possible partition table.
      
      But since RPMB partition is special and can not be accessed
      by normal eMMC read / write CMDs, it will cause below error
      messages during kernel boot:
      ...
       mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
       mmcblk0rpmb: error -110 transferring data, sector 0, nr 32, cmd response 0x900, card status 0xb00
       mmcblk0rpmb: retrying using single block read
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       end_request: I/O error, dev mmcblk0rpmb, sector 0
       Buffer I/O error on device mmcblk0rpmb, logical block 0
       end_request: I/O error, dev mmcblk0rpmb, sector 8
       Buffer I/O error on device mmcblk0rpmb, logical block 1
       end_request: I/O error, dev mmcblk0rpmb, sector 16
       Buffer I/O error on device mmcblk0rpmb, logical block 2
       end_request: I/O error, dev mmcblk0rpmb, sector 24
       Buffer I/O error on device mmcblk0rpmb, logical block 3
      ...
      
      This patch will discard the access request in eMMC queue if
      it is RPMB partition access request. By this way, it avoids
      trigger above error messages.
      
      Fixes: 090d25fe ("mmc: core: Expose access to RPMB partition")
      Signed-off-by: default avatarYunpeng Gao <yunpeng.gao@intel.com>
      Signed-off-by: default avatarChuanxiao Dong <chuanxiao.dong@intel.com>
      Tested-by: default avatarMichael Shigorin <mike@altlinux.org>
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      4e93b9a6
    • Takeshi Kihara's avatar
      mmc: sh_mmcif: Fix timeout value for command request · bad4371d
      Takeshi Kihara authored
      f9fd54f2 ("mmc: sh_mmcif: Use msecs_to_jiffies() for host->timeout")
      changed the timeout value from 1000 jiffies to 1s. In the case where
      HZ is 1000 the values are the same. However, for smaller HZ values the
      timeout is now smaller, 1s instead of 10s in the case of HZ=100.
      
      Since the timeout occurs in spite of a normal data transfer a timeout of
      10s seems more appropriate. This restores the previous timeout in the
      case where HZ=100 and results in an increase over the previous timeout
      for larger values of HZ.
      
      Fixes: f9fd54f2 ("mmc: sh_mmcif: Use msecs_to_jiffies() for host->timeout")
      Signed-off-by: default avatarTakeshi Kihara <takeshi.kihara.df@renesas.com>
      [horms: rewrote changelog to refer to HZ]
      Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
      Signed-off-by: default avatarYoshihiro Kaneko <ykaneko0929@gmail.com>
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      bad4371d
    • Bobby Powers's avatar
      x86/fpu: Always restore_xinit_state() when use_eager_cpu() · c88d4748
      Bobby Powers authored
      The following commit:
      
        f893959b ("x86/fpu: Don't abuse drop_init_fpu() in flush_thread()")
      
      removed drop_init_fpu() usage from flush_thread(). This seems to break
      things for me - the Go 1.4 test suite fails all over the place with
      floating point comparision errors (offending commit found through
      bisection).
      
      The functional change was that flush_thread() after this commit
      only calls restore_init_xstate() when both use_eager_fpu() and
      !used_math() are true. drop_init_fpu() (now fpu_reset_state()) calls
      restore_init_xstate() regardless of whether current used_math() - apply
      the same logic here.
      
      Switch used_math() -> tsk_used_math(tsk) to consistently use the grabbed
      tsk instead of current, like in the rest of flush_thread().
      Tested-by: default avatarDave Hansen <dave.hansen@intel.com>
      Signed-off-by: default avatarBobby Powers <bobbypowers@gmail.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Pekka Riikonen <priikone@iki.fi>
      Cc: Quentin Casasnovas <quentin.casasnovas@oracle.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Suresh Siddha <sbsiddha@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Fixes: f893959b ("x86/fpu: Don't abuse drop_init_fpu() in flush_thread()")
      Link: http://lkml.kernel.org/r/1430147441-9820-1-git-send-email-bobbypowers@gmail.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c88d4748
    • Ingo Molnar's avatar
      Merge tag 'efi-urgent' of... · c102cb09
      Ingo Molnar authored
      Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent
      
      Pull EFI fixes from Matt Fleming:
      
       * Avoid garbage names in efivarfs due to buggy firmware by zeroing
         EFI variable name. (Ross Lagerwall)
      
       * Stop erroneously dropping upper 32 bits of boot command line pointer
         in EFI boot stub and stash them in ext_cmd_line_ptr. (Roy Franz)
      
       * Fix double-free bug in error handling code path of EFI runtime map
         code. (Dan Carpenter)
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c102cb09
    • Ingo Molnar's avatar
      Merge tag 'perf-urgent-for-mingo' of... · 74f40c1f
      Ingo Molnar authored
      Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
      
        - Fix 'perf probe -a' segfault if passed with '' (Wang Nan)
      
        - Fix report -T/--threads option (Namhyung Kim)
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      74f40c1f
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.1-1' of git://git.code.sf.net/p/openipmi/linux-ipmi · 5198b443
      Linus Torvalds authored
      Pull IPMI fixes from Corey Minyard:
       "Lots of minor IPMI fixes, especially ones that have have come up since
        the SSIF driver has been in the main kernel for a while"
      
      * tag 'for-linus-4.1-1' of git://git.code.sf.net/p/openipmi/linux-ipmi:
        ipmi: Fix multi-part message handling
        ipmi: Add alert handling to SSIF
        ipmi: Fix a problem that messages are not issued in run_to_completion mode
        ipmi: Report an error if ACPI _IFT doesn't exist
        ipmi: Remove unused including <linux/version.h>
        ipmi: Don't report err in the SI driver for SSIF devices
        ipmi: Remove incorrect use of seq_has_overflowed
        ipmi:ssif: Ignore spaces when comparing I2C adapter names
        ipmi_ssif: Fix the logic on user-supplied addresses
      5198b443
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 2a171aa2
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "16 patches
      
        This includes a new rtc driver for the Abracon AB x80x and isn't very
        appropriate for -rc2.  It was still being fiddled with a bit during
        the merge window and I fell asleep during -rc1"
      
      [ So I took the new driver, it seems small and won't regress anything.
        I'm a softy.   - Linus ]
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        rtc: armada38x: fix concurrency access in armada38x_rtc_set_time
        ocfs2: dlm: fix race between purge and get lock resource
        nilfs2: fix sanity check of btree level in nilfs_btree_root_broken()
        util_macros.h: have array pointer point to array of constants
        configfs: init configfs module earlier at boot time
        mm/hwpoison-inject: check PageLRU of hpage
        mm/hwpoison-inject: fix refcounting in no-injection case
        mm: soft-offline: fix num_poisoned_pages counting on concurrent events
        rtc: add rtc-abx80x, a driver for the Abracon AB x80x i2c rtc
        Documentation: bindings: add abracon,abx80x
        kasan: show gcc version requirements in Kconfig and Documentation
        mm/memory-failure: call shake_page() when error hits thp tail page
        lib: delete lib/find_last_bit.c
        MAINTAINERS: add co-maintainer for LED subsystem
        zram: add Designated Reviewer for zram in MAINTAINERS
        revert "zram: move compact_store() to sysfs functions area"
      2a171aa2
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.1-2' of... · 3ce05a4e
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v4.1-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull x86 platform driver fixes from Darren Hart:
       "This includes a trivial warning and adding a Lenovo laptop to an
        existing quirk.
      
        I've held off on things like the latter in the past, but I didn't feel
        it was risky enough to push out to 4.2.
      
         - thinkpad_acpi:
              Fix warning for static not at beginning
      
         - ideapad_laptop:
              Add Lenovo G40-30 to devices without radio switch"
      
      * tag 'platform-drivers-x86-v4.1-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        thinkpad_acpi: Fix warning for static not at beginning
        ideapad_laptop: Add Lenovo G40-30 to devices without radio switch
      3ce05a4e
    • Corey Minyard's avatar
      ipmi: Fix multi-part message handling · 3d69d43b
      Corey Minyard authored
      Lots of little fixes for multi-part messages:
      
      The values was not being re-initialized, if something went wrong
      handling a multi-part message and it got left in a bad state, it
      might be an issue.
      
      The commands were not correct when issuing multi-part reads, the
      code was not passing in the proper value for commands.  Also clean
      up some minor formatting issues.
      
      Get the block number from the right location, limit the maximum send
      message size to 63 bytes and explain why, and fix some minor sylistic
      issues.
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      3d69d43b
    • Corey Minyard's avatar
      ipmi: Add alert handling to SSIF · 91620521
      Corey Minyard authored
      The SSIF interface can optionally have an SMBus alert come in when
      data is ready.  Unfortunately, the IPMI spec gives wiggle room to
      the implementer to allow them to always have the alert enabled,
      even if the driver doesn't enable it.  So implement alerts.
      If you don't in this situation, the SMBus alert handling will
      constantly complain.
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      91620521
    • Hidehiro Kawai's avatar
      ipmi: Fix a problem that messages are not issued in run_to_completion mode · 9f812704
      Hidehiro Kawai authored
      start_next_msg() issues a message placed in smi_info->waiting_msg
      if it is non-NULL.  However, sender() sets a message to
      smi_info->curr_msg and NULL to smi_info->waiting_msg in the context
      of run_to_completion mode.  As the result, it leads an infinite
      loop by waiting the completion of unissued message when leaving
      dying message after kernel panic.
      
      sender() should set the message to smi_info->waiting_msg not
      curr_msg.
      Signed-off-by: default avatarHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      9f812704
    • Corey Minyard's avatar
      ipmi: Report an error if ACPI _IFT doesn't exist · a182a4b2
      Corey Minyard authored
      When probing an ACPI table, report a specific error, instead of just
      returning an error, if _IFT doesn't exist.
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      a182a4b2
    • Wei Yongjun's avatar
      ipmi: Remove unused including <linux/version.h> · 15c5725e
      Wei Yongjun authored
      Remove including <linux/version.h> that don't need it.
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      15c5725e
    • Gregory CLEMENT's avatar
      rtc: armada38x: fix concurrency access in armada38x_rtc_set_time · 489405fe
      Gregory CLEMENT authored
      While setting the time, the RTC TIME register should not be accessed.
      However due to hardware constraints, setting the RTC time involves
      sleeping during 100ms.  This sleep was done outside the critical section
      protected by the spinlock, so it was possible to read the RTC TIME
      register and get an incorrect value.  This patch introduces a mutex for
      protecting the RTC TIME access, unlike the spinlock it is allowed to
      sleep in a critical section protected by a mutex.
      
      The RTC STATUS register can still be used from the interrupt handler but
      it has no effect on setting the time.
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Acked-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      Acked-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: <stable@vger.kernel.org>	[4.0]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      489405fe
    • Junxiao Bi's avatar
      ocfs2: dlm: fix race between purge and get lock resource · b1432a2a
      Junxiao Bi authored
      There is a race window in dlm_get_lock_resource(), which may return a
      lock resource which has been purged.  This will cause the process to
      hang forever in dlmlock() as the ast msg can't be handled due to its
      lock resource not existing.
      
          dlm_get_lock_resource {
              ...
              spin_lock(&dlm->spinlock);
              tmpres = __dlm_lookup_lockres_full(dlm, lockid, namelen, hash);
              if (tmpres) {
                   spin_unlock(&dlm->spinlock);
                   >>>>>>>> race window, dlm_run_purge_list() may run and purge
                                    the lock resource
                   spin_lock(&tmpres->spinlock);
                   ...
                   spin_unlock(&tmpres->spinlock);
              }
          }
      Signed-off-by: default avatarJunxiao Bi <junxiao.bi@oracle.com>
      Cc: Joseph Qi <joseph.qi@huawei.com>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b1432a2a
    • Ryusuke Konishi's avatar
      nilfs2: fix sanity check of btree level in nilfs_btree_root_broken() · d8fd150f
      Ryusuke Konishi authored
      The range check for b-tree level parameter in nilfs_btree_root_broken()
      is wrong; it accepts the case of "level == NILFS_BTREE_LEVEL_MAX" even
      though the level is limited to values in the range of 0 to
      (NILFS_BTREE_LEVEL_MAX - 1).
      
      Since the level parameter is read from storage device and used to index
      nilfs_btree_path array whose element count is NILFS_BTREE_LEVEL_MAX, it
      can cause memory overrun during btree operations if the boundary value
      is set to the level parameter on device.
      
      This fixes the broken sanity check and adds a comment to clarify that
      the upper bound NILFS_BTREE_LEVEL_MAX is exclusive.
      Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d8fd150f
    • Guenter Roeck's avatar
      util_macros.h: have array pointer point to array of constants · 05836c37
      Guenter Roeck authored
      Using the new find_closest() macro can result in the following sparse
      warnings.
      
        drivers/hwmon/lm85.c:194:16: warning:
        		incorrect type in initializer (different modifiers)
        drivers/hwmon/lm85.c:194:16:    expected int *__fc_a
        drivers/hwmon/lm85.c:194:16:    got int static const [toplevel] *<noident>
        drivers/hwmon/lm85.c:210:16: warning:
        		incorrect type in initializer (different modifiers)
        drivers/hwmon/lm85.c:210:16:    expected int *__fc_a
        drivers/hwmon/lm85.c:210:16:    got int const *map
      
      This is because the array passed to find_closest() will typically be
      declared as array of constants, but the macro declares a non-constant
      pointer to it.
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      05836c37
    • Daniel Baluta's avatar
      configfs: init configfs module earlier at boot time · f5b69770
      Daniel Baluta authored
      We need this earlier in the boot process to allow various subsystems to
      use configfs (e.g Industrial IIO).
      
      Also, debugfs is at core_initcall level and configfs should be on the same
      level from infrastructure point of view.
      Signed-off-by: default avatarDaniel Baluta <daniel.baluta@intel.com>
      Suggested-by: default avatarLars-Peter Clausen <lars@metafoo.de>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Joel Becker <jlbec@evilplan.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f5b69770