All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ftp.linux.org.uk>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Matthew Wilcox <matthew@wil.cx>,
	Linus Torvalds <torvalds@osdl.org>,
	linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC] timers, pointers to functions and type safety
Date: Sat, 2 Dec 2006 18:48:21 +0000	[thread overview]
Message-ID: <20061202184821.GM3078@ftp.linux.org.uk> (raw)
In-Reply-To: <20061202184035.GL3078@ftp.linux.org.uk>

On Sat, Dec 02, 2006 at 06:40:35PM +0000, Al Viro wrote:
> On Sat, Dec 02, 2006 at 07:27:56PM +0100, Thomas Gleixner wrote:
> > On Sat, 2006-12-02 at 18:19 +0000, Al Viro wrote:
> > > > This is going to make a lot of data structures smaller, when the
> > > > timer_list is embedded in the structure itself and for the lot, which
> > > > ignores the timer callback argument anyway.
> > > 
> > > container_of => still lousy type safety.  All over the sodding place.
> > 
> > Not less than timer->data, where timer data is void *
> 
> RTFPosting.  It might be void *, but it's set via SETUP_TIMER which
> does type checks before casting to void *.
> 
> IOW, I don't want _any_ typecasts/container_of necessary in the code.
> 
> Sane variant is
> 
> void foo_timer(struct net_device *dev)
> {
> 	...
> }
> 
> 	struct foo_dev *p = netdev_priv(dev);
> 	SETUP_TIMER(&p->timer, foo_timer, dev);
> 
> etc.
> 
> With warning generated if foo_timer(dev) would not be type safe.  Without
> typecasts.  Without container_of().  Without any bleeding cruft at all.

BTW, the same goes for tasklets and for work_struct.  Separate series,
obviously...

  reply	other threads:[~2006-12-02 18:48 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-01 17:21 [RFC] timers, pointers to functions and type safety Al Viro
2006-12-02  6:29 ` Daniel Berlin
2006-12-02 12:36   ` Al Viro
2006-12-02  9:23 ` Kyle Moffett
2006-12-02 12:42   ` Al Viro
2006-12-02 20:53     ` Kyle Moffett
2006-12-02 10:47 ` Arnd Bergmann
2006-12-02 12:59 ` Thomas Gleixner
2006-12-02 14:05   ` Al Viro
2006-12-02 14:45     ` Thomas Gleixner
2006-12-02 16:02       ` Matthew Wilcox
2006-12-02 18:06         ` Thomas Gleixner
2006-12-02 18:19           ` Al Viro
2006-12-02 18:27             ` Thomas Gleixner
2006-12-02 18:40               ` Al Viro
2006-12-02 18:48                 ` Al Viro [this message]
2006-12-02 21:43                 ` Roman Zippel
2006-12-02 21:59                   ` Al Viro
2006-12-02 22:13                     ` Roman Zippel
2006-12-02 22:40                       ` Al Viro
2006-12-02 23:06                         ` Roman Zippel
2006-12-03 10:21                           ` Pavel Machek
2006-12-03 11:27                             ` Russell King
2006-12-03 15:21                               ` Roman Zippel
2006-12-03 21:01                                 ` Pavel Machek
2006-12-03 22:52                                   ` Roman Zippel
2006-12-03 23:15                                     ` Pavel Machek
2006-12-04 11:14                               ` David Howells
2006-12-04 12:16                                 ` Russell King
2006-12-04 13:03                                   ` David Howells
2006-12-04 13:29                                     ` Russell King
2006-12-04 14:17                                       ` David Howells
2006-12-04 14:22                                         ` Russell King
2006-12-04 11:48             ` Ingo Molnar
2006-12-04 12:22               ` David Howells
2006-12-06  0:24                 ` Al Viro
2006-12-06 10:20                   ` David Howells
2006-12-12  9:59                   ` Ingo Molnar
2006-12-02 21:32         ` Roman Zippel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061202184821.GM3078@ftp.linux.org.uk \
    --to=viro@ftp.linux.org.uk \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthew@wil.cx \
    --cc=tglx@linutronix.de \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.