lkml.org 
[lkml]   [2017]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2] Staging: rtl8188eu: core: rtw_ap: Use list_for_each_entry_safe
    Date
    This is a cleanup patch and doesn't change runtime behavior. It 
    changes an open coded list traversal to use list_for_each_entry_safe.
    Done using the following semantic patch by coccinelle.

    @r@
    struct list_head* l;
    expression e;
    identifier m, list_del_init, f;
    type T1;
    T1* pos;
    iterator name list_for_each_entry_safe;
    @@

    f(...){

    +T1* tmp;
    ...
    -while(...)
    +list_for_each_entry_safe(pos,tmp,l,m)
    {
    ...
    -pos = container_of(l,T1,m);
    ...
    -l=e;
    <+...
    list_del_init(&pos->m)
    ...+>
    }
    ...
    }

    Signed-off-by: Srishti Sharma <srishtishar@gmail.com>
    ---
    Changes in v2
    -Make commit message clear.
    -Add file name to subject.

    drivers/staging/rtl8188eu/core/rtw_ap.c | 22 ++++++----------------
    1 file changed, 6 insertions(+), 16 deletions(-)

    diff --git a/drivers/staging/rtl8188eu/core/rtw_ap.c b/drivers/staging/rtl8188eu/core/rtw_ap.c
    index 32a4837..a2c599f 100644
    --- a/drivers/staging/rtl8188eu/core/rtw_ap.c
    +++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
    @@ -1196,7 +1196,7 @@ int rtw_acl_add_sta(struct adapter *padapter, u8 *addr)
    int rtw_acl_remove_sta(struct adapter *padapter, u8 *addr)
    {
    struct list_head *plist, *phead;
    - struct rtw_wlan_acl_node *paclnode;
    + struct rtw_wlan_acl_node *paclnode, *tmp;
    struct sta_priv *pstapriv = &padapter->stapriv;
    struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
    struct __queue *pacl_node_q = &pacl_list->acl_node_q;
    @@ -1208,10 +1208,7 @@ int rtw_acl_remove_sta(struct adapter *padapter, u8 *addr)
    phead = get_list_head(pacl_node_q);
    plist = phead->next;

    - while (phead != plist) {
    - paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
    - plist = plist->next;
    -
    + list_for_each_entry_safe(paclnode, tmp, plist, list) {
    if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
    if (paclnode->valid) {
    paclnode->valid = false;
    @@ -1711,7 +1708,7 @@ u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta,
    int rtw_sta_flush(struct adapter *padapter)
    {
    struct list_head *phead, *plist;
    - struct sta_info *psta = NULL;
    + struct sta_info *psta = NULL, *tmp;
    struct sta_priv *pstapriv = &padapter->stapriv;
    struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
    struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
    @@ -1727,11 +1724,7 @@ int rtw_sta_flush(struct adapter *padapter)
    plist = phead->next;

    /* free sta asoc_queue */
    - while (phead != plist) {
    - psta = container_of(plist, struct sta_info, asoc_list);
    -
    - plist = plist->next;
    -
    + list_for_each_entry_safe(psta, tmp, plist, asoc_list) {
    list_del_init(&psta->asoc_list);
    pstapriv->asoc_list_cnt--;

    @@ -1833,7 +1826,7 @@ void start_ap_mode(struct adapter *padapter)
    void stop_ap_mode(struct adapter *padapter)
    {
    struct list_head *phead, *plist;
    - struct rtw_wlan_acl_node *paclnode;
    + struct rtw_wlan_acl_node *paclnode, *tmp;
    struct sta_info *psta = NULL;
    struct sta_priv *pstapriv = &padapter->stapriv;
    struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
    @@ -1855,10 +1848,7 @@ void stop_ap_mode(struct adapter *padapter)
    spin_lock_bh(&pacl_node_q->lock);
    phead = get_list_head(pacl_node_q);
    plist = phead->next;
    - while (phead != plist) {
    - paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
    - plist = plist->next;
    -
    + list_for_each_entry_safe(paclnode, tmp, plist, list) {
    if (paclnode->valid) {
    paclnode->valid = false;

    --
    2.7.4
    \
     
     \ /
      Last update: 2017-10-05 11:47    [W:4.781 / U:1.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site