void rtw_os_xmit_resource_free(_adapter *padapter, struct xmit_buf *pxmitbuf,u32 free_sz, u8 flag) { if (flag) { #ifdef CONFIG_USB_HCI int i; for(i=0; i<8; i++) { if(pxmitbuf->pxmit_urb[i]) { //usb_kill_urb(pxmitbuf->pxmit_urb[i]); usb_free_urb(pxmitbuf->pxmit_urb[i]); } } #endif } if (free_sz > 0 ) { #ifdef CONFIG_USE_USB_BUFFER_ALLOC_TX struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); struct usb_device *pusbd = pdvobjpriv->pusbdev; rtw_usb_buffer_free(pusbd, (size_t)free_sz, pxmitbuf->pallocated_buf, pxmitbuf->dma_transfer_addr); pxmitbuf->pallocated_buf = NULL; pxmitbuf->dma_transfer_addr = 0; #else // CONFIG_USE_USB_BUFFER_ALLOC_TX if(pxmitbuf->pallocated_buf) rtw_mfree(pxmitbuf->pallocated_buf, free_sz); #endif // CONFIG_USE_USB_BUFFER_ALLOC_TX } }
//free os related resource in struct recv_buf int rtw_os_recvbuf_resource_free(_adapter *padapter, struct recv_buf *precvbuf) { int ret = _SUCCESS; #ifdef CONFIG_USB_HCI #ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); struct usb_device *pusbd = pdvobjpriv->pusbdev; rtw_usb_buffer_free(pusbd, (size_t)precvbuf->alloc_sz, precvbuf->pallocated_buf, precvbuf->dma_transfer_addr); precvbuf->pallocated_buf = NULL; precvbuf->dma_transfer_addr = 0; #endif //CONFIG_USE_USB_BUFFER_ALLOC_RX if(precvbuf->purb) { //usb_kill_urb(precvbuf->purb); usb_free_urb(precvbuf->purb); } #endif //CONFIG_USB_HCI if(precvbuf->pskb) rtw_skb_free(precvbuf->pskb); return ret; }