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

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


The following commit(s) were added to refs/heads/master by this push:
     new 9ae7119a39 net/devif: bypass send length check if ip fragment enabled
9ae7119a39 is described below

commit 9ae7119a394b900f919eea019db78b92c2f3483b
Author: chao an <[email protected]>
AuthorDate: Mon Jan 16 20:27:44 2023 +0800

    net/devif: bypass send length check if ip fragment enabled
    
    Signed-off-by: chao an <[email protected]>
---
 net/devif/devif_iobsend.c | 8 ++------
 net/devif/devif_send.c    | 8 ++++++++
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/net/devif/devif_iobsend.c b/net/devif/devif_iobsend.c
index ee7eed6878..95baa6c212 100644
--- a/net/devif/devif_iobsend.c
+++ b/net/devif/devif_iobsend.c
@@ -59,10 +59,7 @@ void devif_iob_send(FAR struct net_driver_s *dev, FAR struct 
iob_s *iob,
 #ifndef CONFIG_NET_IPFRAG
   unsigned int limit = NETDEV_PKTSIZE(dev) -
                        NET_LL_HDRLEN(dev) - target_offset;
-#endif
-  int ret;
 
-#ifndef CONFIG_NET_IPFRAG
   if (dev == NULL || len == 0 || len > limit)
 #else
   if (dev == NULL || len == 0)
@@ -95,9 +92,8 @@ void devif_iob_send(FAR struct net_driver_s *dev, FAR struct 
iob_s *iob,
 
       /* Clone the iob to target device buffer */
 
-      ret = iob_clone_partial(iob, len, offset, dev->d_iob,
-                              target_offset, false, false);
-      if (ret != OK)
+      if (iob_clone_partial(iob, len, offset, dev->d_iob,
+                            target_offset, false, false) != OK)
         {
           netdev_iob_release(dev);
           nerr("devif_iob_send error, not enough iob entries, "
diff --git a/net/devif/devif_send.c b/net/devif/devif_send.c
index ea2d5cad41..4c0faca0a7 100644
--- a/net/devif/devif_send.c
+++ b/net/devif/devif_send.c
@@ -68,6 +68,7 @@
 void devif_send(FAR struct net_driver_s *dev, FAR const void *buf,
                 int len, unsigned int offset)
 {
+#ifndef CONFIG_NET_IPFRAG
   unsigned int limit = NETDEV_PKTSIZE(dev) -
                        NET_LL_HDRLEN(dev) - offset;
 
@@ -77,6 +78,13 @@ void devif_send(FAR struct net_driver_s *dev, FAR const void 
*buf,
            dev, len, limit);
       return;
     }
+#else
+  if (dev == NULL || len == 0)
+    {
+      nerr("ERROR: devif_send fail: %p, sndlen: %u\n", dev, len);
+      return;
+    }
+#endif
 
   /* Copy in iob to target device buffer */
 

Reply via email to