aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndi Kleen <andi@firstfloor.org>2010-01-15 20:01:12 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-01-16 15:15:38 -0500
commit8ecc2951534af10e04ddb5e5ff5c6d217b79f5c2 (patch)
tree44c8400754bc42a072fe7dc117696ebb5699920e
parent2427b8e3eaea3719e53bbed7b3375382c3aa6f13 (diff)
kfifo: use void * pointers for user buffers
The pointers to user buffers are currently unsigned char *, which requires a lot of casting in the caller for any non-char typed buffers. Use void * instead. Signed-off-by: Andi Kleen <ak@linux.intel.com> Acked-by: Stefani Seibold <stefani@seibold.net> Cc: Roland Dreier <rdreier@cisco.com> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Andy Walls <awalls@radix.net> Cc: Vikram Dhillon <dhillonv10@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/linux/kfifo.h10
-rw-r--r--kernel/kfifo.c8
2 files changed, 9 insertions, 9 deletions
diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h
index c4ac88b3c302..6fb495ea956a 100644
--- a/include/linux/kfifo.h
+++ b/include/linux/kfifo.h
@@ -104,15 +104,15 @@ union { \
104 104
105#undef __kfifo_initializer 105#undef __kfifo_initializer
106 106
107extern void kfifo_init(struct kfifo *fifo, unsigned char *buffer, 107extern void kfifo_init(struct kfifo *fifo, void *buffer,
108 unsigned int size); 108 unsigned int size);
109extern __must_check int kfifo_alloc(struct kfifo *fifo, unsigned int size, 109extern __must_check int kfifo_alloc(struct kfifo *fifo, unsigned int size,
110 gfp_t gfp_mask); 110 gfp_t gfp_mask);
111extern void kfifo_free(struct kfifo *fifo); 111extern void kfifo_free(struct kfifo *fifo);
112extern unsigned int kfifo_in(struct kfifo *fifo, 112extern unsigned int kfifo_in(struct kfifo *fifo,
113 const unsigned char *from, unsigned int len); 113 const void *from, unsigned int len);
114extern __must_check unsigned int kfifo_out(struct kfifo *fifo, 114extern __must_check unsigned int kfifo_out(struct kfifo *fifo,
115 unsigned char *to, unsigned int len); 115 void *to, unsigned int len);
116 116
117/** 117/**
118 * kfifo_reset - removes the entire FIFO contents 118 * kfifo_reset - removes the entire FIFO contents
@@ -194,7 +194,7 @@ static inline __must_check unsigned int kfifo_avail(struct kfifo *fifo)
194 * bytes copied. 194 * bytes copied.
195 */ 195 */
196static inline unsigned int kfifo_in_locked(struct kfifo *fifo, 196static inline unsigned int kfifo_in_locked(struct kfifo *fifo,
197 const unsigned char *from, unsigned int n, spinlock_t *lock) 197 const void *from, unsigned int n, spinlock_t *lock)
198{ 198{
199 unsigned long flags; 199 unsigned long flags;
200 unsigned int ret; 200 unsigned int ret;
@@ -219,7 +219,7 @@ static inline unsigned int kfifo_in_locked(struct kfifo *fifo,
219 * @to buffer and returns the number of copied bytes. 219 * @to buffer and returns the number of copied bytes.
220 */ 220 */
221static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo, 221static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo,
222 unsigned char *to, unsigned int n, spinlock_t *lock) 222 void *to, unsigned int n, spinlock_t *lock)
223{ 223{
224 unsigned long flags; 224 unsigned long flags;
225 unsigned int ret; 225 unsigned int ret;
diff --git a/kernel/kfifo.c b/kernel/kfifo.c
index e92d519f93b1..ab615e695052 100644
--- a/kernel/kfifo.c
+++ b/kernel/kfifo.c
@@ -28,7 +28,7 @@
28#include <linux/log2.h> 28#include <linux/log2.h>
29#include <linux/uaccess.h> 29#include <linux/uaccess.h>
30 30
31static void _kfifo_init(struct kfifo *fifo, unsigned char *buffer, 31static void _kfifo_init(struct kfifo *fifo, void *buffer,
32 unsigned int size) 32 unsigned int size)
33{ 33{
34 fifo->buffer = buffer; 34 fifo->buffer = buffer;
@@ -44,7 +44,7 @@ static void _kfifo_init(struct kfifo *fifo, unsigned char *buffer,
44 * @size: the size of the internal buffer, this have to be a power of 2. 44 * @size: the size of the internal buffer, this have to be a power of 2.
45 * 45 *
46 */ 46 */
47void kfifo_init(struct kfifo *fifo, unsigned char *buffer, unsigned int size) 47void kfifo_init(struct kfifo *fifo, void *buffer, unsigned int size)
48{ 48{
49 /* size must be a power of 2 */ 49 /* size must be a power of 2 */
50 BUG_ON(!is_power_of_2(size)); 50 BUG_ON(!is_power_of_2(size));
@@ -235,7 +235,7 @@ EXPORT_SYMBOL(__kfifo_in_n);
235 * Note that with only one concurrent reader and one concurrent 235 * Note that with only one concurrent reader and one concurrent
236 * writer, you don't need extra locking to use these functions. 236 * writer, you don't need extra locking to use these functions.
237 */ 237 */
238unsigned int kfifo_in(struct kfifo *fifo, const unsigned char *from, 238unsigned int kfifo_in(struct kfifo *fifo, const void *from,
239 unsigned int len) 239 unsigned int len)
240{ 240{
241 len = min(kfifo_avail(fifo), len); 241 len = min(kfifo_avail(fifo), len);
@@ -277,7 +277,7 @@ EXPORT_SYMBOL(__kfifo_out_n);
277 * Note that with only one concurrent reader and one concurrent 277 * Note that with only one concurrent reader and one concurrent
278 * writer, you don't need extra locking to use these functions. 278 * writer, you don't need extra locking to use these functions.
279 */ 279 */
280unsigned int kfifo_out(struct kfifo *fifo, unsigned char *to, unsigned int len) 280unsigned int kfifo_out(struct kfifo *fifo, void *to, unsigned int len)
281{ 281{
282 len = min(kfifo_len(fifo), len); 282 len = min(kfifo_len(fifo), len);
283 283