1. 22 Oct, 2016 9 commits
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0c2b6dc4
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "This updates contains:
         - A revert which addresses a boot failure on ARM Sun5i platforms
         - A new clocksource driver, which has been delayed beyond rc1 due to
           an interrupt driver issue which was unearthed by this driver. The
           debugging of that issue and the discussion about the proper
           solution made this driver miss the merge window. There is no point
           in delaying it for a full cycle as it completes the basic mainline
           support for the new JCore platform and does not create any risk
           outside of that platform"
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "clocksource/drivers/timer_sun5i: Replace code by clocksource_mmio_init"
        clocksource: Add J-Core timer/clocksource driver
        of: Add J-Core timer bindings
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3e9679a3
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Three fixes, a hw-enablement and a cross-arch fix/enablement change:
         - SGI/UV fix for older platforms
         - x32 signal handling fix
         - older x86 platform bootup APIC fix
         - AVX512-4VNNIW (Neural Network Instructions) and AVX512-4FMAPS
           (Multiply Accumulation Single precision instructions) enablement.
         - move thread_info back into x86 specific code, to make life easier
           for other architectures trying to make use of
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot/smp: Don't try to poke disabled/non-existent APIC
        sched/core, x86: Make struct thread_info arch specific again
        x86/signal: Remove bogus user_64bit_mode() check from sigaction_compat_abi()
        x86/platform/UV: Fix support for EFI_OLD_MEMMAP after BIOS callback updates
        x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS features
        x86/vmware: Skip timer_irq_works() check on VMware
    • Linus Torvalds's avatar
      Merge branch 'mm-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 86c5bf71
      Linus Torvalds authored
      Pull vmap stack fixes from Ingo Molnar:
       "This is fallout from CONFIG_HAVE_ARCH_VMAP_STACK=y on x86: stack
        accesses that used to be just somewhat questionable are now totally
        These changes try to do it without breaking the ABI: the fields are
        left there, they are just reporting zero, or reporting narrower
        information (the maps file change)"
      * 'mm-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        mm: Change vm_is_stack_for_task() to vm_is_stack_for_current()
        fs/proc: Stop trying to report thread stacks
        fs/proc: Stop reporting eip and esp in /proc/PID/stat
        mm/numa: Remove duplicated include from mprotect.c
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bfb7bfef
      Linus Torvalds authored
      Pull irq fixes from Ingo Molnar:
       "Mostly irqchip driver fixes, plus a symbol export"
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        kernel/irq: Export irq_set_parent()
        irqchip/gic: Add missing \n to CPU IF adjustment message
        irqchip/jcore: Don't show Kconfig menu item for driver
        irqchip/eznps: Drop pointless static qualifier in nps400_of_init()
        irqchip/gic-v3-its: Fix entry size mask for GITS_BASER
        irqchip/gic-v3-its: Fix 64bit GIC{R,ITS}_TYPER accesses
    • Linus Torvalds's avatar
      Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 90e01058
      Linus Torvalds authored
      Pull EFI fixes from Ingo Molnar:
       "Add Ard Biesheuvel as EFI co-maintainer, plus fix an ARM build bug
        with older toolchains"
      * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi/arm: Fix absolute relocation detection for older toolchains
        MAINTAINERS: Add myself as EFI maintainer
    • Ville Syrjälä's avatar
      x86/boot/smp: Don't try to poke disabled/non-existent APIC · ff856051
      Ville Syrjälä authored
      Apparently trying to poke a disabled or non-existent APIC
      leads to a box that doesn't even boot. Let's not do that.
      No real clue if this is the right fix, but at least my
      P3 machine boots again.
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: Eric Biederman <ebiederm@xmission.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Josh Poimboeuf <jpoimboe@redhat.com>
      Cc: Juergen Gross <jgross@suse.com>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Prarit Bhargava <prarit@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: dyoung@redhat.com
      Cc: kexec@lists.infradead.org
      Cc: stable@vger.kernel.org
      Fixes: 2a51fe08 ("arch/x86: Handle non enumerated CPU after physical hotplug")
      Link: http://lkml.kernel.org/r/1477102684-5092-1-git-send-email-ville.syrjala@linux.intel.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · dcd4693c
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Fixes marked for stable:
         - Prevent unlikely crash in copro_calculate_slb() (Frederic Barrat)
         - cxl: Prevent adapter reset if an active context exists (Vaibhav Jain)
        Fixes for code merged this cycle:
         - Fix boot on systems with uncompressed kernel image (Heiner Kallweit)
         - Drop dump_numa_memory_topology() (Michael Ellerman)
         - Fix numa topology console print (Aneesh Kumar K.V)
         - Ignore the pkey system calls for now (Stephen Rothwell)"
      * tag 'powerpc-4.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc: Ignore the pkey system calls for now
        powerpc: Fix numa topology console print
        powerpc/mm: Drop dump_numa_memory_topology()
        cxl: Prevent adapter reset if an active context exists
        powerpc/boot: Fix boot on systems with uncompressed kernel image
        powerpc/mm: Prevent unlikely crash in copro_calculate_slb()
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · a23b27ae
      Linus Torvalds authored
      Pull KVM fixes from Radim Krčmář:
         - avoid livelock when walking guest page tables
         - fix HYP mode static keys without CC_HAVE_ASM_GOTO
         - fix a build error without TRACEPOINTS_ENABLED
         - reject a malformed userspace configuration
         - suppress a warning without CONFIG_CPU_FREQ
         - initialize whole irq_eoi array"
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        arm/arm64: KVM: Map the BSS at HYP
        arm64: KVM: Take S1 walks into account when determining S2 write faults
        KVM: s390: reject invalid modes for runtime instrumentation
        kvm: x86: memset whole irq_eoi
        kvm/x86: Fix unused variable warning in kvm_timer_init()
        KVM: MIPS: Add missing uaccess.h include
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.9-2' of git://git.linux-nfs.org/projects/anna/linux-nfs · 02593ac6
      Linus Torvalds authored
      Pull NFS client bugfixes from Anna Schumaker:
       "Just two bugfixes this time:
        Stable bugfix:
         - Fix last_write_offset incorrectly set to page boundary
        Other bugfix:
         - Fix missing-braces warning"
      * tag 'nfs-for-4.9-2' of git://git.linux-nfs.org/projects/anna/linux-nfs:
        nfs4: fix missing-braces warning
        pnfs/blocklayout: fix last_write_offset incorrectly set to page boundary
  2. 21 Oct, 2016 16 commits
  3. 20 Oct, 2016 15 commits
    • Mika Westerberg's avatar
      watchdog: wdat_wdt: Ping the watchdog on resume · 28e3d700
      Mika Westerberg authored
      It turns out we need to ping the watchdog hardware on resume when we
      re-program it. Otherwise this causes inadvertent reset to trigger
      right after the resume is complete.
      Fixes: 058dfc76
       (ACPI / watchdog: Add support for WDAT hardware watchdog)
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Acked-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    • Linus Torvalds's avatar
      Merge tag 'pm-4.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 6f33d645
      Linus Torvalds authored
      Pull power management fix from Rafael Wysocki:
       "This fixes the pointer arithmetics mess-up in the cpufreq core
        introduced by one of recent commits and leading to all kinds of
        breakage from kernel crashes to incorrect governor decisions (Sergey
      * tag 'pm-4.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: fix overflow in cpufreq_table_find_index_dl()
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · 350d3239
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq: fix overflow in cpufreq_table_find_index_dl()
    • Chen-Yu Tsai's avatar
      Revert "clocksource/drivers/timer_sun5i: Replace code by clocksource_mmio_init" · 59387683
      Chen-Yu Tsai authored
      struct clocksource is also used by the clk notifier callback, to
      unregister and re-register the clocksource with a different clock rate.
      clocksource_mmio_init does not pass back a pointer to the struct used,
      and the clk notifier callback assumes that the struct clocksource in
      struct sun5i_timer_clksrc is valid. This results in a kernel NULL
      pointer dereference when the hstimer clock is changed:
      Unable to handle kernel NULL pointer dereference at virtual address 00000004
      [<c03a4678>] (clocksource_unbind) from [<c03a46d4>] (clocksource_unregister+0x2c/0x44)
      [<c03a46d4>] (clocksource_unregister) from [<c0a6f350>] (sun5i_rate_cb_clksrc+0x34/0x3c)
      [<c0a6f350>] (sun5i_rate_cb_clksrc) from [<c035ea50>] (notifier_call_chain+0x44/0x84)
      [<c035ea50>] (notifier_call_chain) from [<c035edc0>] (__srcu_notifier_call_chain+0x44/0x60)
      [<c035edc0>] (__srcu_notifier_call_chain) from [<c035edf4>] (srcu_notifier_call_chain+0x18/0x20)
      [<c035edf4>] (srcu_notifier_call_chain) from [<c0670174>] (__clk_notify+0x70/0x7c)
      [<c0670174>] (__clk_notify) from [<c06702c0>] (clk_propagate_rate_change+0xa4/0xc4)
      [<c06702c0>] (clk_propagate_rate_change) from [<c0670288>] (clk_propagate_rate_change+0x6c/0xc4)
      Revert the commit for now. clocksource_mmio_init can be made to pass back
      a pointer, but the code churn and usage of an inner struct might not be
      worth it.
      Fixes: 157dfade
       ("clocksource/drivers/timer_sun5i: Replace code by clocksource_mmio_init")
      Reported-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
      Cc: linux-sunxi@googlegroups.com
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: http://lkml.kernel.org/r/20161018054918.26855-1-wens@csie.org
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    • Radim Krčmář's avatar
      Merge tag 'kvm-s390-master-4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux · 3633031d
      Radim Krčmář authored
      KVM: s390: Fix for user-triggerable WARN_ON
      A malicious user space can provide an invalid mode for runtime
      instrumentation via the interfaces that are normally used on
      the target host during migration. This would trigger a WARN_ON
      via validity intercept. Let's detect this special case.
    • Rich Felker's avatar
      clocksource: Add J-Core timer/clocksource driver · 9995f4f1
      Rich Felker authored
      At the hardware level, the J-Core PIT is integrated with the interrupt
      controller, but it is represented as its own device and has an
      independent programming interface. It provides a 12-bit countdown
      timer, which is not presently used, and a periodic timer. The interval
      length for the latter is programmable via a 32-bit throttle register
      whose units are determined by a bus-period register. The periodic
      timer is used to implement both periodic and oneshot clock event
      modes; in oneshot mode the interrupt handler simply disables the timer
      as soon as it fires.
      Despite its device tree node representing an interrupt for the PIT,
      the actual irq generated is programmable, not hard-wired. The driver
      is responsible for programming the PIT to generate the hardware irq
      number that the DT assigns to it.
      On SMP configurations, J-Core provides cpu-local instances of the PIT;
      no broadcast timer is needed. This driver supports the creation of the
      necessary per-cpu clock_event_device instances.
      A nanosecond-resolution clocksource is provided using the J-Core "RTC"
      registers, which give a 64-bit seconds count and 32-bit nanoseconds
      that wrap every second. The driver converts these to a full-range
      32-bit nanoseconds count.
      Signed-off-by: default avatarRich Felker <dalias@libc.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: devicetree@vger.kernel.org
      Cc: linux-sh@vger.kernel.org
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Link: http://lkml.kernel.org/r/b591ff12cc5ebf63d1edc98da26046f95a233814.1476393790.git.dalias@libc.org
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    • Rich Felker's avatar
      of: Add J-Core timer bindings · a2ce092b
      Rich Felker authored
      Signed-off-by: default avatarRich Felker <dalias@libc.org>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: devicetree@vger.kernel.org
      Cc: linux-sh@vger.kernel.org
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Link: http://lkml.kernel.org/r/8b107c292ed8cf8eed0fa283071fc8a930098628.1476393790.git.dalias@libc.org
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    • Christian Borntraeger's avatar
      KVM: s390: reject invalid modes for runtime instrumentation · a5efb6b6
      Christian Borntraeger authored
      Usually a validity intercept is a programming error of the host
      because of invalid entries in the state description.
      We can get a validity intercept if the mode of the runtime
      instrumentation control block is wrong. As the host does not know
      which modes are valid, this can be used by userspace to trigger
      a WARN.
      Instead of printing a WARN let's return an error to userspace as
      this can only happen if userspace provides a malformed initial
      value (e.g. on migration). The kernel should never warn on bogus
      input. Instead let's log it into the s390 debug feature.
      While at it, let's return -EINVAL for all validity intercepts as
      this will trigger an error in QEMU like
      error: kvm run failed Invalid argument
      PSW=mask 0404c00180000000 addr 000000000063c226 cc 00
      R00=000000000000004f R01=0000000000000004 R02=0000000000760005 R03=000000007fe0a000
      R04=000000000064ba2a R05=000000049db73dd0 R06=000000000082c4b0 R07=0000000000000041
      R08=0000000000000002 R09=000003e0804042a8 R10=0000000496152c42 R11=000000007fe0afb0
      This will avoid an endless loop of validity intercepts.
      Cc: stable@vger.kernel.org # v4.5+
      Fixes: c6e5f166
       ("KVM: s390: implement the RI support of guest")
      Acked-by: default avatarFan Zhang <zhangfan@linux.vnet.ibm.com>
      Reviewed-by: default avatarPierre Morel <pmorel@linux.vnet.ibm.com>
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · f4814e61
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.9-rc2' of git://github.com/ceph/ceph-client · bdcff415
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 0ea67fae
      Linus Torvalds authored
      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
        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
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · a28ad14e
      Linus Torvalds authored
      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
    • Radim Krčmář's avatar
      Merge tag 'kvm_mips_4.9_2' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/kvm-mips · f6bbf1b7
      Radim Krčmář authored
      MIPS KVM fix for v4.9-rc2
      - Fix build error introduced during the 4.9 merge window when
        tracepoints are disabled.
    • Sergey Senozhatsky's avatar
      cpufreq: fix overflow in cpufreq_table_find_index_dl() · c6fe46a7
      Sergey Senozhatsky authored
      'best' is always less or equals to 'pos', so `best - pos' returns
      a negative value which is then getting casted to `unsigned int'
      and passed to __cpufreq_driver_target()->acpi_cpufreq_target()
      for policy->freq_table selection. This results in
       BUG: unable to handle kernel paging request at ffff881019b469f8
       IP: [<ffffffffa00356c1>] acpi_cpufreq_target+0x4f/0x190 [acpi_cpufreq]
       PGD 267f067
       PUD 0
       Oops: 0000 [#1] PREEMPT SMP
       CPU: 6 PID: 70 Comm: kworker/6:1 Not tainted 4.9.0-rc1-next-20161017-dbg-dirty
       Workqueue: events dbs_work_handler
       task: ffff88041b808000 task.stack: ffff88041b810000
       RIP: 0010:[<ffffffffa00356c1>]  [<ffffffffa00356c1>] acpi_cpufreq_target+0x4f/0x190 [acpi_cpufreq]
       RSP: 0018:ffff88041b813c60  EFLAGS: 00010282
       RAX: ffff880419b46a00 RBX: ffff88041b848400 RCX: ffff880419b20f80
       RDX: 00000000001dff38 RSI: 00000000ffffffff RDI: ffff88041b848400
       RBP: ffff88041b813cb0 R08: 0000000000000006 R09: 0000000000000040
       R10: ffffffff8207f9e0 R11: ffffffff8173595b R12: 0000000000000000
       R13: ffff88041f1dff38 R14: 0000000000262900 R15: 0000000bfffffff4
       FS:  0000000000000000(0000) GS:ffff88041f000000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: ffff881019b469f8 CR3: 000000041a2d3000 CR4: 00000000001406e0
        ffff88041b813cb0 ffffffff813347f9 ffff88041b813ca0 ffffffff81334663
        ffff88041f1d4bc0 ffff88041b848400 0000000000000000 0000000000000000
        0000000000262900 0000000000000000 ffff88041b813d00 ffffffff813355dc
       Call Trace:
        [<ffffffff813347f9>] ? cpufreq_freq_transition_begin+0xf1/0xfc
        [<ffffffff81334663>] ? get_cpu_idle_time+0x97/0xa6
        [<ffffffff813355dc>] __cpufreq_driver_target+0x3b6/0x44e
        [<ffffffff81336ca3>] cs_dbs_timer+0x11a/0x135
        [<ffffffff81336fda>] dbs_work_handler+0x39/0x62
        [<ffffffff81057823>] process_one_work+0x280/0x4a5
        [<ffffffff81058719>] worker_thread+0x24f/0x397
        [<ffffffff810584ca>] ? rescuer_thread+0x30b/0x30b
        [<ffffffff81418380>] ? nl80211_get_key+0x29/0x36a
        [<ffffffff8105d2b7>] kthread+0xfc/0x104
        [<ffffffff8107ceea>] ? put_lock_stats.isra.9+0xe/0x20
        [<ffffffff8105d1bb>] ? kthread_create_on_node+0x3f/0x3f
        [<ffffffff814b2092>] ret_from_fork+0x22/0x30
       Code: 56 4d 6b ff 0c 41 55 41 54 53 48 83 ec 28 48 8b 15 ad 1e 00 00 44 8b 41
       08 48 8b 87 c8 00 00 00 49 89 d5 4e 03 2c c5 80 b2 78 81 <46> 8b 74 38 04 45
       3b 75 00 75 11 31 c0 83 39 00 0f 84 1c 01 00
       RIP  [<ffffffffa00356c1>] acpi_cpufreq_target+0x4f/0x190 [acpi_cpufreq]
        RSP <ffff88041b813c60>
       CR2: ffff881019b469f8
       ---[ end trace 16d9fc7a17897d37 ]---
      [ rjw: In some cases this bug may also cause incorrect frequencies to
        be selected by cpufreq governors. ]
      Fixes: 899bb664 (cpufreq: skip invalid entries when searching the frequency)
      Link: http://marc.info/?l=linux-kernel&m=147672030714331&w=2
      Reported-and-tested-by: default avatarSedat Dilek <sedat.dilek@gmail.com>
      Reported-and-tested-by: default avatarJörg Otte <jrg.otte@gmail.com>
      Signed-off-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Cc: 4.8+ <stable@vger.kernel.org> # 4.8+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    • Mark Rutland's avatar
      arm64: remove pr_cont abuse from mem_init · f7881bd6
      Mark Rutland authored
      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: default avatarMark 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: default avatarWill Deacon <will.deacon@arm.com>