Signed-off-by: Joonwoo Park <joonwpar...@gmail.com> --- elements/linuxmodule/fromhost.cc | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/elements/linuxmodule/fromhost.cc b/elements/linuxmodule/fromhost.cc index 8c26fc5..9062098 100644 --- a/elements/linuxmodule/fromhost.cc +++ b/elements/linuxmodule/fromhost.cc @@ -134,12 +134,21 @@ FromHost::new_device(const char *name) #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) setup(dev); #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 32) dev->open = fl_open; dev->stop = fl_close; dev->hard_start_xmit = fl_tx; dev->get_stats = fl_stats; dev->mtu = _mtu; dev->tx_queue_len = 0; +#else + ((struct net_device_ops*)(dev->netdev_ops))->ndo_open = fl_open; + ((struct net_device_ops*)(dev->netdev_ops))->ndo_stop = fl_close; + ((struct net_device_ops*)(dev->netdev_ops))->ndo_start_xmit = fl_tx; + ((struct net_device_ops*)(dev->netdev_ops))->ndo_get_stats = fl_stats; + dev->mtu = _mtu; + dev->tx_queue_len = 0; +#endif return dev; } @@ -175,7 +184,11 @@ FromHost::configure(Vector<String> &conf, ErrorHandler *errh) // check for existing device _dev = AnyDevice::get_by_name(_devname.c_str()); if (_dev) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 32) if (_dev->open != fl_open) { +#else + if (_dev->netdev_ops->ndo_open != fl_open) { +#endif dev_put(_dev); _dev = 0; return errh->error("device '%s' already exists", _devname.c_str()); @@ -410,10 +423,14 @@ FromHost::fl_tx(struct sk_buff *skb, net_device *dev) #if HAVE_SKB_DST_DROP skb_dst_drop(skb); #else +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 35) if (skb->dst) { dst_release(skb->dst); skb->dst = 0; } +#else + dst_release(skb_dst(skb)); +#endif #endif Packet *p = Packet::make(skb); -- 1.7.0.4 _______________________________________________ click mailing list click@amsterdam.lcs.mit.edu https://amsterdam.lcs.mit.edu/mailman/listinfo/click