Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
b482ad5d
Commit
b482ad5d
authored
Dec 07, 2006
by
Paul Mundt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sh: Shut up csum_ipv6_magic() warnings.
Signed-off-by:
Paul Mundt
<
lethal@linux-sh.org
>
parent
b9b382da
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
35 deletions
+34
-35
include/asm-sh/checksum.h
include/asm-sh/checksum.h
+34
-35
No files found.
include/asm-sh/checksum.h
View file @
b482ad5d
...
...
@@ -34,25 +34,26 @@ asmlinkage __wsum csum_partial(const void *buff, int len, __wsum sum);
*/
asmlinkage
__wsum
csum_partial_copy_generic
(
const
void
*
src
,
void
*
dst
,
int
len
,
__wsum
sum
,
int
*
src_err_ptr
,
int
*
dst_err_ptr
);
int
len
,
__wsum
sum
,
int
*
src_err_ptr
,
int
*
dst_err_ptr
);
/*
* Note: when you get a NULL pointer exception here this means someone
* passed in an incorrect kernel address to one of these functions.
*
* If you use these functions directly please don't forget the
* passed in an incorrect kernel address to one of these functions.
*
* If you use these functions directly please don't forget the
* access_ok().
*/
static
__inline__
static
inline
__wsum
csum_partial_copy_nocheck
(
const
void
*
src
,
void
*
dst
,
int
len
,
__wsum
sum
)
int
len
,
__wsum
sum
)
{
return
csum_partial_copy_generic
(
src
,
dst
,
len
,
sum
,
NULL
,
NULL
);
return
csum_partial_copy_generic
(
src
,
dst
,
len
,
sum
,
NULL
,
NULL
);
}
static
__inline__
static
inline
__wsum
csum_partial_copy_from_user
(
const
void
__user
*
src
,
void
*
dst
,
int
len
,
__wsum
sum
,
int
*
err_ptr
)
int
len
,
__wsum
sum
,
int
*
err_ptr
)
{
return
csum_partial_copy_generic
((
__force
const
void
*
)
src
,
dst
,
len
,
sum
,
err_ptr
,
NULL
);
...
...
@@ -62,7 +63,7 @@ __wsum csum_partial_copy_from_user(const void __user *src, void *dst,
* Fold a partial checksum
*/
static
__inline__
__sum16
csum_fold
(
__wsum
sum
)
static
inline
__sum16
csum_fold
(
__wsum
sum
)
{
unsigned
int
__dummy
;
__asm__
(
"swap.w %0, %1
\n\t
"
...
...
@@ -85,7 +86,7 @@ static __inline__ __sum16 csum_fold(__wsum sum)
* i386 version by Jorge Cwik <jorge@laser.satlink.net>, adapted
* for linux by * Arnt Gulbrandsen.
*/
static
__inline__
__sum16
ip_fast_csum
(
const
void
*
iph
,
unsigned
int
ihl
)
static
inline
__sum16
ip_fast_csum
(
const
void
*
iph
,
unsigned
int
ihl
)
{
unsigned
int
sum
,
__dummy0
,
__dummy1
;
...
...
@@ -113,10 +114,10 @@ static __inline__ __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
return
csum_fold
(
sum
);
}
static
__inline__
__wsum
csum_tcpudp_nofold
(
__be32
saddr
,
__be32
daddr
,
unsigned
short
len
,
unsigned
short
proto
,
__wsum
sum
)
static
inline
__wsum
csum_tcpudp_nofold
(
__be32
saddr
,
__be32
daddr
,
unsigned
short
len
,
unsigned
short
proto
,
__wsum
sum
)
{
#ifdef __LITTLE_ENDIAN__
unsigned
long
len_proto
=
(
proto
+
len
)
<<
8
;
...
...
@@ -132,6 +133,7 @@ static __inline__ __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
:
"=r"
(
sum
),
"=r"
(
len_proto
)
:
"r"
(
daddr
),
"r"
(
saddr
),
"1"
(
len_proto
),
"0"
(
sum
)
:
"t"
);
return
sum
;
}
...
...
@@ -139,30 +141,28 @@ static __inline__ __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
* computes the checksum of the TCP/UDP pseudo-header
* returns a 16-bit checksum, already complemented
*/
static
__inline__
__sum16
csum_tcpudp_magic
(
__be32
saddr
,
__be32
daddr
,
unsigned
short
len
,
unsigned
short
proto
,
__wsum
sum
)
static
inline
__sum16
csum_tcpudp_magic
(
__be32
saddr
,
__be32
daddr
,
unsigned
short
len
,
unsigned
short
proto
,
__wsum
sum
)
{
return
csum_fold
(
csum_tcpudp_nofold
(
saddr
,
daddr
,
len
,
proto
,
sum
));
return
csum_fold
(
csum_tcpudp_nofold
(
saddr
,
daddr
,
len
,
proto
,
sum
));
}
/*
* this routine is used for miscellaneous IP-like checksums, mainly
* in icmp.c
*/
static
__inline__
__sum16
ip_compute_csum
(
const
void
*
buff
,
int
len
)
static
inline
__sum16
ip_compute_csum
(
const
void
*
buff
,
int
len
)
{
return
csum_fold
(
csum_partial
(
buff
,
len
,
0
));
return
csum_fold
(
csum_partial
(
buff
,
len
,
0
));
}
#define _HAVE_ARCH_IPV6_CSUM
#ifdef CONFIG_IPV6
static
__inline__
__sum16
csum_ipv6_magic
(
const
struct
in6_addr
*
saddr
,
const
struct
in6_addr
*
daddr
,
__u32
len
,
unsigned
short
proto
,
__wsum
sum
)
static
inline
__sum16
csum_ipv6_magic
(
const
struct
in6_addr
*
saddr
,
const
struct
in6_addr
*
daddr
,
__u32
len
,
unsigned
short
proto
,
__wsum
sum
)
{
unsigned
int
__dummy
;
__asm__
(
"clrt
\n\t
"
...
...
@@ -187,22 +187,21 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
"movt %1
\n\t
"
"add %1, %0
\n
"
:
"=r"
(
sum
),
"=&r"
(
__dummy
)
:
"r"
(
saddr
),
"r"
(
daddr
),
:
"r"
(
saddr
),
"r"
(
daddr
),
"r"
(
htonl
(
len
)),
"r"
(
htonl
(
proto
)),
"0"
(
sum
)
:
"t"
);
return
csum_fold
(
sum
);
}
#endif
/*
/*
* Copy and checksum to user
*/
#define HAVE_CSUM_COPY_USER
static
__inline__
__wsum
csum_and_copy_to_user
(
const
void
*
src
,
void
__user
*
dst
,
int
len
,
__wsum
sum
,
int
*
err_ptr
)
static
inline
__wsum
csum_and_copy_to_user
(
const
void
*
src
,
void
__user
*
dst
,
int
len
,
__wsum
sum
,
int
*
err_ptr
)
{
if
(
access_ok
(
VERIFY_WRITE
,
dst
,
len
))
return
csum_partial_copy_generic
((
__force
const
void
*
)
src
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment