ACPICA: add preemption point after each opcode parse
Subsystems (2)
PATCH 1/1 ACPICA: add preemption point after each opcode parse
Reference: http://marc.info/?l=linux-acpi&m=122236382701062&w=2
Signed-off-by Alexey Starikovskiy <[email protected]>
Tested-by Sitsofe Wheeler <[email protected]>
---
drivers/acpi/parser/psloop.c | 2 ++ include/acpi/acmacros.h | 5 +++++ include/acpi/platform/aclinux.h | 6 ++++++ 3 files changed, 13 insertions(+), 0 deletions(-)
drivers/acpi/parser/psloop.c +2 -0
@@ -719,6 +719,8 @@ acpi_ps_complete_op(struct acpi_walk_state *walk_state, *op =NULL ; } +ACPI_PREEMPTION_POINT (); +return_ACPI_STATUS (AE_OK ); }
include/acpi/acmacros.h +5 -0
@@ -703,4 +703,9 @@ struct acpi_integer_overlay {#endif /* ACPI_DBG_TRACK_ALLOCATIONS */ +/* Preemption point */ +#ifndef ACPI_PREEMPTION_POINT +#define ACPI_PREEMPTION_POINT ()/* no preemption */ +#endif +#endif /* ACMACROS_H */
include/acpi/platform/aclinux.h +6 -0
@@ -53,6 +53,7 @@#include <linux/kernel.h> #include <linux/module.h> #include <linux/ctype.h> +#include <linux/sched.h> #include <asm/system.h> #include <asm/atomic.h> #include <asm/div64.h>
@@ -137,4 +138,9 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache)#define ACPI_ALLOCATE_ZEROED (a) acpi_os_allocate_zeroed(a)#define ACPI_FREE (a) kfree(a) +/* +* We need to show where it is safe to preempt execution of ACPICA +*/ +#define ACPI_PREEMPTION_POINT () cond_resched() +#endif /* __ACLINUX_H__ */
Len Brown
reviewerapplied to acpi-test.
thanks,
-len
Quoted 62 lines · Alexey Starikovskiy
Reference: http://marc.info/?l=linux-acpi&m=122236382701062&w=2
Signed-off-by Alexey Starikovskiy <[email protected]>Tested-by Sitsofe Wheeler <[email protected]>---
drivers/acpi/parser/psloop.c | 2 ++ include/acpi/acmacros.h | 5 +++++ include/acpi/platform/aclinux.h | 6 ++++++ 3 files changed, 13 insertions(+), 0 deletions(-)drivers/acpi/parser/psloop.c +2
-0@@ -719,6 +719,8 @@ acpi_ps_complete_op(struct acpi_walk_state *walk_state, *op =NULL ; } +ACPI_PREEMPTION_POINT (); +return_ACPI_STATUS (AE_OK ); }include/acpi/acmacros.h +5
-0@@ -703,4 +703,9 @@ struct acpi_integer_overlay {#endif /* ACPI_DBG_TRACK_ALLOCATIONS */ +/* Preemption point */ +#ifndef ACPI_PREEMPTION_POINT +#define ACPI_PREEMPTION_POINT ()/* no preemption */ +#endif +#endif /* ACMACROS_H */ include/acpi/platform/aclinux.h +6
-0@@ -53,6 +53,7 @@#include <linux/kernel.h> #include <linux/module.h> #include <linux/ctype.h> +#include <linux/sched.h> #include <asm/system.h> #include <asm/atomic.h> #include <asm/div64.h> @@ -137,4 +138,9 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache)#define ACPI_ALLOCATE_ZEROED (a) acpi_os_allocate_zeroed(a)#define ACPI_FREE (a) kfree(a) +/* +* We need to show where it is safe to preempt execution of ACPICA +*/ +#define ACPI_PREEMPTION_POINT () cond_resched() +#endif /* __ACLINUX_H__ */