1. 17 Jun, 2011 2 commits
    • Takao Indoh's avatar
      generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts · d8ad7d11
      Takao Indoh authored
      There is a problem that kdump(2nd kernel) sometimes hangs up due
      to a pending IPI from 1st kernel. Kernel panic occurs because IPI
      comes before call_single_queue is initialized.
      
      To fix the crash, rename init_call_single_data() to call_function_init()
      and call it in start_kernel() so that call_single_queue can be
      initialized before enabling interrupts.
      
      The details of the crash are:
      
       (1) 2nd kernel boots up
      
       (2) A pending IPI from 1st kernel comes when irqs are first enabled
           in start_kernel().
      
       (3) Kernel tries to handle the interrupt, but call_single_queue
           is not initialized yet at this point. As a result, in the
           generic_smp_call_function_single_interrupt(), NULL pointer
           dereference occurs when list_replace_init() tries to access
           &q->list.next.
      
      Therefore this patch changes the name of init_call_single_data()
      to call_function_init() and calls it before local_irq_enable()
      in start_kernel().
      Signed-off-by: default avatarTakao Indoh <indou.takao@jp.fujitsu.com>
      Reviewed-by: default avatarWANG Cong <xiyou.wangcong@gmail.com>
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Milton Miller <miltonm@bga.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: kexec@lists.infradead.org
      Link: http://lkml.kernel.org/r/D6CBEE2F420741indou.takao@jp.fujitsu.comSigned-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d8ad7d11
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · eb96c925
      Linus Torvalds authored
      * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
        drm/radeon/kms: use helper functions for fence read/write
        drm/radeon/kms: set DP link config properly for DP bridges
        drm/radeon/kms/atom: AdjustPixelClock fixes for DP bridges
        drm/radeon/kms: fix handling of DP to LVDS bridges
        drm/radeon/kms: issue blank/unblank commands for ext encoders
        drm/radeon/kms: fix support for DDC on dp bridges
        drm/radeon/kms: add support for load detection on dp bridges
        drm/radeon/kms: add missing external encoder action
        drm/radeon/kms: rework atombios_get_encoder_mode()
        drm/radeon/kms: fix num crtcs for Cedar and Caicos
        Revert "drm/i915: Enable GMBUS for post-gen2 chipsets"
        drivers/gpu/drm: use printk_ratelimited instead of printk_ratelimit
        drm/radeon: workaround a hw bug on some radeon chipsets with all-0 EDIDs.
        drm: make debug levels match in edid failure code.
        drm/radeon/kms: clear wb memory by default
        drm/radeon/kms: be more pedantic about the g5 quirk (v2)
        drm/radeon/kms: signed fix for evergreen thermal
        drm: populate irq_by_busid-member for pci
      eb96c925
  2. 16 Jun, 2011 38 commits