All Ethernet drivers (again): Missed one place where arp_out() is called and neighber_out() needs to be called

This commit is contained in:
Gregory Nutt
2015-01-21 11:36:33 -06:00
parent 5e23a855ec
commit 32d2a4c548
21 changed files with 485 additions and 22 deletions
+24 -1
View File
@@ -1204,7 +1204,30 @@ static int enc_txpoll(struct net_driver_s *dev)
nllvdbg("Poll result: d_len=%d\n", priv->dev.d_len);
if (priv->dev.d_len > 0)
{
arp_out(&priv->dev);
/* Look up the destination MAC address and add it to the Ethernet
* header.
*/
#ifdef CONFIG_NET_IPv4
#ifdef CONFIG_NET_IPv6
if (IFF_IS_IPv4(priv->dev.d_flags))
#endif
{
arp_out(&priv->dev);
}
#endif /* CONFIG_NET_IPv4 */
#ifdef CONFIG_NET_IPv6
#ifdef CONFIG_NET_IPv4
else
#endif
{
neighbor_out(&priv->dev);
}
#endif /* CONFIG_NET_IPv6 */
/* Send the packet */
enc_transmit(priv);
/* Stop the poll now because we can queue only one packet */