lkml.org 
[lkml]   [1999]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectcompile problems with 2.2.2, possible fix
Hi all,

It seems a patch slipped through in 2.2.2 (both the full distribution as well as the patch from 2.2.1). The patch from 2.2.2-pre5 does not work as it should, so I patched it to get it to compile on my (glibc-2.1/egcs 1.1.1) box. This is what resulted:


*** include/linux/filter.h.orig Tue Feb 23 16:58:17 1999
--- include/linux/filter.h Tue Feb 23 17:10:13 1999
***************
*** 30,35 ****
--- 30,49 ----
struct sock_filter *filter;
};

+ #ifdef __KERNEL__
+ struct sk_filter
+ {
+ atomic_t refcnt;
+ unsigned int len; /* Number of filter blocks */
+ struct sock_filter insns[0];
+ };
+
+ extern __inline__ unsigned int sk_filter_len(struct sk_filter *fp)
+ {
+ return fp->len*sizeof(struct sock_filter) + sizeof(*fp);
+ }
+ #endif
+
/*
* Instruction classes
*/
***************
*** 86,106 ****
#define BPF_TAX 0x00
#define BPF_TXA 0x80

! #define BPF_MAXINSNS 512

/*
* Macros for filter block array initializers.
*/
#define BPF_STMT(code, k) { (unsigned short)(code), 0, 0, k }
#define BPF_JUMP(code, k, jt, jf) { (unsigned short)(code), jt, jf, k }

/*
* Number of scratch memory words for: BPF_ST and BPF_STX
*/
#define BPF_MEMWORDS 16

#ifdef __KERNEL__
! extern int sk_run_filter(unsigned char *data, int len, struct sock_filter *filter, int flen);
extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk);
#endif /* __KERNEL__ */

--- 100,139 ----
#define BPF_TAX 0x00
#define BPF_TXA 0x80

! #ifndef BPF_MAXINSNS
! #define BPF_MAXINSNS 4096
! #endif

/*
* Macros for filter block array initializers.
*/
+ #ifndef BPF_STMT
#define BPF_STMT(code, k) { (unsigned short)(code), 0, 0, k }
+ #endif
+ #ifndef BPF_JUMP
#define BPF_JUMP(code, k, jt, jf) { (unsigned short)(code), jt, jf, k }
+ #endif

/*
* Number of scratch memory words for: BPF_ST and BPF_STX
*/
#define BPF_MEMWORDS 16

+ /* RATIONALE. Negative offsets are invalid in BPF.
+ We use them to reference ancillary data.
+ Unlike introduction new instructions, it does not break
+ existing compilers/optimizers.
+ */
+ #define SKF_AD_OFF (-0x1000)
+ #define SKF_AD_PROTOCOL 0
+ #define SKF_AD_PKTTYPE 4
+ #define SKF_AD_IFINDEX 8
+ #define SKF_AD_MAX 12
+ #define SKF_NET_OFF (-0x100000)
+ #define SKF_LL_OFF (-0x200000)
+
#ifdef __KERNEL__
! extern int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen);
extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk);
#endif /* __KERNEL__ */


--
WWWWW ___________________________
## o o\ / Frank de Lange \
}# \| / +31-70-3712708 day \
##---# _/ +31-320-252965 night \
#### \frank.de.lange@inet.unisource.nl/
\ frank@animalhouse.ml.org /
------------------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:50    [W:0.037 / U:0.356 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site