10 May, 2015

3 commits


09 May, 2015

9 commits

  • Pull vfs fixes from Al Viro:
    "A couple of fixes for bugs caught while digging in fs/namei.c. The
    first one is this cycle regression, the second is 3.11 and later"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    path_openat(): fix double fput()
    namei: d_is_negative() should be checked before ->d_seq validation

    Linus Torvalds
     
  • path_openat() jumps to the wrong place after do_tmpfile() - it has
    already done path_cleanup() (as part of path_lookupat() called by
    do_tmpfile()), so doing that again can lead to double fput().

    Cc: stable@vger.kernel.org # v3.11+
    Signed-off-by: Al Viro

    Al Viro
     
  • Fetching ->d_inode, verifying ->d_seq and finding d_is_negative() to
    be true does *not* mean that inode we'd fetched had been NULL - that
    holds only while ->d_seq is still unchanged.

    Shift d_is_negative() checks into lookup_fast() prior to ->d_seq
    verification.

    Reported-by: Steven Rostedt
    Tested-by: Steven Rostedt
    Signed-off-by: Al Viro

    Al Viro
     
  • Pull btrfs fix from Chris Mason:
    "When an arm user reported crashes near page_address(page) in my new
    code, it became clear that I can't be trusted with GFP masks. Filipe
    beat me to the patch, and I'll just be in the corner with my dunce cap
    on"

    * 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs: fix wrong mapping flags for free space inode

    Linus Torvalds
     
  • 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"

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • …t/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

    Linus Torvalds
     

08 May, 2015

5 commits

  • When non-removable is used for emmc, MMC_CAP_NONREMOVABLE should
    also be checked, otherwise detection fail since present=0

    Signed-off-by: Zhangfei Gao
    Signed-off-by: Jaehoon Chung
    Signed-off-by: Ulf Hansson

    Zhangfei Gao
     
  • Set 0 to des1 in 32bit case.
    Otherwise the random value of des1 will be used in
    dw_mci_translate_sglist: IDMAC_SET_BUFFER1_SIZE(desc, length)

    Signed-off-by: Fei Wang
    Signed-off-by: Zhangfei Gao
    Signed-off-by: Jaehoon Chung
    Signed-off-by: Ulf Hansson

    Zhangfei Gao
     
  • 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

    Linus Torvalds
     
  • * 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

    Rafael J. Wysocki
     
  • 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"

    Linus Torvalds
     

07 May, 2015

9 commits

  • 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)

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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.org

    Signed-off-by: Alex Bennée
    Signed-off-by: Steven Rostedt

    Alex Bennée
     
  • We were passing a flags value that differed from the intention in commit
    2b108268006e ("Btrfs: don't use highmem for free space cache pages").

    This caused problems in a ARM machine, leaving btrfs unusable there.

    Reported-by: Merlijn Wajer
    Tested-by: Merlijn Wajer
    Signed-off-by: Filipe Manana
    Signed-off-by: Chris Mason

    Filipe Manana
     
  • 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 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     

06 May, 2015

14 commits

  • 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
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    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: Christophe Leroy
    Signed-off-by: Jens Axboe

    Christophe Leroy
     
  • 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 (57291ce 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 (42fed7b 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: 42fed7ba44e4 ("pinctrl: move subsystem mutex to pinctrl_dev struct")
    Signed-off-by: Doug Anderson
    Signed-off-by: Linus Walleij

    Doug Anderson
     
  • 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

    Signed-off-by: Chen Baozi
    Signed-off-by: Stefano Stabellini
    Tested-by: Chen Baozi
    Acked-by: Konrad Rzeszutek Wilk
    Signed-off-by: David Vrabel

    Stefano Stabellini
     
  • 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
    Cc: Javier Martinez Canillas
    Cc: Kevin Hilman
    Cc: Nishanth Menon
    Signed-off-by: Tony Lindgren
    Reviewed-by: Grygorii Strashko
    Acked-by: Santosh Shilimkar
    Reviewed-by: Felipe Balbi
    Signed-off-by: Linus Walleij

    Tony Lindgren
     
  • 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: 090d25fe224c ("mmc: core: Expose access to RPMB partition")
    Signed-off-by: Yunpeng Gao
    Signed-off-by: Chuanxiao Dong
    Tested-by: Michael Shigorin
    Signed-off-by: Ulf Hansson

    Chuanxiao Dong
     
  • f9fd54f22e ("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: f9fd54f22e ("mmc: sh_mmcif: Use msecs_to_jiffies() for host->timeout")
    Signed-off-by: Takeshi Kihara
    [horms: rewrote changelog to refer to HZ]
    Signed-off-by: Simon Horman
    Signed-off-by: Yoshihiro Kaneko
    Signed-off-by: Ulf Hansson

    Takeshi Kihara
     
  • The following commit:

    f893959b0898 ("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: Dave Hansen
    Signed-off-by: Bobby Powers
    Signed-off-by: Borislav Petkov
    Acked-by: Oleg Nesterov
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Fenghua Yu
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Pekka Riikonen
    Cc: Quentin Casasnovas
    Cc: Rik van Riel
    Cc: Suresh Siddha
    Cc: Thomas Gleixner
    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.com
    Signed-off-by: Ingo Molnar

    Bobby Powers
     
  • 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: Ingo Molnar

    Ingo Molnar
     
  • …it/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: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • 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
    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

    Linus Torvalds
     
  • 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 :
    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"

    Linus Torvalds
     
  • …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

    Linus Torvalds
     
  • 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: Corey Minyard

    Corey Minyard
     
  • 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: Corey Minyard

    Corey Minyard