Messages in this thread | | | Date | Fri, 12 Jan 2007 15:39:20 +1100 | From | Nick Piggin <> | Subject | Re: [PATCH 05/05] Linux Kernel Markers, non optimised architectures |
| |
Mathieu Desnoyers wrote:
> +#define MARK(name, format, args...) \ > + do { \ > + static marker_probe_func *__mark_call_##name = \ > + __mark_empty_function; \ > + volatile static char __marker_enable_##name = 0; \ > + static const struct __mark_marker_c __mark_c_##name \ > + __attribute__((section(".markers.c"))) = \ > + { #name, &__mark_call_##name, format } ; \ > + static const struct __mark_marker __mark_##name \ > + __attribute__((section(".markers"))) = \ > + { &__mark_c_##name, &__marker_enable_##name } ; \ > + asm volatile ( "" : : "i" (&__mark_##name)); \ > + __mark_check_format(format, ## args); \ > + if (unlikely(__marker_enable_##name)) { \ > + preempt_disable(); \ > + (*__mark_call_##name)(format, ## args); \ > + preempt_enable_no_resched(); \
Why not just preempt_enable() here?
-- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |