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

Reply via email to