Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752486AbYJYIYk (ORCPT ); Sat, 25 Oct 2008 04:24:40 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751955AbYJYIYZ (ORCPT ); Sat, 25 Oct 2008 04:24:25 -0400 Received: from nelson.telenet-ops.be ([195.130.133.66]:58939 "EHLO nelson.telenet-ops.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751878AbYJYIYX (ORCPT ); Sat, 25 Oct 2008 04:24:23 -0400 Date: Sat, 25 Oct 2008 10:24:11 +0200 (CEST) From: Geert Uytterhoeven To: Steven Rostedt cc: Frederic Weisbecker , Ingo Molnar , Alexey Dobriyan , Stephen Rothwell , Richard Henderson , Greg Ungerer , Linux/m68k , linux-next@vger.kernel.org, LKML , Andrew Morton Subject: Re: [PATCH] ftrace: handle archs that do not support irqs_disabled_flags In-Reply-To: Message-ID: References: <20081023213637.eff9b414.sfr@canb.auug.org.au> <20081023121145.GB27984@x200.localdomain> <49008D12.5090204@gmail.com> <4900B414.7090002@gmail.com> <20081023163433.GA3160@x200.localdomain> <20081023163850.GB16591@elte.hu> <4901D8CD.7000405@gmail.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1697 Lines: 59 On Fri, 24 Oct 2008, Steven Rostedt wrote: > Some architectures do not support a way to read the irq flags that > is set from "local_irq_save(flags)" to determine if interrupts were > disabled or enabled. Ftrace uses this information to display to the user > if the trace occurred with interrupts enabled or disabled. Both alpha #define irqs_disabled() (getipl() == IPL_MAX) and m68k static inline int irqs_disabled(void) { unsigned long flags; local_save_flags(flags); return flags & ~ALLOWINT; } do have irqs_disabled(), but they don't have irqs_disabled_flags(). M68knommu has both, but they don't check the same thing: #define irqs_disabled() \ ({ \ unsigned long flags; \ local_save_flags(flags); \ ((flags & 0x0700) == 0x0700); \ }) static inline int irqs_disabled_flags(unsigned long flags) { if (flags & 0x0700) return 0; else return 1; } Is there a semantic difference between them (except that the latter takes the flags as a parameter)? Or can we just extract the core logic of irqs_disabled() into irqs_disabled_flags()? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- 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/