2002-01-21 21:25:59

by Eric Weigle

[permalink] [raw]
Subject: [BUGLET][PATCH] #includes in asm-i386/checksum.h

Noticed this a while ago, still there in 2.4.17... checksum.h is not
self-consistent. Code which uses the file but does not know to include some
other headers first will get compile errors:

/usr/src/linux-2.4.17include/asm/checksum.h:159: warning: `struct in6_addr' declared inside parameter list
/usr/src/linux-2.4.17include/asm/checksum.h:159: warning: its scope is only this definition or declaration, which is probably not what you want.
/usr/src/linux-2.4.17include/asm/checksum.h: In function `csum_and_copy_to_user':
/usr/src/linux-2.4.17include/asm/checksum.h:188: warning: implicit declaration of function `access_ok'
/usr/src/linux-2.4.17include/asm/checksum.h:188: `VERIFY_WRITE' undeclared (first use in this function)
/usr/src/linux-2.4.17include/asm/checksum.h:188: (Each undeclared identifier is reported only once
/usr/src/linux-2.4.17include/asm/checksum.h:188: for each function it appears in.)

This only happens when one uses checksum.h without previously including the
other given headers, as might be done when people are writing some wack new
networking code (like me :)

Patch follows.

--------------------------------------------------------------------------------
--- checksum.h.original Thu Jul 26 14:41:22 2001
+++ checksum.h Mon Jan 21 14:17:50 2002
@@ -1,6 +1,11 @@
#ifndef _I386_CHECKSUM_H
#define _I386_CHECKSUM_H

+/* Required for 'struct in6_addr' */
+#include <net/ipv6.h>
+
+/* Required for 'VERIFY_WRITE' #define */
+#include <asm/uaccess.h>

/*
* computes the checksum of a memory block at buff, length len,
--------------------------------------------------------------------------------


Thanks,
-Eric

--
--------------------------------------------
Eric H. Weigle CCS-1, RADIANT team
[email protected] Los Alamos National Lab
(505) 665-4937 http://home.lanl.gov/ehw/
--------------------------------------------