1. 30 Aug, 2013 2 commits
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-hotplug' · 7bc583d1
      Rafael J. Wysocki authored
      * acpi-hotplug:
        ACPI / hotplug: Remove containers synchronously
        driver core / ACPI: Avoid device hot remove locking issues
      7bc583d1
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-assorted' · da48afb2
      Rafael J. Wysocki authored
      * 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
  2. 29 Aug, 2013 2 commits
    • Rafael J. Wysocki's avatar
      ACPI / hotplug: Remove containers synchronously · f943db40
      Rafael J. Wysocki authored
      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: default avatarGu Zheng <guz.fnst@cn.fujitsu.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
      f943db40
    • Rafael J. Wysocki's avatar
      driver core / ACPI: Avoid device hot remove locking issues · 5e33bc41
      Rafael J. Wysocki authored
      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: default avatarYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Reported-and-tested-by: default avatarGu Zheng <guz.fnst@cn.fujitsu.com>
      Suggested-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
      5e33bc41
  3. 28 Aug, 2013 2 commits
  4. 26 Aug, 2013 15 commits
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · 7a330a54
      Rafael J. Wysocki authored
      * 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
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpuidle' · c7878810
      Rafael J. Wysocki authored
      * 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
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-opp' · 95b6fcb0
      Rafael J. Wysocki authored
      * pm-opp:
        PM / OPP: Export opp_add()
      95b6fcb0
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-sleep' · e894245c
      Rafael J. Wysocki authored
      * pm-sleep:
        PM / Sleep: new trace event to print device suspend and resume times
        PM / Sleep: increase ftrace coverage in suspend/resume
      e894245c
    • Rafael J. Wysocki's avatar
      Merge branch 'pnp' · ce63e186
      Rafael J. Wysocki authored
      * pnp:
        PNP: convert PNP driver bus legacy pm_ops to dev_pm_ops
      ce63e186
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-video' · 8a3a53ea
      Rafael J. Wysocki authored
      * 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
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-processor' · 551f5c74
      Rafael J. Wysocki authored
      * acpi-processor:
        ACPI / processor: Acquire writer lock to update CPU maps
        ACPI / processor: Remove acpi_processor_get_limit_info()
      551f5c74
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-bind' · 8462d9df
      Rafael J. Wysocki authored
      * 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
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-assorted' · 0c581415
      Rafael J. Wysocki authored
      * 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
    • Rafael J. Wysocki's avatar
      Merge branch 'acpica' · afdca01c
      Rafael J. Wysocki authored
      * 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
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-sleep' · 4b319f29
      Rafael J. Wysocki authored
      * 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
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-pm' · 0ad4c9a9
      Rafael J. Wysocki authored
      * 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
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-pci-hotplug' · abe5430e
      Rafael J. Wysocki authored
      * 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
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-cleanup' · c92f56cb
      Rafael J. Wysocki authored
      * 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
    • Linus Torvalds's avatar
      Linux 3.11-rc7 · d8dfad38
      Linus Torvalds authored
      d8dfad38
  5. 25 Aug, 2013 5 commits
  6. 24 Aug, 2013 8 commits
  7. 23 Aug, 2013 6 commits