[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <29346.1165237409@redhat.com>
Date: Mon, 04 Dec 2006 13:03:29 +0000
From: David Howells <dhowells@...hat.com>
To: Russell King <rmk+lkml@....linux.org.uk>
Cc: David Howells <dhowells@...hat.com>, Pavel Machek <pavel@....cz>,
Roman Zippel <zippel@...ux-m68k.org>,
Al Viro <viro@....linux.org.uk>,
Thomas Gleixner <tglx@...utronix.de>,
Matthew Wilcox <matthew@....cx>,
Linus Torvalds <torvalds@...l.org>, linux-arch@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [RFC] timers, pointers to functions and type safety
Russell King <rmk+lkml@....linux.org.uk> wrote:
> I assume you wanted to delete "data" ?
Yes.
> Your premise is two timer_lists which use one common handler.
>
> struct foo {
> struct timer_list timer1;
> strucr timer_list timer2;
> };
That's not what I was thinking of. I was thinking of something much simpler:
struct foo {
struct timer_list timer;
};
...
struct foo *a = kmalloc(sizeof(struct foo), GFP_KERNEL);
a->timer.fn = do_foo_timer;
...
struct foo *b = kmalloc(sizeof(struct foo), GFP_KERNEL);
b->timer.fn = do_foo_timer;
...
struct foo *c = kmalloc(sizeof(struct foo), GFP_KERNEL);
c->timer.fn = do_foo_timer;
...
struct foo *d = kmalloc(sizeof(struct foo), GFP_KERNEL);
d->timer.fn = do_foo_timer;
...
You've now got four copies of struct timer_list, but only one handler.
David
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists