1. 10 Feb, 2015 3 commits
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-video' and 'acpi-soc' · 99e4d89a
      Rafael J. Wysocki authored
      * acpi-video:
        ACPI / video: Add disable_native_backlight quirk for Samsung 510R
        ACPI / video: Add disable_native_backlight quirk for Samsung 730U3E/740U3E
      
      * acpi-soc:
        ACPI: add AMD ACPI2Platform device support for x86 system
        ACPI / LPSS: Remove non-existing clock control from Intel Lynxpoint I2C
        ACPI / LPSS: check the result of ioremap()
      99e4d89a
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-ec' · 716bc413
      Rafael J. Wysocki authored
      * acpi-ec:
        ACPI / EC: Add GPE reference counting debugging messages
        ACPI / EC: Add query flushing support
        ACPI / EC: Refine command storm prevention support
        ACPI / EC: Add command flushing support.
        ACPI / EC: Introduce STARTED/STOPPED flags to replace BLOCKED flag
        ACPI / EC: Update revision due to raw handler mode.
        ACPI / EC: Reduce ec_poll() by referencing the last register access timestamp.
        ACPI / EC: Fix several GPE handling issues by deploying ACPI_GPE_DISPATCH_RAW_HANDLER mode.
        ACPI / EC: Cleanup QR_EC related code
        ACPI / EC: Fix issues related to the SCI_EVT handling
        ACPI / EC: Fix a code path that global lock is not held
        ACPI / EC: Fix returning values in acpi_ec_sync_query()
        ACPI / EC: Add reference counting for query handlers
        ACPI / EC: Cleanup transaction wakeup code
      716bc413
    • Rafael J. Wysocki's avatar
      Merge branch 'acpica' · 55c39fc2
      Rafael J. Wysocki authored
      * acpica:
        ACPICA: Events: Enable APIs to allow interrupt/polling adaptive request based GPE handling model
        ACPICA: Events: Introduce acpi_set_gpe()/acpi_finish_gpe() to reduce divergences
        ACPICA: Events: Introduce ACPI_GPE_DISPATCH_RAW_HANDLER to fix 2 issues for the current GPE APIs
        ACPICA: Update version to 20150204
        ACPICA: Update Copyright headers to 2015
        ACPICA: Hardware: Cast GPE enable_mask before storing
        ACPICA: Events: Cleanup GPE dispatcher type obtaining code
        ACPICA: Events: Cleanup to move acpi_gbl_global_event_handler invocation out of acpi_ev_gpe_dispatch()
        ACPICA: Events: Cleanup of resetting the GPE handler to NULL before removing
        ACPICA: Events: Fix uninitialized variable
        ACPICA: Events: Remove acpi_ev_valid_gpe_event() due to current restriction
        ACPICA: Events: Remove duplicated sanity check in acpi_ev_enable_gpe()
        ACPICA: Events: Back port "ACPICA: Save current masks of enabled GPEs after enable register writes"
        ACPICA: Resources: Provide common part for struct acpi_resource_address structures.
        ACPI: Introduce acpi_unload_parent_table() usages in Linux kernel
        ACPICA: take ACPI_MTX_INTERPRETER in acpi_unload_table_id()
      55c39fc2
  2. 09 Feb, 2015 5 commits
    • Linus Torvalds's avatar
      Linux 3.19 · bfa76d49
      Linus Torvalds authored
      bfa76d49
    • Linus Torvalds's avatar
      Merge tag 'nios2-fixes-v3.19-final' of git://git.rocketboards.org/linux-socfpga-next · da2d96d3
      Linus Torvalds authored
      Pull nios2 fix from Ley Foon Tan:
       "This fixes incorrect behavior of some user programs"
      
      * tag 'nios2-fixes-v3.19-final' of git://git.rocketboards.org/linux-socfpga-next:
        nios2: fix unhandled signals
      da2d96d3
    • Linus Torvalds's avatar
      Merge git://git.kvack.org/~bcrl/aio-fixes · cdecbb33
      Linus Torvalds authored
      Pull aio nested sleep annotation from Ben LaHaise,
      
      * git://git.kvack.org/~bcrl/aio-fixes:
        aio: annotate aio_read_event_ring for sleep patterns
      cdecbb33
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v3.19-rc7' of... · 4e02370f
      Linus Torvalds authored
      Merge tag 'trace-fixes-v3.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull ftrace fixes from Steven Rostedt:
       "During testing Sedat Dilek hit a "suspicious RCU usage" splat that
        pointed out a real bug.  During suspend and resume the tlb_flush
        tracepoint is called when the CPU is going offline.  As the CPU has
        been noted as offline, RCU is ignoring that CPU, which means that it
        can not use RCU protected locks.  When tracepoints are activated, they
        require RCU locking, and if RCU is ignoring a CPU that runs a
        tracepoint, there is a chance that the tracepoint could cause
        corruption.
      
        The solution was to change the tracepoint into a
        TRACE_EVENT_CONDITION() which allows us to check a condition to
        determine if the tracepoint should be called or not.  If the condition
        is not met, the rcu protected code will not be executed.  By adding
        the condition "cpu_online(smp_processor_id())", this will prevent the
        RCU protected code from being executed if the CPU is marked offline.
      
        After adding this, another bug was discovered.  As RCU checks rcu
        callers, if a rcu call is not done, there is no check (obviously).  We
        found that tracepoints could be added in RCU ignored locations and not
        have lockdep complain until the tracepoint is activated.  This missed
        places where tracepoints were added in places they should not have
        been.  To fix this, code was added in 3.18 that if lockdep is enabled,
        any tracepoint will still call the rcu checks even if the tracepoint
        is not enabled.  The bug here, is that the check does not take the
        CONDITION into account.  As the condition may prevent tracepoints from
        being activated in RCU ignored areas (as the one patch does), we get
        false positives when we enable lockdep and hit a tracepoint that the
        condition prevents it from being called in a RCU ignored location.
      
        The fix for this is to add the CONDITION to the rcu checks, even if
        the tracepoint is not enabled"
      
      * tag 'trace-fixes-v3.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        x86/tlb/trace: Do not trace on CPU that is offline
        tracing: Add condition check to RCU lockdep checks
      4e02370f
    • Chung-Ling Tang's avatar
      nios2: fix unhandled signals · a3248d60
      Chung-Ling Tang authored
      Follow other architectures for user fault handling.
      Signed-off-by: default avatarChung-Ling Tang <cltang@codesourcery.com>
      Acked-by: default avatarLey Foon Tan <lftan@altera.com>
      a3248d60
  3. 08 Feb, 2015 3 commits
  4. 07 Feb, 2015 2 commits
  5. 06 Feb, 2015 14 commits
    • Linus Torvalds's avatar
      Merge branches 'timers-urgent-for-linus' and 'x86-urgent-for-linus' of... · 26cdd1f7
      Linus Torvalds authored
      Merge branches 'timers-urgent-for-linus' and 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull timer and x86 fix from Ingo Molnar:
       "A CLOCK_TAI early expiry fix and an x86 microcode driver oops fix"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        hrtimer: Fix incorrect tai offset calculation for non high-res timer systems
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, microcode: Return error from driver init code when loader is disabled
      26cdd1f7
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 396e9099
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Misc fixes"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/deadline: Fix deadline parameter modification handling
        sched/wait: Remove might_sleep() from wait_event_cmd()
        sched: Fix crash if cpuset_cpumask_can_shrink() is passed an empty cpumask
        sched/fair: Avoid using uninitialized variable in preferred_group_nid()
      396e9099
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 29f12c48
      Linus Torvalds authored
      Pull core kernel fixes from Ingo Molnar:
       "Two liblockdep fixes and a CPU hotplug race fix"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools/liblockdep: don't include host headers
        tools/liblockdep: ignore generated .so file
        smpboot: Add missing get_online_cpus() in smpboot_register_percpu_thread()
      29f12c48
    • Linus Torvalds's avatar
      Merge tag 'sound-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 2af613d3
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Hopefully the final pull request for 3.19: this ended up with a
        slightly higher volume than wished, but I put them all as they are
        either stable or 3.19 regression fixes.
      
        Most of commits are from ASoC, and have been stewed for a while in
        linux-next.  The only change in the common code is the regression
        fixes for ASoC AC97 stuff wrt device registrations.  The rest are
        device-specific, mostly small fixes in various ASoC drivers and ak411x
        on ice1724 boards"
      
      * tag 'sound-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ASoC: Intel: fix sst firmware path for cht-bsw-rt5672
        ARM: dts: Fix I2S1, I2S2 compatible for exynos4 SoCs
        ASoC: sgtl5000: add delay before first I2C access
        MAINTAINERS: ASoC: add maintainer for Intel BDW/HSW ASoC driver
        ASoC: atmel_ssc_dai: fix the setting for DSP mode
        ASoC: sgtl5000: Use shift mask when setting codec mode
        ASoC: tlv320aic3x: Fix data delay configuration
        ALSA: ak411x: Fix stall in work callback
        ASoC: Intel: Used lock version to update shim registers
        ASoC: wm8731: init mutex in i2c init path
        ASoC: atmel_ssc_dai: fix start event for I2S mode
        ASoC: rt5640: Add RT5642 ACPI ID for Intel Baytrail
        ASoC: wm97xx: Reset AC'97 device before registering it
        ASoC: Add support for allocating AC'97 device before registering it
      2af613d3
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew Morton) · 48beb121
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "7 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm/debug_pagealloc: fix build failure on ppc and some other archs
        nilfs2: fix deadlock of segment constructor over I_SYNC flag
        MAINTAINERS: remove SUPERH website
        memcg, shmem: fix shmem migration to use lrucare
        mm: export "high_memory" symbol on !MMU
        .mailmap: update Konstantin Khlebnikov's email address
        mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range
      48beb121
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · dbf3b7dd
      Linus Torvalds authored
      Pull MIPS fixes from Ralf Baechle:
       "The pending MIPS fixes for 3.19.  All across the field and nothing
        particularly severe or dramatic"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (23 commits)
        IRQCHIP: mips-gic: Avoid rerouting timer IRQs for smp-cmp
        MIPS: Fix syscall_get_nr for the syscall exit tracing.
        MIPS: elf2ecoff: Ignore PT_MIPS_ABIFLAGS program headers.
        MIPS: elf2ecoff: Rewrite main processing loop to switch.
        MIPS: fork: Fix MSA/FPU/DSP context duplication race
        MIPS: Fix C0_Pagegrain[IEC] support.
        MIPS: traps: Fix inline asm ctc1 missing .set hardfloat
        MIPS: mipsregs.h: Add write_32bit_cp1_register()
        MIPS: Fix kernel lockup or crash after CPU offline/online
        MIPS: OCTEON: fix kernel crash when offlining a CPU
        MIPS: ARC: Fix build error.
        MIPS: IRQ: Fix disable_irq on CPU IRQs
        MIPS: smp-mt,smp-cmp: Enable all HW IRQs on secondary CPUs
        MIPS: Fix restart of indirect syscalls
        MIPS: ELF: fix loading o32 binaries on 64-bit kernels
        MIPS: mips-cm: Fix sparse warnings
        MIPS: Kconfig: Fix recursive dependency.
        MIPS: Compat: Fix build error if CONFIG_MIPS32_COMPAT but no compat ABI.
        MIPS: JZ4740: Fixup #include's (sparse)
        MIPS: Wire up execveat(2).
        ...
      dbf3b7dd
    • Lv Zheng's avatar
      ACPI / EC: Add GPE reference counting debugging messages · b5bca896
      Lv Zheng authored
      This patch enhances debugging with the GPE reference count messages added.
      No functional changes.
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b5bca896
    • Lv Zheng's avatar
      ACPI / EC: Add query flushing support · f252cb09
      Lv Zheng authored
      This patch implementes the QR_EC flushing support.
      
      Grace periods are implemented from the detection of an SCI_EVT to the
      submission/completion of the QR_EC transaction. During this period, all
      EC command transactions are allowed to be submitted.
      
      Note that query periods and event periods are intentionally distiguished to
      allow further improvements.
      1. Query period: from the detection of an SCI_EVT to the sumission of the
         QR_EC command. This period is used for storming prevention, as currently
         QR_EC is deferred to a work queue rather than directly issued from the
         IRQ context even there is no other transactions pending, so malicous
         SCI_EVT GPE can act like "level triggered" to trigger a GPE storm. We
         need to be prepared for this. And in the future, we may change it to be
         a part of the advance_transaction() where we will try QR_EC submission
         in appropriate positions to avoid such GPE storming.
      2. Event period: from the detection of an SCI_EVT to the completion of the
         QR_EC command. We may extend it to the completion of _Qxx evaluation.
         This is actually a grace period for event flushing, but we only flush
         queries due to the reason stated in known issue 1. That's also why we
         use EC_FLAGS_EVENT_xxx. During this period, QR_EC transactions need to
         pass the flushable submission check.
      
      In this patch, the following flags are implemented:
      1. EC_FLAGS_EVENT_ENABLED: this is derived from the old
         EC_FLAGS_QUERY_PENDING flag which can block SCI_EVT handlings.
         With this flag, the logics implemented by the original flag are
         extended:
         1. Old logic: unless both of the flags are set, the event poller will
                       not be scheduled, and
         2. New logic: as soon as both of the flags are set, the evet poller will
                       be scheduled.
      2. EC_FLAGS_EVENT_DETECTED: this is also derived from the old
         EC_FLAGS_QUERY_PENDING flag which can block SCI_EVT detection. It thus
         can be used to indicate the storming prevention period for query
         submission.
         acpi_ec_submit_request()/acpi_ec_complete_request() are invoked to
         implement this period so that acpi_set_gpe() can be invoked under the
         "reference count > 0" condition.
      3. EC_FLAGS_EVENT_PENDING: this is newly added to indicate the grace period
         for event flushing (query flushing for now).
         acpi_ec_submit_request()/acpi_ec_complete_request() are invoked to
         implement this period so that the flushing process can wait until the
         event handling (query transaction for now) to be completed.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=82611
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=77431Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Tested-by: default avatarOrtwin Glück <odi@odi.ch>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f252cb09
    • Lv Zheng's avatar
      ACPI / EC: Refine command storm prevention support · e1d4d90f
      Lv Zheng authored
      This patch refines EC command storm prevention support.
      
      Current command storming code is wrong, when the storming condition is
      detected, it only flags the condition without doing anything for the
      current command but performing storming prevention for the follow-up
      commands. So:
      1. The first command which suffers from the storming still suffers from
         storming.
      2. The follow-up commands which may not suffer from the storming are
         unconditionally forced into the storming prevention mode.
      Ideally, we should only enable storm prevention immediately after detection
      for the current command so that the next command can try the
      power/performance efficient interrupt mode again.
      
      This patch improves the command storm prevention by disabling GPE right
      after the detection and re-enabling it right before completing the command
      transaction using the GPE storming prevention APIs. This thus deploys the
      following GPE handling model:
      1. acpi_enable_gpe()/acpi_disable_gpe() for reference count changes:
         This set of APIs are used for EC usage reference counting.
      2. acpi_set_gpe(ACPI_GPE_ENABLE)/acpi_set_gpe(ACPI_GPE_DISABLE):
         This set of APIs are used for preventing GPE storm. They must be invoked
         when the reference count > 0.
         Note that as the storming prevention should always happen when there is
         an outstanding request, or GPE enabling value will be messed up by the
         races. This patch also adds BUG_ON() to enforces this rule to prevent
         future bugs.
      
      The msleep(1) used after completing a transaction is useless now as this
      sounds like a guard time only useful for platforms that need the
      EC_FLAGS_MSI quirks while we have fixed GPE race issues using the previous
      raw handler mode enabling. It is kept to avoid regressions. A seperate
      patch which deletes EC_FLAGS_MSI quirks should take care of deleting it.
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e1d4d90f
    • Lv Zheng's avatar
      ACPI / EC: Add command flushing support. · 9887d22a
      Lv Zheng authored
      This patch implements the EC command flushing support.
      
      During the grace period indicated by EC_FLAGS_STARTED and EC_FLAGS_STOPPED,
      all submitted EC command transactions can be completed and new submissions
      are prevented before suspending so that the EC hardware can be ensured to
      be in the idle state when the system is resumed.
      
      There is a good indicator for flush support:
      All acpi_ec_submit_request() is invoked after checking driver state with
      acpi_ec_started() except the first one. This means all code paths can be
      flushed as fast as possible by discarding the requests occurred after the
      flush operation. The reference increased for such kind of code path is
      wrapped by acpi_ec_submit_flushable_request().
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Tested-by: default avatarOrtwin Glück <odi@odi.ch>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      9887d22a
    • Lv Zheng's avatar
      ACPI / EC: Introduce STARTED/STOPPED flags to replace BLOCKED flag · ad479e7f
      Lv Zheng authored
      By using the 2 flags, we can indicate an inter-mediate state where the
      current transactions should be completed while the new transactions should
      be dropped.
      
      The comparison of the old flag and the new flags:
        Old			New
        about to set BLOCKED	STOPPED set / STARTED set
        BLOCKED set		STOPPED clear / STARTED clear
        BLOCKED clear		STOPPED clear / STARTED set
      A new period can be indicated by the 2 flags. The new period is between the
      point where we are about to set BLOCKED and the point when the BLOCKED is
      set. The new flags facilitate us with acpi_ec_started() check to allow the
      EC transaction to be submitted during the new period. This period thus can
      be used as a grace period for the EC transaction flushing.
      
      The only functional change after applying this patch is:
      1. The GPE enabling/disabling is protected by the EC specific lock. We can
         do this because of recent ACPICA GPE API enhancement. This is reasonable
         as the GPE disabling/enabling state should only be determined by the EC
         driver's state machine which is protected by the EC spinlock.
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Tested-by: default avatarOrtwin Glück <odi@odi.ch>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ad479e7f
    • Ken Xue's avatar
      ACPI: add AMD ACPI2Platform device support for x86 system · 92082a88
      Ken Xue authored
      This new feature is to interpret AMD specific ACPI device to
      platform device such as I2C, UART, GPIO found on AMD CZ and
      later chipsets. It based on example intel LPSS. Now, it can
      support AMD I2C, UART and GPIO.
      Signed-off-by: default avatarKen Xue <Ken.Xue@amd.com>
      Acked-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      92082a88
    • Rafael J. Wysocki's avatar
      02c09177
    • Yann Droneaud's avatar
      Revert "IB/core: Add support for extended query device caps" · 43c61165
      Yann Droneaud authored
      While commit 7e36ef82 ("IB/core: Temporarily disable
      ex_query_device uverb") is correct as it makes the extended
      QUERY_DEVICE uverb (which came as part of commit 5a77abf9
      ("IB/core: Add support for extended query device caps") and commit
      860f10a7 ("IB/core: Add flags for on demand paging support")) not
      available to userspace, it doesn't address the initial issue regarding
      ib_copy_to_udata() [1][2].
      
      Additionally, further discussions around this new uverb seems to
      conclude it would require a different data structure than the one
      currently described in <rdma/ib_user_verbs.h> [3].
      
      Both of these issues require a revert of the changes, so this patch
      partially reverts commit 8cdd312c ("IB/mlx5: Implement the ODP
      capability query verb") and commit 860f10a7 ("IB/core: Add flags
      for on demand paging support") and fully reverts commit 5a77abf9
      ("IB/core: Add support for extended query device caps").
      
      [1] "Re: [PATCH v3 06/17] IB/core: Add support for extended query device caps"
          http://mid.gmane.org/1418733236.2779.26.camel@opteya.com
      
      [2] "Re: [PATCH] IB/core: Temporarily disable ex_query_device uverb"
          http://mid.gmane.org/1423067503.3030.83.camel@opteya.com
      
      [3] "RE: [PATCH v1 1/5] IB/uverbs: ex_query_device: answer must not depend on request's comp_mask"
          http://mid.gmane.org/2807E5FD2F6FDA4886F6618EAC48510E0CC12C30@CRSMSX101.amr.corp.intel.com
      
      Cc: Eli Cohen <eli@mellanox.com>
      Cc: Haggai Eran <haggaie@mellanox.com>
      Cc: Ira Weiny <ira.weiny@intel.com>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Shachar Raindel <raindel@mellanox.com>
      Signed-off-by: default avatarYann Droneaud <ydroneaud@opteya.com>
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      43c61165
  6. 05 Feb, 2015 13 commits