kfifo API type safety
This patch enhances the type safety for the kfifo API. It is now safe to put const data into a non const FIFO and the API will now generate a compiler warning when reading from the fifo where the destination address is pointing to a const variable. As a side effect the kfifo_put() does now expect the value of an element instead a pointer to the element. This was suggested Russell King. It make the handling of the kfifo_put easier since there is no need to create a helper variable for getting the address of a pointer or to pass integers of different sizes. IMHO the API break is okay, since there are currently only six users of kfifo_put(). The code is also cleaner by kicking out the "if (0)" expressions. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Stefani Seibold <stefani@seibold.net> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
a019e48cfb
commit
498d319bb5
@@ -64,7 +64,7 @@ static int __init testfunc(void)
|
||||
|
||||
/* put values into the fifo */
|
||||
for (i = 0; i != 10; i++)
|
||||
kfifo_put(&test, &i);
|
||||
kfifo_put(&test, i);
|
||||
|
||||
/* show the number of used elements */
|
||||
printk(KERN_INFO "fifo len: %u\n", kfifo_len(&test));
|
||||
@@ -85,7 +85,7 @@ static int __init testfunc(void)
|
||||
kfifo_skip(&test);
|
||||
|
||||
/* put values into the fifo until is full */
|
||||
for (i = 20; kfifo_put(&test, &i); i++)
|
||||
for (i = 20; kfifo_put(&test, i); i++)
|
||||
;
|
||||
|
||||
printk(KERN_INFO "queue len: %u\n", kfifo_len(&test));
|
||||
|
Reference in New Issue
Block a user