On Mon, Aug 29, 2005 at 05:19:05PM -0700, Rusty Lynch wrote:
> So, assuming inlining the notifier_call_chain would address Christoph's
> conserns, is the following patch something like what you are sugesting?
> This would make all the kdebug.h::notify_die() calls use the inline version.
I think we need something more like this ...
include/linux/notifier.h:
+static inline int notifier_call_chain(struct notifier_block **n,
+ unsigned long val, void *v)
+{
+ if (n)
+ return __notifier_call_chain(n, val, v);
+ return NOTIFY_DONE;
+}
kernel/sys.c:
-int notifier_call_chain(struct notifier_block **n, unsigned long val, void *v)
+int __notifier_call_chain(struct notifier_block **n, unsigned long val, void *v)
-EXPORT_SYMBOL(notifier_call_chain);
+EXPORT_SYMBOL(__notifier_call_chain);
That way everyone gets both the quick test and the global size reduction.
--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain
On Tue, 30 Aug 2005, Matthew Wilcox wrote:
> On Mon, Aug 29, 2005 at 05:19:05PM -0700, Rusty Lynch wrote:
> > So, assuming inlining the notifier_call_chain would address Christoph's
> > conserns, is the following patch something like what you are sugesting?
> > This would make all the kdebug.h::notify_die() calls use the inline version.
>
> I think we need something more like this ...
>
> include/linux/notifier.h:
> +static inline int notifier_call_chain(struct notifier_block **n,
> + unsigned long val, void *v)
> +{
> + if (n)
> + return __notifier_call_chain(n, val, v);
> + return NOTIFY_DONE;
> +}
> kernel/sys.c:
> -int notifier_call_chain(struct notifier_block **n, unsigned long val, void *v)
> +int __notifier_call_chain(struct notifier_block **n, unsigned long val, void *v)
> -EXPORT_SYMBOL(notifier_call_chain);
> +EXPORT_SYMBOL(__notifier_call_chain);
>
> That way everyone gets both the quick test and the global size reduction.
And then do
#ifndef CONFIG_KPROBES
#define ia64die_chain 0
#endif
in include/asm-ia64/kdebug.h?
Otherwise we still check a notifier chain that cannot ever be
activated.
But then the patch is essentially the same as the last one I proposed.