linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
  • * Re: [PATCH 2.6.28-rc6] ACPICA: don't cond_resched() when irqs_disabled()
           [not found] ` <20081126135508.GA1891@localhost>
           [not found]   ` <20081126152043.c92ae839.akpm@linux-foundation.org>
    @ 2008-12-19  5:22   ` Len Brown
      2008-12-19  7:02     ` Zhao Yakui
      1 sibling, 1 reply; 11+ messages in thread
    From: Len Brown @ 2008-12-19  5:22 UTC (permalink / raw)
      To: Wu Fengguang
      Cc: LKML, Alexey Starikovskiy, Sitsofe Wheeler, Rafael J. Wysocki,
    	Andrew Morton, Linus Torvalds, stable, linux-acpi
    
    
    On Wed, 26 Nov 2008, Wu Fengguang wrote:
    
    > [add CC to <stable@kernel.org>, since this bug was introduced in the
    > 2.6.27-rcX time frame, and should help 2.6.28 and 2.6.27.x alike]
    
    Actually, ACPI_PREEMPTION_POINT() went in to 2.6.28-rc1,
    it is not present in 2.6.27.stable so this patch
    does not apply to 27.stable.
    
    > The ACPI routines could be called from run_workqueue() with irqs disabled.
    > So we should test irqs_disabled() before calling cond_resched().
    
    I don't know how you provoked this failure.
    The ACPI interpreter should always be run with interrupts enabled.
    If it isn't then that is a (different) bug.
    
    There is, however, one exception, and it is during suspend/resume;
    and that _is_ a legal way to provoke this bug:
    
    http://bugzilla.kernel.org/show_bug.cgi?id=12252
    
    and thus the fix is actually correct, and I'll apply it.
    
    thanks,
    -- Len Brown, Intel Open Source Technology Center
    
    
    > --- a/include/acpi/platform/aclinux.h
    > +++ b/include/acpi/platform/aclinux.h
    > @@ -141,6 +141,10 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache)
    >  /*
    >   * We need to show where it is safe to preempt execution of ACPICA
    >   */
    > -#define ACPI_PREEMPTION_POINT()	cond_resched()
    > +#define ACPI_PREEMPTION_POINT()		\
    > +	do {				\
    > +		if (!irqs_disabled())	\
    > +			cond_resched();	\
    > +	} while (0)
    >  
    >  #endif				/* __ACLINUX_H__ */
    > --
    
    ^ permalink raw reply	[flat|nested] 11+ messages in thread

  • end of thread, other threads:[~2009-01-01 19:40 UTC | newest]
    
    Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <20081126063522.GA23611@localhost>
         [not found] ` <20081126135508.GA1891@localhost>
         [not found]   ` <20081126152043.c92ae839.akpm@linux-foundation.org>
    2008-12-02  2:45     ` [PATCH 2.6.28-rc6] ACPICA: don't cond_resched() when irqs_disabled() Wu Fengguang
    2008-12-19  5:22   ` Len Brown
    2008-12-19  7:02     ` Zhao Yakui
    2008-12-19  8:38       ` Len Brown
    2008-12-19 11:01         ` Wu Fengguang
    2008-12-19 18:24           ` Len Brown
    2008-12-20  0:28             ` Wu Fengguang
    2008-12-19 13:51         ` Wu Fengguang
    2008-12-19 18:35           ` Len Brown
    2008-12-20  0:34             ` Wu Fengguang
    2009-01-01 19:39           ` Robert Hancock
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for NNTP newsgroup(s).