From 26ae4176f0d0e12d1bc750952f5491f5bdbb097a Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Fri, 9 Nov 2018 11:22:58 -0600 Subject: [PATCH] net/arp and net/icmpv6: don't call d_txavail directly since it may point to NULL --- net/arp/arp_send.c | 11 ++--------- net/icmpv6/icmpv6_autoconfig.c | 2 +- net/icmpv6/icmpv6_neighbor.c | 2 +- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/net/arp/arp_send.c b/net/arp/arp_send.c index 70bf12f752..ea54b4427c 100644 --- a/net/arp/arp_send.c +++ b/net/arp/arp_send.c @@ -342,16 +342,9 @@ int arp_send(in_addr_t ipaddr) state.snd_cb->priv = (FAR void *)&state; state.snd_cb->event = arp_send_eventhandler; - /* Notify the device driver that new TX data is available. - * NOTES: This is in essence what netdev_ipv4_txnotify() does, which - * is not possible to call since it expects a in_addr_t as - * its single argument to lookup the network interface. - */ + /* Notify the device driver that new TX data is available. */ - if (dev->d_txavail) - { - dev->d_txavail(dev); - } + netdev_txnotify_dev(dev); /* Wait for the send to complete or an error to occur. * net_lockedwait will also terminate if a signal is received. diff --git a/net/icmpv6/icmpv6_autoconfig.c b/net/icmpv6/icmpv6_autoconfig.c index 945ff6dfc1..5fa7e60587 100644 --- a/net/icmpv6/icmpv6_autoconfig.c +++ b/net/icmpv6/icmpv6_autoconfig.c @@ -243,7 +243,7 @@ static int icmpv6_send_message(FAR struct net_driver_s *dev, bool advertise) /* Notify the device driver that new TX data is available. */ - dev->d_txavail(dev); + netdev_txnotify_dev(dev); /* Wait for the send to complete or an error to occur * net_lockedwait will also terminate if a signal is received. diff --git a/net/icmpv6/icmpv6_neighbor.c b/net/icmpv6/icmpv6_neighbor.c index 7244329718..ced2d09fa5 100644 --- a/net/icmpv6/icmpv6_neighbor.c +++ b/net/icmpv6/icmpv6_neighbor.c @@ -349,7 +349,7 @@ int icmpv6_neighbor(const net_ipv6addr_t ipaddr) /* Notify the device driver that new TX data is available. */ - dev->d_txavail(dev); + netdev_txnotify_dev(dev); /* Wait for the send to complete or an error to occur. * net_lockedwait will also terminate if a signal is received.