1. 20 Feb, 2017 7 commits
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-tools' · eee77a8a
      Rafael J. Wysocki authored
      * pm-tools:
        tools/power/x86: Debug utility for intel_pstate driver
        AnalyzeSuspend: fix drag and zoom bug in javascript
        scripts: analyze_suspend.py: Update to upstream v4.5
        scripts: analyze_suspend.py: Update to upstream v4.4
        scripts: analyze_suspend.py: Update to upstream v4.3
      eee77a8a
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-sleep' · fccddb25
      Rafael J. Wysocki authored
      * pm-sleep:
        PM / Documentation: Spelling s/wrtie/write/
        PM / sleep: Fix test_suspend after sleep state rework
        PM / Hibernate: Use rb_entry() instead of container_of()
      fccddb25
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-core', 'pm-qos' and 'pm-domains' · 58339fea
      Rafael J. Wysocki authored
      * pm-core:
        PM / wakeirq: report a wakeup_event on dedicated wekup irq
        PM / wakeirq: Fix spurious wake-up events for dedicated wakeirqs
        PM / wakeirq: Enable dedicated wakeirq for suspend
      
      * pm-qos:
        PM / QoS: Fix memory leak on resume_latency.notifiers
        PM / QoS: Remove unneeded linux/miscdevice.h include
      
      * pm-domains:
        PM / Domains: Provide dummy governors if CONFIG_PM_GENERIC_DOMAINS=n
        PM / Domains: Fix asynchronous execution of *noirq() callbacks
        PM / Domains: Correct comment in irq_safe_dev_in_no_sleep_domain()
        PM / Domains: Rename functions in genpd for power on/off
      58339fea
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-devfreq' · 41ef3d1d
      Rafael J. Wysocki authored
      * pm-devfreq:
        PM / devfreq: Modify the device name as devfreq(X) for sysfs
        PM / devfreq: Simplify the sysfs name of devfreq-event device
        PM / devfreq: Remove unnecessary separate _remove_devfreq()
        PM / devfreq: Fix wrong trans_stat of passive devfreq device
        PM / devfreq: Fix available_governor sysfs
        PM / devfreq: exynos-ppmu: Show the registred device for ppmu device
        PM / devfreq: Fix the wrong description for userspace governor
        PM / devfreq: Fix the checkpatch warnings
        PM / devfreq: exynos-bus: Print the real clock rate of bus
        PM / devfreq: exynos-ppmu: Use the regmap interface to handle the registers
        PM / devfreq: exynos-bus: Add the detailed correlation for Exynos5433
        PM / devfreq: Don't delete sysfs group twice
      41ef3d1d
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpuidle' · ad7eec42
      Rafael J. Wysocki authored
      * pm-cpuidle:
        CPU / PM: expose pm_qos_resume_latency for CPUs
        cpuidle/menu: add per CPU PM QoS resume latency consideration
        cpuidle/menu: stop seeking deeper idle if current state is deep enough
        ACPI / idle: small formatting fixes
      ad7eec42
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · f6cbe34f
      Rafael J. Wysocki authored
      * pm-cpufreq: (28 commits)
        MAINTAINERS: cpufreq: add bmips-cpufreq.c
        cpufreq: CPPC: add ACPI_PROCESSOR dependency
        cpufreq: make ti-cpufreq explicitly non-modular
        cpufreq: Do not clear real_cpus mask on policy init
        cpufreq: dt: Don't use generic platdev driver for ti-cpufreq platforms
        cpufreq: ti: Add cpufreq driver to determine available OPPs at runtime
        Documentation: dt: add bindings for ti-cpufreq
        cpufreq: qoriq: Don't look at clock implementation details
        cpufreq: qoriq: add ARM64 SoCs support
        cpufreq: brcmstb-avs-cpufreq: remove unnecessary platform_set_drvdata()
        cpufreq: s3c2416: double free on driver init error path
        MIPS: BMIPS: enable CPUfreq
        cpufreq: bmips-cpufreq: CPUfreq driver for Broadcom's BMIPS SoCs
        BMIPS: Enable prerequisites for CPUfreq in MIPS Kconfig.
        MIPS: BMIPS: Update defconfig
        cpufreq: Fix typos in comments
        cpufreq: intel_pstate: Calculate guaranteed performance for HWP
        cpufreq: intel_pstate: Make HWP limits compatible with legacy
        cpufreq: intel_pstate: Lower frequency than expected under no_turbo
        cpufreq: intel_pstate: Operation mode control from sysfs
        ...
      f6cbe34f
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-opp' · 64f758a0
      Rafael J. Wysocki authored
      * pm-opp: (24 commits)
        PM / OPP: Expose _of_get_opp_desc_node as dev_pm_opp API
        PM / OPP: Make _find_opp_table_unlocked() static
        PM / OPP: Update Documentation to remove RCU specific bits
        PM / OPP: Simplify dev_pm_opp_get_max_volt_latency()
        PM / OPP: Simplify _opp_set_availability()
        PM / OPP: Move away from RCU locking
        PM / OPP: Take kref from _find_opp_table()
        PM / OPP: Update OPP users to put reference
        PM / OPP: Add 'struct kref' to struct dev_pm_opp
        PM / OPP: Use dev_pm_opp_get_opp_table() instead of _add_opp_table()
        PM / OPP: Take reference of the OPP table while adding/removing OPPs
        PM / OPP: Return opp_table from dev_pm_opp_set_*() routines
        PM / OPP: Add 'struct kref' to OPP table
        PM / OPP: Add per OPP table mutex
        PM / OPP: Split out part of _add_opp_table() and _remove_opp_table()
        PM / OPP: Don't expose srcu_head to register notifiers
        PM / OPP: Rename dev_pm_opp_get_suspend_opp() and return OPP rate
        PM / OPP: Don't allocate OPP table from _opp_allocate()
        PM / OPP: Rename and split _dev_pm_opp_remove_table()
        PM / OPP: Add light weight _opp_free() routine
        ...
      64f758a0
  2. 18 Feb, 2017 4 commits
  3. 16 Feb, 2017 1 commit
  4. 15 Feb, 2017 4 commits
  5. 13 Feb, 2017 3 commits
    • Grygorii Strashko's avatar
      PM / wakeirq: report a wakeup_event on dedicated wekup irq · 09bb6e93
      Grygorii Strashko authored
      There are two reasons for reporting wakeup event when dedicated wakeup
      IRQ is triggered:
      
      - wakeup events accounting, so proper statistical data will be
        displayed in sysfs and debugfs;
      
      - there are small window when System is entering suspend during which
        dedicated wakeup IRQ can be lost:
      
      dpm_suspend_noirq()
        |- device_wakeup_arm_wake_irqs()
            |- dev_pm_arm_wake_irq(X)
               |- IRQ is enabled and marked as wakeup source
      [1]...
        |- suspend_device_irqs()
           |- suspend_device_irq(X)
      	|- irqd_set(X, IRQD_WAKEUP_ARMED);
      	   |- wakup IRQ armed
      
      The wakeup IRQ can be lost if it's triggered at point [1]
      and not armed yet.
      
      Hence, fix above cases by adding simple pm_wakeup_event() call in
      handle_threaded_wake_irq().
      
      Fixes: 4990d4fe (PM / Wakeirq: Add automated device wake IRQ handling)
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Tested-by: default avatarKeerthy <j-keerthy@ti.com>
      [ tony@atomide.com: added missing return to avoid warnings ]
      Tested-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      09bb6e93
    • Grygorii Strashko's avatar
      PM / wakeirq: Fix spurious wake-up events for dedicated wakeirqs · 0bf0ee8e
      Grygorii Strashko authored
      Dedicated wakeirq is a one time event to wake-up the system from
      low-power state and then call pm_runtime_resume() on the device wired
      with the dedicated wakeirq.
      
      Sometimes dedicated wakeirqs can get deferred if they trigger after we
      call disable_irq_nosync() in dev_pm_disable_wake_irq(). This can happen
      if pm_runtime_get() is called around the same time a wakeirq fires.
      
      If an interrupt fires after disable_irq_nosync(), by default it will get
      tagged with IRQS_PENDING and will run later on when the interrupt is
      enabled again.
      
      Deferred wakeirqs usually just produce pointless wake-up events. But they
      can also cause suspend to fail if the deferred wakeirq fires during
      dpm_suspend_noirq() for example. So we really don't want to see the
      deferred wakeirqs triggering after the device has resumed.
      
      Let's fix the issue by setting IRQ_DISABLE_UNLAZY flag for the dedicated
      wakeirqs. The other option would be to implement irq_disable() in the
      dedicated wakeirq controller, but that's not a generic solution.
      
      For reference below is what happens with a IRQ_TYPE_EDGE_BOTH IRQ
      type wakeirq:
      
      - resume by dedicated IRQ (EDGE_FALLING)
       - suspend_enter()
        ....
       - arch_suspend_enable_irqs()
         |- dedicated IRQ armed and fired
         |- irq_pm_check_wakeup()
            |- disarm, disable IRQ and mark as IRQS_PENDING
        ....
       - dpm_resume_noirq()
         |- resume_device_irqs()
            |- __enable_irq()
               |- check_irq_resend()
                  |- handle_threaded_wake_irq()
       	       |- dedicated IRQ processed
         |- device_wakeup_disarm_wake_irqs()
            |- disable_irq_wake()
        ....
       !-> dedicated IRQ (EDGE_RISING)
           -| handle_edge_irq()
              |- IRQ disabled: mask_ack_irq and mark as IRQS_PENDING
        ....
      - subsequent suspend
        ....
        |- dpm_suspend_noirq()
           |- device_wakeup_arm_wake_irqs()
              |- __enable_irq()
                 |- check_irq_resend()
      (a)           |- handle_threaded_wake_irq()
                       |- pm_wakeup_event() --> abort suspend
        ....
           |- suspend_device_irqs()
              |- suspend_device_irq()
                 |-  dedicated IRQ armed
        ....
      (b)  |- resend_irqs
              |- irq_pm_check_wakeup()
                 |- IRQ armed -> abort suspend
      
      because of pending IRQ System suspend can be aborted at points
      (a)-not armed or (b)-armed.
      
      Fixes: 4990d4fe (PM / Wakeirq: Add automated device wake IRQ handling)
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      [ tony@atomide.com: added a comment, updated the description ]
      Tested-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0bf0ee8e
    • Grygorii Strashko's avatar
      PM / wakeirq: Enable dedicated wakeirq for suspend · c8434559
      Grygorii Strashko authored
      We currently rely on runtime PM to enable dedicated wakeirq for suspend.
      This assumption fails in the following two cases:
      
      1. If the consumer driver does not have runtime PM implemented, the
         dedicated wakeirq never gets enabled for suspend
      
      2. If the consumer driver has runtime PM implemented, but does not idle
         in suspend
      
      Let's fix the issue by always enabling the dedicated wakeirq during
      suspend.
      
      Depends-on: bed57030 (PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend)
      Fixes: 4990d4fe (PM / Wakeirq: Add automated device wake IRQ handling)
      Reported-by: default avatarKeerthy <j-keerthy@ti.com>
      Tested-by: default avatarKeerthy <j-keerthy@ti.com>
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      [ tony@atomide.com: updated based on bed57030, added description ]
      Tested-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      c8434559
  6. 12 Feb, 2017 1 commit
  7. 11 Feb, 2017 8 commits
  8. 10 Feb, 2017 12 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 1ee18329
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) If the timing is wrong we can indefinitely stop generating new ipv6
          temporary addresses, from Marcus Huewe.
      
       2) Don't double free per-cpu stats in ipv6 SIT tunnel driver, from Cong
          Wang.
      
       3) Put protections in place so that AF_PACKET is not able to submit
          packets which don't even have a link level header to drivers. From
          Willem de Bruijn.
      
       4) Fix memory leaks in ipv4 and ipv6 multicast code, from Hangbin Liu.
      
       5) Don't use udp_ioctl() in l2tp code, UDP version expects a UDP socket
          and that doesn't go over very well when it is passed an L2TP one.
          Fix from Eric Dumazet.
      
       6) Don't crash on NULL pointer in phy_attach_direct(), from Florian
          Fainelli.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        l2tp: do not use udp_ioctl()
        xen-netfront: Delete rx_refill_timer in xennet_disconnect_backend()
        NET: mkiss: Fix panic
        net: hns: Fix the device being used for dma mapping during TX
        net: phy: Initialize mdio clock at probe function
        igmp, mld: Fix memory leak in igmpv3/mld_del_delrec()
        xen-netfront: Improve error handling during initialization
        sierra_net: Skip validating irrelevant fields for IDLE LSIs
        sierra_net: Add support for IPv6 and Dual-Stack Link Sense Indications
        kcm: fix 0-length case for kcm_sendmsg()
        xen-netfront: Rework the fix for Rx stall during OOM and network stress
        net: phy: Fix PHY module checks and NULL deref in phy_attach_direct()
        net: thunderx: Fix PHY autoneg for SGMII QLM mode
        net: dsa: Do not destroy invalid network devices
        ping: fix a null pointer dereference
        packet: round up linear to header len
        net: introduce device min_header_len
        sit: fix a double free on error path
        lwtunnel: valid encap attr check should return 0 when lwtunnel is disabled
        ipv6: addrconf: fix generation of new temporary addresses
      1ee18329
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · a9dbf5c8
      Linus Torvalds authored
      Pull rdma fixes from Doug Ledford:
       "Third round of -rc fixes for 4.10 kernel:
      
         - two security related issues in the rxe driver
      
         - one compile issue in the RDMA uapi header"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
        RDMA: Don't reference kernel private header from UAPI header
        IB/rxe: Fix mem_check_range integer overflow
        IB/rxe: Fix resid update
      a9dbf5c8
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · aca9fa0c
      Linus Torvalds authored
      Pull i2c bugfixes from Wolfram Sang:
       "Two bugfixes (proper IO mapping and use of mutex) for a driver feature
        we introduced in this cycle"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: piix4: Request the SMBUS semaphore inside the mutex
        i2c: piix4: Fix request_region size
      aca9fa0c
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · fc6f41ba
      Linus Torvalds authored
      Pull MMC host fix from Ulf Hansson:
       "mmci: Fix hang while waiting for busy-end interrupt"
      
      * tag 'mmc-v4.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: mmci: avoid clearing ST Micro busy end interrupt mistakenly
      fc6f41ba
    • Linus Torvalds's avatar
      Merge tag 'sound-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 1f369d16
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here are some last-minute fixes: two fixes for races in ALSA sequencer
        queue spotted by syzkaller, a revert for a regression of LINE6 driver
        (since 4.9), and a trivial new codec ID addition for Nvidia HDMI"
      
      * tag 'sound-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - adding a new NV HDMI/DP codec ID in the driver
        ALSA: seq: Fix race at creating a queue
        Revert "ALSA: line6: Only determine control port properties if needed"
        ALSA: seq: Don't handle loop timeout at snd_seq_pool_done()
      1f369d16
    • Linus Torvalds's avatar
      Merge tag 'nfsd-4.10-3' of git://linux-nfs.org/~bfields/linux · 7fe654dc
      Linus Torvalds authored
      Pull nfsd revert from Bruce Fields:
       "This patch turned out to have a couple problems. The problems are
        fixable, but at least one of the fixes is a little ugly. The original
        bug has always been there, so we can wait another week or two to get
        this right"
      
      * tag 'nfsd-4.10-3' of git://linux-nfs.org/~bfields/linux:
        nfsd: Revert "nfsd: special case truncates some more"
      7fe654dc
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.10-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 3ebc7033
      Linus Torvalds authored
      Pull powerpc fixes friom Michael Ellerman:
       "Apologies for the late pull request, but Ben has been busy finding bugs.
      
         - Userspace was semi-randomly segfaulting on radix due to us
           incorrectly handling a fault triggered by autonuma, caused by a
           patch we merged earlier in v4.10 to prevent the kernel executing
           userspace.
      
         - We weren't marking host IPIs properly for KVM in the OPAL ICP
           backend.
      
         - The ERAT flushing on radix was missing an isync and was incorrectly
           marked as DD1 only.
      
         - The powernv CPU hotplug code was missing a wakeup type and failing
           to flush the interrupt correctly when using OPAL ICP
      
        Thanks to Benjamin Herrenschmidt"
      
      * tag 'powerpc-4.10-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/powernv: Properly set "host-ipi" on IPIs
        powerpc/powernv: Fix CPU hotplug to handle waking on HVI
        powerpc/mm/radix: Update ERAT flushes when invalidating TLB
        powerpc/mm: Fix spurrious segfaults on radix with autonuma
      3ebc7033
    • Eric Dumazet's avatar
      l2tp: do not use udp_ioctl() · 72fb96e7
      Eric Dumazet authored
      udp_ioctl(), as its name suggests, is used by UDP protocols,
      but is also used by L2TP :(
      
      L2TP should use its own handler, because it really does not
      look the same.
      
      SIOCINQ for instance should not assume UDP checksum or headers.
      
      Thanks to Andrey and syzkaller team for providing the report
      and a nice reproducer.
      
      While crashes only happen on recent kernels (after commit
      7c13f97f ("udp: do fwd memory scheduling on dequeue")), this
      probably needs to be backported to older kernels.
      
      Fixes: 7c13f97f ("udp: do fwd memory scheduling on dequeue")
      Fixes: 85584672 ("udp: Fix udp_poll() and ioctl()")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      72fb96e7
    • Chris Mason's avatar
      Merge branch 'for-chris' of... · f3c7bfbd
      Chris Mason authored
      Merge branch 'for-chris' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.10
      f3c7bfbd
    • Boris Ostrovsky's avatar
      xen-netfront: Delete rx_refill_timer in xennet_disconnect_backend() · 74470954
      Boris Ostrovsky authored
      rx_refill_timer should be deleted as soon as we disconnect from the
      backend since otherwise it is possible for the timer to go off before
      we get to xennet_destroy_queues(). If this happens we may dereference
      queue->rx.sring which is set to NULL in xennet_disconnect_backend().
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      CC: stable@vger.kernel.org
      Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      74470954
    • Ralf Baechle's avatar
      NET: mkiss: Fix panic · 7ba1b689
      Ralf Baechle authored
      If a USB-to-serial adapter is unplugged, the driver re-initializes, with
      dev->hard_header_len and dev->addr_len set to zero, instead of the correct
      values.  If then a packet is sent through the half-dead interface, the
      kernel will panic due to running out of headroom in the skb when pushing
      for the AX.25 headers resulting in this panic:
      
      [<c0595468>] (skb_panic) from [<c0401f70>] (skb_push+0x4c/0x50)
      [<c0401f70>] (skb_push) from [<bf0bdad4>] (ax25_hard_header+0x34/0xf4 [ax25])
      [<bf0bdad4>] (ax25_hard_header [ax25]) from [<bf0d05d4>] (ax_header+0x38/0x40 [mkiss])
      [<bf0d05d4>] (ax_header [mkiss]) from [<c041b584>] (neigh_compat_output+0x8c/0xd8)
      [<c041b584>] (neigh_compat_output) from [<c043e7a8>] (ip_finish_output+0x2a0/0x914)
      [<c043e7a8>] (ip_finish_output) from [<c043f948>] (ip_output+0xd8/0xf0)
      [<c043f948>] (ip_output) from [<c043f04c>] (ip_local_out_sk+0x44/0x48)
      
      This patch makes mkiss behave like the 6pack driver. 6pack does not
      panic.  In 6pack.c sp_setup() (same function name here) the values for
      dev->hard_header_len and dev->addr_len are set to the same values as in
      my mkiss patch.
      
      [ralf@linux-mips.org: Massages original submission to conform to the usual
      standards for patch submissions.]
      Signed-off-by: default avatarThomas Osterried <thomas@osterried.de>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7ba1b689
    • Kejian Yan's avatar
      net: hns: Fix the device being used for dma mapping during TX · b85ea006
      Kejian Yan authored
      This patch fixes the device being used to DMA map skb->data.
      Erroneous device assignment causes the crash when SMMU is enabled.
      This happens during TX since buffer gets DMA mapped with device
      correspondign to net_device and gets unmapped using the device
      related to DSAF.
      Signed-off-by: default avatarKejian Yan <yankejian@huawei.com>
      Reviewed-by: default avatarYisen Zhuang <yisen.zhuang@huawei.com>
      Signed-off-by: default avatarSalil Mehta <salil.mehta@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b85ea006