staging: r8188eu: remove os_dep/recv_linux.c
cover staging: r8188eu: remove os_dep/recv_linux.c
This series moves the functions and/or their functionality from os_dep/recv_linux.c to the relevant parts of the driver. In most cases it's just making the functions static. This allows us to remove os_dep/recv_linux.c.
Tested on x86_64 with Inter-Tech DMG-02.
Michael Straube (5):
staging: r8188eu: merge rtw_os_recvbuf_resource_free() into rtw_recv.c
staging: r8188eu: merge rtw_os_recvbuf_resource_alloc() into
rtw_recv.c
staging: r8188eu: make rtw_handle_tkip_mic_err() static
staging: r8188eu: make rtw_recv_indicatepkt() static
staging: r8188eu: make rtw_init_recv_timer() static
drivers/staging/r8188eu/Makefile | 1 - drivers/staging/r8188eu/core/rtw_recv.c | 125 +++++++++++++- drivers/staging/r8188eu/core/rtw_sta_mgt.c | 13 ++ drivers/staging/r8188eu/include/recv_osdep.h | 7 - drivers/staging/r8188eu/os_dep/recv_linux.c | 165 ------------------- 5 files changed, 135 insertions(+), 176 deletions(-) delete mode 100644 drivers/staging/r8188eu/os_dep/recv_linux.c
Signature · 1 line
2.37.1
PATCH 1/5 staging: r8188eu: merge rtw_os_recvbuf_resource_free() into rtw_recv.c
The function rtw_os_recvbuf_resource_free() is just a wrapper around usb_free_urb(). Call usb_free_urb() directly in rtl8188eu_free_recv_priv() and remove rtw_os_recvbuf_resource_free() to simplify the driver code.
--- drivers/staging/r8188eu/core/rtw_recv.c | 2 +- drivers/staging/r8188eu/include/recv_osdep.h | 1 - drivers/staging/r8188eu/os_dep/recv_linux.c | 8 -------- 3 files changed, 1 insertion(+), 10 deletions(-)
drivers/staging/r8188eu/core/rtw_recv.c +1 -1
@@ -159,7 +159,7 @@ static void rtl8188eu_free_recv_priv(struct adapter *padapter) precvbuf = (struct recv_buf *)precvpriv->precv_buf;for (i =0 ; i <NR_RECVBUFF ; i++) { -rtw_os_recvbuf_resource_free (padapter, precvbuf); +usb_free_urb (precvbuf->purb); precvbuf++; }
drivers/staging/r8188eu/include/recv_osdep.h +0 -1
@@ -20,7 +20,6 @@ int rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter);void rtw_free_recv_priv (struct recv_priv *precvpriv);int rtw_os_recvbuf_resource_alloc (struct adapter *adapt,struct recv_buf *buf); -int rtw_os_recvbuf_resource_free (struct adapter *adapt,struct recv_buf *buf);void rtw_init_recv_timer (struct recv_reorder_ctrl *preorder_ctrl);int _netdev_open (struct net_device *pnetdev);
drivers/staging/r8188eu/os_dep/recv_linux.c +0 -8
@@ -26,14 +26,6 @@ int rtw_os_recvbuf_resource_alloc(struct adapter *padapter,return res; } -/* free os related resource in struct recv_buf */ -int rtw_os_recvbuf_resource_free (struct adapter *padapter, -struct recv_buf *precvbuf) -{ -usb_free_urb (precvbuf->purb); -return _SUCCESS; -} -void rtw_handle_tkip_mic_err (struct adapter *padapter,u8 bgroup) {union iwreq_data wrqu;
Signature · 1 line
2.37.1
PATCH 2/5 staging: r8188eu: merge rtw_os_recvbuf_resource_alloc() into rtw_recv.c
In reply to Michael StraubeMerge the functionality of the function rtw_os_recvbuf_resource_alloc() into rtl8188eu_init_recv_priv(). Merging the functionality instead of just making the function static improves readability and we have one function less to care about when converting the uses of _FAIL/_SUCCESS to normal kernel error code logic.
--- drivers/staging/r8188eu/core/rtw_recv.c | 8 ++++++-- drivers/staging/r8188eu/include/recv_osdep.h | 2 -- drivers/staging/r8188eu/os_dep/recv_linux.c | 14 -------------- 3 files changed, 6 insertions(+), 18 deletions(-)
drivers/staging/r8188eu/core/rtw_recv.c +6 -2
@@ -62,9 +62,13 @@ static int rtl8188eu_init_recv_priv(struct adapter *padapter) precvbuf = (struct recv_buf *)precvpriv->precv_buf;for (i =0 ; i <NR_RECVBUFF ; i++) { - res =rtw_os_recvbuf_resource_alloc (padapter, precvbuf); -if (res == _FAIL) + precvbuf->pskb =NULL ; + precvbuf->reuse = false; + precvbuf->purb =usb_alloc_urb (0 ,GFP_KERNEL ); +if (!precvbuf->purb) { + res = _FAIL;break ; + } precvbuf->adapter = padapter; precvbuf++; }
drivers/staging/r8188eu/include/recv_osdep.h +0 -2
@@ -19,8 +19,6 @@ void rtw_handle_tkip_mic_err(struct adapter *padapter, u8 bgroup);int rtw_init_recv_priv (struct recv_priv *precvpriv,struct adapter *padapter);void rtw_free_recv_priv (struct recv_priv *precvpriv); -int rtw_os_recvbuf_resource_alloc (struct adapter *adapt,struct recv_buf *buf); -void rtw_init_recv_timer (struct recv_reorder_ctrl *preorder_ctrl);int _netdev_open (struct net_device *pnetdev);int netdev_open (struct net_device *pnetdev);
drivers/staging/r8188eu/os_dep/recv_linux.c +0 -14
@@ -12,20 +12,6 @@#include "../include/osdep_intf.h" #include "../include/usb_ops.h" -/* alloc os related resource in struct recv_buf */ -int rtw_os_recvbuf_resource_alloc (struct adapter *padapter, -struct recv_buf *precvbuf) -{ -int res = _SUCCESS; - - precvbuf->purb =usb_alloc_urb (0 ,GFP_KERNEL ); -if (!precvbuf->purb) - res = _FAIL; - precvbuf->pskb =NULL ; - precvbuf->reuse = false; -return res; -} -void rtw_handle_tkip_mic_err (struct adapter *padapter,u8 bgroup) {union iwreq_data wrqu;
Signature · 1 line
2.37.1
PATCH 3/5 staging: r8188eu: make rtw_handle_tkip_mic_err() static
In reply to Michael StraubeThe function rtw_handle_tkip_mic_err() is only used in rtw_recv.c. Make it static.
--- drivers/staging/r8188eu/core/rtw_recv.c | 36 ++++++++++++++++++++ drivers/staging/r8188eu/include/recv_osdep.h | 2 -- drivers/staging/r8188eu/os_dep/recv_linux.c | 36 -------------------- 3 files changed, 36 insertions(+), 38 deletions(-)
drivers/staging/r8188eu/core/rtw_recv.c +36 -0
@@ -327,6 +327,42 @@ u32 rtw_free_uc_swdec_pending_queue(struct adapter *adapter)return cnt; } +static void rtw_handle_tkip_mic_err (struct adapter *padapter,u8 bgroup) +{ +union iwreq_data wrqu; +struct iw_michaelmicfailure ev; +struct mlme_priv *pmlmepriv = &padapter->mlmepriv; +struct security_priv *psecuritypriv = &padapter->securitypriv; +u32 cur_time =0 ; + +if (psecuritypriv->last_mic_err_time ==0 ) { + psecuritypriv->last_mic_err_time = jiffies; + }else { + cur_time = jiffies; + +if (cur_time - psecuritypriv->last_mic_err_time <60 *HZ ) { + psecuritypriv->btkip_countermeasure = true; + psecuritypriv->last_mic_err_time =0 ; + psecuritypriv->btkip_countermeasure_time = cur_time; + }else { + psecuritypriv->last_mic_err_time = jiffies; + } + } + +memset (&ev,0x00 ,sizeof (ev)); +if (bgroup) + ev.flags |=IW_MICFAILURE_GROUP ; +else + ev.flags |=IW_MICFAILURE_PAIRWISE ; + + ev.src_addr.sa_family =ARPHRD_ETHER ; +memcpy (ev.src_addr.sa_data, &pmlmepriv->assoc_bssid[0 ],ETH_ALEN ); +memset (&wrqu,0x00 ,sizeof (wrqu)); + wrqu.data.length =sizeof (ev); +wireless_send_event (padapter->pnetdev,IWEVMICHAELMICFAILURE , + &wrqu, (char *)&ev); +} +static int recvframe_chkmic (struct adapter *adapter,struct recv_frame *precvframe) {int i, res = _SUCCESS;
drivers/staging/r8188eu/include/recv_osdep.h +0 -2
@@ -14,8 +14,6 @@ s32 rtw_recv_entry(struct recv_frame *precv_frame);int rtw_recv_indicatepkt (struct adapter *adapter,struct recv_frame *recv_frame);void rtw_recv_returnpacket (struct net_device *cnxt,struct sk_buff *retpkt); -void rtw_handle_tkip_mic_err (struct adapter *padapter,u8 bgroup); -int rtw_init_recv_priv (struct recv_priv *precvpriv,struct adapter *padapter);void rtw_free_recv_priv (struct recv_priv *precvpriv);
drivers/staging/r8188eu/os_dep/recv_linux.c +0 -36
@@ -12,42 +12,6 @@#include "../include/osdep_intf.h" #include "../include/usb_ops.h" -void rtw_handle_tkip_mic_err (struct adapter *padapter,u8 bgroup) -{ -union iwreq_data wrqu; -struct iw_michaelmicfailure ev; -struct mlme_priv *pmlmepriv = &padapter->mlmepriv; -struct security_priv *psecuritypriv = &padapter->securitypriv; -u32 cur_time =0 ; - -if (psecuritypriv->last_mic_err_time ==0 ) { - psecuritypriv->last_mic_err_time = jiffies; - }else { - cur_time = jiffies; - -if (cur_time - psecuritypriv->last_mic_err_time <60 *HZ ) { - psecuritypriv->btkip_countermeasure = true; - psecuritypriv->last_mic_err_time =0 ; - psecuritypriv->btkip_countermeasure_time = cur_time; - }else { - psecuritypriv->last_mic_err_time = jiffies; - } - } - -memset (&ev,0x00 ,sizeof (ev)); -if (bgroup) - ev.flags |=IW_MICFAILURE_GROUP ; -else - ev.flags |=IW_MICFAILURE_PAIRWISE ; - - ev.src_addr.sa_family =ARPHRD_ETHER ; -memcpy (ev.src_addr.sa_data, &pmlmepriv->assoc_bssid[0 ],ETH_ALEN ); -memset (&wrqu,0x00 ,sizeof (wrqu)); - wrqu.data.length =sizeof (ev); -wireless_send_event (padapter->pnetdev,IWEVMICHAELMICFAILURE , - &wrqu, (char *)&ev); -} -int rtw_recv_indicatepkt (struct adapter *padapter,struct recv_frame *precv_frame) {
Signature · 1 line
2.37.1
PATCH 4/5 staging: r8188eu: make rtw_recv_indicatepkt() static
In reply to Michael StraubeThe function rtw_recv_indicatepkt() is only used in rtw_recv.c. Make it static.
--- drivers/staging/r8188eu/core/rtw_recv.c | 79 +++++++++++++++++++ drivers/staging/r8188eu/include/recv_osdep.h | 1 - drivers/staging/r8188eu/os_dep/recv_linux.c | 81 -------------------- 3 files changed, 79 insertions(+), 82 deletions(-)
drivers/staging/r8188eu/core/rtw_recv.c +79 -0
@@ -1579,6 +1579,85 @@ static bool enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, sreturn true; } +static int rtw_recv_indicatepkt (struct adapter *padapter,struct recv_frame *precv_frame) +{ +struct recv_priv *precvpriv; +struct __queue *pfree_recv_queue; +struct sk_buff *skb; +struct mlme_priv *pmlmepriv = &padapter->mlmepriv; + + precvpriv = &padapter->recvpriv; + pfree_recv_queue = &precvpriv->free_recv_queue; + + skb = precv_frame->pkt; +if (!skb) + goto _recv_indicatepkt_drop; + + skb->data = precv_frame->rx_data; + +skb_set_tail_pointer (skb, precv_frame->len); + + skb->len = precv_frame->len; + +if (check_fwstate (pmlmepriv,WIFI_AP_STATE )) { +struct sk_buff *pskb2 =NULL ; +struct sta_info *psta =NULL ; +struct sta_priv *pstapriv = &padapter->stapriv; +struct rx_pkt_attrib *pattrib = &precv_frame->attrib; +bool bmcast =is_multicast_ether_addr (pattrib->dst); + +if (memcmp (pattrib->dst,myid (&padapter->eeprompriv),ETH_ALEN )) { +if (bmcast) { + psta =rtw_get_bcmc_stainfo (padapter); + pskb2 =skb_clone (skb,GFP_ATOMIC ); + }else { + psta =rtw_get_stainfo (pstapriv, pattrib->dst); + } + +if (psta) { +struct net_device *pnetdev; + + pnetdev = (struct net_device *)padapter->pnetdev; + skb->dev = pnetdev; +skb_set_queue_mapping (skb,rtw_recv_select_queue (skb)); + +rtw_xmit_entry (skb, pnetdev); + +if (bmcast) + skb = pskb2; +else + goto _recv_indicatepkt_end; + } + } + } + +rcu_read_lock (); +rcu_dereference (padapter->pnetdev->rx_handler_data); +rcu_read_unlock (); + + skb->ip_summed =CHECKSUM_NONE ; + skb->dev = padapter->pnetdev; + skb->protocol =eth_type_trans (skb, padapter->pnetdev); + +netif_rx (skb); + +_recv_indicatepkt_end: + +/* pointers to NULL before rtw_free_recvframe() */ + precv_frame->pkt =NULL ; + +rtw_free_recvframe (precv_frame, pfree_recv_queue); + +return _SUCCESS; + +_recv_indicatepkt_drop: + +/* enqueue back to free_recv_queue */ +rtw_free_recvframe (precv_frame, pfree_recv_queue); + +return _FAIL; +} +static bool recv_indicatepkts_in_order (struct adapter *padapter,struct recv_reorder_ctrl *preorder_ctrl,int bforced) {struct list_head *phead, *plist;
drivers/staging/r8188eu/include/recv_osdep.h +0 -1
@@ -11,7 +11,6 @@ int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter);void _rtw_free_recv_priv (struct recv_priv *precvpriv);s32 rtw_recv_entry (struct recv_frame *precv_frame); -int rtw_recv_indicatepkt (struct adapter *adapter,struct recv_frame *recv_frame);void rtw_recv_returnpacket (struct net_device *cnxt,struct sk_buff *retpkt);int rtw_init_recv_priv (struct recv_priv *precvpriv,struct adapter *padapter);
drivers/staging/r8188eu/os_dep/recv_linux.c +0 -81
87 lines not on this page · raw message
Signature · 1 line
2.37.1
PATCH 5/5 staging: r8188eu: make rtw_init_recv_timer() static
In reply to Michael StraubeThe function rtw_init_recv_timer() is only used in rtw_sta_mgt.c. Make it static and remove the now empty file os_dep/recv_linux.c.
--- drivers/staging/r8188eu/Makefile | 1 - drivers/staging/r8188eu/core/rtw_sta_mgt.c | 13 ++++++++++ drivers/staging/r8188eu/include/recv_osdep.h | 1 - drivers/staging/r8188eu/os_dep/recv_linux.c | 26 -------------------- 4 files changed, 13 insertions(+), 28 deletions(-) delete mode 100644 drivers/staging/r8188eu/os_dep/recv_linux.c
drivers/staging/r8188eu/Makefile +0 -1
@@ -25,7 +25,6 @@ r8188eu-y = \ os_dep/mlme_linux.o \ os_dep/os_intfs.o \ os_dep/osdep_service.o \ - os_dep/recv_linux.o \ os_dep/usb_intf.o \ os_dep/usb_ops_linux.o \ os_dep/xmit_linux.o \
drivers/staging/r8188eu/core/rtw_sta_mgt.c +13 -0
@@ -141,6 +141,19 @@ void _rtw_free_sta_priv(struct sta_priv *pstapriv) } } +static void _rtw_reordering_ctrl_timeout_handler (struct timer_list *t) +{ +struct recv_reorder_ctrl *preorder_ctrl; + + preorder_ctrl =from_timer (preorder_ctrl, t, reordering_ctrl_timer); +rtw_reordering_ctrl_timeout_handler (preorder_ctrl); +} + +static void rtw_init_recv_timer (struct recv_reorder_ctrl *preorder_ctrl) +{ +timer_setup (&preorder_ctrl->reordering_ctrl_timer, _rtw_reordering_ctrl_timeout_handler,0 ); +} +struct sta_info *rtw_alloc_stainfo (struct sta_priv *pstapriv,u8 *hwaddr) {s32 index;
drivers/staging/r8188eu/include/recv_osdep.h +0 -1
@@ -16,7 +16,6 @@ void rtw_recv_returnpacket(struct net_device *cnxt, struct sk_buff *retpkt);int rtw_init_recv_priv (struct recv_priv *precvpriv,struct adapter *padapter);void rtw_free_recv_priv (struct recv_priv *precvpriv); -void rtw_init_recv_timer (struct recv_reorder_ctrl *preorder_ctrl);int _netdev_open (struct net_device *pnetdev);int netdev_open (struct net_device *pnetdev);int netdev_close (struct net_device *pnetdev);
drivers/staging/r8188eu/os_dep/recv_linux.c deleted +0 -26
@@ -1,26 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* Copyright(c) 2007 - 2011 Realtek Corporation. */ - -#define _RECV_OSDEP_C_ - -#include "../include/osdep_service.h" -#include "../include/drv_types.h" - -#include "../include/wifi.h" -#include "../include/recv_osdep.h" - -#include "../include/osdep_intf.h" -#include "../include/usb_ops.h" - -static void _rtw_reordering_ctrl_timeout_handler (struct timer_list *t) -{ -struct recv_reorder_ctrl *preorder_ctrl; - - preorder_ctrl =from_timer (preorder_ctrl, t, reordering_ctrl_timer); -rtw_reordering_ctrl_timeout_handler (preorder_ctrl); -} - -void rtw_init_recv_timer (struct recv_reorder_ctrl *preorder_ctrl) -{ -timer_setup (&preorder_ctrl->reordering_ctrl_timer, _rtw_reordering_ctrl_timeout_handler,0 ); -}
Signature · 1 line
2.37.1
Quoted 15 lines · Michael Straube
This series moves the functions and/or their functionality from
os_dep/recv_linux.cto the relevant parts of the driver. In most cases it's just making the functions static. This allows us to removeos_dep/recv_linux.c.Tested on
x86_64with Inter-Tech DMG-02.Michael Straube (5):
staging: r8188eu: mergertw_os_recvbuf_resource_free()intortw_recv.c
staging: r8188eu: mergertw_os_recvbuf_resource_alloc()into
rtw_recv.c
staging: r8188eu: makertw_handle_tkip_mic_err()static
staging: r8188eu: makertw_recv_indicatepkt()static
staging: r8188eu: makertw_init_recv_timer()static
Quoted 8 lines
drivers/staging/r8188eu/Makefile | 1 - drivers/staging/r8188eu/core/rtw_recv.c | 125 +++++++++++++- drivers/staging/r8188eu/core/rtw_sta_mgt.c | 13 ++ drivers/staging/r8188eu/include/recv_osdep.h | 7 - drivers/staging/r8188eu/os_dep/recv_linux.c | 165 ------------------- 5 files changed, 135 insertions(+), 176 deletions(-)delete mode 100644
drivers/staging/r8188eu/os_dep/recv_linux.c