Looking at the code, it seems that dev_no and friends are really ints.
They are defined by the return value of sound_install_audiodrv (defined as
returning int) and used in array indexing (good hint that they should be rather
small integers). The reason for the warning is that this int is passed to
request_irq which expects a void* (most likely an argument that request_irq
never uses directly but rather stores somewhere and passes verbatim to the
interrupt handler. A poor man's closure, bascially).
So all what the code relies on is not `(foo*)(int)(foo*)x == (foo*)x' but
`(int)(void*)(int)x == (int)x' which is the case pretty much everywhere
(I'm not sure what ANSI C has to say about it, though).
Stefan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/