> I am a student, I think that skb has all the information
> that is needed for sending and receiving.So I get the skb
> pointer at NF_IP_POST_ROUTING, put it in a chain organized
> by myself (I use a spinlock_t lock to control the access of
> the chain, I named it mylock), and return NF_STOLEN.
> I make a tq_timer task to start ip_finish_output2(I export
> it from kernel),ip_finish_output2 use the skb from my chain.I
> can make ftp run ok for almost 1 hour, but then the system will
> carsh with this information:
> ds:0018 es:0018 ss:0018
> process swapper(pid:0, stackpage = c0265000)
> stack: c01a07ea c173a088 ...........
> call trace:[<c01a07ea>] [<c01a156d>]......
> code: 0f 0b 89 7c 24 04 b8 03 00 00 00......
> <0>kernel panic: Aiee, killing interrupt handler!
> In interrupt handler - not syncing!
You could try ksymoops to get some more info from the above. You
will get a call trace and that will reveal.