1. 06 9月, 2013 1 次提交
    • R
      ACPI / hotplug / PCI: Don't trim devices before scanning the namespace · 89ec2f2e
      Rafael J. Wysocki 提交于
      In acpiphp_bus_add() we first remove device objects corresponding to
      the given handle and the ACPI namespace branch below it, which are
      then re-created by acpi_bus_scan().  This used to be done to clean
      up after surprise removals, but now we do the cleanup through
      trim_stale_devices() which checks if the devices in question are
      actually gone before removing them, so the device hierarchy trimming
      in acpiphp_bus_add() is not necessary any more and, moreover, it may
      lead to problems if it removes device objects corresponding to
      devices that are actually present.
      
      For this reason, remove the leftover acpiphp_bus_trim() from
      acpiphp_bus_add().
      Reported-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      89ec2f2e
  2. 30 8月, 2013 10 次提交
    • R
      Merge branch 'pm-cpufreq' · f41b8312
      Rafael J. Wysocki 提交于
      * pm-cpufreq:
        cpufreq: Don't use smp_processor_id() in preemptible context
        cpufreq: governor: Fix typos in comments
        cpufreq: governors: Remove duplicate check of target freq in supported range
        cpufreq: Fix timer/workqueue corruption due to double queueing
        cpufreq: imx6q: Fix clock enable balance
        cpufreq: tegra: fix the wrong clock name
      f41b8312
    • R
      Merge branch 'pm-cpuidle' · 499aa70a
      Rafael J. Wysocki 提交于
      * pm-cpuidle:
        cpuidle: coupled: fix race condition between pokes and safe state
        cpuidle: coupled: abort idle if pokes are pending
        cpuidle: coupled: disable interrupts after entering safe state
      499aa70a
    • R
      Merge branch 'acpi-hotplug' · 7bc583d1
      Rafael J. Wysocki 提交于
      * acpi-hotplug:
        ACPI / hotplug: Remove containers synchronously
        driver core / ACPI: Avoid device hot remove locking issues
      7bc583d1
    • R
      Merge branch 'acpi-assorted' · da48afb2
      Rafael J. Wysocki 提交于
      * acpi-assorted:
        ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT
        ACPI / thermal: Add check of "_TZD" availability and evaluating result
      da48afb2
    • S
      cpufreq: Don't use smp_processor_id() in preemptible context · 69320783
      Stephen Boyd 提交于
      Workqueues are preemptible even if works are queued on them with
      queue_work_on(). Let's use raw_smp_processor_id() here to silence
      the warning.
      
      BUG: using smp_processor_id() in preemptible [00000000] code: kworker/3:2/674
      caller is gov_queue_work+0x28/0xb0
      CPU: 0 PID: 674 Comm: kworker/3:2 Tainted: G        W    3.10.0 #30
      Workqueue: events od_dbs_timer
      [<c010c178>] (unwind_backtrace+0x0/0x11c) from [<c0109dec>] (show_stack+0x10/0x14)
      [<c0109dec>] (show_stack+0x10/0x14) from [<c03885a4>] (debug_smp_processor_id+0xbc/0xf0)
      [<c03885a4>] (debug_smp_processor_id+0xbc/0xf0) from [<c0635864>] (gov_queue_work+0x28/0xb0)
      [<c0635864>] (gov_queue_work+0x28/0xb0) from [<c0635618>] (od_dbs_timer+0x108/0x134)
      [<c0635618>] (od_dbs_timer+0x108/0x134) from [<c01aa8f8>] (process_one_work+0x25c/0x444)
      [<c01aa8f8>] (process_one_work+0x25c/0x444) from [<c01aaf88>] (worker_thread+0x200/0x344)
      [<c01aaf88>] (worker_thread+0x200/0x344) from [<c01b03bc>] (kthread+0xa0/0xb0)
      [<c01b03bc>] (kthread+0xa0/0xb0) from [<c01061b8>] (ret_from_fork+0x14/0x3c)
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      69320783
    • C
      cpuidle: coupled: fix race condition between pokes and safe state · 9e19b73c
      Colin Cross 提交于
      The coupled cpuidle waiting loop clears pending pokes before
      entering the safe state.  If a poke arrives just before the
      pokes are cleared, but after the while loop condition checks,
      the poke will be lost and the cpu will stay in the safe state
      until another interrupt arrives.  This may cause the cpu that
      sent the poke to spin in the ready loop with interrupts off
      until another cpu receives an interrupt, and if no other cpus
      have interrupts routed to them it can spin forever.
      
      Change the return value of cpuidle_coupled_clear_pokes to
      return if a poke was cleared, and move the need_resched()
      checks into the callers.  In the waiting loop, if
      a poke was cleared restart the loop to repeat the while
      condition checks.
      Reported-by: NNeil Zhang <zhangwm@marvell.com>
      Signed-off-by: NColin Cross <ccross@android.com>
      Cc: 3.6+ <stable@vger.kernel.org> # 3.6+
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      9e19b73c
    • C
      cpuidle: coupled: abort idle if pokes are pending · f983827b
      Colin Cross 提交于
      Joseph Lo <josephl@nvidia.com> reported a lockup on Tegra20 caused
      by a race condition in coupled cpuidle.  When two or more cpus
      enter idle at the same time, the first cpus to arrive may go to the
      ready loop without processing pending pokes from the last cpu to
      arrive.
      
      This patch adds a check for pending pokes once all cpus have been
      synchronized in the ready loop and resets the coupled state and
      retries if any cpus failed to handle their pending poke.
      
      Retrying on all cpus may trigger the same issue again, so this patch
      also adds a check to ensure that each cpu has received at least one
      poke between when it enters the waiting loop and when it moves on to
      the ready loop.
      Reported-and-tested-by: NJoseph Lo <josephl@nvidia.com>
      Tested-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NColin Cross <ccross@android.com>
      Cc: 3.6+ <stable@vger.kernel.org> # 3.6+
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f983827b
    • C
      cpuidle: coupled: disable interrupts after entering safe state · 59e99856
      Colin Cross 提交于
      Calling cpuidle_enter_state is expected to return with interrupts
      enabled, but interrupts must be disabled before starting the
      ready loop synchronization stage.  Call local_irq_disable after
      each call to cpuidle_enter_state for the safe state.
      Tested-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NColin Cross <ccross@android.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      59e99856
    • R
      ACPI / hotplug: Remove containers synchronously · f943db40
      Rafael J. Wysocki 提交于
      The current protocol for handling hot remove of containers is very
      fragile and causes acpi_eject_store() to acquire acpi_scan_lock
      which may deadlock with the removal of the device that it is called
      for (the reason is that device sysfs attributes cannot be removed
      while their callbacks are being executed and ACPI device objects
      are removed under acpi_scan_lock).
      
      The problem is related to the fact that containers are handled by
      acpi_bus_device_eject() in a special way, which is to emit an
      offline uevent instead of just removing the container.  Then, user
      space is expected to handle that uevent and use the container's
      "eject" attribute to actually remove it.  That is fragile, because
      user space may fail to complete the ejection (for example, by not
      using the container's "eject" attribute at all) leaving the BIOS
      kind of in a limbo.  Moreover, if the eject event is not signaled
      for a container itself, but for its parent device object (or
      generally, for an ancestor above it in the ACPI namespace), the
      container will be removed straight away without doing that whole
      dance.
      
      For this reason, modify acpi_bus_device_eject() to remove containers
      synchronously like any other objects (user space will get its uevent
      anyway in case it does some other things in response to it) and
      remove the eject_pending ACPI device flag that is not used any more.
      This way acpi_eject_store() doesn't have a reason to acquire
      acpi_scan_lock any more and one possible deadlock scenario goes
      away (plus the code is simplified a bit).
      Reported-and-tested-by: NGu Zheng <guz.fnst@cn.fujitsu.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NToshi Kani <toshi.kani@hp.com>
      f943db40
    • R
      driver core / ACPI: Avoid device hot remove locking issues · 5e33bc41
      Rafael J. Wysocki 提交于
      device_hotplug_lock is held around the acpi_bus_trim() call in
      acpi_scan_hot_remove() which generally removes devices (it removes
      ACPI device objects at least, but it may also remove "physical"
      device objects through .detach() callbacks of ACPI scan handlers).
      Thus, potentially, device sysfs attributes are removed under that
      lock and to remove those attributes it is necessary to hold the
      s_active references of their directory entries for writing.
      
      On the other hand, the execution of a .show() or .store() callback
      from a sysfs attribute is carried out with that attribute's s_active
      reference held for reading.  Consequently, if any device sysfs
      attribute that may be removed from within acpi_scan_hot_remove()
      through acpi_bus_trim() has a .store() or .show() callback which
      acquires device_hotplug_lock, the execution of that callback may
      deadlock with the removal of the attribute.  [Unfortunately, the
      "online" device attribute of CPUs and memory blocks is one of them.]
      
      To avoid such deadlocks, make all of the sysfs attribute callbacks
      that need to lock device hotplug, for example store_online(), use
      a special function, lock_device_hotplug_sysfs(), to lock device
      hotplug and return the result of that function immediately if it is
      not zero.  This will cause the s_active reference of the directory
      entry in question to be released and the syscall to be restarted
      if device_hotplug_lock cannot be acquired.
      
      [show_online() actually doesn't need to lock device hotplug, but
      it is useful to serialize it with respect to device_offline() and
      device_online() for the same device (in case user space attempts to
      run them concurrently) which can be done with the help of
      device_lock().]
      Reported-by: NYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Reported-and-tested-by: NGu Zheng <guz.fnst@cn.fujitsu.com>
      Suggested-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NToshi Kani <toshi.kani@hp.com>
      5e33bc41
  3. 29 8月, 2013 5 次提交
    • S
      cpufreq: governor: Fix typos in comments · c4afc410
      Stratos Karafotis 提交于
       - 'Governer' should be 'Governor'.
       - 'S' is used for Siemens (electrical conductance) in SI units,
         so use small 's' for seconds.
      Signed-off-by: NStratos Karafotis <stratosk@semaphore.gr>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      c4afc410
    • S
      cpufreq: governors: Remove duplicate check of target freq in supported range · 934dac1e
      Stratos Karafotis 提交于
      Function __cpufreq_driver_target() checks if target_freq is within
      policy->min and policy->max range. generic_powersave_bias_target() also
      checks if target_freq is valid via a cpufreq_frequency_table_target()
      call. So, drop the unnecessary duplicate check in *_check_cpu().
      Signed-off-by: NStratos Karafotis <stratosk@semaphore.gr>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      934dac1e
    • S
      cpufreq: Fix timer/workqueue corruption due to double queueing · 3617f2ca
      Stephen Boyd 提交于
      When a CPU is hot removed we'll cancel all the delayed work items
      via gov_cancel_work(). Normally this will just cancels a delayed
      timer on each CPU that the policy is managing and the work won't
      run, but if the work is already running the workqueue code will
      wait for the work to finish before continuing to prevent the
      work items from re-queuing themselves like they normally do. This
      scheme will work most of the time, except for the case where the
      work function determines that it should adjust the delay for all
      other CPUs that the policy is managing. If this scenario occurs,
      the canceling CPU will cancel its own work but queue up the other
      CPUs works to run. For example:
      
       CPU0                                        CPU1
       ----                                        ----
       cpu_down()
        ...
        __cpufreq_remove_dev()
         cpufreq_governor_dbs()
          case CPUFREQ_GOV_STOP:
           gov_cancel_work(dbs_data, policy);
            cpu0 work is canceled
             timer is canceled
             cpu1 work is canceled                    <work runs>
             <waits for cpu1>                         od_dbs_timer()
                                                       gov_queue_work(*, *, true);
       						  cpu0 work queued
       						  cpu1 work queued
      						  cpu2 work queued
      						  ...
             cpu1 work is canceled
             cpu2 work is canceled
             ...
      
      At the end of the GOV_STOP case cpu0 still has a work queued to
      run although the code is expecting all of the works to be
      canceled. __cpufreq_remove_dev() will then proceed to
      re-initialize all the other CPUs works except for the CPU that is
      going down. The CPUFREQ_GOV_START case in cpufreq_governor_dbs()
      will trample over the queued work and debugobjects will spit out
      a warning:
      
      WARNING: at lib/debugobjects.c:260 debug_print_object+0x94/0xbc()
      ODEBUG: init active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x10
      Modules linked in:
      CPU: 0 PID: 1491 Comm: sh Tainted: G        W    3.10.0 #19
      [<c010c178>] (unwind_backtrace+0x0/0x11c) from [<c0109dec>] (show_stack+0x10/0x14)
      [<c0109dec>] (show_stack+0x10/0x14) from [<c01904cc>] (warn_slowpath_common+0x4c/0x6c)
      [<c01904cc>] (warn_slowpath_common+0x4c/0x6c) from [<c019056c>] (warn_slowpath_fmt+0x2c/0x3c)
      [<c019056c>] (warn_slowpath_fmt+0x2c/0x3c) from [<c0388a7c>] (debug_print_object+0x94/0xbc)
      [<c0388a7c>] (debug_print_object+0x94/0xbc) from [<c0388e34>] (__debug_object_init+0x2d0/0x340)
      [<c0388e34>] (__debug_object_init+0x2d0/0x340) from [<c019e3b0>] (init_timer_key+0x14/0xb0)
      [<c019e3b0>] (init_timer_key+0x14/0xb0) from [<c0635f78>] (cpufreq_governor_dbs+0x3e8/0x5f8)
      [<c0635f78>] (cpufreq_governor_dbs+0x3e8/0x5f8) from [<c06325a0>] (__cpufreq_governor+0xdc/0x1a4)
      [<c06325a0>] (__cpufreq_governor+0xdc/0x1a4) from [<c0633704>] (__cpufreq_remove_dev.isra.10+0x3b4/0x434)
      [<c0633704>] (__cpufreq_remove_dev.isra.10+0x3b4/0x434) from [<c08989f4>] (cpufreq_cpu_callback+0x60/0x80)
      [<c08989f4>] (cpufreq_cpu_callback+0x60/0x80) from [<c08a43c0>] (notifier_call_chain+0x38/0x68)
      [<c08a43c0>] (notifier_call_chain+0x38/0x68) from [<c01938e0>] (__cpu_notify+0x28/0x40)
      [<c01938e0>] (__cpu_notify+0x28/0x40) from [<c0892ad4>] (_cpu_down+0x7c/0x2c0)
      [<c0892ad4>] (_cpu_down+0x7c/0x2c0) from [<c0892d3c>] (cpu_down+0x24/0x40)
      [<c0892d3c>] (cpu_down+0x24/0x40) from [<c0893ea8>] (store_online+0x2c/0x74)
      [<c0893ea8>] (store_online+0x2c/0x74) from [<c04519d8>] (dev_attr_store+0x18/0x24)
      [<c04519d8>] (dev_attr_store+0x18/0x24) from [<c02a69d4>] (sysfs_write_file+0x100/0x148)
      [<c02a69d4>] (sysfs_write_file+0x100/0x148) from [<c0255c18>] (vfs_write+0xcc/0x174)
      [<c0255c18>] (vfs_write+0xcc/0x174) from [<c0255f70>] (SyS_write+0x38/0x64)
      [<c0255f70>] (SyS_write+0x38/0x64) from [<c0106120>] (ret_fast_syscall+0x0/0x30)
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      3617f2ca
    • L
      ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT · 524f42fa
      Lan Tianyu 提交于
      The ECDT of ASUSTEK L4R doesn't provide correct command and data
      I/O ports.  The DSDT provides the correct information instead.
      
      For this reason, add this machine to quirk list for ECDT validation
      and use the EC information from the DSDT.
      
      [rjw: Changelog]
      References: https://bugzilla.kernel.org/show_bug.cgi?id=60765Reported-and-tested-by: NDaniele Esposti <expo@expobrain.net>
      Signed-off-by: NLan Tianyu <tianyu.lan@intel.com>
      Cc: All <stable@vger.kernel.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      524f42fa
    • L
      ACPI / thermal: Add check of "_TZD" availability and evaluating result · 668e0200
      Lan Tianyu 提交于
      Some machines don't provide _TZD, so check the availability of it
      before carrying out futher operations.
      
      If _TZD is present, also check the result of its evaluation.
      
      [rjw: Changelog]
      Signed-off-by: NLan Tianyu <tianyu.lan@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      668e0200
  4. 27 8月, 2013 15 次提交
    • R
      Merge branch 'cpufreq-fixes' of git://git.linaro.org/people/vireshk/linux into pm-cpufreq · f7b2ed43
      Rafael J. Wysocki 提交于
      Pull cpufreq fixes for v3.12 from Viresh Kumar.
      
      * 'cpufreq-fixes' of git://git.linaro.org/people/vireshk/linux:
        cpufreq: imx6q: Fix clock enable balance
        cpufreq: tegra: fix the wrong clock name
      f7b2ed43
    • R
      Merge branch 'pm-cpufreq' · 7a330a54
      Rafael J. Wysocki 提交于
      * pm-cpufreq: (60 commits)
        cpufreq: pmac32-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: pmac64-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: maple-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: arm_big_little: remove device tree parsing for cpu nodes
        cpufreq: kirkwood-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: spear-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: highbank-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: cpufreq-cpu0: remove device tree parsing for cpu nodes
        cpufreq: imx6q-cpufreq: remove device tree parsing for cpu nodes
        drivers/bus: arm-cci: avoid parsing DT for cpu device nodes
        ARM: mvebu: remove device tree parsing for cpu nodes
        ARM: topology: remove hwid/MPIDR dependency from cpu_capacity
        of/device: add helper to get cpu device node from logical cpu index
        driver/core: cpu: initialize of_node in cpu's device struture
        ARM: DT/kernel: define ARM specific arch_match_cpu_phys_id
        of: move of_get_cpu_node implementation to DT core library
        powerpc: refactor of_get_cpu_node to support other architectures
        openrisc: remove undefined of_get_cpu_node declaration
        microblaze: remove undefined of_get_cpu_node declaration
        cpufreq: fix bad unlock balance on !CONFIG_SMP
        ...
      7a330a54
    • R
      Merge branch 'pm-cpuidle' · c7878810
      Rafael J. Wysocki 提交于
      * pm-cpuidle: (25 commits)
        cpuidle: Change struct menu_device field types
        cpuidle: Add a comment warning about possible overflow
        cpuidle: Fix variable domains in get_typical_interval()
        cpuidle: Fix menu_device->intervals type
        cpuidle: CodingStyle: Break up multiple assignments on single line
        cpuidle: Check called function parameter in get_typical_interval()
        cpuidle: Rearrange code and comments in get_typical_interval()
        cpuidle: Ignore interval prediction result when timer is shorter
        cpuidle-kirkwood.c: simplify use of devm_ioremap_resource()
        cpuidle: kirkwood: Make kirkwood_cpuidle_remove function static
        cpuidle: calxeda: Add missing __iomem annotation
        SH: cpuidle: Add missing parameter for cpuidle_register()
        ARM: ux500: cpuidle: Move ux500 cpuidle driver to drivers/cpuidle
        ARM: ux500: cpuidle: Remove pointless include
        ARM: ux500: cpuidle: Instantiate the driver from platform device
        ARM: davinci: cpuidle: Fix target residency
        cpuidle: Add Kconfig.arm and move calxeda, kirkwood and zynq
        cpuidle: Check if device is already registered
        cpuidle: Introduce __cpuidle_device_init()
        cpuidle: Introduce __cpuidle_unregister_device()
        ...
      c7878810
    • R
      Merge branch 'pm-opp' · 95b6fcb0
      Rafael J. Wysocki 提交于
      * pm-opp:
        PM / OPP: Export opp_add()
      95b6fcb0
    • R
      Merge branch 'pm-sleep' · e894245c
      Rafael J. Wysocki 提交于
      * pm-sleep:
        PM / Sleep: new trace event to print device suspend and resume times
        PM / Sleep: increase ftrace coverage in suspend/resume
      e894245c
    • R
      Merge branch 'pnp' · ce63e186
      Rafael J. Wysocki 提交于
      * pnp:
        PNP: convert PNP driver bus legacy pm_ops to dev_pm_ops
      ce63e186
    • R
      Merge branch 'acpi-video' · 8a3a53ea
      Rafael J. Wysocki 提交于
      * acpi-video:
        ACPI: blacklist win8 OSI for buggy laptops
        ACPI: blacklist win8 OSI for ASUS Zenbook Prime UX31A
        ACPI / video: drop unused fields from struct acpi_video_brightness_flags
        ACPI / video: remove unnecessary type casting
        ACPI / video: trivial style cleanups
        ACPI / video: trivial costmetic cleanups
      
      Conflicts:
      	drivers/acpi/video.c
      8a3a53ea
    • R
      Merge branch 'acpi-processor' · 551f5c74
      Rafael J. Wysocki 提交于
      * acpi-processor:
        ACPI / processor: Acquire writer lock to update CPU maps
        ACPI / processor: Remove acpi_processor_get_limit_info()
      551f5c74
    • R
      Merge branch 'acpi-bind' · 8462d9df
      Rafael J. Wysocki 提交于
      * acpi-bind:
        ACPI: Print diagnostic messages if device links cannot be created
        ACPI: Drop unnecessary label from acpi_bind_one()
        ACPI: Clean up error code path in acpi_unbind_one()
        ACPI: Use list_for_each_entry() in acpi_unbind_one()
        ACPI: acpi_bind_one()/acpi_unbind_one() whitespace cleanups
        ACPI: Create symlinks in acpi_bind_one() under physical_node_lock
        ACPI: Reduce acpi_bind_one()/acpi_unbind_one() code duplication
        ACPI: Do not fail acpi_bind_one() if device is already bound correctly
      8462d9df
    • R
      Merge branch 'acpi-assorted' · 0c581415
      Rafael J. Wysocki 提交于
      * acpi-assorted:
        ACPI / osl: Kill macro INVALID_TABLE().
        earlycpio.c: Fix the confusing comment of find_cpio_data().
        ACPI / x86: Print Hot-Pluggable Field in SRAT.
        ACPI / thermal: Use THERMAL_TRIPS_NONE macro to replace number
        ACPI / thermal: Remove unused macros in the driver/acpi/thermal.c
        ACPI / thermal: Remove the unused lock of struct acpi_thermal
        ACPI / osl: Fix osi_setup_entries[] __initdata attribute location
        ACPI / numa: Fix __init attribute location in slit_valid()
        ACPI / dock: Fix __init attribute location in find_dock_and_bay()
        ACPI / Sleep: Fix incorrect placement of __initdata
        ACPI / processor: Fix incorrect placement of __initdata
        ACPI / EC: Fix incorrect placement of __initdata
        ACPI / scan: Drop unnecessary label from acpi_create_platform_device()
        ACPI: Move acpi_bus_get_device() from bus.c to scan.c
        ACPI / scan: Allow platform device creation without any IO resources
        ACPI: Cleanup sparse warning on acpi_os_initialize1()
        platform / thinkpad: Remove deprecated hotkey_report_mode parameter
        ACPI: Remove the old /proc/acpi/event interface
      0c581415
    • R
      Merge branch 'acpica' · afdca01c
      Rafael J. Wysocki 提交于
      * acpica:
        ACPICA: Update version to 20130725.
        ACPICA: Update names for walk_namespace callbacks to clarify usage.
        ACPICA: Return error if DerefOf resolves to a null package element.
        ACPICA: Make ACPI Power Management Timer (PM Timer) optional.
        ACPICA: Fix divergences of the commit - ACPICA: Expose OSI version.
        ACPICA: Fix possible fault for methods that optionally have no return value.
        ACPICA: DeRefOf operator: Update to fully resolve FieldUnit and BufferField refs.
        ACPICA: Emit all unresolved method externals in a text block
        ACPICA: Export acpi_tb_validate_rsdp().
        ACPI: Add facility to remove all _OSI strings
        ACPI: Add facility to disable all _OSI OS vendor strings
        ACPICA: Add acpi_update_interfaces() public interface
        ACPICA: Update version to 20130626
        ACPICA: Fix compiler warnings for casting issues (only some compilers)
        ACPICA: Remove restriction of 256 maximum GPEs in any GPE block
        ACPICA: Disassembler: Expand maximum output string length to 64K
        ACPICA: TableManager: Export acpi_tb_scan_memory_for_rsdp()
        ACPICA: Update comments about behavior when _STA does not exist
      afdca01c
    • R
      Merge branch 'acpi-sleep' · 4b319f29
      Rafael J. Wysocki 提交于
      * acpi-sleep:
        x86 / tboot / ACPI: Fail extended mode reduced hardware sleep
        xen / ACPI: notify xen when reduced hardware sleep is available
        ACPI / sleep: Introduce acpi_os_prepare_extended_sleep() for extended sleep path
      4b319f29
    • R
      Merge branch 'acpi-pm' · 0ad4c9a9
      Rafael J. Wysocki 提交于
      * acpi-pm:
        ACPI / PM: Add state information to error message in acpi_device_set_power()
        ACPI / PM: Remove redundant power manageable check from acpi_bus_set_power()
        ACPI / PM: Use ACPI_STATE_D3_COLD instead of ACPI_STATE_D3 everywhere
        ACPI / PM: Make messages in acpi_device_set_power() print device names
        ACPI / PM: Only set power states of devices that are power manageable
      0ad4c9a9
    • R
      Merge branch 'acpi-pci-hotplug' · abe5430e
      Rafael J. Wysocki 提交于
      * acpi-pci-hotplug: (34 commits)
        ACPI / PM: Hold acpi_scan_lock over system PM transitions
        ACPI / hotplug / PCI: Fix NULL pointer dereference in cleanup_bridge()
        PCI / ACPI: Use dev_dbg() instead of dev_info() in acpi_pci_set_power_state()
        ACPI / hotplug / PCI: Get rid of check_sub_bridges()
        ACPI / hotplug / PCI: Clean up bridge_mutex usage
        ACPI / hotplug / PCI: Redefine enable_device() and disable_device()
        ACPI / hotplug / PCI: Sanitize acpiphp_get_(latch)|(adapter)_status()
        ACPI / hotplug / PCI: Get rid of unused constants in acpiphp.h
        ACPI / hotplug / PCI: Check for new devices on enabled slots
        ACPI / hotplug / PCI: Allow slots without new devices to be rescanned
        ACPI / hotplug / PCI: Do not check SLOT_ENABLED in enable_device()
        ACPI / hotplug / PCI: Do not exectute _PS0 and _PS3 directly
        ACPI / hotplug / PCI: Do not queue up event handling work items in vain
        ACPI / hotplug / PCI: Consolidate slot disabling and ejecting
        ACPI / hotplug / PCI: Drop redundant checks from check_hotplug_bridge()
        ACPI / hotplug / PCI: Rework namespace scanning and trimming routines
        ACPI / hotplug / PCI: Store parent in functions and bus in slots
        ACPI / hotplug / PCI: Drop handle field from struct acpiphp_bridge
        ACPI / hotplug / PCI: Drop handle field from struct acpiphp_func
        ACPI / hotplug / PCI: Embed function struct into struct acpiphp_context
        ...
      abe5430e
    • R
      Merge branch 'acpi-cleanup' · c92f56cb
      Rafael J. Wysocki 提交于
      * acpi-cleanup: (21 commits)
        ACPI / dock: fix error return code in dock_add()
        ACPI / dock: Drop unnecessary local variable from dock_add()
        ACPI / dock / PCI: Drop ACPI dock notifier chain
        ACPI / dock: Do not check CONFIG_ACPI_DOCK_MODULE
        ACPI / dock: Do not leak memory on falilures to add a dock station
        ACPI: Drop ACPI bus notifier call chain
        ACPI / dock: Rework the handling of notifications
        ACPI / dock: Simplify dock_init_hotplug() and dock_release_hotplug()
        ACPI / dock: Walk list in reverse order during removal of devices
        ACPI / dock: Rework and simplify find_dock_devices()
        ACPI / dock: Drop the hp_lock mutex from struct dock_station
        ACPI: simplify acpiphp driver with new helper functions
        ACPI: simplify dock driver with new helper functions
        ACPI: Export acpi_(bay)|(dock)_match() from scan.c
        ACPI: introduce two helper functions for _EJ0 and _LCK
        ACPI: introduce helper function acpi_execute_simple_method()
        ACPI: introduce helper function acpi_has_method()
        ACPI / dock: simplify dock_create_acpi_device()
        ACPI / dock: mark initialization functions with __init
        ACPI / dock: drop redundant spin lock in dock station object
        ...
      c92f56cb
  5. 26 8月, 2013 7 次提交
  6. 25 8月, 2013 2 次提交
    • L
      Merge tag 'acpi-3.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 8495e9c4
      Linus Torvalds 提交于
      Pull ACPI fix from Rafael Wysocki:
       "I really hoped that it wouldn't be necessary to change anything in
        ACPI at this point, but it turns out that we need to revert one more
        ACPI video commit causing trouble.
      
        This reverts a change in the ACPI video driver that caused the ACPI
        backlight initialization to be carried out even if acpi_backlight=vendor
        is passed in the kernel command line which turns out to break things
        at least on one system"
      
      * tag 'acpi-3.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Revert "ACPI / video: Always call acpi_video_init_brightness() on init"
      8495e9c4
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 5befb98b
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "This is a set of small bug fixes for lpfc and zfcp and a fix for a
        fairly nasty bug in sg where a process which cancels I/O completes in
        a kernel thread which would then try to write back to the now gone
        userspace and end up writing to a random kernel address instead"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] zfcp: remove access control tables interface (keep sysfs files)
        [SCSI] zfcp: fix schedule-inside-lock in scsi_device list loops
        [SCSI] zfcp: fix lock imbalance by reworking request queue locking
        [SCSI] sg: Fix user memory corruption when SG_IO is interrupted by a signal
        [SCSI] lpfc: Don't force CONFIG_GENERIC_CSUM on
      5befb98b