02 May, 2013

2 commits

  • Pull VFS updates from Al Viro,

    Misc cleanups all over the place, mainly wrt /proc interfaces (switch
    create_proc_entry to proc_create(), get rid of the deprecated
    create_proc_read_entry() in favor of using proc_create_data() and
    seq_file etc).

    7kloc removed.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (204 commits)
    don't bother with deferred freeing of fdtables
    proc: Move non-public stuff from linux/proc_fs.h to fs/proc/internal.h
    proc: Make the PROC_I() and PDE() macros internal to procfs
    proc: Supply a function to remove a proc entry by PDE
    take cgroup_open() and cpuset_open() to fs/proc/base.c
    ppc: Clean up scanlog
    ppc: Clean up rtas_flash driver somewhat
    hostap: proc: Use remove_proc_subtree()
    drm: proc: Use remove_proc_subtree()
    drm: proc: Use minor->index to label things, not PDE->name
    drm: Constify drm_proc_list[]
    zoran: Don't print proc_dir_entry data in debug
    reiserfs: Don't access the proc_dir_entry in r_open(), r_start() r_show()
    proc: Supply an accessor for getting the data from a PDE's parent
    airo: Use remove_proc_subtree()
    rtl8192u: Don't need to save device proc dir PDE
    rtl8187se: Use a dir under /proc/net/r8180/
    proc: Add proc_mkdir_data()
    proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}
    proc: Move PDE_NET() to fs/proc/proc_net.c
    ...

    Linus Torvalds
     
  • Supply a function (proc_remove()) to remove a proc entry (and any subtree
    rooted there) by proc_dir_entry pointer rather than by name and (optionally)
    root dir entry pointer. This allows us to eliminate all remaining pde->name
    accesses outside of procfs.

    Signed-off-by: David Howells
    Acked-by: Grant Likely
    cc: linux-acpi@vger.kernel.org
    cc: openipmi-developer@lists.sourceforge.net
    cc: devicetree-discuss@lists.ozlabs.org
    cc: linux-pci@vger.kernel.org
    cc: netdev@vger.kernel.org
    cc: netfilter-devel@vger.kernel.org
    cc: alsa-devel@alsa-project.org
    Signed-off-by: Al Viro

    David Howells
     

01 May, 2013

1 commit

  • Pull power management and ACPI updates from Rafael J Wysocki:

    - ARM big.LITTLE cpufreq driver from Viresh Kumar.

    - exynos5440 cpufreq driver from Amit Daniel Kachhap.

    - cpufreq core cleanup and code consolidation from Viresh Kumar and
    Stratos Karafotis.

    - cpufreq scalability improvement from Nathan Zimmer.

    - AMD "frequency sensitivity feedback" powersave bias for the ondemand
    cpufreq governor from Jacob Shin.

    - cpuidle code consolidation and cleanups from Daniel Lezcano.

    - ARM OMAP cpuidle fixes from Santosh Shilimkar and Daniel Lezcano.

    - ACPICA fixes and other improvements from Bob Moore, Jung-uk Kim, Lv
    Zheng, Yinghai Lu, Tang Chen, Colin Ian King, and Linn Crosetto.

    - ACPI core updates related to hotplug from Toshi Kani, Paul Bolle,
    Yasuaki Ishimatsu, and Rafael J Wysocki.

    - Intel Lynxpoint LPSS (Low-Power Subsystem) support improvements from
    Rafael J Wysocki and Andy Shevchenko.

    * tag 'pm+acpi-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (192 commits)
    cpufreq: Revert incorrect commit 5800043
    cpufreq: MAINTAINERS: Add co-maintainer
    cpuidle: add maintainer entry
    ACPI / thermal: do not always return THERMAL_TREND_RAISING for active trip points
    ARM: s3c64xx: cpuidle: use init/exit common routine
    cpufreq: pxa2xx: initialize variables
    ACPI: video: correct acpi_video_bus_add error processing
    SH: cpuidle: use init/exit common routine
    ARM: S5pv210: compiling issue, ARM_S5PV210_CPUFREQ needs CONFIG_CPU_FREQ_TABLE=y
    ACPI: Fix wrong parameter passed to memblock_reserve
    cpuidle: fix comment format
    pnp: use %*phC to dump small buffers
    isapnp: remove debug leftovers
    ARM: imx: cpuidle: use init/exit common routine
    ARM: davinci: cpuidle: use init/exit common routine
    ARM: kirkwood: cpuidle: use init/exit common routine
    ARM: calxeda: cpuidle: use init/exit common routine
    ARM: tegra: cpuidle: use init/exit common routine for tegra3
    ARM: tegra: cpuidle: use init/exit common routine for tegra2
    ARM: OMAP4: cpuidle: use init/exit common routine
    ...

    Linus Torvalds
     

30 Apr, 2013

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "PCI changes for the v3.10 merge window:

    PCI device hotplug
    - Remove ACPI PCI subdrivers (Jiang Liu, Myron Stowe)
    - Make acpiphp builtin only, not modular (Jiang Liu)
    - Add acpiphp mutual exclusion (Jiang Liu)

    Power management
    - Skip "PME enabled/disabled" messages when not supported (Rafael
    Wysocki)
    - Fix fallback to PCI_D0 (Rafael Wysocki)

    Miscellaneous
    - Factor quirk_io_region (Yinghai Lu)
    - Cache MSI capability offsets & cleanup (Gavin Shan, Bjorn Helgaas)
    - Clean up EISA resource initialization and logging (Bjorn Helgaas)
    - Fix prototype warnings (Andy Shevchenko, Bjorn Helgaas)
    - MIPS: Initialize of_node before scanning bus (Gabor Juhos)
    - Fix pcibios_get_phb_of_node() declaration "weak" annotation (Gabor
    Juhos)
    - Add MSI INTX_DISABLE quirks for AR8161/AR8162/etc (Xiong Huang)
    - Fix aer_inject return values (Prarit Bhargava)
    - Remove PME/ACPI dependency (Andrew Murray)
    - Use shared PCI_BUS_NUM() and PCI_DEVID() (Shuah Khan)"

    * tag 'pci-v3.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (63 commits)
    vfio-pci: Use cached MSI/MSI-X capabilities
    vfio-pci: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK
    PCI: Remove "extern" from function declarations
    PCI: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK
    PCI: Drop msi_mask_reg() and remove drivers/pci/msi.h
    PCI: Use msix_table_size() directly, drop multi_msix_capable()
    PCI: Drop msix_table_offset_reg() and msix_pba_offset_reg() macros
    PCI: Drop is_64bit_address() and is_mask_bit_support() macros
    PCI: Drop msi_data_reg() macro
    PCI: Drop msi_lower_address_reg() and msi_upper_address_reg() macros
    PCI: Drop msi_control_reg() macro and use PCI_MSI_FLAGS directly
    PCI: Use cached MSI/MSI-X offsets from dev, not from msi_desc
    PCI: Clean up MSI/MSI-X capability #defines
    PCI: Use cached MSI-X cap while enabling MSI-X
    PCI: Use cached MSI cap while enabling MSI interrupts
    PCI: Remove MSI/MSI-X cap check in pci_msi_check_device()
    PCI: Cache MSI/MSI-X capability offsets in struct pci_dev
    PCI: Use u8, not int, for PM capability offset
    [SCSI] megaraid_sas: Use correct #define for MSI-X capability
    PCI: Remove "extern" from function declarations
    ...

    Linus Torvalds
     

28 Apr, 2013

6 commits

  • * pm-cpuidle: (51 commits)
    cpuidle: add maintainer entry
    ARM: s3c64xx: cpuidle: use init/exit common routine
    SH: cpuidle: use init/exit common routine
    cpuidle: fix comment format
    ARM: imx: cpuidle: use init/exit common routine
    ARM: davinci: cpuidle: use init/exit common routine
    ARM: kirkwood: cpuidle: use init/exit common routine
    ARM: calxeda: cpuidle: use init/exit common routine
    ARM: tegra: cpuidle: use init/exit common routine for tegra3
    ARM: tegra: cpuidle: use init/exit common routine for tegra2
    ARM: OMAP4: cpuidle: use init/exit common routine
    ARM: shmobile: cpuidle: use init/exit common routine
    ARM: tegra: cpuidle: use init/exit common routine
    ARM: OMAP3: cpuidle: use init/exit common routine
    ARM: at91: cpuidle: use init/exit common routine
    ARM: ux500: cpuidle: use init/exit common routine
    cpuidle: make a single register function for all
    ARM: ux500: cpuidle: replace for_each_online_cpu by for_each_possible_cpu
    cpuidle: remove en_core_tk_irqen flag
    ARM: OMAP3: remove cpuidle_wrap_enter
    ...

    Rafael J. Wysocki
     
  • * acpi-assorted: (21 commits)
    ACPI / thermal: do not always return THERMAL_TREND_RAISING for active trip points
    ACPI: video: correct acpi_video_bus_add error processing
    ACPI: Fix wrong parameter passed to memblock_reserve
    acpi: video: enhance the quirk detect logic of _BQC
    ACPI: update comments for acpi_event_status
    ACPI: remove "config ACPI_DEBUG_FUNC_TRACE"
    PCI / ACPI: Don't query OSC support with all possible controls
    ACPI / processor_thermal: avoid null pointer deference error
    ACPI / fan: avoid null pointer deference error
    ACPI / video: Fix applying indexed initial brightness value.
    ACPI / video: Make logic a little easier to understand.
    ACPI / video: Fix brightness control initialization for some laptops.
    ACPI: Use resource_size() in osl.c
    ACPI / acpi_pad: Used PTR_RET
    ACPI: suppress compiler warning in container.c
    ACPI: suppress compiler warning in battery.c
    ACPI: suppress compiler warnings in processor_throttling.c
    ACPI: suppress compiler warnings in button.c
    ACPI: replace kmalloc+memcpy with kmemdup
    ACPI: Remove acpi_pci_bind_root() definition
    ...

    Rafael J. Wysocki
     
  • * acpi-pm:
    ACPI / PM: Expose lists of device wakeup power resources to user space
    ACPI / PM: Fix potential problem in acpi_device_get_power()

    Rafael J. Wysocki
     
  • * acpica: (33 commits)
    ACPICA: Update version to 20130328
    ACPICA: Add a lock to the internal object reference count mechanism
    ACPICA: Fix a format string for 64-bit generation
    ACPICA: Remove FORCE_DELETE option for global reference count mechanism
    ACPICA: Improve error message for Index() operator
    ACPICA: FADT: Remove extraneous warning for very large GPE registers
    ACPICA: Fix a typo in a function header, no functional change
    ACPICA: Fix a typo in an error message
    ACPICA: Fix for some comments/headers
    ACPICA: _OSI Support: handle any errors from acpi_os_acquire_mutex()
    ACPICA: Predefine names: Add allowed argument types to master info table
    ACPI: Set length even for TYPE_END_TAG acpi resource
    ACPICA: Update version to 20130214
    ACPICA: Object repair: Allow 0-length packages for variable-length packages
    ACPICA: Disassembler: Add warnings for unresolved control methods
    ACPICA: Return object repair: Add resource template repairs
    ACPICA: Return object repair: Add string-to-unicode conversion
    ACPICA: Split object conversion functions to a new file
    ACPICA: Add mechanism for early object repairs on a per-name basis
    ACPICA: Remove trailing comma in enum declarations
    ...

    Rafael J. Wysocki
     
  • * acpi-lpss:
    ACPI / LPSS: make code less confusing for reader
    ACPI / LPSS: Add support for exposing LTR registers to user space
    ACPI / scan: Add special handler for Intel Lynxpoint LPSS devices

    Rafael J. Wysocki
     
  • * acpi-hotplug:
    ACPI / memhotplug: Remove info->failed bit
    ACPI / memhotplug: set info->enabled for memory present at boot time
    ACPI: Verify device status after eject
    acpi: remove reference to ACPI_HOTPLUG_IO
    ACPI: Update _OST handling for notify
    ACPI: Update PNPID match handling for notify
    ACPI: Update PNPID set/free interfaces
    ACPI: Remove acpi_device dependency in acpi_device_set_id()
    ACPI / hotplug: Make acpi_hotplug_profile_ktype static
    ACPI / scan: Make memory hotplug driver use struct acpi_scan_handler
    ACPI / container: Use hotplug profile user space interface
    ACPI / hotplug: Introduce user space interface for hotplug profiles
    ACPI / scan: Introduce acpi_scan_handler_matching()
    ACPI / container: Use common hotplug code
    ACPI / scan: Introduce common code for ACPI-based device hotplug
    ACPI / scan: Introduce acpi_scan_match_handler()

    Rafael J. Wysocki
     

26 Apr, 2013

1 commit

  • Commit 4ae46be "Thermal: Introduce thermal_zone_trip_update()"
    introduced a regression causing the fan to be always on even when
    the system is idle.

    My original idea in that commit is that:
    - when the current temperature is above the trip point,
    keep the fan on, even if the temperature is dropping.
    - when the current temperature is below the trip point,
    turn on the fan when the temperature is raising,
    turn off the fan when the temperature is dropping.

    But this is what the code actually does:
    - when the current temperature is above the trip point,
    the fan keeps on.
    - when the current temperature is below the trip point,
    the fan is always on because thermal_get_trend()
    in driver/acpi/thermal.c returns THERMAL_TREND_RAISING.
    Thus the fan keeps running even if the system is idle.

    Fix this in drivers/acpi/thermal.c.

    [rjw: Changelog]
    References: https://bugzilla.kernel.org/show_bug.cgi?id=56591
    References: https://bugzilla.kernel.org/show_bug.cgi?id=56601
    References: https://bugzilla.kernel.org/show_bug.cgi?id=50041#c45
    Signed-off-by: Zhang Rui
    Tested-by: Matthias
    Tested-by: Ville Syrjälä
    Cc: 3.7+
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     

25 Apr, 2013

1 commit

  • acpi_video_bus_get_devices() may fail due to some video output device
    doesn't have the _ADR method, and in this case, the error processing
    is to simply free the video structure in acpi_video_bus_add(), while
    leaving those already registered video output devices in the wild,
    which means for some video output device, we have already registered
    a backlight interface and installed a notification handler for it.
    So it can happen when user is using this system, on hotkey pressing,
    the notification handler will send a keycode through a non-existing
    input device, causing kernel freeze.

    To solve this problem, free all those already registered video output
    devices once something goes wrong in acpi_video_bus_get_devices(), so
    that no wild backlight interfaces and notification handlers exist.

    References: https://bugzilla.kernel.org/show_bug.cgi?id=51731
    Reported-and-tested-by:
    Signed-off-by: Aaron Lu
    Signed-off-by: Rafael J. Wysocki

    Aaron Lu
     

24 Apr, 2013

1 commit

  • Commit 53aac44 (ACPI: Store valid ACPI tables passed via early initrd
    in reserved memblock areas) introduced acpi_initrd_override() that
    passes a wrong value as the second argument to memblock_reserve().

    Namely, the second argument of memblock_reserve() is the size of the
    region, not the address of the top of it, so make
    acpi_initrd_override() pass the size in there as appropriate.

    [rjw: Changelog]
    Signed-off-by: Wang YanQing
    Acked-by: Yinghai Lu
    Cc: 3.8+
    Signed-off-by: Rafael J. Wysocki

    Wang YanQing
     

23 Apr, 2013

1 commit

  • The en_core_tk_irqen flag is set in all the cpuidle driver which
    means it is not necessary to specify this flag.

    Remove the flag and the code related to it.

    Signed-off-by: Daniel Lezcano
    Acked-by: Kevin Hilman # for mach-omap2/*
    Signed-off-by: Rafael J. Wysocki

    Daniel Lezcano
     

22 Apr, 2013

1 commit

  • Currently we decide if the _BQC is using index by first setting the
    level to maximum, and then check if _BQC returned maximum; if not, we
    say it is using index.

    This is not true for some buggy systems, where the _BQC method will
    always return a constant value(e.g. 0 or 100 for the two broken system)
    and thus break the current logic. So this patch tries to enhance the
    quirk detect logic for _BQC: we do this by picking a test_level, it can
    be the maximum level or the mininum one based on some condition. And we
    don't make the assumption that if _BQC returned a value that is not what
    we just set, it must be using an index. Instead, we will compare the
    value returned from _BQC and if it doesn't match, see if the returned
    value is an index. And if still no, clear the capability of _BQC.

    References: https://bugzilla.kernel.org/show_bug.cgi?id=42861
    References: https://bugzilla.kernel.org/show_bug.cgi?id=56011
    Reported-and-tested-by: Artem Savkov
    Reported-by: Luis Medinas
    Reported-by: Cheppes
    Signed-off-by: Aaron Lu
    Acked-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Aaron Lu
     

17 Apr, 2013

1 commit

  • Both sub-drivers of the "PCI Root Bridge ("pci_bridge")" driver, "acpiphp"
    and "pci_slot", have been converted to hook directly into the PCI core.

    With the conversions there are no remaining usages of the 'struct
    acpi_pci_driver' list based infrastructure. This patch removes it.

    Signed-off-by: Myron Stowe
    Signed-off-by: Jiang Liu
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Yinghai Lu
    Cc: "Rafael J. Wysocki"
    Cc: Toshi Kani

    Myron Stowe
     

13 Apr, 2013

1 commit

  • Currently the pci_slot driver doesn't update PCI slot devices when PCI
    device hotplug event happens, which may cause memory leak and returning
    stale information to user.

    Now the pci_slot driver has been changed as built-in driver, so invoke
    PCI slot enumeration and destroy routines directly from the PCI core.
    And remove ACPI PCI sub-driver related code because it isn't needed
    any more.

    [bhelgas: removed "extern" from function declarations]
    Signed-off-by: Jiang Liu
    Signed-off-by: Yijing Wang
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Yinghai Lu
    Acked-by: Rafael J. Wysocki
    Cc: Toshi Kani

    Jiang Liu
     

12 Apr, 2013

11 commits


10 Apr, 2013

1 commit

  • The only part of proc_dir_entry the code outside of fs/proc
    really cares about is PDE(inode)->data. Provide a helper
    for that; static inline for now, eventually will be moved
    to fs/proc, along with the knowledge of struct proc_dir_entry
    layout.

    Signed-off-by: Al Viro

    Al Viro
     

08 Apr, 2013

6 commits

  • Kconfig symbol ACPI_DEBUG_FUNC_TRACE was only used (through its
    corresponding macro) in drivers/acpi/acpica/acmacros.h. That macro
    was removed from that header in v3.8, with commit
    86ff0e508f88eda6e479a897476026055831d2d8 ("ACPICA: Fix unmerged
    acmacros.h divergences."), so ACPI_DEBUG_FUNC_TRACE can now be
    removed too, as it is unused.

    [rjw: Changelog]
    Signed-off-by: Paul Bolle
    Signed-off-by: Rafael J. Wysocki

    Paul Bolle
     
  • * acpi-assorted:
    PCI / ACPI: Don't query OSC support with all possible controls
    ACPI / processor_thermal: avoid null pointer deference error
    ACPI / fan: avoid null pointer deference error
    ACPI / video: Fix applying indexed initial brightness value.
    ACPI / video: Make logic a little easier to understand.
    ACPI / video: Fix brightness control initialization for some laptops.
    ACPI: Use resource_size() in osl.c
    ACPI / acpi_pad: Used PTR_RET
    ACPI: suppress compiler warning in container.c
    ACPI: suppress compiler warning in battery.c
    ACPI: suppress compiler warnings in processor_throttling.c
    ACPI: suppress compiler warnings in button.c
    ACPI: replace kmalloc+memcpy with kmemdup
    ACPI: Remove acpi_pci_bind_root() definition
    ACPI video: ignore BIOS backlight value for HP dm4

    Rafael J. Wysocki
     
  • * acpi-pm:
    ACPI / PM: Fix potential problem in acpi_device_get_power()

    Rafael J. Wysocki
     
  • * acpica: (22 commits)
    ACPI: Set length even for TYPE_END_TAG acpi resource
    ACPICA: Update version to 20130214
    ACPICA: Object repair: Allow 0-length packages for variable-length packages
    ACPICA: Disassembler: Add warnings for unresolved control methods
    ACPICA: Return object repair: Add resource template repairs
    ACPICA: Return object repair: Add string-to-unicode conversion
    ACPICA: Split object conversion functions to a new file
    ACPICA: Add mechanism for early object repairs on a per-name basis
    ACPICA: Remove trailing comma in enum declarations
    ACPICA: Add exception descriptions to exception info table
    ACPICA: Add macros to exception code definitions
    ACPICA: Regression fix: reinstate safe exit macros
    ACPICA: Update for ACPI 5 hardware-reduced feature
    ACPICA: Add parens within macros around parameter names
    ACPICA: Add macros to access pointer to next object in the descriptor list
    ACPICA: Update error/debug messages for fixed events
    ACPICA: Fix a long-standing bug in local cache
    ACPICA: iASL/Disassembler: Add support for MTMR table
    ACPICA: iASL/Disassembler: Add support for VRTC table
    ACPICA: Update RASF table definition
    ...

    Rafael J. Wysocki
     
  • * acpi-lpss:
    ACPI / LPSS: make code less confusing for reader
    ACPI / LPSS: Add support for exposing LTR registers to user space
    ACPI / scan: Add special handler for Intel Lynxpoint LPSS devices

    Rafael J. Wysocki
     
  • * acpi-hotplug:
    ACPI / memhotplug: Remove info->failed bit
    ACPI / memhotplug: set info->enabled for memory present at boot time
    ACPI: Verify device status after eject
    acpi: remove reference to ACPI_HOTPLUG_IO
    ACPI: Update _OST handling for notify
    ACPI: Update PNPID match handling for notify
    ACPI: Update PNPID set/free interfaces
    ACPI: Remove acpi_device dependency in acpi_device_set_id()
    ACPI / hotplug: Make acpi_hotplug_profile_ktype static
    ACPI / scan: Make memory hotplug driver use struct acpi_scan_handler
    ACPI / container: Use hotplug profile user space interface
    ACPI / hotplug: Introduce user space interface for hotplug profiles
    ACPI / scan: Introduce acpi_scan_handler_matching()
    ACPI / container: Use common hotplug code
    ACPI / scan: Introduce common code for ACPI-based device hotplug
    ACPI / scan: Introduce acpi_scan_match_handler()

    Rafael J. Wysocki
     

06 Apr, 2013

1 commit

  • Pull PCI fixes from Bjorn Helgaas:
    "PCI updates for v3.9:

    ASPM
    Revert "PCI/ACPI: Request _OSC control before scanning PCI root bus"
    kexec
    PCI: Don't try to disable Bus Master on disconnected PCI devices
    Platform ROM images
    PCI: Add PCI ROM helper for platform-provided ROM images
    nouveau: Attempt to use platform-provided ROM image
    radeon: Attempt to use platform-provided ROM image
    Hotplug
    PCI/ACPI: Always resume devices on ACPI wakeup notifications
    PCI/PM: Disable runtime PM of PCIe ports
    EISA
    EISA/PCI: Fix bus res reference
    EISA/PCI: Init EISA early, before PNP"

    * tag 'pci-v3.9-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI/PM: Disable runtime PM of PCIe ports
    PCI/ACPI: Always resume devices on ACPI wakeup notifications
    PCI: Don't try to disable Bus Master on disconnected PCI devices
    Revert "PCI/ACPI: Request _OSC control before scanning PCI root bus"
    radeon: Attempt to use platform-provided ROM image
    nouveau: Attempt to use platform-provided ROM image
    EISA/PCI: Init EISA early, before PNP
    EISA/PCI: Fix bus res reference
    PCI: Add PCI ROM helper for platform-provided ROM images

    Linus Torvalds
     

03 Apr, 2013

2 commits

  • Fengguang Wu's 0-Day kernel build testing backend found the
    following build error for an allmodconfig build on ia64:

    drivers/built-in.o: In function `show_yoffset':
    >> bgrt.c:(.text+0xe5a71): undefined reference to `bgrt_tab'
    >> bgrt.c:(.text+0xe5a91): undefined reference to `bgrt_tab'
    drivers/built-in.o: In function `show_xoffset':
    >> bgrt.c:(.text+0xe5b51): undefined reference to `bgrt_tab'
    >> bgrt.c:(.text+0xe5b71): undefined reference to `bgrt_tab'
    drivers/built-in.o: In function `show_type':
    >> bgrt.c:(.text+0xe5c31): undefined reference to `bgrt_tab'
    drivers/built-in.o:bgrt.c:(.text+0xe5c51): more undefined references to `bgrt_tab' follow
    drivers/built-in.o: In function `bgrt_init':
    bgrt.c:(.init.text+0x8931): undefined reference to `bgrt_image'
    bgrt.c:(.init.text+0x8932): undefined reference to `bgrt_image_size'
    bgrt.c:(.init.text+0x8950): undefined reference to `bgrt_image'
    bgrt.c:(.init.text+0x8960): undefined reference to `bgrt_image_size'

    The problem is that all these undefined names are provided by
    arch/x86/platform/efi/efi-bgrt.c - which is obviously not available
    to the ia64 build.

    It doesn't seem useful to provide the BGRT support for Itanium
    (many systems are headless and have no graphics at all). So
    just don't let users configure this driver on non-X86 machines.

    Reported-by: Fengguang Wu
    Acked-by: H. Peter Anvin
    Signed-off-by: Tony Luck
    Signed-off-by: Rafael J. Wysocki

    Tony Luck
     
  • This reverts commit 8c33f51df406e1a1f7fa4e9b244845b7ebd61fa6.

    Conflicts:
    drivers/acpi/pci_root.c

    This commit broke some pre-1.1 PCIe devices by leaving them with
    ASPM enabled. Previously, we had disabled ASPM on these devices
    because many of them don't implement it correctly (per 149e1637).

    Requesting _OSC control early means that aspm_disabled may be set
    before we scan the PCI bus and configure link ASPM state. But the
    ASPM configuration currently skips the check for pre-PCIe 1.1 devices
    when aspm_disabled is set, like this:

    acpi_pci_root_add
    acpi_pci_osc_support
    if (flags != base_flags)
    pcie_no_aspm
    aspm_disabled = 1
    pci_acpi_scan_root
    ...
    pcie_aspm_init_link_state
    pcie_aspm_sanity_check
    if (!aspm_disabled)
    /* check for pre-PCIe 1.1 device */

    Therefore, setting aspm_disabled early means that we leave ASPM enabled
    on these pre-PCIe 1.1 devices, which is a regression for some devices.

    The best fix would be to clean up the ASPM init so we can evaluate
    _OSC before scanning the bug (that way boot-time and hot-add discovery
    will work the same), but that requires significant rework.

    For now, we'll just revert the _OSC change as the lowest-risk fix.

    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=55211
    Signed-off-by: Bjorn Helgaas
    Acked-by: Rafael J. Wysocki
    Acked-by: Yinghai Lu
    CC: stable@vger.kernel.org # v3.8+

    Bjorn Helgaas
     

02 Apr, 2013

2 commits

  • Commit ac3ebafa81af76d6 "ACPI / idle: remove usage of the statedata"
    changed the percpu processor cstate to a unified cstate in ACPI idle.
    That caused all our NHM boxes to boot hang or panic.

    2178751 Task dump for CPU 1:
    2178752 swapper/1 R running task 6736 0 1 0x00000000
    2178753 ffff8801e8029dc8 ffffffff8101cf96 ffff8801e8029e28 ffffffff813d294b
    2178754 0000000000000f99 0000000000000003 00000000003cf654 0000000025c17d03
    2178755 ffff8801e8029e38 ffff8801e74fc000 00000002590dc5c4 ffffffff8163cdb0
    2178756 Call Trace:
    2178757 [] ? acpi_processor_ffh_cstate_enter+0x2d/0x2f
    2178758 [] acpi_idle_enter_bm+0x1b1/0x236
    2178759 [] ? disable_cpuidle+0x10/0x10
    2178760 [] cpuidle_enter+0x12/0x14
    2178761 [] cpuidle_wrap_enter+0x2f/0x6d
    2178762 [] cpuidle_enter_tk+0x10/0x12
    2178763 [] cpuidle_enter_state+0x12/0x3a
    2178764 [] cpuidle_idle_call+0xe8/0x161
    2178765 [] cpu_idle+0x5e/0xa4
    2178766 [] start_secondary+0x1a9/0x1ad
    2178767 Task dump for CPU 2:

    In fact, the ACPI idle is based on the assumption of difference percpu
    cstate structures that are necessary for the implementation to work
    cprrectly. A unique acpi_processor_cx is not sifficient by far.

    This patch is just a quick fix re-introducing the percpu cstates.

    If someone really wants to unify the ACPI cstates, please make sure
    that the whole software infrastructure is changed and take hardware
    as well as many different kinds of BIOS settings into account.

    [rjw: Changelog]
    Reported-by: LKP project
    Reported-by: Xie ChanglongX
    Tested-by: Yinghai Lu
    Signed-off-by: Alex Shi
    Signed-off-by: Rafael J. Wysocki

    Alex Shi
     
  • The ACPI handle of struct i2c_adapter's dev member should not be
    set, because this causes that struct i2c_adapter to be associated
    with the ACPI device node corresponding to its parent as the
    second "physical_device", which is incorrect (this happens during
    the registration of struct i2c_adapter). Consequently,
    acpi_i2c_register_devices() should use the ACPI handle of the
    parent of the struct i2c_adapter it is called for rather than the
    struct i2c_adapter's ACPI handle (which should be NULL).

    Make that happen and modify the i2c-designware-platdrv driver,
    which currently is the only driver for ACPI-enumerated I2C
    controller chips, not to set the ACPI handle for the
    struct i2c_adapter it creates.

    Signed-off-by: Rafael J. Wysocki
    Reviewed-by: Aaron Lu
    Acked-by: Mika Westerberg
    Acked-by: Wolfram Sang

    Rafael J. Wysocki