1. 04 Mar, 2011 1 commit
  2. 03 Mar, 2011 2 commits
  3. 02 Mar, 2011 13 commits
  4. 01 Mar, 2011 4 commits
    • Jiri Slaby's avatar
      [CPUFREQ] fix BUG on cpufreq policy init failure · 8f5bc2ab
      Jiri Slaby authored
      
      
      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: default avatarJiri Slaby <jslaby@suse.cz>
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      8f5bc2ab
    • Jan Niehusmann's avatar
      drm/i915: fix memory corruption with GM965 and >4GB RAM · 6927faf3
      Jan Niehusmann authored
      
      
      On a Thinkpad x61s, I noticed some memory corruption when
      plugging/unplugging the external VGA connection. The symptoms are that
      4 bytes at the beginning of a page get overwritten by zeroes.
      The address of the corruption varies when rebooting the machine, but
      stays constant while it's running (so it's possible to repeatedly write
      some data and then corrupt it again by plugging the cable).
      
      Further investigation revealed that the corrupted address is
      (dev_priv->status_page_dmah->busaddr & 0xffffffff), ie. the beginning of
      the hardware status page of the i965 graphics card, cut to 32 bits.
      
      So it seems that for some memory access, the hardware uses only 32 bit
      addressing. If the hardware status page is located >4GB, this
      corrupts unrelated memory.
      Signed-off-by: default avatarJan Niehusmann <jan@gondor.com>
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@kernel.org
      6927faf3
    • Linus Torvalds's avatar
      Revert "TPM: Long default timeout fix" · 8d1dc20e
      Linus Torvalds authored
      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: default avatarTheodore Ts'o <tytso@mit.edu>
      Acked-by: default avatarRajiv Andrade <srajiv@linux.vnet.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8d1dc20e
    • Rafael J. Wysocki's avatar
      ACPI: Fix build for CONFIG_NET unset · af06216a
      Rafael J. Wysocki authored
      
      
      Several ACPI drivers fail to build if CONFIG_NET is unset, because
      they refer to things depending on CONFIG_THERMAL that in turn depends
      on CONFIG_NET.  However, CONFIG_THERMAL doesn't really need to depend
      on CONFIG_NET, because the only part of it requiring CONFIG_NET is
      the netlink interface in thermal_sys.c.
      
      Put the netlink interface in thermal_sys.c under #ifdef CONFIG_NET
      and remove the dependency of CONFIG_THERMAL on CONFIG_NET from
      drivers/thermal/Kconfig.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Luming Yu <luming.yu@intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      af06216a
  5. 28 Feb, 2011 20 commits