1. 09 Apr, 2016 2 commits
    • Lv Zheng's avatar
      ACPI 2.0 / ECDT: Remove early namespace reference from EC · 59f0aa94
      Lv Zheng authored
      All operation region accesses are allowed by AML interpreter when AML is
      executed, so actually BIOSen are responsible to avoid the operation region
      accesses in AML before OSPM has prepared an operation region driver. This
      is done via _REG control method. So AML code normally sets a global named
      object REGC to 1 when _REG(3, 1) is evaluated.
      
      Then what is ECDT? Quoting from ACPI spec 6.0, 5.2.15 Embedded Controller
      Boot Resources Table (ECDT):
       "The presence of this table allows OSPM to provide Embedded Controller
        operation region space access before the namespace has been evaluated."
      Spec also suggests a compatible mean to indicate the early EC access
      availability:
       Device (EC)
       {
           Name (REGC, Ones)
           Method (_REG, 2)
           {
               If (LEqual (Arg0, 3))
               {
                   Store (Arg1, REGC)
               }
           }
           Method (ECAV)
           {
               If (LEqual (REGC, Ones))
               {
                   If (LGreaterEqual (_REV, 2))
                   {
                       Return (One)
                   }
                   Else
                   {
                       Return (Zero)
                   }
               }
               Else
               {
                   Return (REGC)
               }
           }
       }
      In this way, it allows EC accesses to happen before EC._REG(3, 1) is
      invoked.
      
      But ECAV is not the only way practical BIOSen using to indicate the early
      EC access availibility, the known variations include:
      1. Setting REGC to One in \_SB._INI when _REV >= 2. Since \_SB._INI is the
         first control method evaluated by OSPM during the enumeration, this
         allows EC accesses to happen for the entire enumeration process before
         the namespace EC is enumerated.
      2. Initialize REGC to One by default, this even allows EC accesses to
         happen during the table loading.
      
      Linux is now broken around ECDT support during the long term bug fixing
      work because it has merged many wrong ECDT bug fixes (see details below).
      Linux currently uses namespace EC's settings instead of ECDT settings when
      ECDT is detected. This apparently will result in namespace walk and
      _CRS/_GPE/_REG evaluations. Such stuffs could only happen after namespace
      is ready, while ECDT is purposely to be used before namespace is ready.
      
      The wrong bug fixing story is:
      1. Link 1:
         At Linux ACPI early stages, "no _Lxx/_Exx/_Qxx evaluation can happen
         before the namespace is ready" are not ensured by ACPICA core and Linux.
         This is currently ensured by deferred enabling of GPE and defered
         registering of EC query methods (acpi_ec_register_query_methods).
      2. Link 2:
         Reporters reported buggy ECDTs, expecting quirks for the platform.
         Originally, the quirk is simple, only doing things with ECDT.
         Bug 9399 and 12461 are platforms (Asus L4R, Asus M6R, MSI MS-171F)
         reported to have wrong ECDT IO port addresses, the port addresses are
         reversed.
         Bug 11880 is a platform (Asus X50GL) reported to have 0 valued port
         addresses, we can see that all EC accesses are protected by ECAV on
         this platform, so actually no early EC accesses is required by this
         platform.
      3. Link 3:
         But when the bug fixing developer was requested to provide a handy and
         non-quirk bug fix, he tried to use correct EC settings from namespace
         and broke the spec purpose. We can even see that the developer was
         suffered from many regrssions. One interesting one is 14086, where the
         actual root cause obviously should be: _REG is evaluated too early. But
         unfortunately, the bug is fixed in a totally wrong way.
      
      So everything goes wrong from these commits:
         Commit: c6cb0e87
         Subject: ACPI: EC: Don't trust ECDT tables from ASUS
         Commit: a5032bfd
         Subject: ACPI: EC: Always parse EC device
      
      This patch reverts Linux behavior to simple ECDT quirk support in order to
      stop early _CRS/_GPE/_REG evaluations.
      For Bug 9399, 12461, since it is reported that the platforms require early
      EC accesses, this patch restores the simple ECDT quirks for them.
      For Bug 11880, since it is not reported that the platform requires early EC
      accesses and its ACPI tables contain correct ECAV, we choose an ECDT
      enumeration failure for this platform.
      
      Link 1: https://bugzilla.kernel.org/show_bug.cgi?id=9916
              http://bugzilla.kernel.org/show_bug.cgi?id=10100
              https://lkml.org/lkml/2008/2/25/282
      Link 2: https://bugzilla.kernel.org/show_bug.cgi?id=9399
              https://bugzilla.kernel.org/show_bug.cgi?id=12461
              https://bugzilla.kernel.org/show_bug.cgi?id=11880
      Link 3: https://bugzilla.kernel.org/show_bug.cgi?id=11884
              https://bugzilla.kernel.org/show_bug.cgi?id=14081
              https://bugzilla.kernel.org/show_bug.cgi?id=14086
              https://bugzilla.kernel.org/show_bug.cgi?id=14446
      Link 4: https://bugzilla.kernel.org/show_bug.cgi?id=112911Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Tested-by: default avatarChris Bainbridge <chris.bainbridge@gmail.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      59f0aa94
    • Lv Zheng's avatar
      ACPI 2.0 / ECDT: Split EC_FLAGS_HANDLERS_INSTALLED · 0e1affe4
      Lv Zheng authored
      This patch splits EC_FLAGS_HANDLERS_INSTALLED so that address space handler
      can be installed when it is not possible to install GPE handler during
      early stage.
      This patch also tunes address space handler installation, making it
      happening earlier than GPE handler installation for the same purpose.
      
      Since acpi_ec_start()/acpi_ec_stop() will be entered multiple times after
      applying this change, it is also required to protect acpi_enable_gpe()/
      acpi_disable_gpe() invocations.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=112911Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Tested-by: default avatarChris Bainbridge <chris.bainbridge@gmail.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0e1affe4
  2. 03 Apr, 2016 5 commits
    • Linus Torvalds's avatar
      Linux 4.6-rc2 · 9735a227
      Linus Torvalds authored
      9735a227
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4c3b73c6
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Misc kernel side fixes:
      
         - fix event leak
         - fix AMD PMU driver bug
         - fix core event handling bug
         - fix build bug on certain randconfigs
      
        Plus misc tooling fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/amd/ibs: Fix pmu::stop() nesting
        perf/core: Don't leak event in the syscall error path
        perf/core: Fix time tracking bug with multiplexing
        perf jit: genelf makes assumptions about endian
        perf hists: Fix determination of a callchain node's childlessness
        perf tools: Add missing initialization of perf_sample.cpumode in synthesized samples
        perf tools: Fix build break on powerpc
        perf/x86: Move events_sysfs_show() outside CPU_SUP_INTEL
        perf bench: Fix detached tarball building due to missing 'perf bench memcpy' headers
        perf tests: Fix tarpkg build test error output redirection
      4c3b73c6
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7b367f5d
      Linus Torvalds authored
      Pull core kernel fixes from Ingo Molnar:
       "This contains the nohz/atomic cleanup/fix for the fetch_or() ugliness
        you noted during the original nohz pull request, plus there's also
        misc fixes:
      
         - fix liblockdep build bug
         - fix uapi header build bug
         - print more lockdep hash collision info to help debug recent reports
           of hash collisions
         - update MAINTAINERS email address"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        MAINTAINERS: Update my email address
        locking/lockdep: Print chain_key collision information
        uapi/linux/stddef.h: Provide __always_inline to userspace headers
        tools/lib/lockdep: Fix unsupported 'basename -s' in run_tests.sh
        locking/atomic, sched: Unexport fetch_or()
        timers/nohz: Convert tick dependency mask to atomic_t
        locking/atomic: Introduce atomic_fetch_or()
      7b367f5d
    • Linus Torvalds's avatar
      v4l2-mc: avoid warning about unused variable · 17084b7e
      Linus Torvalds authored
      Commit 840f5b05 ("media: au0828 disable tuner to demod link in
      au0828_media_device_register()") removed all uses of the 'dtv_demod',
      but left the variable itself around.
      
      Remove it.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      17084b7e
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 30cebb6c
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "This lot contains:
      
         - Some fixups for the fallout of the topology consolidation which
           unearthed AMD/Intel inconsistencies
         - Documentation for the x86 topology management
         - Support for AMD advanced power management bits
         - Two simple cleanups removing duplicated code"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Add advanced power management bits
        x86/thread_info: Merge two !__ASSEMBLY__ sections
        x86/cpufreq: Remove duplicated TDP MSR macro definitions
        x86/Documentation: Start documenting x86 topology
        x86/cpu: Get rid of compute_unit_id
        perf/x86/amd: Cleanup Fam10h NB event constraints
        x86/topology: Fix AMD core count
      30cebb6c
  3. 02 Apr, 2016 8 commits
    • Linus Torvalds's avatar
      Merge tag 'rproc-v4.6-rc1' of git://github.com/andersson/remoteproc · f7eeb8a8
      Linus Torvalds authored
      Pull remoteproc fix from Bjorn Andersson:
       "Fix incorrect error check in the ST remoteproc driver and advertise
        the newly created linux-remoteproc mailing list"
      
      * tag 'rproc-v4.6-rc1' of git://github.com/andersson/remoteproc:
        MAINTAINERS: Add mailing list for remote processor subsystems
        remoteproc: st: fix check of syscon_regmap_lookup_by_phandle() return value
      f7eeb8a8
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · d6c24df0
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       "This includes fixes from HCH for -rc1 configfs default_groups
        conversion changes that ended up breaking some iscsi-target
        default_groups, along with Sagi's ib_drain_qp() conversion for
        iser-target to use the common caller now available to RDMA kernel
        consumers in v4.6+ code"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        target: add a new add_wwn_groups fabrics method
        target: initialize the nacl base CIT begfore init_nodeacl
        target: remove ->fabric_cleanup_nodeacl
        iser-target: Use ib_drain_qp
      d6c24df0
    • Linus Torvalds's avatar
      Convert straggling drivers to new six-argument get_user_pages() · cb107161
      Linus Torvalds authored
      Commit d4edcf0d ("mm/gup: Switch all callers of get_user_pages() to
      not pass tsk/mm") switched get_user_pages() callers to the simpler model
      where they no longer pass in the thread and mm pointer.  But since then
      we've merged changes to a few drivers that re-introduce use of the old
      interface.  Let's fix them up.
      
      They continued to work fine (thanks to the truly disgusting macros
      introduced in commit cde70140: "mm/gup: Overload get_user_pages()
      functions"), but cause unnecessary build noise.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cb107161
    • Linus Torvalds's avatar
      Merge tag 'configfs-for-linus-2' of git://git.infradead.org/users/hch/configfs · 264800b5
      Linus Torvalds authored
      Pull configfs fix from Christoph Hellwig:
       "A trivial fix to the recently introduced binary attribute helper
        macros"
      
      * tag 'configfs-for-linus-2' of git://git.infradead.org/users/hch/configfs:
        configfs: fix CONFIGFS_BIN_ATTR_[RW]O definitions
      264800b5
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 05cf8077
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Missing device reference in IPSEC input path results in crashes
          during device unregistration.  From Subash Abhinov Kasiviswanathan.
      
       2) Per-queue ISR register writes not being done properly in macb
          driver, from Cyrille Pitchen.
      
       3) Stats accounting bugs in bcmgenet, from Patri Gynther.
      
       4) Lightweight tunnel's TTL and TOS were swapped in netlink dumps, from
          Quentin Armitage.
      
       5) SXGBE driver has off-by-one in probe error paths, from Rasmus
          Villemoes.
      
       6) Fix race in save/swap/delete options in netfilter ipset, from
          Vishwanath Pai.
      
       7) Ageing time of bridge not set properly when not operating over a
          switchdev device.  Fix from Haishuang Yan.
      
       8) Fix GRO regression wrt nested FOU/GUE based tunnels, from Alexander
          Duyck.
      
       9) IPV6 UDP code bumps wrong stats, from Eric Dumazet.
      
      10) FEC driver should only access registers that actually exist on the
          given chipset, fix from Fabio Estevam.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (73 commits)
        net: mvneta: fix changing MTU when using per-cpu processing
        stmmac: fix MDIO settings
        Revert "stmmac: Fix 'eth0: No PHY found' regression"
        stmmac: fix TX normal DESC
        net: mvneta: use cache_line_size() to get cacheline size
        net: mvpp2: use cache_line_size() to get cacheline size
        net: mvpp2: fix maybe-uninitialized warning
        tun, bpf: fix suspicious RCU usage in tun_{attach, detach}_filter
        net: usb: cdc_ncm: adding Telit LE910 V2 mobile broadband card
        rtnl: fix msg size calculation in if_nlmsg_size()
        fec: Do not access unexisting register in Coldfire
        net: mvneta: replace MVNETA_CPU_D_CACHE_LINE_SIZE with L1_CACHE_BYTES
        net: mvpp2: replace MVPP2_CPU_D_CACHE_LINE_SIZE with L1_CACHE_BYTES
        net: dsa: mv88e6xxx: Clear the PDOWN bit on setup
        net: dsa: mv88e6xxx: Introduce _mv88e6xxx_phy_page_{read, write}
        bpf: make padding in bpf_tunnel_key explicit
        ipv6: udp: fix UDP_MIB_IGNOREDMULTI updates
        bnxt_en: Fix ethtool -a reporting.
        bnxt_en: Fix typo in bnxt_hwrm_set_pause_common().
        bnxt_en: Implement proper firmware message padding.
        ...
      05cf8077
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · cf78031a
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A handful of const updates for reset ops and a couple fixes to the
        newly introduced IPQ4019 clock driver"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: qcom: ipq4019: add some fixed clocks for ddrppl and fepll
        clk: qcom: ipq4019: switch remaining defines to enums
        clk: qcom: Make reset_control_ops const
        clk: tegra: Make reset_control_ops const
        clk: sunxi: Make reset_control_ops const
        clk: atlas7: Make reset_control_ops const
        clk: rockchip: Make reset_control_ops const
        clk: mmp: Make reset_control_ops const
        clk: mediatek: Make reset_control_ops const
      cf78031a
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1826907c
      Linus Torvalds authored
      Pull power management and ACPI fix from Rafael J. Wysocki:
       "Just one fix for a nasty boot failure on some systems based on Intel
        Skylake that shipped with broken firmware where enabling
        hardware-coordinated P-states management (HWP) causes a faulty
        interrupt handler in SMM to be invoked and crash the system (Srinivas
        Pandruvada)"
      
      * tag 'pm+acpi-4.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / processor: Request native thermal interrupt handling via _OSC
      1826907c
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 4e19fd93
      Linus Torvalds authored
      Merge fixes from Andrew Morton:
       "11 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        .mailmap: add Christophe Ricard
        Make CONFIG_FHANDLE default y
        mm/page_isolation.c: fix the function comments
        oom, oom_reaper: do not enqueue task if it is on the oom_reaper_list head
        mm/page_isolation: fix tracepoint to mirror check function behavior
        mm/rmap: batched invalidations should use existing api
        x86/mm: TLB_REMOTE_SEND_IPI should count pages
        mm: fix invalid node in alloc_migrate_target()
        include/linux/huge_mm.h: return NULL instead of false for pmd_trans_huge_lock()
        mm, kasan: fix compilation for CONFIG_SLAB
        MAINTAINERS: orangefs mailing list is subscribers-only
      4e19fd93
  4. 01 Apr, 2016 25 commits