You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2020/11/03 13:59:50 UTC

[GitHub] [incubator-nuttx] masayuki2009 commented on a change in pull request #2175: gs2200m: Check disassociation from AP and enable rejoin

masayuki2009 commented on a change in pull request #2175:
URL: https://github.com/apache/incubator-nuttx/pull/2175#discussion_r514985658



##########
File path: drivers/wireless/gs2200m.c
##########
@@ -3071,6 +3086,33 @@ static void gs2200m_irq_worker(FAR void *arg)
 
   t = gs2200m_recv_pkt(dev, pkt_dat);
 
+  if (true == dev->disassociate_flag)
+    {
+      /* Disassociate recovery */
+
+      wlwarn("=== receive DISASSOCIATE\n");
+      dev->valid_cid_bits = 0;
+
+      do
+        {
+          while (gs2200m_recv_pkt(dev, pkt_dat) != TYPE_TIMEOUT)
+            {
+              /* release & initialize pkt_dat before retry */
+
+              _release_pkt_dat(dev, pkt_dat);
+              memset(pkt_dat, 0, sizeof(pkt_dat));
+
+              usleep(100 * 1000);
+            }

Review comment:
       please use nxsig_usleep() instead of usleep() inside the kernel space.
   

##########
File path: drivers/wireless/gs2200m.c
##########
@@ -3071,6 +3086,34 @@ static void gs2200m_irq_worker(FAR void *arg)
 
   t = gs2200m_recv_pkt(dev, pkt_dat);
 
+  if (true == gs2200m_disassociate_flag)
+    {
+      /* Disassociate recovery */
+
+      wlwarn("=== receive DISASSOCIATE\n");
+      dev->valid_cid_bits = 0;
+
+      gs2200m_disassociate(dev);
+      do
+        {
+          while (gs2200m_recv_pkt(dev, pkt_dat) != TYPE_TIMEOUT)
+            {

Review comment:
       OK, please add a comment such as "Discard incoming packets untile timeout happens"
   In this case, we don't need to pass pkt_dat, so just call like ```gs2200m_recv_pkt(dev, NULL)```
   Also, we don't need to call ```_releae_pkt_dat(dev, ), memset(pkt_dat, ...)```
   
   

##########
File path: drivers/wireless/gs2200m.c
##########
@@ -3071,6 +3086,33 @@ static void gs2200m_irq_worker(FAR void *arg)
 
   t = gs2200m_recv_pkt(dev, pkt_dat);
 
+  if (true == dev->disassociate_flag)
+    {
+      /* Disassociate recovery */
+
+      wlwarn("=== receive DISASSOCIATE\n");
+      dev->valid_cid_bits = 0;
+
+      do
+        {
+          while (gs2200m_recv_pkt(dev, pkt_dat) != TYPE_TIMEOUT)
+            {
+              /* release & initialize pkt_dat before retry */
+
+              _release_pkt_dat(dev, pkt_dat);
+              memset(pkt_dat, 0, sizeof(pkt_dat));
+
+              usleep(100 * 1000);
+            }

Review comment:
       Thanks.
   

##########
File path: drivers/wireless/gs2200m.c
##########
@@ -3071,6 +3086,34 @@ static void gs2200m_irq_worker(FAR void *arg)
 
   t = gs2200m_recv_pkt(dev, pkt_dat);
 
+  if (true == gs2200m_disassociate_flag)
+    {
+      /* Disassociate recovery */
+
+      wlwarn("=== receive DISASSOCIATE\n");
+      dev->valid_cid_bits = 0;
+
+      gs2200m_disassociate(dev);
+      do
+        {
+          while (gs2200m_recv_pkt(dev, pkt_dat) != TYPE_TIMEOUT)
+            {

Review comment:
       OK, I understand.
   

##########
File path: drivers/wireless/gs2200m.c
##########
@@ -3071,6 +3086,33 @@ static void gs2200m_irq_worker(FAR void *arg)
 
   t = gs2200m_recv_pkt(dev, pkt_dat);
 
+  if (true == dev->disassociate_flag)
+    {
+      /* Disassociate recovery */
+
+      wlwarn("=== receive DISASSOCIATE\n");
+      dev->valid_cid_bits = 0;
+
+      do
+        {
+          while (gs2200m_recv_pkt(dev, pkt_dat) != TYPE_TIMEOUT)
+            {
+              /* release & initialize pkt_dat before retry */
+
+              _release_pkt_dat(dev, pkt_dat);
+              memset(pkt_dat, 0, sizeof(pkt_dat));
+
+              usleep(100 * 1000);
+            }

Review comment:
       Thanks.
   




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org