1. 12 Nov, 2015 18 commits
    • Ville Syrjälä's avatar
      drm: Don't oops in drm_calc_timestamping_constants() if drm_vblank_init() wasn't called · 0c545ac4
      Ville Syrjälä authored
      Seems the crtc helpers call drm_calc_timestamping_constants()
      unconditionally even if the driver didn't initialize vblank support by
      calling drm_vblank_init(). That used to be OK since the constants were
      stored under drm_crtc.
      
      However I broke this with
      commit eba1f35d ("drm: Move timestamping constants into drm_vblank_crtc")
      when I moved the constants to live inside the drm_vblank_crtc struct
      instead. If drm_vblank_init() isn't called, we don't allocate these
      structures, and so drm_calc_timestamping_constants() will oops.
      
      Fix it by adding a check into drm_calc_timestamping_constants() to see
      if vblank support was initialized at all. And to keep in line with other
      such checks, also toss in a check and warn for the case where vblank
      support was initialized, but the wrong number of crtcs was specified.
      
      Fixes the following sort of oops:
       BUG: unable to handle kernel NULL pointer dereference at 00000000000000b0
       IP: [<ffffffffa014b266>] drm_calc_timestamping_constants+0x86/0x130 [drm]
       PGD 0
       Oops: 0002 [#1] SMP
       Modules linked in: sr_mod cdrom mgag200(+) i2c_algo_bit drm_kms_helper ahci syscopyarea sysfillrect sysimgblt libahci fb_sys_fops bnx2x ttm tg3(+) mdio drm ptp sd_mod libata i2c_core pps_core libcrc32c hpsa dm_mirror dm_region_hash dm_log dm_mod
       CPU: 0 PID: 418 Comm: kworker/0:2 Not tainted 4.3.0+ #1
       Hardware name: HP ProLiant DL380 Gen9, BIOS P89 06/09/2015
       Workqueue: events work_for_cpu_fn
       task: ffff88046ca95500 ti: ffff88007830c000 task.ti: ffff88007830c000
       RIP: 0010:[<ffffffffa014b266>]  [<ffffffffa014b266>] drm_calc_timestamping_constants+0x86/0x130 [drm]
       RSP: 0018:ffff88007830f4e8  EFLAGS: 00010246
       RAX: 0000000000fe4c00 RBX: ffff88006a849160 RCX: 0000000000000540
       RDX: 0000000000000000 RSI: 000000000000fde8 RDI: ffff88006a849000
       RBP: ffff88007830f518 R08: ffff88007830c000 R09: 00000001b87e3712
       R10: 00000000000050c4 R11: 0000000000000000 R12: 0000000000fe4c00
       R13: ffff88006a849000 R14: 0000000000000000 R15: 000000000000fde8
       FS:  0000000000000000(0000) GS:ffff88046f800000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 00000000000000b0 CR3: 00000000019d6000 CR4: 00000000001406f0
       Stack:
        ffff88007830f518 ffff88006a849000 ffff880c69b90340 ffff880c69b90000
        ffff880c69b90348 ffff880c69b90340 ffff88007830f748 ffffffffa042f7e7
        ffff88006a849090 0000000000000000 ffff88006a849160 0000000000000000
       Call Trace:
        [<ffffffffa042f7e7>] drm_crtc_helper_set_mode+0x3d7/0x4b0 [drm_kms_helper]
        [<ffffffffa04307d4>] drm_crtc_helper_set_config+0x8d4/0xb10 [drm_kms_helper]
        [<ffffffffa01548d4>] drm_mode_set_config_internal+0x64/0x100 [drm]
        [<ffffffffa043c342>] drm_fb_helper_pan_display+0xa2/0x280 [drm_kms_helper]
        [<ffffffff81392c7b>] fb_pan_display+0xbb/0x170
        [<ffffffff8138cf70>] bit_update_start+0x20/0x50
        [<ffffffff8138b81b>] fbcon_switch+0x39b/0x590
        [<ffffffff8140a3d0>] redraw_screen+0x1a0/0x240
        [<ffffffff8140b30e>] do_bind_con_driver+0x2ee/0x310
        [<ffffffff8140b651>] do_take_over_console+0x141/0x1b0
        [<ffffffff81387377>] do_fbcon_takeover+0x57/0xb0
        [<ffffffff8138c98b>] fbcon_event_notify+0x60b/0x750
        [<ffffffff810a5599>] notifier_call_chain+0x49/0x70
        [<ffffffff810a58dd>] __blocking_notifier_call_chain+0x4d/0x70
        [<ffffffff810a5916>] blocking_notifier_call_chain+0x16/0x20
        [<ffffffff8139282b>] fb_notifier_call_chain+0x1b/0x20
        [<ffffffff81394881>] register_framebuffer+0x1f1/0x330
        [<ffffffffa043d9aa>] drm_fb_helper_initial_config+0x27a/0x3d0 [drm_kms_helper]
        [<ffffffffa0469b4d>] mgag200_fbdev_init+0xdd/0xf0 [mgag200]
        [<ffffffffa0468586>] mgag200_modeset_init+0x176/0x1e0 [mgag200]
        [<ffffffffa0464659>] mgag200_driver_load+0x3f9/0x580 [mgag200]
        [<ffffffffa014e067>] drm_dev_register+0xa7/0xb0 [drm]
        [<ffffffffa015054f>] drm_get_pci_dev+0x8f/0x1e0 [drm]
        [<ffffffffa046937b>] mga_pci_probe+0x9b/0xc0 [mgag200]
        [<ffffffff813662d5>] local_pci_probe+0x45/0xa0
        [<ffffffff8109afe4>] work_for_cpu_fn+0x14/0x20
        [<ffffffff8109e13c>] process_one_work+0x14c/0x3c0
        [<ffffffff8109eaa4>] worker_thread+0x244/0x470
        [<ffffffff8168bfba>] ? __schedule+0x2aa/0x760
        [<ffffffff8109e860>] ? rescuer_thread+0x310/0x310
        [<ffffffff810a4438>] kthread+0xd8/0xf0
        [<ffffffff810a4360>] ? kthread_park+0x60/0x60
        [<ffffffff8169030f>] ret_from_fork+0x3f/0x70
        [<ffffffff810a4360>] ? kthread_park+0x60/0x60
       Code: f6 31 d2 41 89 c2 8b 83 b4 00 00 00 0f af c1 48 98 48 69 c0 40 42 0f 00 48 f7 f6 f6 43 74 10 41 89 c4 75 26 f6 05 9a 6f 03 00 01 <45> 89 96 b0 00 00 00 45 89 a6 ac 00 00 00 75 35 48 83 c4 08 5b
       RIP  [<ffffffffa014b266>] drm_calc_timestamping_constants+0x86/0x130 [drm]
        RSP <ffff88007830f4e8>
       CR2: 00000000000000b0
      
      Cc: Jeff Moyer <jmoyer@redhat.com>
      Reported-by: default avatarJeff Moyer <jmoyer@redhat.com>
      References: http://lists.freedesktop.org/archives/dri-devel/2015-November/094217.html
      Fixes: eba1f35d ("drm: Move timestamping constants into drm_vblank_crtc")
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      0c545ac4
    • Dave Airlie's avatar
      Merge tag 'topic/drm-fixes-2015-11-11' of git://anongit.freedesktop.org/drm-intel into drm-fixes · 9589fcde
      Dave Airlie authored
      Single fix for uapi.
      
      * tag 'topic/drm-fixes-2015-11-11' of git://anongit.freedesktop.org/drm-intel:
        drm: Use userspace compatible type in fourcc_mod_code macro
      9589fcde
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · a18e2fa5
      Linus Torvalds authored
      Pull arm64 fixes and clean-ups from Catalin Marinas:
       "Here's a second pull request for this merging window with some
        fixes/clean-ups:
      
         - __cmpxchg_double*() return type fix to avoid truncation of a long
           to int and subsequent logical "not" in cmpxchg_double()
           misinterpreting the operation success/failure
      
         - BPF fixes for mod and div by zero
      
         - Fix compilation with STRICT_MM_TYPECHECKS enabled
      
         - VDSO build fix without libgcov
      
         - Some static and __maybe_unused annotations
      
         - Kconfig clean-up (FRAME_POINTER)
      
         - defconfig update for CRYPTO_CRC32_ARM64"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: suspend: make hw_breakpoint_restore static
        arm64: mmu: make split_pud and fixup_executable static
        arm64: smp: make of_parse_and_init_cpus static
        arm64: use linux/types.h in kvm.h
        arm64: build vdso without libgcov
        arm64: mark cpus_have_hwcap as __maybe_unused
        arm64: remove redundant FRAME_POINTER kconfig option and force to select it
        arm64: fix R/O permissions of FDT mapping
        arm64: fix STRICT_MM_TYPECHECKS issue in PTE_CONT manipulation
        arm64: bpf: fix mod-by-zero case
        arm64: bpf: fix div-by-zero case
        arm64: Enable CRYPTO_CRC32_ARM64 in defconfig
        arm64: cmpxchg_dbl: fix return value type
      a18e2fa5
    • Linus Torvalds's avatar
      Merge tag 'for-4.4' of git://git.osdn.jp/gitroot/uclinux-h8/linux · 7dac7102
      Linus Torvalds authored
      Pull h8300 updates from Yoshinori Sato:
       "Some bug fixes"
      
      * tag 'for-4.4' of git://git.osdn.jp/gitroot/uclinux-h8/linux:
        h8300: enable CLKSRC_OF
        h8300: Don't set CROSS_COMPILE unconditionally
        asm-generic: {get,put}_user ptr argument evaluate only 1 time
        h8300: bit io fix
        h8300: zImage fix
        h8300: register address fix
        h8300: Fix alignment for .data
        h8300: unaligned divcr register support.
      7dac7102
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 3370b69e
      Linus Torvalds authored
      Pull second batch of kvm updates from Paolo Bonzini:
       "Four changes:
      
         - x86: work around two nasty cases where a benign exception occurs
           while another is being delivered.  The endless stream of exceptions
           causes an infinite loop in the processor, which not even NMIs or
           SMIs can interrupt; in the virt case, there is no possibility to
           exit to the host either.
      
         - x86: support for Skylake per-guest TSC rate.  Long supported by
           AMD, the patches mostly move things from there to common
           arch/x86/kvm/ code.
      
         - generic: remove local_irq_save/restore from the guest entry and
           exit paths when context tracking is enabled.  The patches are a few
           months old, but we discussed them again at kernel summit.  Andy
           will pick up from here and, in 4.5, try to remove it from the user
           entry/exit paths.
      
         - PPC: Two bug fixes, see merge commit 37028975 for details"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (21 commits)
        KVM: x86: rename update_db_bp_intercept to update_bp_intercept
        KVM: svm: unconditionally intercept #DB
        KVM: x86: work around infinite loop in microcode when #AC is delivered
        context_tracking: avoid irq_save/irq_restore on guest entry and exit
        context_tracking: remove duplicate enabled check
        KVM: VMX: Dump TSC multiplier in dump_vmcs()
        KVM: VMX: Use a scaled host TSC for guest readings of MSR_IA32_TSC
        KVM: VMX: Setup TSC scaling ratio when a vcpu is loaded
        KVM: VMX: Enable and initialize VMX TSC scaling
        KVM: x86: Use the correct vcpu's TSC rate to compute time scale
        KVM: x86: Move TSC scaling logic out of call-back read_l1_tsc()
        KVM: x86: Move TSC scaling logic out of call-back adjust_tsc_offset()
        KVM: x86: Replace call-back compute_tsc_offset() with a common function
        KVM: x86: Replace call-back set_tsc_khz() with a common function
        KVM: x86: Add a common TSC scaling function
        KVM: x86: Add a common TSC scaling ratio field in kvm_vcpu_arch
        KVM: x86: Collect information for setting TSC scaling ratio
        KVM: x86: declare a few variables as __read_mostly
        KVM: x86: merge handle_mmio_page_fault and handle_mmio_page_fault_common
        KVM: PPC: Book3S HV: Don't dynamically split core when already split
        ...
      3370b69e
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.4-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · be23c9d2
      Linus Torvalds authored
      Pull more power management and ACPI updates from Rafael Wysocki:
       "The only new feature in this batch is support for the ACPI _CCA device
        configuration object, which it a pre-requisite for future ACPI PCI
        support on ARM64, but should not affect the other architectures.
      
        The rest is fixes and cleanups, mostly in cpufreq (including
        intel_pstate), the Operating Performace Points (OPP) framework and
        tools (cpupower and turbostat).
      
        Specifics:
      
         - Support for the ACPI _CCA configuration object intended to tell the
           OS whether or not a bus master device supports hardware managed
           cache coherency and a new set of functions to allow drivers to
           check the cache coherency support for devices in a platform
           firmware interface agnostic way (Suravee Suthikulpanit, Jeremy
           Linton).
      
         - ACPI backlight quirks for ESPRIMO Mobile M9410 and Dell XPS L421X
           (Aaron Lu, Hans de Goede).
      
         - Fixes for the arm_big_little and s5pv210-cpufreq cpufreq drivers
           (Jon Medhurst, Nicolas Pitre).
      
         - kfree()-related fixup for the recently introduced CPPC cpufreq
           frontend (Markus Elfring).
      
         - intel_pstate fix reducing kernel log noise on systems where
           P-states are managed by hardware (Prarit Bhargava).
      
         - intel_pstate maintainers information update (Srinivas Pandruvada).
      
         - cpufreq core optimization related to the handling of delayed work
           items used by governors (Viresh Kumar).
      
         - Locking fixes and cleanups of the Operating Performance Points
           (OPP) framework (Viresh Kumar).
      
         - Generic power domains framework cleanups (Lina Iyer).
      
         - cpupower tool updates (Jacob Tanenbaum, Sriram Raghunathan, Thomas
           Renninger).
      
         - turbostat tool updates (Len Brown)"
      
      * tag 'pm+acpi-4.4-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits)
        PCI: ACPI: Add support for PCI device DMA coherency
        PCI: OF: Move of_pci_dma_configure() to pci_dma_configure()
        of/pci: Fix pci_get_host_bridge_device leak
        device property: ACPI: Remove unused DMA APIs
        device property: ACPI: Make use of the new DMA Attribute APIs
        device property: Adding DMA Attribute APIs for Generic Devices
        ACPI: Adding DMA Attribute APIs for ACPI Device
        device property: Introducing enum dev_dma_attr
        ACPI: Honor ACPI _CCA attribute setting
        cpufreq: CPPC: Delete an unnecessary check before the function call kfree()
        PM / OPP: Add opp_rcu_lockdep_assert() to _find_device_opp()
        PM / OPP: Hold dev_opp_list_lock for writers
        PM / OPP: Protect updates to list_dev with mutex
        PM / OPP: Propagate error properly from dev_pm_opp_set_sharing_cpus()
        cpufreq: s5pv210-cpufreq: fix wrong do_div() usage
        MAINTAINERS: update for intel P-state driver
        Creating a common structure initialization pattern for struct option
        cpupower: Enable disabled Cstates if they are below max latency
        cpupower: Remove debug message when using cpupower idle-set -D switch
        cpupower: cpupower monitor reports uninitialized values for offline cpus
        ...
      be23c9d2
    • Jisheng Zhang's avatar
      arm64: suspend: make hw_breakpoint_restore static · 01b305a2
      Jisheng Zhang authored
      hw_breakpoint_restore is only used within suspend.c, so it can be
      declared static.
      Signed-off-by: default avatarJisheng Zhang <jszhang@marvell.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      01b305a2
    • Jisheng Zhang's avatar
      arm64: mmu: make split_pud and fixup_executable static · 9a17a213
      Jisheng Zhang authored
      split_pud and fixup_executable are only called from within mmu.c, so
      they can be declared static.
      Signed-off-by: default avatarJisheng Zhang <jszhang@marvell.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      9a17a213
    • Jisheng Zhang's avatar
      arm64: smp: make of_parse_and_init_cpus static · 29b8302b
      Jisheng Zhang authored
      of_parse_and_init_cpus is only called from within smp.c, so it can be
      declared static.
      Signed-off-by: default avatarJisheng Zhang <jszhang@marvell.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      29b8302b
    • Arnd Bergmann's avatar
      arm64: use linux/types.h in kvm.h · d1927915
      Arnd Bergmann authored
      We should always use linux/types.h instead of asm/types.h for
      consistency, and Kbuild actually warns about it:
      
      ./usr/include/asm/kvm.h:35: include of <linux/types.h> is preferred over <asm/types.h>
      
      This patch does as Kbuild asks us.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      d1927915
    • Arnd Bergmann's avatar
      arm64: build vdso without libgcov · 54309784
      Arnd Bergmann authored
      On a cross-toolchain without glibc support, libgcov may not be
      available, and attempting to build an arm64 kernel with GCOV
      enabled then results in a build error:
      
      /home/arnd/cross-gcc/lib/gcc/aarch64-linux/5.2.1/../../../../aarch64-linux/bin/ld: cannot find -lgcov
      
      We don't really want to link libgcov into the vdso anyway, so
      this patch just disables GCOV in the vdso directory, just as
      we do for most other architectures.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      54309784
    • Arnd Bergmann's avatar
      arm64: mark cpus_have_hwcap as __maybe_unused · 3d6d1035
      Arnd Bergmann authored
      cpus_have_hwcap() is defined as a 'static' function an only used in
      one place that is inside of an #ifdef, so we get a warning when
      the only user is disabled:
      
      arch/arm64/kernel/cpufeature.c:699:13: warning: 'cpus_have_hwcap' defined but not used [-Wunused-function]
      
      This marks the function as __maybe_unused, so the compiler knows that
      it can drop the function definition without warning about it.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Fixes: 37b01d53 ("arm64/HWCAP: Use system wide safe values")
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      3d6d1035
    • Paolo Bonzini's avatar
      Merge branch 'kvm-ppc-fixes' of... · 37028975
      Paolo Bonzini authored
      Merge branch 'kvm-ppc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into HEAD
      
      "Paolo,
      
      I have two fixes for HV KVM which I would like to have included in
      v4.4-rc1.  The first one is a fix for a bug identified by Red Hat
      which causes occasional guest crashes.  The second one fixes a bug
      which causes host stalls and timeouts under certain circumstances when
      the host is configured for static 2-way micro-threading mode."
      37028975
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · 5d50ac70
      Linus Torvalds authored
      Pull xfs updates from Dave Chinner:
       "There is nothing really major here - the only significant addition is
        the per-mount operation statistics infrastructure.  Otherwises there's
        various ACL, xattr, DAX, AIO and logging fixes, and a smattering of
        small cleanups and fixes elsewhere.
      
        Summary:
      
         - per-mount operational statistics in sysfs
         - fixes for concurrent aio append write submission
         - various logging fixes
         - detection of zeroed logs and invalid log sequence numbers on v5 filesystems
         - memory allocation failure message improvements
         - a bunch of xattr/ACL fixes
         - fdatasync optimisation
         - miscellaneous other fixes and cleanups"
      
      * tag 'xfs-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (39 commits)
        xfs: give all workqueues rescuer threads
        xfs: fix log recovery op header validation assert
        xfs: Fix error path in xfs_get_acl
        xfs: optimise away log forces on timestamp updates for fdatasync
        xfs: don't leak uuid table on rmmod
        xfs: invalidate cached acl if set via ioctl
        xfs: Plug memory leak in xfs_attrmulti_attr_set
        xfs: Validate the length of on-disk ACLs
        xfs: invalidate cached acl if set directly via xattr
        xfs: xfs_filemap_pmd_fault treats read faults as write faults
        xfs: add ->pfn_mkwrite support for DAX
        xfs: DAX does not use IO completion callbacks
        xfs: Don't use unwritten extents for DAX
        xfs: introduce BMAPI_ZERO for allocating zeroed extents
        xfs: fix inode size update overflow in xfs_map_direct()
        xfs: clear PF_NOFREEZE for xfsaild kthread
        xfs: fix an error code in xfs_fs_fill_super()
        xfs: stats are no longer dependent on CONFIG_PROC_FS
        xfs: simplify /proc teardown & error handling
        xfs: per-filesystem stats counter implementation
        ...
      5d50ac70
    • Linus Torvalds's avatar
      Merge tag 'nfsd-4.4' of git://linux-nfs.org/~bfields/linux · 31c1febd
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "Apologies for coming a little late in the merge window.  Fortunately
        this is another fairly quiet one:
      
        Mainly smaller bugfixes and cleanup.  We're still finding some bugs
        from the breakup of the big NFSv4 state lock in 3.17 -- thanks
        especially to Andrew Elble and Jeff Layton for tracking down some of
        the remaining races"
      
      * tag 'nfsd-4.4' of git://linux-nfs.org/~bfields/linux:
        svcrpc: document lack of some memory barriers
        nfsd: fix race with open / open upgrade stateids
        nfsd: eliminate sending duplicate and repeated delegations
        nfsd: remove recurring workqueue job to clean DRC
        SUNRPC: drop stale comment in svc_setup_socket()
        nfsd: ensure that seqid morphing operations are atomic wrt to copies
        nfsd: serialize layout stateid morphing operations
        nfsd: improve client_has_state to check for unused openowners
        nfsd: fix clid_inuse on mount with security change
        sunrpc/cache: make cache flushing more reliable.
        nfsd: move include of state.h from trace.c to trace.h
        sunrpc: avoid warning in gss_key_timeout
        lockd: get rid of reference-counted NSM RPC clients
        SUNRPC: Use MSG_SENDPAGE_NOTLAST when calling sendpage()
        lockd: create NSM handles per net namespace
        nfsd: switch unsigned char flags in svc_fh to bools
        nfsd: move svc_fh->fh_maxsize to just after fh_handle
        nfsd: drop null test before destroy functions
        nfsd: serialize state seqid morphing operations
      31c1febd
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · b4a23759
      Linus Torvalds authored
      Pull DeviceTree fixes from Rob Herring:
      
       - Add empty of_translate_address needed for HiSilicon network driver.
      
       - Fix alignment requirements for CMA regions in DT.
      
       - Fix booting on PPC systems which can't do WARN() early.
      
       - Rename ak4554 binding doc from .c to .txt.
      
      * tag 'devicetree-fixes-for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        of: Provide static inline function for of_translate_address if needed
        drivers: of: of_reserved_mem: fixup the alignment with CMA setup
        of: Print rather than WARN'ing when overlap check fails
        dt-bindings: ak4554: extension should be .txt
      b4a23759
    • Caesar Wang's avatar
      thermal: rockchip: fix compile error · c970872e
      Caesar Wang authored
      Missing a include file caused compile error.
      
        drivers/thermal/rockchip_thermal.c: In function 'rockchip_thermal_suspend':
        drivers/thermal/rockchip_thermal.c:720:2: error: implicit declaration of function 'pinctrl_pm_select_sleep_state' [-Werror=implicit-function-declaration]
        ...
      
      Fixes: 7e38a5b1 ("thermal: rockchip: support the sleep pinctrl state
      to avoid glitches")
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Signed-off-by: default avatarEduardo Valentin <edubezval@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c970872e
    • Yoshinori Sato's avatar
      h8300: enable CLKSRC_OF · f639eeb4
      Yoshinori Sato authored
      Signed-off-by: default avatarYoshinori Sato <ysato@users.sourceforge.jp>
      f639eeb4
  2. 11 Nov, 2015 22 commits
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-tools' · f57ab32a
      Rafael J. Wysocki authored
      * pm-tools:
        Creating a common structure initialization pattern for struct option
        cpupower: Enable disabled Cstates if they are below max latency
        cpupower: Remove debug message when using cpupower idle-set -D switch
        cpupower: cpupower monitor reports uninitialized values for offline cpus
        tools/power turbostat: bugfix: print MAX_NON_TURBO_RATIO
        tools/power turbostat: simplify Bzy_MHz calculation
      f57ab32a
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-domains' · f6f18a26
      Rafael J. Wysocki authored
      * pm-domains:
        PM / Domains: Allocate memory outside domain locks
        PM / Domains: Remove dev->driver check for runtime PM
      f6f18a26
    • Linus Torvalds's avatar
      Merge tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · 8d3de01c
      Linus Torvalds authored
      Pull firewire fix from Stefan Richter:
       "Work around JMicron initialization quirk, which ffected isochronous
        transmission, e.g. audio via FFADO or ALSA"
      
      * tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire: ohci: fix JMicron JMB38x IT context discovery
      8d3de01c
    • Linus Torvalds's avatar
      Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 842cf0b9
      Linus Torvalds authored
      Pull vfs update from Al Viro:
      
       - misc stable fixes
      
       - trivial kernel-doc and comment fixups
      
       - remove never-used block_page_mkwrite() wrapper function, and rename
         the function that is _actually_ used to not have double underscores.
      
      * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs: 9p: cache.h: Add #define of include guard
        vfs: remove stale comment in inode_operations
        vfs: remove unused wrapper block_page_mkwrite()
        binfmt_elf: Correct `arch_check_elf's description
        fs: fix writeback.c kernel-doc warnings
        fs: fix inode.c kernel-doc warning
        fs/pipe.c: return error code rather than 0 in pipe_write()
        fs/pipe.c: preserve alloc_file() error code
        binfmt_elf: Don't clobber passed executable's file header
        FS-Cache: Handle a write to the page immediately beyond the EOF marker
        cachefiles: perform test on s_blocksize when opening cache file.
        FS-Cache: Don't override netfs's primary_index if registering failed
        FS-Cache: Increase reference of parent after registering, netfs success
        debugfs: fix refcount imbalance in start_creating
      842cf0b9
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 65d57b30
      Linus Torvalds authored
      Pull crypto fix from Herbert Xu:
       "This fixes a bug in the algif_hash interface that may lead to crashes
        when used with certain algorithms such as HMAC"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: algif_hash - Only export and import on sockets with data
      65d57b30
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-4.4-rc1' of... · c8fff3ed
      Linus Torvalds authored
      Merge tag 'pwm/for-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This round contains a couple of new drivers for the Marvell Berlin
        family of SoCs, various SoCs from Renesas and Broadcom as well as the
        backlight PWM present on MediaTek SoCs.
      
        Further existing drivers are extended to support a wider range of
        hardware.
      
        The remaining patches are minor fixes and cleanups across the board.
      
        Note that one of the patches included in this pull request is against
        arch/unicore32.  I've included it here because I couldn't get a
        response from Guan Xuetao and I consider the change low-risk.
        Equivalent patches have been merged and tested in Samsung and PXA
        trees.  The goal is to finally get rid of legacy code paths that have
        repeatedly been causing headaches"
      
      * tag 'pwm/for-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (24 commits)
        pwm: sunxi: Fix whitespace issue
        pwm: sysfs: Make use of the DEVICE_ATTR_[RW][WO] macro's
        pwm: sysfs: Remove unnecessary temporary variable
        unicore32: nb0916: Use PWM lookup table
        pwm: pwm-rcar: Revise the device tree binding document about compatible
        pwm: Return -ENODEV if no PWM lookup match is found
        pwm: sun4i: Add support for PWM controller on sun5i SoCs
        pwm: Set enable state properly on failed call to enable
        pwm: lpss: Add support for runtime PM
        pwm: lpss: Add more Intel Broxton IDs
        pwm: lpss: Support all four PWMs on Intel Broxton
        pwm: lpss: Add support for multiple PWMs
        pwm-pca9685: enable ACPI device found on Galileo Gen2
        pwm: Add MediaTek display PWM driver support
        dt-bindings: pwm: Add MediaTek display PWM bindings
        pwm: tipwmss: Enable on TI DRA7x and AM437x
        pwm: atmel-hlcdc: add sama5d2 SoC support.
        pwm: Add Broadcom BCM7038 PWM controller support
        Documentation: dt: add Broadcom BCM7038 PWM controller binding
        pwm: Add support for R-Car PWM Timer
        ...
      c8fff3ed
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · baf51c43
      Linus Torvalds authored
      Pull thermal updates from Zhang Rui:
      
       - Implement generic devfreq cooling mechanism through frequency
         reduction for devices using devfreq.  From Ørjan Eide and Javi
         Merino.
      
       - Introduce OMAP3 support on TI SoC thermal driver.  From Pavel Mack
         and Eduardo Valentin.
      
       - A bounch of small fixes on devfreq_cooling, Exynos, IMX, Armada, and
         Rockchip thermal drivers.
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (24 commits)
        thermal: exynos: Directly return 0 instead of using local ret variable
        thermal: exynos: Remove unneeded semicolon
        thermal: exynos: Use IS_ERR() because regulator cannot be NULL
        thermal: exynos: Fix first temperature read after registering sensor
        thermal: exynos: Fix unbalanced regulator disable on probe failure
        devfreq_cooling: return on allocation failure
        thermal: rockchip: support the sleep pinctrl state to avoid glitches in s2r
        dt-bindings: rockchip-thermal: Add the pinctrl states in this document
        thermal: devfreq_cooling: Make power a u64
        thermal: devfreq_cooling: use a thermal_cooling_device for register and unregister
        thermal: underflow bug in imx_set_trip_temp()
        thermal: armada: Fix possible overflow in the Armada 380 thermal sensor formula
        thermal: imx: register irq handler later in probe
        thermal: rockhip: fix setting thermal shutdown polarity
        thermal: rockchip: fix handling of invalid readings
        devfreq_cooling: add trace information
        thermal: Add devfreq cooling
        PM / OPP: get the voltage for all OPPs
        tools/thermal: tmon: use pkg-config also for CFLAGS
        linux/thermal.h: rename KELVIN_TO_CELSIUS to DECI_KELVIN_TO_CELSIUS
        ...
      baf51c43
    • Tzvetelin Katchov's avatar
      fs: 9p: cache.h: Add #define of include guard · 7c7afc44
      Tzvetelin Katchov authored
      The include file was intended to have an include guard, but the #define
      part is missing.
      Signed-off-by: default avatarTzvetelin Katchov <katchov@gmail.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7c7afc44
    • Ross Zwisler's avatar
      vfs: remove stale comment in inode_operations · c8fffa64
      Ross Zwisler authored
      The big warning comment that is currently at the end of struct
      inode_operations was added as part of this commit:
      
      4aa7c634 ("vfs: add i_op->dentry_open()")
      
      It was added to warn people not to use the newly added 'dentry_open'
      function pointer.
      
      This function pointer was removed as part of this commit:
      
      4bacc9c9 ("overlayfs: Make f_path always point to the overlay and
      		f_inode to the underlay")
      
      The comment was left behind and now refers to nothing, so remove it.
      Signed-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      c8fffa64
    • Ross Zwisler's avatar
      vfs: remove unused wrapper block_page_mkwrite() · 5c500029
      Ross Zwisler authored
      The function currently called "__block_page_mkwrite()" used to be called
      "block_page_mkwrite()" until a wrapper for this function was added by:
      
      commit 24da4fab ("vfs: Create __block_page_mkwrite() helper passing
      	error values back")
      
      This wrapper, the current "block_page_mkwrite()", is currently unused.
      __block_page_mkwrite() is used directly by ext4, nilfs2 and xfs.
      
      Remove the unused wrapper, rename __block_page_mkwrite() back to
      block_page_mkwrite() and update the comment above block_page_mkwrite().
      Signed-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.com>
      Cc: Jan Kara <jack@suse.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      5c500029
    • Maciej W. Rozycki's avatar
      binfmt_elf: Correct `arch_check_elf's description · 54d15714
      Maciej W. Rozycki authored
      Correct `arch_check_elf's description, mistakenly copied and pasted from
      `arch_elf_pt_proc'.
      Signed-off-by: default avatarMaciej W. Rozycki <macro@imgtec.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      54d15714
    • Randy Dunlap's avatar
      fs: fix writeback.c kernel-doc warnings · 88a578d8
      Randy Dunlap authored
      Fix kernel-doc warnings in fs/fs-writeback.c by moving a #define macro
      to after the function's opening brace. Also #undef this macro at the
      end of the function.
      
      ..//fs/fs-writeback.c:1984: warning: Excess function parameter 'inode' description in 'I_DIRTY_INODE'
      ..//fs/fs-writeback.c:1984: warning: Excess function parameter 'flags' description in 'I_DIRTY_INODE'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      88a578d8
    • Randy Dunlap's avatar
      fs: fix inode.c kernel-doc warning · 034ae4ba
      Randy Dunlap authored
      Fix kernel-doc warning in fs/inode.c:
      
      ..//fs/inode.c:1606: warning: No description found for parameter 'inode'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      034ae4ba
    • Eric Biggers's avatar
      fs/pipe.c: return error code rather than 0 in pipe_write() · 6ae08069
      Eric Biggers authored
      pipe_write() would return 0 if it failed to merge the beginning of the
      data to write with the last, partially filled pipe buffer.  It should
      return an error code instead.  Userspace programs could be confused by
      write() returning 0 when called with a nonzero 'count'.
      
      The EFAULT error case was a regression from f0d1bec9 ("new helper:
      copy_page_from_iter()"), while the ops->confirm() error case was a much
      older bug.
      
      Test program:
      
      	#include <assert.h>
      	#include <errno.h>
      	#include <unistd.h>
      
      	int main(void)
      	{
      		int fd[2];
      		char data[1] = {0};
      
      		assert(0 == pipe(fd));
      		assert(1 == write(fd[1], data, 1));
      
      		/* prior to this patch, write() returned 0 here  */
      		assert(-1 == write(fd[1], NULL, 1));
      		assert(errno == EFAULT);
      	}
      
      Cc: stable@vger.kernel.org # at least v3.15+
      Signed-off-by: default avatarEric Biggers <ebiggers3@gmail.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      6ae08069
    • Eric Biggers's avatar
      fs/pipe.c: preserve alloc_file() error code · e9bb1f9b
      Eric Biggers authored
      If sys_pipe() was unable to allocate a 'struct file', it always failed
      with ENFILE, which means "The number of simultaneously open files in the
      system would exceed a system-imposed limit." However, alloc_file()
      actually returns an ERR_PTR value and might fail with other error codes.
      Currently, in addition to ENFILE, it can fail with ENOMEM, potentially
      when there are few open files in the system.  Update sys_pipe() to
      preserve this error code.
      
      In a prior submission of a similar patch (1) some concern was raised
      about introducing a new error code for sys_pipe().  However, for most
      system calls, programs cannot assume that new error codes will never be
      introduced.  In addition, ENOMEM was, in fact, already a possible error
      code for sys_pipe(), in the case where the file descriptor table could
      not be expanded due to insufficient memory.
      
      	(1) http://comments.gmane.org/gmane.linux.kernel/1357942Signed-off-by: default avatarEric Biggers <ebiggers3@gmail.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      e9bb1f9b
    • Maciej W. Rozycki's avatar
      binfmt_elf: Don't clobber passed executable's file header · b582ef5c
      Maciej W. Rozycki authored
      Do not clobber the buffer space passed from `search_binary_handler' and
      originally preloaded by `prepare_binprm' with the executable's file
      header by overwriting it with its interpreter's file header.  Instead
      keep the buffer space intact and directly use the data structure locally
      allocated for the interpreter's file header, fixing a bug introduced in
      2.1.14 with loadable module support (linux-mips.org commit beb11695
      [Import of Linux/MIPS 2.1.14], predating kernel.org repo's history).
      Adjust the amount of data read from the interpreter's file accordingly.
      
      This was not an issue before loadable module support, because back then
      `load_elf_binary' was executed only once for a given ELF executable,
      whether the function succeeded or failed.
      
      With loadable module support supported and enabled, upon a failure of
      `load_elf_binary' -- which may for example be caused by architecture
      code rejecting an executable due to a missing hardware feature requested
      in the file header -- a module load is attempted and then the function
      reexecuted by `search_binary_handler'.  With the executable's file
      header replaced with its interpreter's file header the executable can
      then be erroneously accepted in this subsequent attempt.
      
      Cc: stable@vger.kernel.org # all the way back
      Signed-off-by: default avatarMaciej W. Rozycki <macro@imgtec.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b582ef5c
    • David Howells's avatar
      FS-Cache: Handle a write to the page immediately beyond the EOF marker · 102f4d90
      David Howells authored
      Handle a write being requested to the page immediately beyond the EOF
      marker on a cache object.  Currently this gets an assertion failure in
      CacheFiles because the EOF marker is used there to encode information about
      a partial page at the EOF - which could lead to an unknown blank spot in
      the file if we extend the file over it.
      
      The problem is actually in fscache where we check the index of the page
      being written against store_limit.  store_limit is set to the number of
      pages that we're allowed to store by fscache_set_store_limit() - which
      means it's one more than the index of the last page we're allowed to store.
      The problem is that we permit writing to a page with an index _equal_ to
      the store limit - when we should reject that case.
      
      Whilst we're at it, change the triggered assertion in CacheFiles to just
      return -ENOBUFS instead.
      
      The assertion failure looks something like this:
      
      CacheFiles: Assertion failed
      1000 < 7b1 is false
      ------------[ cut here ]------------
      kernel BUG at fs/cachefiles/rdwr.c:962!
      ...
      RIP: 0010:[<ffffffffa02c9e83>]  [<ffffffffa02c9e83>] cachefiles_write_page+0x273/0x2d0 [cachefiles]
      
      Cc: stable@vger.kernel.org # v2.6.31+; earlier - that + backport of a17754fb (at least)
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      102f4d90
    • NeilBrown's avatar
      cachefiles: perform test on s_blocksize when opening cache file. · 95201a40
      NeilBrown authored
      cachefiles requires that s_blocksize in the cache is not greater than
      PAGE_SIZE, and performs the check every time a block is accessed.
      
      Move the test to the place where the file is "opened", where other
      file-validity tests are performed.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      95201a40
    • Kinglong Mee's avatar
      FS-Cache: Don't override netfs's primary_index if registering failed · b130ed59
      Kinglong Mee authored
      Only override netfs->primary_index when registering success.
      
      Cc: stable@vger.kernel.org # v2.6.30+
      Signed-off-by: default avatarKinglong Mee <kinglongmee@gmail.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b130ed59
    • Kinglong Mee's avatar
      FS-Cache: Increase reference of parent after registering, netfs success · 86108c2e
      Kinglong Mee authored
      If netfs exist, fscache should not increase the reference of parent's
      usage and n_children, otherwise, never be decreased.
      
      v2: thanks David's suggest,
       move increasing reference of parent if success
       use kmem_cache_free() freeing primary_index directly
      
      v3: don't move "netfs->primary_index->parent = &fscache_fsdef_index;"
      
      Cc: stable@vger.kernel.org # v2.6.30+
      Signed-off-by: default avatarKinglong Mee <kinglongmee@gmail.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      86108c2e
    • Daniel Borkmann's avatar
      debugfs: fix refcount imbalance in start_creating · 0ee9608c
      Daniel Borkmann authored
      In debugfs' start_creating(), we pin the file system to safely access
      its root. When we failed to create a file, we unpin the file system via
      failed_creating() to release the mount count and eventually the reference
      of the vfsmount.
      
      However, when we run into an error during lookup_one_len() when still
      in start_creating(), we only release the parent's mutex but not so the
      reference on the mount. Looks like it was done in the past, but after
      splitting portions of __create_file() into start_creating() and
      end_creating() via 190afd81 ("debugfs: split the beginning and the
      end of __create_file() off"), this seemed missed. Noticed during code
      review.
      
      Fixes: 190afd81 ("debugfs: split the beginning and the end of __create_file() off")
      Cc: stable@vger.kernel.org # v4.0+
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      0ee9608c
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · c5a37883
      Linus Torvalds authored
      Merge final patch-bomb from Andrew Morton:
       "Various leftovers, mainly Christoph's pci_dma_supported() removals"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        pci: remove pci_dma_supported
        usbnet: remove ifdefed out call to dma_supported
        kaweth: remove ifdefed out call to dma_supported
        sfc: don't call dma_supported
        nouveau: don't call pci_dma_supported
        netup_unidvb: use pci_set_dma_mask insted of pci_dma_supported
        cx23885: use pci_set_dma_mask insted of pci_dma_supported
        cx25821: use pci_set_dma_mask insted of pci_dma_supported
        cx88: use pci_set_dma_mask insted of pci_dma_supported
        saa7134: use pci_set_dma_mask insted of pci_dma_supported
        saa7164: use pci_set_dma_mask insted of pci_dma_supported
        tw68-core: use pci_set_dma_mask insted of pci_dma_supported
        pcnet32: use pci_set_dma_mask insted of pci_dma_supported
        lib/string.c: add ULL suffix to the constant definition
        hugetlb: trivial comment fix
        selftests/mlock2: add ULL suffix to 64-bit constants
        selftests/mlock2: add missing #define _GNU_SOURCE
      c5a37883