On Sun, Aug 30, 2015 at 11:48:28PM +0200, Stefan Schmidt wrote: > Hello. > > On 20/08/15 18:47, Alexander Aring wrote: > >This patch moves the open count handling while doing open of a lowpan > >interface. We need the packet handler register at first when one lowpan > >interface is up. > The code itself looks fine, but I have trouble to gte the why from your > commit message. Why is this change needed? > It's a slightly improvement. There exists a small case when ALL lowpan interfaces are down and the ieee802154_6lowpan module still receives frames. We don't need to receive frames when all lowpan interfaces are down. This will end always in the upcomming (!netif_running(ldev)) condition. Does it sounds useful? > >Signed-off-by: Alexander Aring <alex.aring@xxxxxxxxx> > >--- > > net/ieee802154/6lowpan/core.c | 28 ++++++++++++++++++---------- > > 1 file changed, 18 insertions(+), 10 deletions(-) > > > >diff --git a/net/ieee802154/6lowpan/core.c b/net/ieee802154/6lowpan/core.c > >index 3cc76f0..8e9da1d 100644 > >--- a/net/ieee802154/6lowpan/core.c > >+++ b/net/ieee802154/6lowpan/core.c > >@@ -76,9 +76,27 @@ static int lowpan_dev_init(struct net_device *ldev) > > return 0; > > } > >+static int lowpan_open(struct net_device *dev) > >+{ > >+ if (!open_count) > >+ lowpan_rx_init(); > >+ open_count++; > >+ return 0; > >+} > >+ > >+static int lowpan_stop(struct net_device *dev) > >+{ > >+ open_count--; > >+ if (!open_count) > >+ lowpan_rx_exit(); > >+ return 0; > >+} > >+ > > static const struct net_device_ops lowpan_netdev_ops = { > > .ndo_init = lowpan_dev_init, > > .ndo_start_xmit = lowpan_xmit, > >+ .ndo_open = lowpan_open, > >+ .ndo_stop = lowpan_stop, > > }; > > static void lowpan_setup(struct net_device *ldev) > >@@ -149,11 +167,6 @@ static int lowpan_newlink(struct net *src_net, struct net_device *ldev, > > } > > wdev->ieee802154_ptr->lowpan_dev = ldev; > >- if (!open_count) > >- lowpan_rx_init(); > >- > >- open_count++; > >- > > return 0; > > } > >@@ -163,11 +176,6 @@ static void lowpan_dellink(struct net_device *ldev, struct list_head *head) > > ASSERT_RTNL(); > >- open_count--; > >- > >- if (!open_count) > >- lowpan_rx_exit(); > >- > > wdev->ieee802154_ptr->lowpan_dev = NULL; > > unregister_netdevice(ldev); > > dev_put(wdev); > > Signed-off-by: Stefan Schmidt <stefan@xxxxxxxxxxxxxxx> > Why is this a SOB? - Alex -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html