1. 29 5月, 2009 4 次提交
  2. 27 5月, 2009 6 次提交
    • N
      md: raid5: change incorrect usage of 'min' macro to 'min_t' · ed37d83e
      NeilBrown 提交于
      A recent patch to raid5.c use min on an int and a sector_t.
      This isn't allowed.
      So change it to min_t(sector_t,x,y).
      Signed-off-by: NNeilBrown <neilb@suse.de>
      ed37d83e
    • R
      lguest: fix on Intel when KVM loaded (unhandled trap 13) · 56434622
      Rusty Russell 提交于
      When KVM is loaded, and hence VT set up, the vmcall instruction in an
      lguest guest causes a #GP, not #UD.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      56434622
    • M
      drm/i915: Add support for VGA load detection (pre-945). · e4a5d54f
      Ma Ling 提交于
      Two approaches for VGA detections: hot plug detection for 945G onwards
      and load pipe detection for Pre-945G.  Load pipe detection will get one free
      pipe, set border color as red and blue, then check CRT status by
      swf register.  This is a sync-up with the 2D driver.
      Signed-off-by: NMa Ling <ling.ma@intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      e4a5d54f
    • M
      [CPUFREQ] fix timer teardown in ondemand governor · b14893a6
      Mathieu Desnoyers 提交于
      * Rafael J. Wysocki (rjw@sisk.pl) wrote:
      > This message has been generated automatically as a part of a report
      > of regressions introduced between 2.6.28 and 2.6.29.
      >
      > The following bug entry is on the current list of known regressions
      > introduced between 2.6.28 and 2.6.29.  Please verify if it still should
      > be listed and let me know (either way).
      >
      >
      > Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13186
      > Subject		: cpufreq timer teardown problem
      > Submitter	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Date		: 2009-04-23 14:00 (24 days old)
      > References	: http://marc.info/?l=linux-kernel&m=124049523515036&w=4
      > Handled-By	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Patch		: http://patchwork.kernel.org/patch/19754/
      > 		  http://patchwork.kernel.org/patch/19753/
      >
      
      (updated changelog)
      
      cpufreq fix timer teardown in ondemand governor
      
      The problem is that dbs_timer_exit() uses cancel_delayed_work() when it should
      use cancel_delayed_work_sync(). cancel_delayed_work() does not wait for the
      workqueue handler to exit.
      
      The ondemand governor does not seem to be affected because the
      "if (!dbs_info->enable)" check at the beginning of the workqueue handler returns
      immediately without rescheduling the work. The conservative governor in
      2.6.30-rc has the same check as the ondemand governor, which makes things
      usually run smoothly. However, if the governor is quickly stopped and then
      started, this could lead to the following race :
      
      dbs_enable could be reenabled and multiple do_dbs_timer handlers would run.
      This is why a synchronized teardown is required.
      
      The following patch applies to, at least, 2.6.28.x, 2.6.29.1, 2.6.30-rc2.
      
      Depends on patch
      cpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call
      Signed-off-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: gregkh@suse.de
      CC: stable@kernel.org
      CC: cpufreq@vger.kernel.org
      CC: Ingo Molnar <mingo@elte.hu>
      CC: rjw@sisk.pl
      CC: Ben Slusky <sluskyb@paranoiacs.org>
      Signed-off-by: NDave Jones <davej@redhat.com>
      b14893a6
    • M
      [CPUFREQ] fix timer teardown in conservative governor · b253d2b2
      Mathieu Desnoyers 提交于
      * Rafael J. Wysocki (rjw@sisk.pl) wrote:
      > This message has been generated automatically as a part of a report
      > of regressions introduced between 2.6.28 and 2.6.29.
      >
      > The following bug entry is on the current list of known regressions
      > introduced between 2.6.28 and 2.6.29.  Please verify if it still should
      > be listed and let me know (either way).
      >
      >
      > Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13186
      > Subject		: cpufreq timer teardown problem
      > Submitter	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Date		: 2009-04-23 14:00 (24 days old)
      > References	: http://marc.info/?l=linux-kernel&m=124049523515036&w=4
      > Handled-By	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Patch		: http://patchwork.kernel.org/patch/19754/
      > 		  http://patchwork.kernel.org/patch/19753/
      >
      
      (re-send with updated changelog)
      
      cpufreq fix timer teardown in conservative governor
      
      The problem is that dbs_timer_exit() uses cancel_delayed_work() when it should
      use cancel_delayed_work_sync(). cancel_delayed_work() does not wait for the
      workqueue handler to exit.
      
      The ondemand governor does not seem to be affected because the
      "if (!dbs_info->enable)" check at the beginning of the workqueue handler returns
      immediately without rescheduling the work. The conservative governor in
      2.6.30-rc has the same check as the ondemand governor, which makes things
      usually run smoothly. However, if the governor is quickly stopped and then
      started, this could lead to the following race :
      
      dbs_enable could be reenabled and multiple do_dbs_timer handlers would run.
      This is why a synchronized teardown is required.
      
      Depends on patch
      cpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call
      
      The following patch applies to 2.6.30-rc2. Stable kernels have a similar
      issue which should also be fixed, but the code changed between 2.6.29
      and 2.6.30, so this patch only applies to 2.6.30-rc.
      Signed-off-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: gregkh@suse.de
      CC: stable@kernel.org
      CC: cpufreq@vger.kernel.org
      CC: Ingo Molnar <mingo@elte.hu>
      CC: rjw@sisk.pl
      CC: Ben Slusky <sluskyb@paranoiacs.org>
      Signed-off-by: NDave Jones <davej@redhat.com>
      b253d2b2
    • M
      [CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call · 42a06f21
      Mathieu Desnoyers 提交于
      * Rafael J. Wysocki (rjw@sisk.pl) wrote:
      > This message has been generated automatically as a part of a report
      > of regressions introduced between 2.6.28 and 2.6.29.
      >
      > The following bug entry is on the current list of known regressions
      > introduced between 2.6.28 and 2.6.29.  Please verify if it still should
      > be listed and let me know (either way).
      >
      >
      > Bug-Entry	: http://bugzilla.kernel.org/show_bug.cgi?id=13186
      > Subject		: cpufreq timer teardown problem
      > Submitter	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Date		: 2009-04-23 14:00 (24 days old)
      > References	: http://marc.info/?l=linux-kernel&m=124049523515036&w=4
      > Handled-By	: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      > Patch		: http://patchwork.kernel.org/patch/19754/
      > 		  http://patchwork.kernel.org/patch/19753/
      
      The patches linked above depend on the following patch to remove
      circular locking dependency :
      
      cpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call
      
      (the following issue was faced when using cancel_delayed_work_sync() in the
      timer teardown (which fixes a race).
      
      * KOSAKI Motohiro (kosaki.motohiro@jp.fujitsu.com) wrote:
      > Hi
      >
      > my box output following warnings.
      > it seems regression by commit 7ccc7608b836e58fbacf65ee4f8eefa288e86fac.
      >
      > A: work -> do_dbs_timer()  -> cpu_policy_rwsem
      > B: store() -> cpu_policy_rwsem -> cpufreq_governor_dbs() -> work
      >
      >
      
      Hrm, I think it must be due to my attempt to fix the timer teardown race
      in ondemand governor mixed with new locking behavior in 2.6.30-rc.
      
      The rwlock seems to be taken around the whole call to
      cpufreq_governor_dbs(), when it should be only taken around accesses to
      the locked data, and especially *not* around the call to
      dbs_timer_exit().
      
      Reverting my fix attempt would put the teardown race back in place
      (replacing the cancel_delayed_work_sync by cancel_delayed_work).
      Instead, a proper fix would imply modifying this critical section :
      
      cpufreq.c: __cpufreq_remove_dev()
      ...
              if (cpufreq_driver->target)
                      __cpufreq_governor(data, CPUFREQ_GOV_STOP);
      
              unlock_policy_rwsem_write(cpu);
      
      To make sure the __cpufreq_governor() callback is not called with rwsem
      held. This would allow execution of cancel_delayed_work_sync() without
      being nested within the rwsem.
      
      Applies on top of the 2.6.30-rc5 tree.
      
      Required to remove circular dep in teardown of both conservative and
      ondemande governors so they can use cancel_delayed_work_sync().
      CPUFREQ_GOV_STOP does not modify the policy, therefore this locking seemed
      unneeded.
      Signed-off-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Greg KH <greg@kroah.com>
      CC: Ingo Molnar <mingo@elte.hu>
      CC: "Rafael J. Wysocki" <rjw@sisk.pl>
      CC: Ben Slusky <sluskyb@paranoiacs.org>
      CC: Chris Wright <chrisw@sous-sol.org>
      CC: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDave Jones <davej@redhat.com>
      42a06f21
  3. 26 5月, 2009 9 次提交
  4. 25 5月, 2009 2 次提交
  5. 23 5月, 2009 6 次提交
    • B
      icom: fix rmmod crash · 95caa0a9
      Breno Leitao 提交于
      Actually the icom driver is crashing when is being removed because
      the driver is kfreeing the adapter structure before calling
      pci_release_regions(), which result in the following error:
      
        Unable to handle kernel paging request for data at address 0x6b6b6b6b6b6b6d33
        Faulting instruction address: 0xc000000000246b80
        Oops: Kernel access of bad area, sig: 11 [#1]
        ....
        [c000000012d436a0] [c0000000001002d0] .kfree+0x120/0x34c (unreliable)
        [c000000012d43730] [c000000000246d60] .pci_release_selected_regions+0x3c/0x68
        [c000000012d437c0] [d000000002d54700] .icom_kref_release+0xf4/0x118 [icom]
        [c000000012d43850] [c000000000232e50] .kref_put+0x74/0x94
        [c000000012d438d0] [d000000002d56c58] .icom_remove+0x40/0xa4 [icom]
        [c000000012d43960] [c000000000249e48] .pci_device_remove+0x50/0x90
        [c000000012d439e0] [c0000000002d68d8] .__device_release_driver+0x94/0xd4
        [c000000012d43a70] [c0000000002d7104] .driver_detach+0xf8/0x12c
        [c000000012d43b00] [c0000000002d549c] .bus_remove_driver+0xbc/0x11c
        [c000000012d43b90] [c0000000002d71dc] .driver_unregister+0x60/0x80
        [c000000012d43c20] [c00000000024a07c] .pci_unregister_driver+0x44/0xe8
        [c000000012d43cb0] [d000000002d56bf4] .icom_exit+0x1c/0x40 [icom]
        [c000000012d43d30] [c000000000095fa8] .SyS_delete_module+0x214/0x2a8
        [c000000012d43e30] [c00000000000852c] syscall_exit+0x0/0x40
      Signed-off-by: NBreno Leitao <leitao@linux.vnet.ibm.com>
      Cc: stable@kernel.org
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      95caa0a9
    • M
      drm/i915: Use an I2C algo to do the flip to SDVO DDC bus. · 619ac3b7
      Ma Ling 提交于
      Previously, we would set the control bus switch before calls were made
      to request EDID information over DDC.  But recently the DDC code started
      doing multiple I2C transfers to get the EDID extensions as well.  This
      tripped up SDVO, because the control bus switch is only in effect until
      the next STOP after a START.  By doing our own algo, we can wrap each i2c
      transaction on the DDC I2C bus with the control bus switch it requires.
      
      freedesktop.org bug #21042
      Signed-off-by: NMa Ling <ling.ma@intel.com>
      [anholt: Hand application for conflict, fixed error path]
      Signed-off-by: NEric Anholt <eric@anholt.net>
      619ac3b7
    • J
      drm/i915: Determine type before initialising connector · ad5b2a6d
      Jonas Bonn 提交于
      drm_connector_init sets both the connector type and the connector type_id
      on the newly initialised connector.  As the connector type_id is coupled to
      the connector type, the connector type cannot simply be modified on an
      initialised connector.
      
      This patch changes the order of operations on intel_sdvo_init so that the
      type is determined before the connector is intialised.
      
      This fixes a bug whereby the name card0-VGA-1 would be allocted to both a
      CRT and an SDVO connector since the SDVO connector would be initialised
      with type 'unknown' and hence have its type_id assigned from the wrong pool.
      Signed-off-by: NJonas Bonn <jonas@southpole.se>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      ad5b2a6d
    • M
      drm/i915: Return SDVO LVDS VBT mode if no EDID modes are detected. · 7086c87f
      Ma Ling 提交于
      Some new SDVO LVDS hardware doesn't have DDC available, and this should
      fix the display on it.
      Signed-off-by: NMa Ling <ling.ma@intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      7086c87f
    • M
      88631706
    • J
      i915: support 8xx desktop cursors · 14b60391
      Jesse Barnes 提交于
      For some reason we never added 8xx desktop cursor support to the
      kernel.  This patch fixes that.
      
      [krh: Also set the size on pre-i915 hw.]
      Tested-by: NKristian Høgsberg <krh@redhat.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      14b60391
  6. 22 5月, 2009 10 次提交
  7. 21 5月, 2009 3 次提交