linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] RFC: Typesafe callbacks
@ 2008-01-20  9:46 Rusty Russell
  2008-01-20  9:47 ` [PATCH 1/6] typesafe: Convert stop_machine and callers Rusty Russell
  2008-01-20 12:56 ` [PATCH 0/6] RFC: Typesafe callbacks Tejun Heo
  0 siblings, 2 replies; 24+ messages in thread
From: Rusty Russell @ 2008-01-20  9:46 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Andrew Morton, linux-kernel, Jeff Garzik, Tejun Heo

Hi all,

   Converting to and from void * for callback functions loses type safety: 
everywhere else we expect the compiler to catch incorrect pointer types 
handed to functions.

   It's pretty simple to create typesafe callback functions using typeof, and 
with a little gcc trickery we can allow both old-style and typesafe callbacks 
to avoid churn on commonly-used routines.

Feedback welcomed,
Rusty.

^ permalink raw reply	[flat|nested] 24+ messages in thread
* [PATCH 0/6] typesafe callbacks
@ 2008-04-20 22:58 Rusty Russell
  2008-04-20 23:05 ` [PATCH 3/6] typesafe: Convert stop_machine Rusty Russell
  0 siblings, 1 reply; 24+ messages in thread
From: Rusty Russell @ 2008-04-20 22:58 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andrew Morton, Al Viro, Linus Torvalds

The idea is to create a general typesafe callback mechanism which doesn't 
break compile on existing code and doesn't allow any unsafe callback types.

Al had a very long timer conversion series followed by a different mechanism, 
and that just covered timers; unfortunately that technique provides 
insufficient typechecking for the general case (eg. int return types and 
callback functions which take integer args as well as the data arg).

Note that these typechecks end up being *too* strict in some cases, 
disallowing some potentially valid cases.  But since you can still use the 
current via-void* method, these corner cases lose nothing.


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2008-04-20 23:09 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-20  9:46 [PATCH 0/6] RFC: Typesafe callbacks Rusty Russell
2008-01-20  9:47 ` [PATCH 1/6] typesafe: Convert stop_machine and callers Rusty Russell
2008-01-20  9:48   ` [PATCH 2/6] typesafe: kthread_create and kthread_run Rusty Russell
2008-01-20  9:50     ` [PATCH 3/6] typesafe: convert kthread users Rusty Russell
2008-01-20  9:51       ` [PATCH 4/6] typesafe: cast_if_type to allow macros functions which take more than one type Rusty Russell
2008-01-20  9:54         ` [PATCH 5/6] typesafe: request_irq and devm_request_irq Rusty Russell
2008-01-20  9:57           ` [PATCH 6/6] typesafe: timers Rusty Russell
2008-01-20 11:25     ` [PATCH 2/6] typesafe: kthread_create and kthread_run Jan Engelhardt
2008-01-20 12:07       ` Bert Wesarg
2008-01-20 16:24         ` Johannes Weiner
2008-01-20 16:43           ` Bert Wesarg
2008-01-20 22:04             ` Rusty Russell
2008-01-21  7:56               ` Bert Wesarg
2008-01-20 12:56 ` [PATCH 0/6] RFC: Typesafe callbacks Tejun Heo
2008-01-20 13:00   ` Tejun Heo
2008-01-20 22:17     ` Rusty Russell
2008-01-21 11:33       ` Rusty Russell
2008-01-21 12:38         ` Tejun Heo
2008-01-21 23:27           ` Rusty Russell
2008-01-21 23:57             ` Linus Torvalds
2008-01-22  7:16               ` Rusty Russell
2008-01-22 15:53                 ` Linus Torvalds
2008-01-22  4:20             ` Andi Kleen
2008-04-20 22:58 [PATCH 0/6] typesafe callbacks Rusty Russell
2008-04-20 23:05 ` [PATCH 3/6] typesafe: Convert stop_machine Rusty Russell
2008-04-20 23:07   ` [PATCH 4/6] typesafe: kthread_create and kthread_run Rusty Russell
2008-04-20 23:09     ` [PATCH 5/6] typesafe: request_irq and devm_request_irq Rusty Russell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).