Well,
trying to work backwards:
--- THE ERROR:
include/linux/skbuff.h: In function `usbatm_extract_cells':
include/linux/skbuff.h:693: warning: asm operand 1 probably doesn't
match constraints
--- USBATM.C:
static void usbatm_extract_cells([...])
{
[...]
struct sk_buff *sarb;
[...]
__skb_put(sarb, ATM_CELL_PAYLOAD); /* <-- call
producing error */
[...]
}
--- SKBUFF.H:
#define SKB_LINEAR_ASSERT(skb) BUG_ON(skb_is_nonlinear(skb))
static inline unsigned char *__skb_put(
struct sk_buff *skb, unsigned int len)
{
unsigned char *tmp = skb->tail;
SKB_LINEAR_ASSERT(skb); /* <--- error message */
[...]
}
Hmm, I'm not particularly familiar with C, but it looks like we have
same types everywhere. Does it have something to do with
skb_is_nonlinear..? Why does it not match constraints..? Just guessing
now as it came to my mind: could it have something to do with
optimizations? I'll try w/o them in a few minutes (have -march=pentium2
-pipe -fomit-frame-pointer now).
--
David Ciecierski
Want control, education, and security from your operating system?
Hardened Linux From Scratch
http://www.linuxfromscratch.org/hlfs