1. 21 5月, 2011 1 次提交
  2. 17 5月, 2011 3 次提交
  3. 04 5月, 2011 1 次提交
    • D
      [CPUFREQ] use dynamic debug instead of custom infrastructure · 2d06d8c4
      Dominik Brodowski 提交于
      With dynamic debug having gained the capability to report debug messages
      also during the boot process, it offers a far superior interface for
      debug messages than the custom cpufreq infrastructure. As a first step,
      remove the old cpufreq_debug_printk() function and replace it with a call
      to the generic pr_debug() function.
      
      How can dynamic debug be used on cpufreq? You need a kernel which has
      CONFIG_DYNAMIC_DEBUG enabled.
      
      To enabled debugging during runtime, mount debugfs and
      
      $ echo -n 'module cpufreq +p' > /sys/kernel/debug/dynamic_debug/control
      
      for debugging the complete "cpufreq" module. To achieve the same goal during
      boot, append
      
      	ddebug_query="module cpufreq +p"
      
      as a boot parameter to the kernel of your choice.
      
      For more detailled instructions, please see
      Documentation/dynamic-debug-howto.txt
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NDave Jones <davej@redhat.com>
      2d06d8c4
  4. 26 4月, 2011 1 次提交
  5. 31 3月, 2011 1 次提交
  6. 29 3月, 2011 2 次提交
  7. 23 3月, 2011 9 次提交
  8. 22 3月, 2011 4 次提交
    • H
      ACPI, APEI, Add PCIe AER error information printing support · c413d768
      Huang Ying 提交于
      The AER error information printing support is implemented in
      drivers/pci/pcie/aer/aer_print.c.  So some string constants, functions
      and macros definitions can be re-used without being exported.
      
      The original PCIe AER error information printing function is not
      re-used directly because the overall format is quite different.  And
      changing the original printing format may make some original users'
      scripts broken.
      Signed-off-by: NHuang Ying <ying.huang@intel.com>
      CC: Jesse Barnes <jbarnes@virtuousgeek.org>
      CC: Zhang Yanmin <yanmin.zhang@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      c413d768
    • H
      ACPI, APEI, Add ERST record ID cache · 885b976f
      Huang Ying 提交于
      APEI ERST firmware interface and implementation has no multiple users
      in mind.  For example, if there is four records in storage with ID: 1,
      2, 3 and 4, if two ERST readers enumerate the records via
      GET_NEXT_RECORD_ID as follow,
      
      reader 1		reader 2
      1
      			2
      3
      			4
      -1
      			-1
      
      where -1 signals there is no more record ID.
      
      Reader 1 has no chance to check record 2 and 4, while reader 2 has no
      chance to check record 1 and 3.  And any other GET_NEXT_RECORD_ID will
      return -1, that is, other readers will has no chance to check any
      record even they are not cleared by anyone.
      
      This makes raw GET_NEXT_RECORD_ID not suitable for used by multiple
      users.
      
      To solve the issue, an in-memory ERST record ID cache is designed and
      implemented.  When enumerating record ID, the ID returned by
      GET_NEXT_RECORD_ID is added into cache in addition to be returned to
      caller.  So other readers can check the cache to get all record ID
      available.
      Signed-off-by: NHuang Ying <ying.huang@intel.com>
      Reviewed-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      885b976f
    • N
      PCI: Disable ASPM when _OSC control is not granted for PCIe services · eca67315
      Naga Chumbalkar 提交于
      v3 -> v2: Added text to describe the problem
      v2 -> v1: Split this patch from v1
      v1	: Part of: http://marc.info/?l=linux-pci&m=130042212003242&w=2
      
      Disable ASPM when no _OSC control for PCIe services is granted
      by the BIOS. This is to protect systems with a buggy BIOS that
      did not set the ACPI FADT "ASPM Controls" bit even though the
      underlying HW can't do ASPM.
      
      To turn "on" ASPM the minimum the BIOS needs to do:
      1. Clear the ACPI FADT "ASPM Controls" bit.
      2. Support _OSC appropriately
      
      There is no _OSC Control bit for ASPM. However, we expect the BIOS to
      support _OSC for a Root Bridge that originates a PCIe hierarchy. If this
      is not the case - we are better off not enabling ASPM on that server.
      
      Commit 852972ac (ACPI: Disable ASPM if the
      Platform won't provide _OSC control for PCIe) describes the above scenario.
      To quote verbatim from there:
      [The PCI SIG documentation for the _OSC OS/firmware handshaking interface
      states:
      
      "If the _OSC control method is absent from the scope of a host bridge
      device, then the operating system must not enable or attempt to use any
      features defined in this section for the hierarchy originated by the host
      bridge."
      
      The obvious interpretation of this is that the OS should not attempt to use
      PCIe hotplug, PME or AER - however, the specification also notes that an
      _OSC method is *required* for PCIe hierarchies, and experimental validation
      with An Alternative OS indicates that it doesn't use any PCIe functionality
      if the _OSC method is missing. That arguably means we shouldn't be using
      MSI or extended config space, but right now our problems seem to be limited
      to vendors being surprised when ASPM gets enabled on machines when other
      OSs refuse to do so. So, for now, let's just disable ASPM if the _OSC
      method doesn't exist or refuses to hand over PCIe capability control.]
      Signed-off-by: NNaga Chumbalkar <nagananda.chumbalkar@hp.com>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      eca67315
    • R
      PCI/ACPI: Report ASPM support to BIOS if not disabled from command line · 8b8bae90
      Rafael J. Wysocki 提交于
      We need to distinguish the situation in which ASPM support is
      disabled from the command line or through .config from the situation
      in which it is disabled, because the hardware or BIOS can't handle
      it.  In the former case we should not report ASPM support to the BIOS
      through ACPI _OSC, but in the latter case we should do that.
      
      Introduce pcie_aspm_support_enabled() that can be used by
      acpi_pci_root_add() to determine whether or not it should report ASPM
      support to the BIOS through _OSC.
      
      Cc: stable@kernel.org
      References: https://bugzilla.kernel.org/show_bug.cgi?id=29722
      References: https://bugzilla.kernel.org/show_bug.cgi?id=20232Reported-and-tested-by: NOrtwin Glück <odi@odi.ch>
      Reviewed-by: NKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Tested-by: NKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      8b8bae90
  9. 19 3月, 2011 2 次提交
  10. 15 3月, 2011 3 次提交
  11. 03 3月, 2011 9 次提交
  12. 25 2月, 2011 4 次提交
    • R
      ACPI / ACPICA: Implicit notify for multiple devices · 981858bd
      Rafael J. Wysocki 提交于
      Commit bba63a29 (ACPICA: Implicit notify support) introduced a
      mechanism that causes a notify request of type
      ACPI_NOTIFY_DEVICE_WAKE to be queued automatically by
      acpi_ev_asynch_execute_gpe_method() for the device whose _PRW points
      to the GPE being handled if that GPE is not associated with an
      _Lxx/_Exx method.  However, it turns out that on some systems there
      are multiple devices with _PRW pointing to the same GPE without
      _Lxx/_Exx and the mechanism introduced by commit bba63a29 needs to be
      extended so that "implicit" notify requests of type
      ACPI_NOTIFY_DEVICE_WAKE can be queued automatically for all those
      devices at the same time.
      Reported-and-tested-by: NMatthew Garrett <mjg@redhat.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      981858bd
    • V
      ACPI / debugfs: Fix buffer overflows, double free · 2949ad50
      Vasiliy Kulikov 提交于
      File position is not controlled, it may lead to overwrites of arbitrary
      kernel memory.  Also the code may kfree() the same pointer multiple
      times.
      
      One more flaw is still present: if multiple processes open the file then
      all 3 static variables are shared, leading to various race conditions.
      They should be moved to file->private_data.
      Signed-off-by: NVasiliy Kulikov <segoon@openwall.com>
      Reviewed-by: NWANG Cong <xiyou.wangcong@gmail.com>
      Reviewed-by: NEugene Teo <eugeneteo@kernel.org>
      Cc: stable@kernel.org
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      2949ad50
    • R
      ACPI: Avoid calling request_irq() many times for the same interrupt · 23fe3630
      Rafael J. Wysocki 提交于
      In principle acpi_os_install_interrupt_handler() may be called
      multiple times for different interrupts, either from
      acpi_ev_get_gpe_xrupt_block(), or from acpi_ev_install_sci_handler().
      However, it always attempts to request the same interrupt,
      acpi_gbl_FADT.sci_interrupt and it doesn't check whether or not this
      interrupt has already been requested.
      
      Modify this function so that it refuses to request interrupts other
      than acpi_gbl_FADT.sci_interrupt and change
      acpi_os_remove_interrupt_handler() so that it refuses to free such
      interrupts.  Use the observation that the only supported ACPI
      interrupt must be equal to acpi_gbl_FADT.sci_interrupt and drop an
      unnecessary variable acpi_irq_irq.
      
      This change has been tested on Toshiba Portege R500 and HP nx6325
      without introducing any visible problems.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      23fe3630
    • R
      ACPI / PM: acpi_hibernation_enter() need not switch interrupts off · aad83b14
      Rafael J. Wysocki 提交于
      The function acpi_hibernation_enter() is always called with
      interrupts off, so it doesn't need to switch them off and on.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      aad83b14