Hi all:
I encounter one problem in
"int dev_queue_xmit(struct sk_buff *skb)"function.
"q = rcu_dereference(dev->qdisc);"
"rcu_dereference(dev->qdisc)" will return a non aligned pointer, so it will
crash my system,
so why this happend???Can you give some advice to avoid this.
q = rcu_dereference(dev->qdisc);
#ifdef CONFIG_NET_CLS_ACT
skb->tc_verd = SET_TC_AT(skb->tc_verd,AT_EGRESS);
#endif
if (q->enqueue) {
/* Grab device queue */
spin_lock(&dev->queue_lock);
q = dev->qdisc;
if (q->enqueue) {
rc = q->enqueue(skb, q);
qdisc_run(dev);
spin_unlock(&dev->queue_lock);
rc = rc == NET_XMIT_BYPASS ? NET_XMIT_SUCCESS : rc;
goto out;
}
spin_unlock(&dev->queue_lock);
}