Merge "Close file descriptors for socket appropriately during SoftAP disconnect."
diff --git a/softap/sdk/qsap.c b/softap/sdk/qsap.c
old mode 100644
new mode 100755
index 9260497..c077fb8
--- a/softap/sdk/qsap.c
+++ b/softap/sdk/qsap.c
@@ -66,24 +66,27 @@
 #define WIFI_DRIVER_MODULE_NAME         "wlan"
 #endif
 
-#ifndef WIFI_SDIO_IF_DRIVER_MODULE_PATH
-#define WIFI_SDIO_IF_DRIVER_MODULE_PATH "/system/lib/modules/librasdioif.ko"
-#endif
-
-#ifndef WIFI_SDIO_IF_DRIVER_MODULE_NAME
-#define WIFI_SDIO_IF_DRIVER_MODULE_NAME "librasdioif"
-#endif
-
-#ifndef WIFI_SDIO_IF_DRIVER_MODULE_ARG 
-#define WIFI_SDIO_IF_DRIVER_MODULE_ARG  ""
-#endif
-
 #ifdef WIFI_DRIVER_MODULE_ARG
 #undef WIFI_DRIVER_MODULE_ARG
 #endif
 
 #define WIFI_DRIVER_MODULE_ARG          "con_mode=1"
 
+/* WIFI_SDIO_IF_DRIVER_MODULE_NAME must be defined if sdioif driver required */
+#ifdef WIFI_SDIO_IF_DRIVER_MODULE_NAME
+
+#ifndef WIFI_SDIO_IF_DRIVER_MODULE_PATH
+#define WIFI_SDIO_IF_DRIVER_MODULE_PATH "/system/lib/modules/librasdioif.ko"
+#endif
+
+
+#ifndef WIFI_SDIO_IF_DRIVER_MODULE_ARG 
+#define WIFI_SDIO_IF_DRIVER_MODULE_ARG  ""
+#endif
+
+#endif
+
+
 extern int init_module(const char *name, u32, const s8 *);
 extern int delete_module(const char *name, int);
 
@@ -189,28 +192,28 @@
         LOGE("Could not turn on the polling...");
     }
 
-    if (sizeof(WIFI_SDIO_IF_DRIVER_MODULE_PATH) > 0) {
-       ret = insmod(WIFI_SDIO_IF_DRIVER_MODULE_PATH, WIFI_SDIO_IF_DRIVER_MODULE_ARG, WIFI_SDIO_IF_DRIVER_MODULE_NAME " ");
+#ifdef WIFI_SDIO_IF_DRIVER_MODULE_NAME
+    ret = insmod(WIFI_SDIO_IF_DRIVER_MODULE_PATH, WIFI_SDIO_IF_DRIVER_MODULE_ARG, WIFI_SDIO_IF_DRIVER_MODULE_NAME " ");
 
-       if ( ret != 0 ) {
-          LOGE("init_module failed sdioif\n");
-          ret = eERR_LOAD_FAILED_SDIOIF;
-          goto end;
-      }
-
-      sched_yield();
+    if ( ret != 0 ) {
+        LOGE("init_module failed sdioif\n");
+        ret = eERR_LOAD_FAILED_SDIOIF;
+        goto end;
     }
 
+    sched_yield();
+#endif
+
     ret = insmod(WIFI_DRIVER_MODULE_PATH, WIFI_DRIVER_MODULE_ARG, WIFI_DRIVER_MODULE_NAME " ");
 
     if ( ret != 0 ) {
-        if (sizeof(WIFI_SDIO_IF_DRIVER_MODULE_PATH) > 0) {
-            if ( check_driver_loaded(WIFI_SDIO_IF_DRIVER_MODULE_NAME " ") ) {
-                    if ( rmmod(WIFI_SDIO_IF_DRIVER_MODULE_NAME) ) {
-                        LOGE("Unable to unload the station mode librasdioif driver\n");
-              }
+#ifdef WIFI_SDIO_IF_DRIVER_MODULE_NAME
+        if ( check_driver_loaded(WIFI_SDIO_IF_DRIVER_MODULE_NAME " ") ) {
+            if ( rmmod(WIFI_SDIO_IF_DRIVER_MODULE_NAME) ) {
+                LOGE("Unable to unload the station mode librasdioif driver\n");
             }
         }
+#endif
         LOGE("init_module failed libra_softap\n");
         ret = eERR_LOAD_FAILED_SOFTAP;
 		goto end;
@@ -281,6 +284,7 @@
 
     sched_yield();
 
+#ifdef WIFI_SDIO_IF_DRIVER_MODULE_NAME
     if ( check_driver_loaded(WIFI_SDIO_IF_DRIVER_MODULE_NAME " ") ) {
         if ( rmmod(WIFI_SDIO_IF_DRIVER_MODULE_NAME) ) {
             LOGE("Unable to unload the station mode librasdioif driver\n");
@@ -288,6 +292,7 @@
             goto end;
         }
     }
+#endif
 
 end:
     if(system(SDIO_POLLING_OFF)) {
@@ -316,6 +321,7 @@
 
     sched_yield();
 
+#ifdef WIFI_SDIO_IF_DRIVER_MODULE_NAME
     if ( check_driver_loaded(WIFI_SDIO_IF_DRIVER_MODULE_NAME " ") ) {
         if ( rmmod(WIFI_SDIO_IF_DRIVER_MODULE_NAME) ) {
             LOGE("Unable to unload the librasdioif driver\n");
@@ -323,6 +329,8 @@
             goto end;
         }
     }
+#endif
+
 end:
     if(system(SDIO_POLLING_OFF)) {
         LOGE("Could not turn off the polling...");