nexmon – Rev 1

Subversion Repositories:
Rev:
diff -Naur acx_orig/common.c acx_rawtx/common.c
--- acx_orig/common.c   2007-01-10 22:15:27.000000000 +0100
+++ acx_rawtx/common.c  2007-05-20 12:58:55.000000000 +0200
@@ -3180,6 +3180,14 @@
                goto end;
        }
 
+       if(unlikely(skb->len < 24)) {
+               /* silently drop the packet, since fw won't send it */
+               txresult = OK;
+               /* ...but indicate an error nevertheless */
+               adev->stats.tx_errors++;
+               goto end;
+       }
+
        tx = acx_l_alloc_tx(adev);
        if (unlikely(!tx)) {
                printk_ratelimited("%s: start_xmit: txdesc ring is full, "
diff -Naur acx_orig/pci.c acx_rawtx/pci.c
--- acx_orig/pci.c      2007-01-10 13:27:16.000000000 +0100
+++ acx_rawtx/pci.c     2007-05-20 12:58:55.000000000 +0200
@@ -1992,7 +1992,12 @@
                acx_set_status(adev, ACX_STATUS_1_SCANNING); break;
        case ACX_MODE_3_AP:
        case ACX_MODE_MONITOR:
-               acx_set_status(adev, ACX_STATUS_4_ASSOCIATED); break;
+               acx_set_status(adev, ACX_STATUS_4_ASSOCIATED);
+               adev->msdu_lifetime = 0;/* no lifetime at all */
+               adev->short_retry = 0; /* no retries for (short) non-RTS packets */
+               adev->long_retry = 0; /* no retries for long (RTS) packets */
+
+               break;
        }
 
        acx_s_start(adev);
@@ -3387,12 +3392,14 @@
                break;
        }
        adev->stats.tx_errors++;
+#if 0
        if (adev->stats.tx_errors <= 20)
                printk("%s: tx error 0x%02X, buf %02u! (%s)\n",
                                adev->ndev->name, error, finger, err);
        else
                printk("%s: tx error 0x%02X, buf %02u!\n",
                                adev->ndev->name, error, finger);
+#endif
 }