Something like this will definitely be necessary, but is dev->netdev_ops really private to JUST THIS DEVICE? It's not shared or anything?
E On 09/25/2010 10:30 PM, Joonwoo Park wrote: > Signed-off-by: Joonwoo Park<[email protected]> > --- > 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); _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
