29 Sep, 2014

2 commits


28 Sep, 2014

7 commits

  • Pull vfs fixes from Al Viro:
    "Assorted fixes + unifying __d_move() and __d_materialise_dentry() +
    minimal regression fix for d_path() of victims of overwriting rename()
    ported on top of that"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    vfs: Don't exchange "short" filenames unconditionally.
    fold swapping ->d_name.hash into switch_names()
    fold unlocking the children into dentry_unlock_parents_for_move()
    kill __d_materialise_dentry()
    __d_materialise_dentry(): flip the order of arguments
    __d_move(): fold manipulations with ->d_child/->d_subdirs
    don't open-code d_rehash() in d_materialise_unique()
    pull rehashing and unlocking the target dentry into __d_materialise_dentry()
    ufs: deal with nfsd/iget races
    fuse: honour max_read and max_write in direct_io mode
    shmem: fix nlink for rename overwrite directory

    Linus Torvalds
     
  • Pull cgroup fixes from Tejun Heo:
    "This is quite late but these need to be backported anyway.

    This is the fix for a long-standing cpuset bug which existed from
    2009. cpuset makes use of PF_SPREAD_{PAGE|SLAB} flags to modify the
    task's memory allocation behavior according to the settings of the
    cpuset it belongs to; unfortunately, when those flags have to be
    changed, cpuset did so directly even whlie the target task is running,
    which is obviously racy as task->flags may be modified by the task
    itself at any time. This obscure bug manifested as corrupt
    PF_USED_MATH flag leading to a weird crash.

    The bug is fixed by moving the flag to task->atomic_flags. The first
    two are prepatory ones to help defining atomic_flags accessors and the
    third one is the actual fix"

    * 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cpuset: PF_SPREAD_PAGE and PF_SPREAD_SLAB should be atomic flags
    sched: add macros to define bitops for task atomic flags
    sched: fix confusing PFA_NO_NEW_PRIVS constant

    Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "Here's our last set of fixes for 3.17. Most of these are for TI
    platforms, fixing some noisy Kconfig issues, runtime clock and power
    issues on several platforms and NAND timings on DRA7.

    There are also a couple of bug fixes for i.MX, one for QCOM and a
    small fix to avoid section mismatch noise on PXA.

    Diffstat looks large, partially due to some tables being updated and
    thus touching many lines. The qcom gsbi change also restructures
    clock management a bit and thus touches a bunch of lines.

    All in all, a bit more changes than we'd like at this point, but
    nothing stands out as risky either so it seems like the right thing to
    send it up now instead of holding it to the merge window"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    drivers/soc: qcom: do not disable the iface clock in probe
    ARM: imx: fix .is_enabled() of shared gate clock
    ARM: OMAP3: Fix I/O chain clock line assertion timed out error
    ARM: keystone: dts: fix bindings for pcie and usb clock nodes
    bus: omap_l3_noc: Fix connID for OMAP4
    ARM: DT: imx53: fix lvds channel 1 port
    ARM: dts: cm-t54: fix serial console power supply.
    ARM: dts: dra7-evm: Fix NAND GPMC timings
    ARM: pxa: fix section mismatch warning for pxa_timer_nodt_init
    ARM: OMAP: Fix Kconfig warning for omap1

    Linus Torvalds
     
  • Pull MIPS fixes from Ralf Baechle:
    "The final round of fixes. One corner case in the math emulator and
    another one in the mcount function for ftrace"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: mcount: Adjust stack pointer for static trace in MIPS32
    MIPS: Fix MFC1 & MFHC1 emulation for 64-bit MIPS systems

    Linus Torvalds
     
  • Pull x86 fixes from Ingo Molnar:
    "This has:

    - EFI revert to fix a boot regression
    - early_ioremap() fix for boot failure
    - KASLR fix for possible boot failures
    - EFI fix for corrupted string printing
    - remove a misleading EFI bootup 'failed!' error message

    Unfortunately it's all rather close to the merge window"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/efi: Truncate 64-bit values when calling 32-bit OutputString()
    x86/efi: Delete misleading efi_printk() error message
    Revert "efi/x86: efistub: Move shared dependencies to "
    x86/kaslr: Avoid the setup_data area when picking location
    x86 early_ioremap: Increase FIX_BTMAPS_SLOTS to 8

    Linus Torvalds
     
  • Only exchange source and destination filenames
    if flags contain RENAME_EXCHANGE.
    In case if executable file was running and replaced by
    other file /proc/PID/exe should still show correct file name,
    not the old name of the file by which it was replaced.

    The scenario when this bug manifests itself was like this:
    * ALT Linux uses rpm and start-stop-daemon;
    * during a package upgrade rpm creates a temporary file
    for an executable to rename it upon successful unpacking;
    * start-stop-daemon is run subsequently and it obtains
    the (nonexistant) temporary filename via /proc/PID/exe
    thus failing to identify the running process.

    Note that "long" filenames (> DNAiME_INLINE_LEN) are still
    exchanged without RENAME_EXCHANGE and this behaviour exists
    long enough (should be fixed too apparently).
    So this patch is just an interim workaround that restores
    behavior for "short" names as it was before changes
    introduced by commit da1ce0670c14 ("vfs: add cross-rename").

    See https://lkml.org/lkml/2014/9/7/6 for details.

    AV: the comments about being more careful with ->d_name.hash
    than with ->d_name.name are from back in 2.3.40s; they
    became obsolete by 2.3.60s, when we started to unhash the
    target instead of swapping hash chain positions followed
    by d_delete() as we used to do when dcache was first
    introduced.

    Acked-by: Miklos Szeredi
    Cc: Linus Torvalds
    Cc: Alexander Viro
    Cc: linux-fsdevel@vger.kernel.org
    Cc: stable@vger.kernel.org
    Fixes: da1ce0670c14 "vfs: add cross-rename"
    Signed-off-by: Mikhail Efremov
    Signed-off-by: Al Viro

    Mikhail Efremov
     
  • and do it along with ->d_name.len there

    Signed-off-by: Linus Torvalds
    Signed-off-by: Al Viro

    Linus Torvalds
     

27 Sep, 2014

10 commits


26 Sep, 2014

19 commits

  • Pull scheduler fixes from Ingo Molnar:
    "A CONFIG_STACK_GROWSUP=y fix, and a hotplug llc CPU mask fix"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched: Fix unreleased llc_shared_mask bit during CPU hotplug
    sched: Fix end_of_stack() and location of stack canary for architectures using CONFIG_STACK_GROWSUP

    Linus Torvalds
     
  • Merge fixes from Andrew Morton:
    "9 fixes"

    * emailed patches from Andrew Morton :
    mm: softdirty: keep bit when zapping file pte
    fs/cachefiles: add missing \n to kerror conversions
    genalloc: fix device node resource counter
    drivers/rtc/rtc-efi.c: add missing module alias
    mm, slab: initialize object alignment on cache creation
    mm: softdirty: addresses before VMAs in PTE holes aren't softdirty
    ocfs2/dlm: do not get resource spinlock if lockres is new
    nilfs2: fix data loss with mmap()
    ocfs2: free vol_label in ocfs2_delete_osb()

    Linus Torvalds
     
  • This fixes the same bug as b43790eedd31 ("mm: softdirty: don't forget to
    save file map softdiry bit on unmap") and 9aed8614af5a ("mm/memory.c:
    don't forget to set softdirty on file mapped fault") where the return
    value of pte_*mksoft_dirty was being ignored.

    To be sure that no other pte/pmd "mk" function return values were being
    ignored, I annotated the functions in arch/x86/include/asm/pgtable.h
    with __must_check and rebuilt.

    The userspace effect of this bug is that the softdirty mark might be
    lost if a file mapped pte get zapped.

    Signed-off-by: Peter Feiner
    Acked-by: Cyrill Gorcunov
    Cc: Pavel Emelyanov
    Cc: Jamie Liu
    Cc: Hugh Dickins
    Cc: [3.12+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Feiner
     
  • Commit 0227d6abb378 ("fs/cachefiles: replace kerror by pr_err") didn't
    include newline featuring in original kerror definition

    Signed-off-by: Fabian Frederick
    Reported-by: David Howells
    Acked-by: David Howells
    Cc: [3.16.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Decrement the np_pool device_node refcount, which was incremented on
    the preceding of_parse_phandle() call.

    Signed-off-by: Vladimir Zapolskiy
    Cc: Will Deacon
    Cc: Olof Johansson
    Cc: Catalin Marinas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Zapolskiy
     
  • Without proper alias kernel module is not loaded for rtc-efi driver.

    Signed-off-by: Pali Rohár
    Cc: dann frazier
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pali Rohár
     
  • Since commit 4590685546a3 ("mm/sl[aou]b: Common alignment code"), the
    "ralign" automatic variable in __kmem_cache_create() may be used as
    uninitialized.

    The proper alignment defaults to BYTES_PER_WORD and can be overridden by
    SLAB_RED_ZONE or the alignment specified by the caller.

    This fixes https://bugzilla.kernel.org/show_bug.cgi?id=85031

    Signed-off-by: David Rientjes
    Reported-by: Andrei Elovikov
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Joonsoo Kim
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • In PTE holes that contain VM_SOFTDIRTY VMAs, unmapped addresses before
    VM_SOFTDIRTY VMAs are reported as softdirty by /proc/pid/pagemap. This
    bug was introduced in commit 68b5a6524856 ("mm: softdirty: respect
    VM_SOFTDIRTY in PTE holes"). That commit made /proc/pid/pagemap look at
    VM_SOFTDIRTY in PTE holes but neglected to observe the start of VMAs
    returned by find_vma.

    Tested:
    Wrote a selftest that creates a PMD-sized VMA then unmaps the first
    page and asserts that the page is not softdirty. I'm going to send the
    pagemap selftest in a later commit.

    Signed-off-by: Peter Feiner
    Cc: Cyrill Gorcunov
    Cc: Pavel Emelyanov
    Cc: Hugh Dickins
    Cc: Naoya Horiguchi
    Cc: "Kirill A. Shutemov"
    Cc: Jamie Liu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Feiner
     
  • There is a deadlock case which reported by Guozhonghua:
    https://oss.oracle.com/pipermail/ocfs2-devel/2014-September/010079.html

    This case is caused by &res->spinlock and &dlm->master_lock
    misordering in different threads.

    It was introduced by commit 8d400b81cc83 ("ocfs2/dlm: Clean up refmap
    helpers"). Since lockres is new, it doesn't not require the
    &res->spinlock. So remove it.

    Fixes: 8d400b81cc83 ("ocfs2/dlm: Clean up refmap helpers")
    Signed-off-by: Joseph Qi
    Reviewed-by: joyce.xue
    Reported-by: Guozhonghua
    Cc: Joel Becker
    Cc: Mark Fasheh
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • This bug leads to reproducible silent data loss, despite the use of
    msync(), sync() and a clean unmount of the file system. It is easily
    reproducible with the following script:

    ----------------[BEGIN SCRIPT]--------------------
    mkfs.nilfs2 -f /dev/sdb
    mount /dev/sdb /mnt

    dd if=/dev/zero bs=1M count=30 of=/mnt/testfile

    umount /mnt
    mount /dev/sdb /mnt
    CHECKSUM_BEFORE="$(md5sum /mnt/testfile)"

    /root/mmaptest/mmaptest /mnt/testfile 30 10 5

    sync
    CHECKSUM_AFTER="$(md5sum /mnt/testfile)"
    umount /mnt
    mount /dev/sdb /mnt
    CHECKSUM_AFTER_REMOUNT="$(md5sum /mnt/testfile)"
    umount /mnt

    echo "BEFORE MMAP:\t$CHECKSUM_BEFORE"
    echo "AFTER MMAP:\t$CHECKSUM_AFTER"
    echo "AFTER REMOUNT:\t$CHECKSUM_AFTER_REMOUNT"
    ----------------[END SCRIPT]--------------------

    The mmaptest tool looks something like this (very simplified, with
    error checking removed):

    ----------------[BEGIN mmaptest]--------------------
    data = mmap(NULL, file_size - file_offset, PROT_READ | PROT_WRITE,
    MAP_SHARED, fd, file_offset);

    for (i = 0; i < write_count; ++i) {
    memcpy(data + i * 4096, buf, sizeof(buf));
    msync(data, file_size - file_offset, MS_SYNC))
    }
    ----------------[END mmaptest]--------------------

    The output of the script looks something like this:

    BEFORE MMAP: 281ed1d5ae50e8419f9b978aab16de83 /mnt/testfile
    AFTER MMAP: 6604a1c31f10780331a6850371b3a313 /mnt/testfile
    AFTER REMOUNT: 281ed1d5ae50e8419f9b978aab16de83 /mnt/testfile

    So it is clear, that the changes done using mmap() do not survive a
    remount. This can be reproduced a 100% of the time. The problem was
    introduced in commit 136e8770cd5d ("nilfs2: fix issue of
    nilfs_set_page_dirty() for page at EOF boundary").

    If the page was read with mpage_readpage() or mpage_readpages() for
    example, then it has no buffers attached to it. In that case
    page_has_buffers(page) in nilfs_set_page_dirty() will be false.
    Therefore nilfs_set_file_dirty() is never called and the pages are never
    collected and never written to disk.

    This patch fixes the problem by also calling nilfs_set_file_dirty() if the
    page has no buffers attached to it.

    [akpm@linux-foundation.org: s/PAGE_SHIFT/PAGE_CACHE_SHIFT/]
    Signed-off-by: Andreas Rohner
    Tested-by: Andreas Rohner
    Signed-off-by: Ryusuke Konishi
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andreas Rohner
     
  • osb->vol_label is malloced in ocfs2_initialize_super but not freed if
    error occurs or during umount, thus causing a memory leak.

    Signed-off-by: Joseph Qi
    Reviewed-by: joyce.xue
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Every mcount() call in the MIPS 32-bit kernel is done as follows:

    [...]
    move at, ra
    jal _mcount
    addiu sp, sp, -8
    [...]

    but upon returning from the mcount() function, the stack pointer
    is not adjusted properly. This is explained in details in 58b69401c797
    (MIPS: Function tracer: Fix broken function tracing).

    Commit ad8c396936e3 ("MIPS: Unbreak function tracer for 64-bit kernel.)
    fixed the stack manipulation for 64-bit but it didn't fix it completely
    for MIPS32.

    Signed-off-by: Markos Chandras
    Cc:
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7792/
    Signed-off-by: Ralf Baechle

    Markos Chandras
     
  • Commit bbd426f542cb "MIPS: Simplify FP context access" modified the
    SIFROMREG & SIFROMHREG macros such that they return unsigned rather
    than signed 32b integers. I had believed that to be fine, but
    inadvertently missed the MFC1 & MFHC1 cases which write to a struct
    pt_regs regs element. On MIPS32 this is fine, but on 64 bit those
    saved regs' fields are 64 bit wide. Using unsigned values caused the
    32 bit value from the FP register to be zero rather than sign extended
    as the architecture specifies, causing incorrect emulation of the
    MFC1 & MFHc1 instructions. Fix by reintroducing the casts to signed
    integers, and therefore the sign extension.

    Signed-off-by: Paul Burton
    Cc: stable@vger.kernel.org # v3.15+
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/7848/
    Signed-off-by: Ralf Baechle

    Paul Burton
     
  • Pull ACPI and power management fixes from Rafael Wysocki:
    "These are regression fixes (ACPI hotplug, cpufreq, hibernation, ACPI
    LPSS driver), fixes for stuff that never worked correctly (ACPI GPIO
    support in some cases and a wrong sign of an error code in the ACPI
    core in one place), and one blacklist item for ACPI backlight
    handling.

    Specifics:

    - Revert of a recent hibernation core commit that introduced a NULL
    pointer dereference during resume for at least one user (Rafael J
    Wysocki).

    - Fix for the ACPI LPSS (Low-Power Subsystem) driver to disable
    asynchronous PM callback execution for LPSS devices during system
    suspend/resume (introduced in 3.16) which turns out to break
    ordering expectations on some systems. From Fu Zhonghui.

    - cpufreq core fix related to the handling of sysfs nodes during
    system suspend/resume that has been broken for intel_pstate since
    3.15 from Lan Tianyu.

    - Restore the generation of "online" uevents for ACPI container
    devices that was removed in 3.14, but some user space utilities
    turn out to need them (Rafael J Wysocki).

    - The cpufreq core fails to release a lock in an error code path
    after changes made in 3.14. Fix from Prarit Bhargava.

    - ACPICA and ACPI/GPIO fixes to make the handling of ACPI GPIO
    operation regions (which means AML using GPIOs) work correctly in
    all cases from Bob Moore and Srinivas Pandruvada.

    - Fix for a wrong sign of the ACPI core's create_modalias() return
    value in case of an error from Mika Westerberg.

    - ACPI backlight blacklist entry for ThinkPad X201s from Aaron Lu"

    * tag 'pm+acpi-3.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    Revert "PM / Hibernate: Iterate over set bits instead of PFNs in swsusp_free()"
    gpio / ACPI: Use pin index and bit length
    ACPICA: Update to GPIO region handler interface.
    ACPI / platform / LPSS: disable async suspend/resume of LPSS devices
    cpufreq: release policy->rwsem on error
    cpufreq: fix cpufreq suspend/resume for intel_pstate
    ACPI / scan: Correct error return value of create_modalias()
    ACPI / video: disable native backlight for ThinkPad X201s
    ACPI / hotplug: Generate online uevents for ACPI containers

    Linus Torvalds
     
  • Pull i2c fixes from Wolfram Sang:
    "This is probably not the kind of pull request you want to see that
    late in the cycle. Yet, the ACPI refactorization was problematic
    again and caused another two issues which need fixing. My holidays
    with limited internet (plus travelling) and the developer's illness
    didn't help either :(

    The details:

    - ACPI code was refactored out into a seperate file and as a
    side-effect, the i2c-core module got renamed. Jean Delvare
    rightfully complained about the rename being problematic for
    distributions. So, Mika and I thought the least problematic way to
    deal with it is to move all the code back into the main i2c core
    source file. This is mainly a huge code move with some #ifdeffery
    applied. No functional code changes. Our personal tests and the
    testbots did not find problems. (I was thinking about reverting,
    too, yet that would also have ~800 lines changed)

    - The new ACPI code also had a NULL pointer exception, thanks to
    Peter for finding and fixing it.

    - Mikko fixed a locking problem by decoupling clock_prepare and
    clock_enable.

    - Addy learnt that the datasheet was wrong and reimplemented the
    frequency setup according to the new algorithm.

    - Fan fixed an off-by-one error when copying data

    - Janusz fixed a copy'n'paste bug which gave a wrong error message

    - Sergei made sure that "don't touch" bits are not accessed"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: acpi: Fix NULL Pointer dereference
    i2c: move acpi code back into the core
    i2c: rk3x: fix divisor calculation for SCL frequency
    i2c: mxs: fix error message in pio transfer
    i2c: ismt: use correct length when copy buffer
    i2c: rcar: fix RCAR_IRQ_ACK_{RECV|SEND}
    i2c: tegra: Move clk_prepare/clk_set_rate to probe

    Linus Torvalds
     
  • Transfer Documentation maintainership to Jiri Kosina.
    Thanks, Jiri.

    I'll still be reviewing and working on documentation.

    Signed-off-by: Randy Dunlap
    Acked-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • * pm-cpufreq:
    cpufreq: release policy->rwsem on error
    cpufreq: fix cpufreq suspend/resume for intel_pstate

    * pm-sleep:
    Revert "PM / Hibernate: Iterate over set bits instead of PFNs in swsusp_free()"

    Rafael J. Wysocki
     
  • * acpi-hotplug:
    ACPI / hotplug: Generate online uevents for ACPI containers

    * acpi-scan:
    ACPI / scan: Correct error return value of create_modalias()

    * acpi-lpss:
    ACPI / platform / LPSS: disable async suspend/resume of LPSS devices

    * acpi-gpio:
    gpio / ACPI: Use pin index and bit length
    ACPICA: Update to GPIO region handler interface.

    * acpi-video:
    ACPI / video: disable native backlight for ThinkPad X201s

    Rafael J. Wysocki
     
  • Pull gpio fixes from Linus Walleij:
    "Two GPIO fixes:

    - GPIO direction flags where handled wrong in the new descriptor-
    based API, so direction changes did not always "take".

    - Fix a handler installation race in the generic GPIO irqchip code"

    * tag 'gpio-v3.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: Fix potential NULL handler data in chained irqchip handler
    gpio: Fix gpio direction flags not getting set

    Linus Torvalds
     

25 Sep, 2014

2 commits

  • Pull EFI fixes from Matt Fleming:

    * Revert the static library changes from the merge window since they're
    causing issues for Macbooks and Fedora + Grub2 (Matt Fleming)

    * Delete the misleading "setup_efi_pci() failed!" message which some
    people are seeing when booting EFI (Matt Fleming)

    * Fix printing strings from the 32-bit EFI boot stub by only passing
    32-bit addresses to the firmware (Matt Fleming)

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Pull devicetree bug fixes and documentation from Grant Likely:
    "Several bug fix commits for issues found in the v3.17 rc series.

    Most of these are minor in that they aren't actively dangerous, but
    they have been seen in the wild. The one important fix is commit
    7dbe5849fb50 ("of: make sure of_alias is initialized before accessing
    it"), without which some powerpc platforms will fail to find stdout
    for the console"

    * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux:
    of/fdt: fix memory range check
    of: Fix memory block alignment in early_init_dt_add_memory_arch()
    of: make sure of_alias is initialized before accessing it
    of: Documentation regarding attaching OF Selftest testdata
    of: Disabling OF functions that use sysfs if CONFIG_SYSFS disabled
    of: correct of_console_check()'s return value

    Linus Torvalds