* [PATCH] __initdata in dm.c
@ 2004-11-14 1:33 Andries Brouwer
0 siblings, 0 replies; only message in thread
From: Andries Brouwer @ 2004-11-14 1:33 UTC (permalink / raw)
To: torvalds, akpm; +Cc: linux-kernel
diff -uprN -X /linux/dontdiff a/drivers/md/dm.c b/drivers/md/dm.c
--- a/drivers/md/dm.c 2004-10-30 21:44:00.000000000 +0200
+++ b/drivers/md/dm.c 2004-11-14 00:46:47.000000000 +0100
@@ -138,23 +138,20 @@ static void local_exit(void)
DMINFO("cleaned up");
}
-/*
- * We have a lot of init/exit functions, so it seems easier to
- * store them in an array. The disposable macro 'xx'
- * expands a prefix into a pair of function names.
- */
-static struct {
- int (*init) (void);
- void (*exit) (void);
-
-} _inits[] = {
-#define xx(n) {n ## _init, n ## _exit},
- xx(local)
- xx(dm_target)
- xx(dm_linear)
- xx(dm_stripe)
- xx(dm_interface)
-#undef xx
+int (*_inits[])(void) __initdata = {
+ local_init,
+ dm_target_init,
+ dm_linear_init,
+ dm_stripe_init,
+ dm_interface_init,
+};
+
+void (*_exits[])(void) __exitdata = {
+ local_exit,
+ dm_target_exit,
+ dm_linear_exit,
+ dm_stripe_exit,
+ dm_interface_exit,
};
static int __init dm_init(void)
@@ -164,7 +161,7 @@ static int __init dm_init(void)
int r, i;
for (i = 0; i < count; i++) {
- r = _inits[i].init();
+ r = _inits[i]();
if (r)
goto bad;
}
@@ -173,17 +170,17 @@ static int __init dm_init(void)
bad:
while (i--)
- _inits[i].exit();
+ _exits[i]();
return r;
}
static void __exit dm_exit(void)
{
- int i = ARRAY_SIZE(_inits);
+ int i = ARRAY_SIZE(_exits);
while (i--)
- _inits[i].exit();
+ _exits[i]();
}
/*
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-11-14 1:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-11-14 1:33 [PATCH] __initdata in dm.c Andries Brouwer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome