1. 30 1月, 2009 2 次提交
  2. 28 1月, 2009 2 次提交
  3. 27 1月, 2009 1 次提交
    • R
      Hibernation: Introduce system_entering_hibernation · abfe2d7b
      Rafael J. Wysocki 提交于
      Introduce boolean function system_entering_hibernation() returning
      'true' during the last phase of hibernation, in which devices are
      being put into low power states and the sleep state (for example,
      ACPI S4) is finally entered.
      
      Some device drivers need such a function to check if the system is
      in the final phase of hibernation.  In particular, some SATA drivers
      are going to use it for blacklisting systems in which the disks
      should not be spun down during the last phase of hibernation (the
      BIOS will do that anyway).
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      abfe2d7b
  4. 21 1月, 2009 2 次提交
    • P
      dma-coherent: Restore dma_alloc_from_coherent() large alloc fall back policy. · 0609697e
      Paul Mundt 提交于
      When doing large allocations (larger than the per-device coherent area)
      the generic memory allocators are silently fallen back on regardless of
      consideration for the per-device constraints.
      
      In the DMA_MEMORY_EXCLUSIVE case falling back on generic memory is not
      an option, as it tends not to be addressable by the DMA hardware in
      question. This issue showed up with the 8139too breakage on the
      Dreamcast, where non-addressable buffers were silently allocated due to
      the size mismatch calculation -- while it should have simply errored out
      upon being unable to satisfy the allocation with the given device
      constraints.
      
      This restores fall back behaviour to what it was before the oversized
      request change caused multiple regressions.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      0609697e
    • A
      dma-coherent: per-device coherent area is in pages, not bytes. · cdf57cab
      Adrian McMenamin 提交于
      Commit 58c6d3df ("dma-coherent: catch
      oversized requests to dma_alloc_from_coherent()") attempted to add a
      sanity check to bail out on allocations larger than the coherent area.
      
      Unfortunately when this was implemented, the fact the coherent area
      is tracked in pages rather than bytes was overlooked, which subsequently
      broke every single dma_alloc_from_coherent() user, forcing the allocation
      silently through generic memory instead.
      
      Signed-off-by: Adrian McMenamin <adrian@mcmen.demon.co.uk >
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      cdf57cab
  5. 20 1月, 2009 2 次提交
  6. 19 1月, 2009 2 次提交
    • P
      hrtimers: fix inconsistent lock state on resume in hres_timers_resume · 1d4a7f1c
      Peter Zijlstra 提交于
      Andrey Borzenkov reported this lockdep assert:
      
      > [17854.688347] =================================
      > [17854.688347] [ INFO: inconsistent lock state ]
      > [17854.688347] 2.6.29-rc2-1avb #1
      > [17854.688347] ---------------------------------
      > [17854.688347] inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
      > [17854.688347] pm-suspend/18240 [HC0[0]:SC0[0]:HE1:SE1] takes:
      > [17854.688347]  (&cpu_base->lock){++..}, at: [<c0136fcc>] retrigger_next_event+0x5c/0xa0
      > [17854.688347] {in-hardirq-W} state was registered at:
      > [17854.688347]   [<c01443cd>] __lock_acquire+0x79d/0x1930
      > [17854.688347]   [<c01455bc>] lock_acquire+0x5c/0x80
      > [17854.688347]   [<c03092e5>] _spin_lock+0x35/0x70
      > [17854.688347]   [<c0136e61>] hrtimer_run_queues+0x31/0x140
      > [17854.688347]   [<c0128d98>] run_local_timers+0x8/0x20
      > [17854.688347]   [<c0128dd3>] update_process_times+0x23/0x60
      > [17854.688347]   [<c013e274>] tick_periodic+0x24/0x80
      > [17854.688347]   [<c013e2e2>] tick_handle_periodic+0x12/0x70
      > [17854.688347]   [<c0104e24>] timer_interrupt+0x14/0x20
      > [17854.688347]   [<c01607b9>] handle_IRQ_event+0x29/0x60
      > [17854.688347]   [<c0161c59>] handle_level_irq+0x69/0xe0
      > [17854.688347]   [<ffffffff>] 0xffffffff
      > [17854.688347] irq event stamp: 55771
      > [17854.688347] hardirqs last  enabled at (55771): [<c0309125>] _spin_unlock_irqrestore+0x35/0x60
      > [17854.688347] hardirqs last disabled at (55770): [<c0309419>] _spin_lock_irqsave+0x19/0x80
      > [17854.688347] softirqs last  enabled at (54836): [<c0124f54>] __do_softirq+0xc4/0x110
      > [17854.688347] softirqs last disabled at (54831): [<c01049ae>] do_softirq+0x8e/0xe0
      > [17854.688347]
      > [17854.688347] other info that might help us debug this:
      > [17854.688347] 3 locks held by pm-suspend/18240:
      > [17854.688347]  #0:  (&buffer->mutex){--..}, at: [<c01dd4c5>] sysfs_write_file+0x25/0x100
      > [17854.688347]  #1:  (pm_mutex){--..}, at: [<c015056f>] enter_state+0x4f/0x140
      > [17854.688347]  #2:  (dpm_list_mtx){--..}, at: [<c027880f>] device_pm_lock+0xf/0x20
      > [17854.688347]
      > [17854.688347] stack backtrace:
      > [17854.688347] Pid: 18240, comm: pm-suspend Not tainted 2.6.29-rc2-1avb #1
      > [17854.688347] Call Trace:
      > [17854.688347]  [<c0306248>] ? printk+0x18/0x20
      > [17854.688347]  [<c0141fac>] print_usage_bug+0x16c/0x1d0
      > [17854.688347]  [<c0142bcf>] mark_lock+0x8bf/0xc90
      > [17854.688347]  [<c0106b8f>] ? pit_next_event+0x2f/0x40
      > [17854.688347]  [<c01441b0>] __lock_acquire+0x580/0x1930
      > [17854.688347]  [<c030916d>] ? _spin_unlock+0x1d/0x20
      > [17854.688347]  [<c0106b8f>] ? pit_next_event+0x2f/0x40
      > [17854.688347]  [<c013dd38>] ? clockevents_program_event+0x98/0x160
      > [17854.688347]  [<c0142fe8>] ? mark_held_locks+0x48/0x90
      > [17854.688347]  [<c0309125>] ? _spin_unlock_irqrestore+0x35/0x60
      > [17854.688347]  [<c0143229>] ? trace_hardirqs_on_caller+0x139/0x190
      > [17854.688347]  [<c014328b>] ? trace_hardirqs_on+0xb/0x10
      > [17854.688347]  [<c01455bc>] lock_acquire+0x5c/0x80
      > [17854.688347]  [<c0136fcc>] ? retrigger_next_event+0x5c/0xa0
      > [17854.688347]  [<c03092e5>] _spin_lock+0x35/0x70
      > [17854.688347]  [<c0136fcc>] ? retrigger_next_event+0x5c/0xa0
      > [17854.688347]  [<c0136fcc>] retrigger_next_event+0x5c/0xa0
      > [17854.688347]  [<c013711a>] hres_timers_resume+0xa/0x10
      > [17854.688347]  [<c013aa8e>] timekeeping_resume+0xee/0x150
      > [17854.688347]  [<c0273384>] __sysdev_resume+0x14/0x50
      > [17854.688347]  [<c0273407>] sysdev_resume+0x47/0x80
      > [17854.688347]  [<c02791ab>] device_power_up+0xb/0x20
      > [17854.688347]  [<c015043f>] suspend_devices_and_enter+0xcf/0x150
      > [17854.688347]  [<c0150c2f>] ? freeze_processes+0x3f/0x90
      > [17854.688347]  [<c0150614>] enter_state+0xf4/0x140
      > [17854.688347]  [<c01506dd>] state_store+0x7d/0xc0
      > [17854.688347]  [<c0150660>] ? state_store+0x0/0xc0
      > [17854.688347]  [<c0202da4>] kobj_attr_store+0x24/0x30
      > [17854.688347]  [<c01dd53c>] sysfs_write_file+0x9c/0x100
      > [17854.688347]  [<c019916c>] vfs_write+0x9c/0x160
      > [17854.688347]  [<c0103494>] ? restore_nocheck_notrace+0x0/0xe
      > [17854.688347]  [<c01dd4a0>] ? sysfs_write_file+0x0/0x100
      > [17854.688347]  [<c01992ed>] sys_write+0x3d/0x70
      > [17854.688347]  [<c0103371>] sysenter_do_call+0x12/0x31
      
      Andrey's analysis:
      
      > timekeeping_resume() is called via class ->resume
      > method; and according to comments in sysdev_resume() and
      > device_power_up(), they are called with interrupts disabled.
      >
      > Looking at suspend_enter, irqs *are* disabled at this point.
      >
      > So it actually looks like something (may be some driver)
      > unconditionally enabled irqs in resume path.
      
      Add a debug check to test this theory. If it triggers then it
      triggers because the resume code calls it with irqs enabled,
      which is a no-no not just for timekeeping_resume(), but also
      bad for a number of other resume handlers.
      Reported-by: NAndrey Borzenkov <arvidjaar@mail.ru>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1d4a7f1c
    • J
      relay: fix lock imbalance in relay_late_setup_files · b786c6a9
      Jiri Slaby 提交于
      One fail path in relay_late_setup_files() omits
      mutex_unlock(&relay_channels_mutex);
      Add it.
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b786c6a9
  7. 17 1月, 2009 2 次提交
  8. 16 1月, 2009 4 次提交
  9. 15 1月, 2009 7 次提交
  10. 14 1月, 2009 16 次提交