1. 21 10月, 2016 2 次提交
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · f4814e61
      Linus Torvalds 提交于
      Pull arm64 fixes from Will Deacon:
       "Most of these are CC'd for stable, but there are a few fixing issues
        introduced during the recent merge window too.
      
        There's also a fix for the xgene PMU driver, but it seemed daft to
        send as a separate pull request, so I've included it here with the
        rest of the fixes.
      
         - Fix ACPI boot due to recent broken NUMA changes
         - Fix remote enabling of CPU features requiring PSTATE bit manipulation
         - Add address range check when emulating user cache maintenance
         - Fix LL/SC loops that allow compiler to introduce memory accesses
         - Fix recently added write_sysreg_s macro
         - Ensure MDCR_EL2 is initialised on qemu targets without a PMU
         - Avoid kaslr breakage due to MODVERSIONs and DYNAMIC_FTRACE
         - Correctly drive recent ld when building relocatable Image
         - Remove junk IS_ERR check from xgene PMU driver added during merge window
         - pr_cont fixes after core changes in the merge window"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: remove pr_cont abuse from mem_init
        arm64: fix show_regs fallout from KERN_CONT changes
        arm64: kernel: force ET_DYN ELF type for CONFIG_RELOCATABLE=y
        arm64: suspend: Reconfigure PSTATE after resume from idle
        arm64: mm: Set PSTATE.PAN from the cpu_enable_pan() call
        arm64: cpufeature: Schedule enable() calls instead of calling them via IPI
        arm64: Cortex-A53 errata workaround: check for kernel addresses
        arm64: percpu: rewrite ll/sc loops in assembly
        arm64: swp emulation: bound LL/SC retries before rescheduling
        arm64: sysreg: Fix use of XZR in write_sysreg_s
        arm64: kaslr: keep modules close to the kernel when DYNAMIC_FTRACE=y
        arm64: kernel: Init MDCR_EL2 even in the absence of a PMU
        perf: xgene: Remove bogus IS_ERR() check
        arm64: kernel: numa: fix ACPI boot cpu numa node mapping
        arm64: kaslr: fix breakage with CONFIG_MODVERSIONS=y
      f4814e61
    • L
      Merge tag 'ceph-for-4.9-rc2' of git://github.com/ceph/ceph-client · bdcff415
      Linus Torvalds 提交于
      Pull Ceph fixes from Ilya Dryomov:
       "An rbd exclusive-lock edge case fix and several filesystem fixups.
      
        Nikolay's error path patch is tagged for stable, everything else but
        readdir vs frags race was introduced in this merge window"
      
      * tag 'ceph-for-4.9-rc2' of git://github.com/ceph/ceph-client:
        ceph: fix non static symbol warning
        ceph: fix uninitialized dentry pointer in ceph_real_mount()
        ceph: fix readdir vs fragmentation race
        ceph: fix error handling in ceph_read_iter
        rbd: don't retry watch reregistration if header object is gone
        rbd: don't wait for the lock forever if blacklisted
      bdcff415
  2. 20 10月, 2016 15 次提交
    • L
      Merge tag 'mmc-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 0ea67fae
      Linus Torvalds 提交于
      Pull MMC fixes from Ulf Hansson:
       "Here are some mmc fixes intended for v4.9 rc2.
      
        This time I have also included a few changes for a memstick driver
        which has a corresponding mmc driver. They use the same USB device as
        parent, hence both needs to play nice with runtime PM, which they
        didn't.
      
        MMC core:
         - Update MAINTAINERS as the mmc tree moved to kernel.org
         - A few fixes for HS400es mode
         - A few other minor fixes
      
        MMC host:
         - sdhci: Fix an issue when dealing with stop commands
         - sdhci-pci: Fix a bus power failure issue
         - sdhci-esdhc-imx: Correct two register accesses
         - sdhci-of-arasan: Fix the 1.8V I/O signal switch behaviour
         - rtsx_usb_sdmmc: Fix runtime PM issues
      
        Other: (Because of no maintainer)
         - memstick: rtsx_usb_ms: Fix runtime PM issues"
      
      * tag 'mmc-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        MAINTAINERS: mmc: Move the mmc tree to kernel.org
        memstick: rtsx_usb_ms: Manage runtime PM when accessing the device
        memstick: rtsx_usb_ms: Runtime resume the device when polling for cards
        mmc: rtsx_usb_sdmmc: Handle runtime PM while changing the led
        mmc: rtsx_usb_sdmmc: Avoid keeping the device runtime resumed when unused
        mmc: sdhci: cast unsigned int to unsigned long long to avoid unexpeted error
        mmc: sdhci-esdhc-imx: Correct two register accesses
        mmc: sdhci-pci: Fix bus power failing to enable for some Intel controllers
        mmc: sdhci-pci: Let devices define their own sdhci_ops
        mmc: sdhci: Rename sdhci_set_power() to sdhci_set_power_noreg()
        mmc: sdhci: Fix SDHCI_QUIRK2_STOP_WITH_TC
        mmc: core: Annotate cmd_hdr as __le32
        mmc: sdhci-of-arasan: add sdhci_arasan_voltage_switch for arasan, 5.1
        mmc: core: changes frequency to hs_max_dtr when selecting hs400es
        mmc: core: switch to 1V8 or 1V2 for hs400es mode
        mmc: block: add missing header dependencies
        mmc: sdhci-of-arasan: Fix non static symbol warning
      0ea67fae
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · a28ad14e
      Linus Torvalds 提交于
      Pull misc filesystem fixes from Jan Kara:
       "A fix for an isofs change apparently breaking mount(8) in some cases
        and one ext2 warning fix"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2: avoid bogus -Wmaybe-uninitialized warning
        isofs: Do not return EACCES for unknown filesystems
      a28ad14e
    • M
      arm64: remove pr_cont abuse from mem_init · f7881bd6
      Mark Rutland 提交于
      All the lines printed by mem_init are independent, with each ending with
      a newline. While they logically form a large block, none are actually
      continuations of previous lines.
      
      The kernel-side printk code and the userspace demsg tool differ in their
      handling of KERN_CONT following a newline, and while this isn't always a
      problem kernel-side, it does cause difficulty for userspace. Using
      pr_cont causes the userspace tool to not print line prefix (e.g.
      timestamps) even when following a newline, mis-aligning the output and
      making it harder to read, e.g.
      
      [    0.000000] Virtual kernel memory layout:
      [    0.000000]     modules : 0xffff000000000000 - 0xffff000008000000   (   128 MB)
          vmalloc : 0xffff000008000000 - 0xffff7dffbfff0000   (129022 GB)
            .text : 0xffff000008080000 - 0xffff0000088b0000   (  8384 KB)
          .rodata : 0xffff0000088b0000 - 0xffff000008c50000   (  3712 KB)
            .init : 0xffff000008c50000 - 0xffff000008d50000   (  1024 KB)
            .data : 0xffff000008d50000 - 0xffff000008e25200   (   853 KB)
             .bss : 0xffff000008e25200 - 0xffff000008e6bec0   (   284 KB)
          fixed   : 0xffff7dfffe7fd000 - 0xffff7dfffec00000   (  4108 KB)
          PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000   (    16 MB)
          vmemmap : 0xffff7e0000000000 - 0xffff800000000000   (  2048 GB maximum)
                    0xffff7e0000000000 - 0xffff7e0026000000   (   608 MB actual)
          memory  : 0xffff800000000000 - 0xffff800980000000   ( 38912 MB)
      [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
      
      Fix this by using pr_notice consistently for all lines, which both the
      kernel and userspace are happy with.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      f7881bd6
    • M
      arm64: fix show_regs fallout from KERN_CONT changes · db4b0710
      Mark Rutland 提交于
      Recently in commit 4bcc595c ("printk: reinstate KERN_CONT for
      printing continuation lines"), the behaviour of printk changed w.r.t.
      KERN_CONT. Now, KERN_CONT is mandatory to continue existing lines.
      Without this, prefixes are inserted, making output illegible, e.g.
      
      [ 1007.069010] pc : [<ffff00000871898c>] lr : [<ffff000008718948>] pstate: 40000145
      [ 1007.076329] sp : ffff000008d53ec0
      [ 1007.079606] x29: ffff000008d53ec0 [ 1007.082797] x28: 0000000080c50018
      [ 1007.086160]
      [ 1007.087630] x27: ffff000008e0c7f8 [ 1007.090820] x26: ffff80097631ca00
      [ 1007.094183]
      [ 1007.095653] x25: 0000000000000001 [ 1007.098843] x24: 000000ea68b61cac
      [ 1007.102206]
      
      ... or when dumped with the userpace dmesg tool, which has slightly
      different implicit newline behaviour. e.g.
      
      [ 1007.069010] pc : [<ffff00000871898c>] lr : [<ffff000008718948>] pstate: 40000145
      [ 1007.076329] sp : ffff000008d53ec0
      [ 1007.079606] x29: ffff000008d53ec0
      [ 1007.082797] x28: 0000000080c50018
      [ 1007.086160]
      [ 1007.087630] x27: ffff000008e0c7f8
      [ 1007.090820] x26: ffff80097631ca00
      [ 1007.094183]
      [ 1007.095653] x25: 0000000000000001
      [ 1007.098843] x24: 000000ea68b61cac
      [ 1007.102206]
      
      We can't simply always use KERN_CONT for lines which may or may not be
      continuations. That causes line prefixes (e.g. timestamps) to be
      supressed, and the alignment of all but the first line will be broken.
      
      For even more fun, we can't simply insert some dummy empty-string printk
      calls, as GCC warns for an empty printk string, and even if we pass
      KERN_DEFAULT explcitly to silence the warning, the prefix gets swallowed
      unless there is an additional part to the string.
      
      Instead, we must manually iterate over pairs of registers, which gives
      us the legible output we want in either case, e.g.
      
      [  169.771790] pc : [<ffff00000871898c>] lr : [<ffff000008718948>] pstate: 40000145
      [  169.779109] sp : ffff000008d53ec0
      [  169.782386] x29: ffff000008d53ec0 x28: 0000000080c50018
      [  169.787650] x27: ffff000008e0c7f8 x26: ffff80097631de00
      [  169.792913] x25: 0000000000000001 x24: 00000027827b2cf4
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      db4b0710
    • A
      arm64: kernel: force ET_DYN ELF type for CONFIG_RELOCATABLE=y · b9dce7f1
      Ard Biesheuvel 提交于
      GNU ld used to set the ELF file type to ET_DYN for PIE executables, which
      is the same file type used for shared libraries. However, this was changed
      recently, and now PIE executables are emitted as ET_EXEC instead.
      
      The distinction is only relevant for ELF loaders, and so there is little
      reason to care about the difference when building the kernel, which is
      why the change has gone unnoticed until now.
      
      However, debuggers do use the ELF binary, and expect ET_EXEC type files
      to appear in memory at the exact offset described in the ELF metadata.
      This means source level debugging is no longer possible when KASLR is in
      effect or when executing the stub.
      
      So add the -shared LD option when building with CONFIG_RELOCATABLE=y. This
      forces the ELF file type to be set to ET_DYN (which is what you get when
      building with binutils 2.24 and earlier anyway), and has no other ill
      effects.
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      b9dce7f1
    • J
      arm64: suspend: Reconfigure PSTATE after resume from idle · d0854412
      James Morse 提交于
      The suspend/resume path in kernel/sleep.S, as used by cpu-idle, does not
      save/restore PSTATE. As a result of this cpufeatures that were detected
      and have bits in PSTATE get lost when we resume from idle.
      
      UAO gets set appropriately on the next context switch. PAN will be
      re-enabled next time we return from user-space, but on a preemptible
      kernel we may run work accessing user space before this point.
      
      Add code to re-enable theses two features in __cpu_suspend_exit().
      We re-use uao_thread_switch() passing current.
      Signed-off-by: NJames Morse <james.morse@arm.com>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      d0854412
    • J
      arm64: mm: Set PSTATE.PAN from the cpu_enable_pan() call · 7209c868
      James Morse 提交于
      Commit 338d4f49 ("arm64: kernel: Add support for Privileged Access
      Never") enabled PAN by enabling the 'SPAN' feature-bit in SCTLR_EL1.
      This means the PSTATE.PAN bit won't be set until the next return to the
      kernel from userspace. On a preemptible kernel we may schedule work that
      accesses userspace on a CPU before it has done this.
      
      Now that cpufeature enable() calls are scheduled via stop_machine(), we
      can set PSTATE.PAN from the cpu_enable_pan() call.
      
      Add WARN_ON_ONCE(in_interrupt()) to check the PSTATE value we updated
      is not immediately discarded.
      Reported-by: NTony Thompson <anthony.thompson@arm.com>
      Reported-by: NVladimir Murzin <vladimir.murzin@arm.com>
      Signed-off-by: NJames Morse <james.morse@arm.com>
      [will: fixed typo in comment]
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      7209c868
    • J
      arm64: cpufeature: Schedule enable() calls instead of calling them via IPI · 2a6dcb2b
      James Morse 提交于
      The enable() call for a cpufeature/errata is called using on_each_cpu().
      This issues a cross-call IPI to get the work done. Implicitly, this
      stashes the running PSTATE in SPSR when the CPU receives the IPI, and
      restores it when we return. This means an enable() call can never modify
      PSTATE.
      
      To allow PAN to do this, change the on_each_cpu() call to use
      stop_machine(). This schedules the work on each CPU which allows
      us to modify PSTATE.
      
      This involves changing the protype of all the enable() functions.
      
      enable_cpu_capabilities() is called during boot and enables the feature
      on all online CPUs. This path now uses stop_machine(). CPU features for
      hotplug'd CPUs are enabled by verify_local_cpu_features() which only
      acts on the local CPU, and can already modify the running PSTATE as it
      is called from secondary_start_kernel().
      Reported-by: NTony Thompson <anthony.thompson@arm.com>
      Reported-by: NVladimir Murzin <vladimir.murzin@arm.com>
      Signed-off-by: NJames Morse <james.morse@arm.com>
      Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      2a6dcb2b
    • A
      arm64: Cortex-A53 errata workaround: check for kernel addresses · 87261d19
      Andre Przywara 提交于
      Commit 7dd01aef ("arm64: trap userspace "dc cvau" cache operation on
      errata-affected core") adds code to execute cache maintenance instructions
      in the kernel on behalf of userland on CPUs with certain ARM CPU errata.
      It turns out that the address hasn't been checked to be a valid user
      space address, allowing userland to clean cache lines in kernel space.
      Fix this by introducing an address check before executing the
      instructions on behalf of userland.
      
      Since the address doesn't come via a syscall parameter, we can't just
      reject tagged pointers and instead have to remove the tag when checking
      against the user address limit.
      
      Cc: <stable@vger.kernel.org>
      Fixes: 7dd01aef ("arm64: trap userspace "dc cvau" cache operation on errata-affected core")
      Reported-by: NKristina Martsenko <kristina.martsenko@arm.com>
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      [will: rework commit message + replace access_ok with max_user_addr()]
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      87261d19
    • L
      Merge tag 'platform-drivers-x86-v4.9-2' of... · c3f8f7fa
      Linus Torvalds 提交于
      Merge tag 'platform-drivers-x86-v4.9-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull x86 platform driver fixes from Darren Hart:
       "Fix a Kconfig issue leading potential link failure, and add a DMI
        match for an existing quirk.
      
        asus-wmi:
         - add SERIO_I8042 dependency
      
        ideapad-laptop:
         - Add Lenovo Yoga 910-13IKB to no_hw_rfkill dmi list"
      
      * tag 'platform-drivers-x86-v4.9-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        platform/x86: asus-wmi: add SERIO_I8042 dependency
        platform/x86: ideapad-laptop: Add Lenovo Yoga 910-13IKB to no_hw_rfkill dmi list
      c3f8f7fa
    • L
      Merge tag 'sh-for-4.9' of git://git.libc.org/linux-sh · 147fdd8c
      Linus Torvalds 提交于
      Pull arch/sh updates from Rich Felker:
       "Minor changes to improve J2 support and match Kconfig expectations of
        other subsystems"
      
      * tag 'sh-for-4.9' of git://git.libc.org/linux-sh:
        sh: add earlycon support to j2_defconfig
        sh: add Kconfig option for J-Core SoC core drivers
        sh: support CPU_J2 when compiler lacks -mj2
      147fdd8c
    • L
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 893e2c5c
      Linus Torvalds 提交于
      Pull scheduler fix from Ingo Molnar:
       "This fixes a group scheduling related performance/interactivity
        regression introduced in v4.8, which affects certain hardware
        environments where cpu_possible_mask != cpu_present_mask"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Fix incorrect task group ->load_avg
      893e2c5c
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 8a1e377e
      Linus Torvalds 提交于
      Pull HID fixes from Jiri Kosina:
      
       - hid-dr regression fix for certain dragonrise gamepads (device ID
         0079:0006), from Ioan-Adrian Ratiu
      
       - dma-on-stack fix for hid-led driver, from Heiner Kallweit
      
       - quirk for Akai MIDImix device
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: add quirk for Akai MIDImix.
        Revert "HID: dragonrise: fix HID Descriptor for 0x0006 PID"
        HID: hid-dr: add input mapping for axis selection
        HID: hid-led: fix issue with transfer buffer not being dma capable
      8a1e377e
    • L
      Merge tag 'pinctrl-v4.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · b6ffb11e
      Linus Torvalds 提交于
      Pull first round of pin control fixes from Linus Walleij:
      
       - a bunch of barnsjukdomar/kinderkrankheiten/maladie infantile in the
         Aspeed driver. (Why doesn't English have a word for this?)
      
         [ Maybe "teething problems" is the closest English idiom? - Linus T ]
      
       - fix a lockdep bug on the Intel BayTrail.
      
       - fix a few special laptop issues on the Intel pin controller solving
         suspend issues.
      
      * tag 'pinctrl-v4.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: intel: Only restore pins that are used by the driver
        pinctrl: baytrail: Fix lockdep
        pinctrl: aspeed-g5: Fix pin association of SPI1 function
        pinctrl: aspeed-g5: Fix GPIOE1 typo
        pinctrl: aspeed-g5: Fix names of GPID2 pins
        pinctrl: aspeed: "Not enabled" is a significant mux state
      b6ffb11e
    • L
      printk: suppress empty continuation lines · 8835ca59
      Linus Torvalds 提交于
      We have a fairly common pattern where you print several things as
      continuations on one single line in a loop, and then at the end you do
      
      	printk(KERN_CONT "\n");
      
      to flush the buffered output.
      
      But if the output was flushed by something else (concurrent printk
      activity, or just system logging), we don't want that final flushing to
      just print an empty line.
      
      So just suppress empty continuation lines when they couldn't be merged
      into the line they are a continuation of.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8835ca59
  3. 19 10月, 2016 23 次提交