1. 02 3月, 2011 5 次提交
    • J
      [CPUFREQ] fix BUG on cpufreq policy init failure · 8f5bc2ab
      Jiri Slaby 提交于
      cpufreq_register_driver sets cpufreq_driver to a structure owned (and
      placed) in the caller's memory. If cpufreq policy fails in its ->init
      function, sysdev_driver_register returns nonzero in
      cpufreq_register_driver. Now, cpufreq_register_driver returns an error
      without setting cpufreq_driver back to NULL.
      
      Usually cpufreq policy modules are unloaded because they propagate the
      error to the module init function and return that.
      
      So a later access to any member of cpufreq_driver causes bugs like:
      BUG: unable to handle kernel paging request at ffffffffa00270a0
      IP: [<ffffffff8145eca3>] cpufreq_cpu_get+0x53/0xe0
      PGD 1805067 PUD 1809063 PMD 1c3f90067 PTE 0
      Oops: 0000 [#1] SMP
      last sysfs file: /sys/devices/virtual/net/tun0/statistics/collisions
      CPU 0
      Modules linked in: ...
      Pid: 5677, comm: thunderbird-bin Tainted: G        W   2.6.38-rc4-mm1_64+ #1389 To be filled by O.E.M./To Be Filled By O.E.M.
      RIP: 0010:[<ffffffff8145eca3>]  [<ffffffff8145eca3>] cpufreq_cpu_get+0x53/0xe0
      RSP: 0018:ffff8801aec37d98  EFLAGS: 00010086
      RAX: 0000000000000202 RBX: 0000000000000000 RCX: 0000000000000001
      RDX: ffffffffa00270a0 RSI: 0000000000001000 RDI: ffffffff8199ece8
      ...
      Call Trace:
       [<ffffffff8145f490>] cpufreq_quick_get+0x10/0x30
       [<ffffffff8103f12b>] show_cpuinfo+0x2ab/0x300
       [<ffffffff81136292>] seq_read+0xf2/0x3f0
       [<ffffffff8126c5d3>] ? __strncpy_from_user+0x33/0x60
       [<ffffffff8116850d>] proc_reg_read+0x6d/0xa0
       [<ffffffff81116e53>] vfs_read+0xc3/0x180
       [<ffffffff81116f5c>] sys_read+0x4c/0x90
       [<ffffffff81030dbb>] system_call_fastpath+0x16/0x1b
      ...
      
      It's all cause by weird fail path handling in cpufreq_register_driver.
      To fix that, shuffle the code to do proper handling with gotos.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NDave Jones <davej@redhat.com>
      8f5bc2ab
    • D
      [CPUFREQ] Fix another notifier leak in powernow-k8. · a536b126
      Dave Jones 提交于
      Do the notifier registration later, so we don't have to worry
      about freeing it if we fail the msr allocation.
      Signed-off-by: NDave Jones <davej@redhat.com>
      a536b126
    • N
      [CPUFREQ] Missing "unregister_cpu_notifier" in powernow-k8.c · ac818314
      Neil Brown 提交于
      It appears that when powernow-k8 finds that
      
          No compatible ACPI _PSS objects found.
      
       and suggests
      
          Try again with latest BIOS.
      
       it fails the module load, but does not unregister the cpu_notifier that was
       registered in powernowk8_init
      
       This ends up leaving freed memory on the cpu notifier list for some other
       poor module (e.g. md/raid5) to come along and trip over.
      
       The following might be a partial fix, but I suspect there is probably other
       clean-up that is needed.
      
       ( https://bugzilla.novell.com/show_bug.cgi?id=655215 has full dmesg traces).
      Signed-off-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NNeil Brown <neilb@suse.de>
      ac818314
    • L
      Linux 2.6.38-rc7 · dd9c1549
      Linus Torvalds 提交于
      dd9c1549
    • L
      Revert "TPM: Long default timeout fix" · 8d1dc20e
      Linus Torvalds 提交于
      This reverts commit c4ff4b82.
      
      Ted Ts'o reports:
      
       "TPM is working for me so I can log into employer's network in 2.6.37.
        It broke when I tried 2.6.38-rc6, with the following relevant lines
        from my dmesg:
      
        [   11.081627] tpm_tis 00:0b: 1.2 TPM (device-id 0x0, rev-id 78)
        [   25.734114] tpm_tis 00:0b: Operation Timed out
        [   78.040949] tpm_tis 00:0b: Operation Timed out
      
        This caused me to get suspicious, especially since the _other_ TPM
        commit in 2.6.38 had already been reverted, so I tried reverting
        commit c4ff4b82: "TPM: Long default timeout fix".  With this commit
        reverted, my TPM on my Lenovo T410 is once again working."
      Requested-and-tested-by: NTheodore Ts'o <tytso@mit.edu>
      Acked-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8d1dc20e
  2. 01 3月, 2011 10 次提交
  3. 28 2月, 2011 6 次提交
  4. 27 2月, 2011 2 次提交
  5. 26 2月, 2011 17 次提交