This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit f6922e65599d50f171e60719d3103d699c62bdba
Author: Bowen Wang <[email protected]>
AuthorDate: Thu Nov 5 10:58:34 2026 +0800

    include/nuttx/net/netdev_lowerhalf.h: read the shared quota
    
    netdev_lower_quota_load() reads dev->quota, but a lower half that shares
    its quota with another device keeps the count in quota_ptr. A VLAN
    device shares the real device's quota, so its own quota[] stays 0 and
    netdev_upper_can_tx() never lets a VLAN frame out: ARP over the VLAN
    interface times out and ping fails with ENETUNREACH. Read quota_ptr,
    which netdev_lower_register() points at dev->quota when the quota is
    not shared.
    
    Signed-off-by: Bowen Wang <[email protected]>
---
 include/nuttx/net/netdev_lowerhalf.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/nuttx/net/netdev_lowerhalf.h 
b/include/nuttx/net/netdev_lowerhalf.h
index f4ebbd1fa8a..74ac267ba16 100644
--- a/include/nuttx/net/netdev_lowerhalf.h
+++ b/include/nuttx/net/netdev_lowerhalf.h
@@ -328,7 +328,7 @@ void netdev_lower_txdone(FAR struct netdev_lowerhalf_s 
*dev);
  *
  ****************************************************************************/
 
-#define netdev_lower_quota_load(dev, type) atomic_read(&dev->quota[type])
+#define netdev_lower_quota_load(dev, type) atomic_read(&(dev)->quota_ptr[type])
 
 /****************************************************************************
  * Name: netdev_lower_vlan_add

Reply via email to