warning: pointer targets in passing argument * of 'csum*' differ in signedness
Subsystems (5)
PATCH 1/1 warning: pointer targets in passing argument * of 'csum*' differ in signedness
Hi,
Attached patch kills tons of gcc4 warnings.
Regards,
Paweł.
Signature · 3 lines
/* Copyright (C) 2003, SCO, Inc. This is valuable Intellectual Property. */
#define say(x) lie(x)arch/ia64/lib/csum_partial_copy.c | 11 ++++++----- arch/m32r/lib/csum_partial_copy.c | 7 +++---- arch/m68k/lib/checksum.c | 6 +++--- arch/m68knommu/lib/checksum.c | 5 +++-- arch/parisc/lib/checksum.c | 4 ++-- arch/sh64/lib/c-checksum.c | 8 ++++---- arch/um/include/sysdep-i386/checksum.h | 20 ++++++++++---------- arch/um/kernel/checksum.c | 12 ++++++------ arch/v850/lib/checksum.c | 4 ++-- arch/x86_64/lib/csum-wrappers.c | 6 +++--- include/asm-i386/checksum.h | 16 ++++++++-------- include/asm-mips/checksum.h | 10 +++++----- include/asm-parisc/checksum.h | 10 ++++++---- include/asm-sh/checksum.h | 12 ++++++------ include/asm-sparc/checksum.h | 8 ++++---- include/asm-sparc64/checksum.h | 12 +++++++----- include/asm-x86_64/checksum.h | 8 ++++---- include/linux/skbuff.h | 2 +- include/net/checksum.h | 4 ++-- include/net/sock.h | 2 +- 20 files changed, 86 insertions(+), 81 deletions(-)
arch/ia64/lib/csum_partial_copy.c +6 -5
@@ -105,8 +105,8 @@extern unsigned long do_csum (const unsigned char *,long );static unsigned int -do_csum_partial_copy_from_user (const char __user *src,char *dst,int len, -unsigned int psum,int *errp) +do_csum_partial_copy_from_user (const unsigned char __user *src,unsigned char *dst, +int len,unsigned int psum,int *errp) {unsigned long result;
@@ -129,8 +129,8 @@ }unsigned int -csum_partial_copy_from_user (const char __user *src,char *dst,int len, -unsigned int sum,int *errp) +csum_partial_copy_from_user (const unsigned char __user *src,unsigned char *dst, +int len,unsigned int sum,int *errp) {if (!access_ok (VERIFY_READ , src, len)) { *errp = -EFAULT ;
@@ -142,7 +142,8 @@ }unsigned int -csum_partial_copy_nocheck (const char __user *src,char *dst,int len,unsigned int sum) +csum_partial_copy_nocheck (const unsigned char __user *src,unsigned char *dst, +int len,unsigned int sum) {return do_csum_partial_copy_from_user (src, dst, len, sum,NULL ); }
arch/m32r/lib/csum_partial_copy.c +3 -4
@@ -27,7 +27,7 @@/* * Copy while checksumming, otherwise like csum_partial */ -unsigned int csum_partial_copy_nocheck (const char *src,char *dst, +unsigned int csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,unsigned int sum) { sum =csum_partial (src, len, sum);
@@ -41,9 +41,8 @@* Copy from userspace and compute checksum. If we catch an exception * then zero the rest of the buffer. */ -unsigned int csum_partial_copy_from_user (const char __user *src,char *dst, -int len,unsigned int sum, -int *err_ptr) +unsigned int csum_partial_copy_from_user (const unsigned char __user *src,unsigned char *dst, +int len,unsigned int sum,int *err_ptr) {int missing;
arch/m68k/lib/checksum.c +3 -3
@@ -134,8 +134,8 @@*/ unsigned int -csum_partial_copy_from_user (const char *src,char *dst,int len, -int sum,int *csum_err) +csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst, +int len,int sum,int *csum_err) {/* * GCC doesn't like more than 10 operands for the asm
@@ -326,7 +326,7 @@*/ unsigned int -csum_partial_copy_nocheck (const char *src,char *dst,int len,int sum) +csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,int sum) {unsigned long tmp1, tmp2; __asm__("movel %2,%4\n\t"
arch/m68knommu/lib/checksum.c +3 -2
@@ -139,7 +139,8 @@*/ unsigned int -csum_partial_copy_from_user (const char *src,char *dst,int len,int sum,int *csum_err) +csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst, +int len,int sum,int *csum_err) {if (csum_err) *csum_err =0 ;memcpy (dst, src, len);
@@ -151,7 +152,7 @@*/ unsigned int -csum_partial_copy (const char *src,char *dst,int len,int sum) +csum_partial_copy (const unsigned char *src,unsigned char *dst,int len,int sum) {memcpy (dst, src, len);return csum_partial (dst, len, sum);
arch/parisc/lib/checksum.c +2 -2
@@ -113,7 +113,7 @@/* * copy while checksumming, otherwise like csum_partial */ -unsigned int csum_partial_copy_nocheck (const char *src,char *dst, +unsigned int csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,unsigned int sum) {/*
@@ -131,7 +131,7 @@* Copy from userspace and compute checksum. If we catch an exception * then zero the rest of the buffer. */ -unsigned int csum_partial_copy_from_user (const char *src,char *dst, +unsigned int csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst,int len,unsigned int sum,int *err_ptr) {
arch/sh64/lib/c-checksum.c +4 -4
@@ -136,7 +136,7 @@/* Copy while checksumming, otherwise like csum_partial. */ unsigned int -csum_partial_copy (const char *src,char *dst,int len,unsigned int sum) +csum_partial_copy (const unsigned char *src,unsigned char *dst,int len,unsigned int sum) { sum =csum_partial (src, len, sum);memcpy (dst, src, len);
@@ -147,7 +147,7 @@/* Copy from userspace and compute checksum. If we catch an exception then zero the rest of the buffer. */ unsigned int -csum_partial_copy_from_user (const char *src,char *dst,int len, +csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst,int len,unsigned int sum,int *err_ptr) {int missing;
@@ -168,7 +168,7 @@/* Copy to userspace and compute checksum. */ unsigned int -csum_partial_copy_to_user (const char *src,char *dst,int len, +csum_partial_copy_to_user (const unsigned char *src,unsigned char *dst,int len,unsigned int sum,int *err_ptr) { sum =csum_partial (src, len, sum);
@@ -221,7 +221,7 @@// Post SIM: unsigned int -csum_partial_copy_nocheck (const char *src,char *dst,int len,unsigned int sum) +csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,unsigned int sum) {// unsigned dummy; pr_debug("csum_partial_copy_nocheck src %p dst %p len %d\n", src, dst,
arch/um/include/sysdep-i386/checksum.h +10 -10
@@ -31,10 +31,10 @@* better 64-bit) boundary */ -unsigned int csum_partial_copy_to (const char *src,char *dst,int len, -int sum,int *err_ptr); -unsigned int csum_partial_copy_from (const char *src,char *dst,int len, -int sum,int *err_ptr); +unsigned int csum_partial_copy_to (const unsigned char *src,unsigned char *dst, +int len,int sum,int *err_ptr); +unsigned int csum_partial_copy_from (const unsigned char *src,unsigned char *dst, +int len,int sum,int *err_ptr);/* * Note: when you get a NULL pointer exception here this means someone
@@ -45,7 +45,7 @@*/ static __inline__ -unsigned int csum_partial_copy_nocheck (const char *src,char *dst, +unsigned int csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,int sum) {memcpy (dst, src, len);
@@ -53,7 +53,7 @@ }static __inline__ -unsigned int csum_partial_copy_from_user (const char *src,char *dst, +unsigned int csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst,int len,int sum,int *err_ptr) {return csum_partial_copy_from (src, dst, len, sum, err_ptr);
@@ -67,7 +67,7 @@*/ #define csum_partial_copy_fromuser csum_partial_copy_from_user -unsigned int csum_partial_copy (const char *src,char *dst,int len,int sum); +unsigned int csum_partial_copy (const unsigned char *src,unsigned char *dst,int len,int sum);/* * This is a version of ip_compute_csum() optimized for IP headers,
@@ -192,9 +192,9 @@* Copy and checksum to user */ #define HAVE_CSUM_COPY_USER -static __inline__unsigned int csum_and_copy_to_user (const char *src, -char *dst,int len, -int sum,int *err_ptr) +static __inline__unsigned int csum_and_copy_to_user (const unsigned char *src, +unsigned char *dst, +int len,int sum,int *err_ptr) {if (access_ok (VERIFY_WRITE , dst, len))return (csum_partial_copy_to (src, dst, len, sum, err_ptr));
arch/um/kernel/checksum.c +6 -6
@@ -2,17 +2,17 @@#include "linux/errno.h" #include "linux/module.h" -extern unsigned int arch_csum_partial (const char *buff,int len,int sum); +extern unsigned int arch_csum_partial (const unsigned char *buff,int len,int sum); -extern unsigned int csum_partial (char *buff,int len,int sum) +extern unsigned int csum_partial (unsigned char *buff,int len,int sum) {return (arch_csum_partial (buff, len, sum)); }EXPORT_SYMBOL (csum_partial); -unsigned int csum_partial_copy_to (const char *src,char *dst,int len, -int sum,int *err_ptr) +unsigned int csum_partial_copy_to (const unsigned char *src,unsigned char *dst, +int len,int sum,int *err_ptr) {if (copy_to_user (dst, src, len)){ *err_ptr = -EFAULT ;
@@ -22,8 +22,8 @@return (arch_csum_partial (src, len, sum)); } -unsigned int csum_partial_copy_from (const char *src,char *dst,int len, -int sum,int *err_ptr) +unsigned int csum_partial_copy_from (const unsigned char *src,unsigned char *dst, +int len,int sum,int *err_ptr) {if (copy_from_user (dst, src, len)){ *err_ptr = -EFAULT ;
arch/v850/lib/checksum.c +2 -2
@@ -121,7 +121,7 @@/* * copy while checksumming, otherwise like csum_partial */ -unsigned int csum_partial_copy (const char *src,char *dst, +unsigned int csum_partial_copy (const unsigned char *src,unsigned char *dst,int len,unsigned int sum) {/*
@@ -138,7 +138,7 @@* Copy from userspace and compute checksum. If we catch an exception * then zero the rest of the buffer. */ -unsigned int csum_partial_copy_from_user (const char *src,char *dst, +unsigned int csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst,int len,unsigned int sum,int *err_ptr) {
arch/x86_64/lib/csum-wrappers.c +3 -3
@@ -19,7 +19,7 @@* src and dst are best aligned to 64bits. */ unsigned int -csum_partial_copy_from_user (const char __user *src,char *dst, +csum_partial_copy_from_user (const unsigned char __user *src,unsigned char *dst,int len,unsigned int isum,int *errp) {might_sleep ();
@@ -67,7 +67,7 @@* src and dst are best aligned to 64bits. */ unsigned int -csum_partial_copy_to_user (const char *src,char __user *dst, +csum_partial_copy_to_user (unsigned const char *src,unsigned char __user *dst,int len,unsigned int isum,int *errp) {might_sleep ();
@@ -105,7 +105,7 @@* Returns an 32bit unfolded checksum of the buffer. */ unsigned int -csum_partial_copy_nocheck (const char *src,char *dst,int len,unsigned int sum) +csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,unsigned int sum) {return csum_partial_copy_generic (src,dst,len,sum,NULL ,NULL ); }
include/asm-i386/checksum.h +8 -8
@@ -25,8 +25,8 @@* better 64-bit) boundary */ -asmlinkage unsigned int csum_partial_copy_generic( const char *src, char *dst, int len, int sum, -int *src_err_ptr,int *dst_err_ptr); +asmlinkage unsigned int csum_partial_copy_generic(const unsigned char *src, unsigned char *dst, +int len,int sum,int *src_err_ptr,int *dst_err_ptr);/* * Note: when you get a NULL pointer exception here this means someone
@@ -36,18 +36,18 @@* verify_area(). */ static __inline__ -unsigned int csum_partial_copy_nocheck (const char *src,char *dst, +unsigned int csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,int sum) {return csum_partial_copy_generic ( src, dst, len, sum,NULL ,NULL ); }static __inline__ -unsigned int csum_partial_copy_from_user (const char __user *src,char *dst, +unsigned int csum_partial_copy_from_user (const unsigned char __user *src,unsigned char *dst,int len,int sum,int *err_ptr) {might_sleep (); -return csum_partial_copy_generic ((__force char *)src, dst, +return csum_partial_copy_generic ((__force unsigned char *)src, dst, len, sum, err_ptr,NULL ); }
@@ -174,14 +174,14 @@* Copy and checksum to user */ #define HAVE_CSUM_COPY_USER -static __inline__unsigned int csum_and_copy_to_user (const char *src, -char __user *dst, +static __inline__unsigned int csum_and_copy_to_user (const unsigned char *src, +unsigned char __user *dst,int len,int sum,int *err_ptr) {might_sleep ();if (access_ok (VERIFY_WRITE , dst, len)) -return csum_partial_copy_generic (src, (__force char *)dst, len, sum,NULL , err_ptr); +return csum_partial_copy_generic (src, (__force unsigned char *)dst, len, sum,NULL , err_ptr);if (len) *err_ptr = -EFAULT ;
include/asm-mips/checksum.h +5 -5
@@ -34,15 +34,15 @@* this is a new version of the above that records errors it finds in *errp, * but continues and zeros the rest of the buffer. */ -unsigned int csum_partial_copy_from_user (const char *src,char *dst,int len, +unsigned int csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst,int len,unsigned int sum,int *errp);/* * Copy and checksum to user */ #define HAVE_CSUM_COPY_USER -static inline unsigned int csum_and_copy_to_user (const char *src, -char __user *dst, +static inline unsigned int csum_and_copy_to_user (const unsigned char *src, +unsigned char __user *dst,int len,int sum,int *err_ptr) {
@@ -61,8 +61,8 @@* the same as csum_partial, but copies from user space (but on MIPS * we have just one address space, so this is identical to the above) */ -unsigned int csum_partial_copy_nocheck (const char *src,char *dst,int len, -unsigned int sum); +unsigned int csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst, +int len,unsigned int sum);/* * Fold a partial checksum without adding pseudo headers
include/asm-parisc/checksum.h +6 -4
@@ -23,13 +23,15 @@* Here even more important to align src and dst on a 32-bit (or even * better 64-bit) boundary */ -extern unsigned int csum_partial_copy_nocheck (const char *,char *,int ,unsigned int ); +extern unsigned int csum_partial_copy_nocheck (const unsigned char *,unsigned char *, +int ,unsigned int );/* * this is a new version of the above that records errors it finds in *errp, * but continues and zeros the rest of the buffer. */ -extern unsigned int csum_partial_copy_from_user (const char *src,char *dst,int len,unsigned int sum,int *errp); +extern unsigned int csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst, +int len,unsigned int sum,int *errp);/* * Optimized for IP headers, which always checksum on 4 octet boundaries.
@@ -191,8 +193,8 @@* Copy and checksum to user */ #define HAVE_CSUM_COPY_USER -static __inline__unsigned int csum_and_copy_to_user (const char *src, -char __user *dst, +static __inline__unsigned int csum_and_copy_to_user (const unsigned char *src, +unsigned char __user *dst,int len,int sum,int *err_ptr) {
include/asm-sh/checksum.h +6 -6
@@ -34,8 +34,8 @@* better 64-bit) boundary */ -asmlinkage unsigned int csum_partial_copy_generic( const char *src, char *dst, int len, int sum, -int *src_err_ptr,int *dst_err_ptr); +asmlinkage unsigned int csum_partial_copy_generic(const unsigned char *src, unsigned char *dst, +int len,int sum,int *src_err_ptr,int *dst_err_ptr);/* * Note: when you get a NULL pointer exception here this means someone
@@ -45,14 +45,14 @@* verify_area(). */ static __inline__ -unsigned int csum_partial_copy_nocheck (const char *src,char *dst, +unsigned int csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,int sum) {return csum_partial_copy_generic ( src, dst, len, sum,NULL ,NULL ); }static __inline__ -unsigned int csum_partial_copy_from_user (const char *src,char *dst, +unsigned int csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst,int len,int sum,int *err_ptr) {return csum_partial_copy_generic ( src, dst, len, sum, err_ptr,NULL );
@@ -200,8 +200,8 @@* Copy and checksum to user */ #define HAVE_CSUM_COPY_USER -static __inline__unsigned int csum_and_copy_to_user (const char *src, -char __user *dst, +static __inline__unsigned int csum_and_copy_to_user (const unsigned char *src, +unsigned char __user *dst,int len,int sum,int *err_ptr) {
include/asm-sparc/checksum.h +4 -4
@@ -39,10 +39,10 @@* better 64-bit) boundary */ -extern unsigned int __csum_partial_copy_sparc_generic (const char *,char *); +extern unsigned int __csum_partial_copy_sparc_generic (const unsigned char *,unsigned char *);static inline unsigned int -csum_partial_copy_nocheck (const char *src,char *dst,int len, +csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,unsigned int sum) { register unsigned int ret asm("o0") = (unsigned int)src;
@@ -61,7 +61,7 @@ }static inline unsigned int -csum_partial_copy_from_user (const char *src,char *dst,int len, +csum_partial_copy_from_user (const unsigned char *src,unsigned char *dst,int len,unsigned int sum,int *err) {if (!access_ok (VERIFY_READ , src, len)) {
@@ -91,7 +91,7 @@ }static inline unsigned int -csum_partial_copy_to_user (const char *src,char __user *dst,int len, +csum_partial_copy_to_user (const unsigned char *src,unsigned char __user *dst,int len,unsigned int sum,int *err) {if (!access_ok (VERIFY_WRITE , dst, len)) {
include/asm-sparc64/checksum.h +7 -5
@@ -38,10 +38,11 @@* here even more important to align src and dst on a 32-bit (or even * better 64-bit) boundary */ -extern unsigned int csum_partial_copy_sparc64 (const char *src,char *dst,int len,unsigned int sum); +extern unsigned int csum_partial_copy_sparc64 (const unsigned char *src,unsigned char *dst, +int len,unsigned int sum);static inline unsigned int -csum_partial_copy_nocheck (const char *src,char *dst,int len, +csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,unsigned int sum) {int ret;
@@ -53,7 +54,7 @@ }static inline unsigned int -csum_partial_copy_from_user (const char __user *src,char *dst,int len, +csum_partial_copy_from_user (const unsigned char __user *src,unsigned char *dst,int len,unsigned int sum,int *err) { __asm__ __volatile__ ("stx %0, [%%sp + 0x7ff + 128]"
@@ -66,10 +67,11 @@* Copy and checksum to user */ #define HAVE_CSUM_COPY_USER -extern unsigned int csum_partial_copy_user_sparc64 (const char *src,char __user *dst,int len,unsigned int sum); +extern unsigned int csum_partial_copy_user_sparc64 (const unsigned char *src,unsigned char __user *dst, +int len,unsigned int sum);static inline unsigned int -csum_and_copy_to_user (const char *src,char __user *dst,int len, +csum_and_copy_to_user (const unsigned char *src,unsigned char __user *dst,int len,unsigned int sum,int *err) { __asm__ __volatile__ ("stx %0, [%%sp + 0x7ff + 128]"
include/asm-x86_64/checksum.h +4 -4
@@ -133,17 +133,17 @@/* Do not call this directly. Use the wrappers below */ -extern unsigned long csum_partial_copy_generic (const char *src,const char *dst, +extern unsigned long csum_partial_copy_generic (const unsigned char *src,const unsigned char *dst,unsigned len,unsigned sum,int *src_err_ptr,int *dst_err_ptr); -extern unsigned int csum_partial_copy_from_user (const char __user *src,char *dst, +extern unsigned int csum_partial_copy_from_user (const unsigned char __user *src,unsigned char *dst,int len,unsigned int isum,int *errp); -extern unsigned int csum_partial_copy_to_user (const char *src,char __user *dst, +extern unsigned int csum_partial_copy_to_user (const unsigned char *src,unsigned char __user *dst,int len,unsigned int isum,int *errp); -extern unsigned int csum_partial_copy_nocheck (const char *src,char *dst,int len, +extern unsigned int csum_partial_copy_nocheck (const unsigned char *src,unsigned char *dst,int len,unsigned int sum);/* Old names. To be removed. */
include/linux/skbuff.h +1 -1
@@ -1006,7 +1006,7 @@ }static inline int skb_add_data (struct sk_buff *skb, -char __user *from,int copy) +unsigned char __user *from,int copy) {const int off = skb->len;
include/net/checksum.h +2 -2
@@ -27,7 +27,7 @@#ifndef _HAVE_ARCH_COPY_AND_CSUM_FROM_USERstatic inline -unsigned int csum_and_copy_from_user (const char __user *src,char *dst, +unsigned int csum_and_copy_from_user (const unsigned char __user *src,unsigned char *dst,int len,int sum,int *err_ptr) {if (verify_area (VERIFY_READ , src, len) ==0 )
@@ -42,7 +42,7 @@#ifndef HAVE_CSUM_COPY_USER static __inline__unsigned int csum_and_copy_to_user -(const char *src,char __user *dst,int len,unsigned int sum,int *err_ptr) +(const unsigned char *src,unsigned char __user *dst,int len,unsigned int sum,int *err_ptr) { sum =csum_partial (src, len, sum);
include/net/sock.h +1 -1
@@ -1015,7 +1015,7 @@ sk->sk_forward_alloc -= skb->truesize; } -static inline int skb_copy_to_page (struct sock *sk,char __user *from, +static inline int skb_copy_to_page (struct sock *sk,unsigned char __user *from,struct sk_buff *skb,struct page *page,int off,int copy) {