PRINT_D(INIT_DBG, "%d\n", *buff);
 }
 
-void linux_wlan_free(void *vp)
-{
-       if (vp != NULL) {
-               PRINT_D(MEM_DBG, "Freeing %p\n", vp);
-               kfree(vp);
-       }
-}
-
 static void linux_wlan_init_lock(char *lockName, void *plock, int count)
 {
        sema_init((struct semaphore *)plock, count);
        nwi->os_func.os_sleep = linux_wlan_msleep;
        nwi->os_func.os_atomic_sleep = linux_wlan_atomic_msleep;
        nwi->os_func.os_debug = linux_wlan_dbg;
-       nwi->os_func.os_free = linux_wlan_free;
        nwi->os_func.os_lock = linux_wlan_lock;
        nwi->os_func.os_unlock = linux_wlan_unlock;
        nwi->os_func.os_wait = linux_wlan_lock_timeout;
                PRINT_D(TX_DBG, "Couldn't send packet - Size = %d - Address = %p - SKB = %p\n", pv_data->size, pv_data->buff, pv_data->skb);
        /* Free the SK Buffer, its work is done */
        dev_kfree_skb(pv_data->skb);
-       linux_wlan_free(pv_data);
+       kfree(pv_data);
 }
 
 int mac_xmit(struct sk_buff *skb, struct net_device *ndev)
 
                                tqe->status = 1;                                /* mark the packet send */
                                if (tqe->tx_complete_func)
                                        tqe->tx_complete_func(tqe->priv, tqe->status);
-                               p->os_func.os_free(tqe);
+                               kfree(tqe);
                                Dropped++;
                        }
                }
                                        Pending_Acks_info[tqe->tcp_PendingAck_index].txqe = NULL;
                                }
                                #endif
-                               p->os_func.os_free(tqe);
+                               kfree(tqe);
                        } else {
                                break;
                        }
 
 
 #ifndef MEMORY_STATIC
-               if (buffer != NULL)
-                       p->os_func.os_free((void *)buffer);
+               kfree(buffer);
 #endif
-               if (rqe != NULL)
-                       p->os_func.os_free((void *)rqe);
+               kfree(rqe);
 
                if (has_packet) {
                        if (p->net_func.rx_complete)
                        }
                } else {
 #ifndef MEMORY_STATIC
-                       if (buffer != NULL)
-                               p->os_func.os_free(buffer);
+                       kfree(buffer);
 #endif
                }
        }
 
 _fail_:
 
-       if (dma_buffer)
-               g_wlan.os_func.os_free(dma_buffer);
+       kfree(dma_buffer);
 
 _fail_1:
 
                        break;
                if (tqe->tx_complete_func)
                        tqe->tx_complete_func(tqe->priv, 0);
-               p->os_func.os_free((void *)tqe);
+               kfree(tqe);
        } while (1);
 
        do {
                if (rqe == NULL)
                        break;
 #ifdef MEMORY_DYNAMIC
-               p->os_func.os_free((void *)tqe->buffer);
+               kfree(tqe->buffer);
 #endif
-               p->os_func.os_free((void *)rqe);
+               kfree(rqe);
        } while (1);
 
        /**
         **/
 
        #ifdef MEMORY_STATIC
-       if (p->rx_buffer) {
-               p->os_func.os_free(p->rx_buffer);
-               p->rx_buffer = NULL;
-       }
+       kfree(p->rx_buffer);
+       p->rx_buffer = NULL;
        #endif
-       if (p->tx_buffer) {
-               p->os_func.os_free(p->tx_buffer);
-               p->tx_buffer = NULL;
-       }
+       kfree(p->tx_buffer);
 
        acquire_bus(ACQUIRE_AND_WAKEUP);
 
 _fail_:
 
   #ifdef MEMORY_STATIC
-       if (g_wlan.rx_buffer) {
-               g_wlan.os_func.os_free(g_wlan.rx_buffer);
-               g_wlan.rx_buffer = NULL;
-       }
+       kfree(g_wlan.rx_buffer);
+       g_wlan.rx_buffer = NULL;
   #endif
-       if (g_wlan.tx_buffer) {
-               g_wlan.os_func.os_free(g_wlan.tx_buffer);
-               g_wlan.tx_buffer = NULL;
-       }
+       kfree(g_wlan.tx_buffer);
+       g_wlan.tx_buffer = NULL;
 
 #if defined(PLAT_RK3026_TCHIP) /* AMR : 0422 RK3026 Crash issue */
        if (!g_wilc_initialized)