X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ipc%2Fmsgutil.c;h=c82c215693d7c9c54ae93dfa90d7f162085900d5;hb=refs%2Fheads%2Fvserver;hp=e48d777de2a3b0167ad14cb216dd435b41b5309d;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/ipc/msgutil.c b/ipc/msgutil.c index e48d777de..c82c21569 100644 --- a/ipc/msgutil.c +++ b/ipc/msgutil.c @@ -1,5 +1,5 @@ /* - * linux/ipc/util.c + * linux/ipc/msgutil.c * Copyright (C) 1999, 2004 Manfred Spraul * * This file is released under GNU General Public Licence version 2 or @@ -25,7 +25,7 @@ struct msg_msgseg { #define DATALEN_MSG (PAGE_SIZE-sizeof(struct msg_msg)) #define DATALEN_SEG (PAGE_SIZE-sizeof(struct msg_msgseg)) -struct msg_msg *load_msg(void __user *src, int len) +struct msg_msg *load_msg(const void __user *src, int len) { struct msg_msg *msg; struct msg_msgseg **pseg; @@ -36,7 +36,7 @@ struct msg_msg *load_msg(void __user *src, int len) if (alen > DATALEN_MSG) alen = DATALEN_MSG; - msg = (struct msg_msg *)kmalloc(sizeof(*msg) + alen, GFP_KERNEL); + msg = kmalloc(sizeof(*msg) + alen, GFP_KERNEL); if (msg == NULL) return ERR_PTR(-ENOMEM); @@ -49,14 +49,14 @@ struct msg_msg *load_msg(void __user *src, int len) } len -= alen; - src = ((char *)src) + alen; + src = ((char __user *)src) + alen; pseg = &msg->next; while (len > 0) { struct msg_msgseg *seg; alen = len; if (alen > DATALEN_SEG) alen = DATALEN_SEG; - seg = (struct msg_msgseg *)kmalloc(sizeof(*seg) + alen, + seg = kmalloc(sizeof(*seg) + alen, GFP_KERNEL); if (seg == NULL) { err = -ENOMEM; @@ -70,7 +70,7 @@ struct msg_msg *load_msg(void __user *src, int len) } pseg = &seg->next; len -= alen; - src = ((char *)src) + alen; + src = ((char __user *)src) + alen; } err = security_msg_msg_alloc(msg); @@ -96,7 +96,7 @@ int store_msg(void __user *dest, struct msg_msg *msg, int len) return -1; len -= alen; - dest = ((char *)dest) + alen; + dest = ((char __user *)dest) + alen; seg = msg->next; while (len > 0) { alen = len; @@ -105,7 +105,7 @@ int store_msg(void __user *dest, struct msg_msg *msg, int len) if (copy_to_user(dest, seg + 1, alen)) return -1; len -= alen; - dest = ((char *)dest) + alen; + dest = ((char __user *)dest) + alen; seg = seg->next; } return 0;