From patchwork Tue Jul 20 22:16:51 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 113092 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.4/8.14.3) with ESMTP id o6KMHdFr009175 for ; Tue, 20 Jul 2010 22:17:40 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761833Ab0GTWRj (ORCPT ); Tue, 20 Jul 2010 18:17:39 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:51694 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757617Ab0GTWRi (ORCPT ); Tue, 20 Jul 2010 18:17:38 -0400 Received: from imap1.linux-foundation.org (imap1.linux-foundation.org [140.211.169.55]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id o6KMGqID014034 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 20 Jul 2010 15:16:53 -0700 Received: from localhost.localdomain (localhost [127.0.0.1]) by imap1.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with ESMTP id o6KMGpHD020818; Tue, 20 Jul 2010 15:16:51 -0700 Message-Id: <201007202216.o6KMGpHD020818@imap1.linux-foundation.org> Subject: [patch for 2.6.35 1/1] acpi: fix bogus preemption logic To: lenb@kernel.org Cc: linux-acpi@vger.kernel.org, akpm@linux-foundation.org, tglx@linutronix.de, francois.valenduc@tvcablenet.be, ming.m.lin@intel.com From: akpm@linux-foundation.org Date: Tue, 20 Jul 2010 15:16:51 -0700 MIME-Version: 1.0 X-Spam-Status: No, hits=-3.496 required=5 tests=AWL, BAYES_00, OSDL_HEADER_SUBJECT_BRACKETED X-Spam-Checker-Version: SpamAssassin 3.2.4-osdl_revision__1.47__ X-MIMEDefang-Filter: lf$Revision: 1.188 $ X-Scanned-By: MIMEDefang 2.63 on 140.211.169.13 Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Tue, 20 Jul 2010 22:17:40 +0000 (UTC) diff -puN drivers/acpi/apei/erst.c~acpi-fix-bogus-preemption-logic drivers/acpi/apei/erst.c --- a/drivers/acpi/apei/erst.c~acpi-fix-bogus-preemption-logic +++ a/drivers/acpi/apei/erst.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include "apei-internal.h" diff -puN include/acpi/platform/aclinux.h~acpi-fix-bogus-preemption-logic include/acpi/platform/aclinux.h --- a/include/acpi/platform/aclinux.h~acpi-fix-bogus-preemption-logic +++ a/include/acpi/platform/aclinux.h @@ -148,13 +148,17 @@ static inline void *acpi_os_acquire_obje #define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed(a) #define ACPI_FREE(a) kfree(a) -/* Used within ACPICA to show where it is safe to preempt execution */ -#include +#ifndef CONFIG_PREEMPT +/* + * Used within ACPICA to show where it is safe to preempt execution + * when CONFIG_PREEMPT=n + */ #define ACPI_PREEMPTION_POINT() \ do { \ - if (!in_atomic_preempt_off() && !irqs_disabled()) \ + if (!irqs_disabled()) \ cond_resched(); \ } while (0) +#endif #endif /* __KERNEL__ */