staging: r8188eu: replace hand coded loop with list_for_each_entry
authorMartin Kaiser <martin@kaiser.cx>
Sat, 11 Feb 2023 17:02:23 +0000 (18:02 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 Feb 2023 12:54:41 +0000 (13:54 +0100)
In function rtw_get_stainfo, we can use list_for_each_entry to iterate
over the list of stations and make the code a bit simpler.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
Link: https://lore.kernel.org/r/20230211170223.419205-1-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_sta_mgt.c

index a9c29b2..e1ae185 100644 (file)
@@ -391,8 +391,7 @@ void rtw_free_all_stainfo(struct adapter *padapter)
 /* any station allocated can be searched by hash list */
 struct sta_info *rtw_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
 {
-       struct list_head *plist, *phead;
-       struct sta_info *psta = NULL;
+       struct sta_info *ploop, *psta = NULL;
        u32     index;
        u8 *addr;
        u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
@@ -409,18 +408,11 @@ struct sta_info *rtw_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
 
        spin_lock_bh(&pstapriv->sta_hash_lock);
 
-       phead = &pstapriv->sta_hash[index];
-       plist = phead->next;
-
-       while (phead != plist) {
-               psta = container_of(plist, struct sta_info, hash_list);
-
-               if ((!memcmp(psta->hwaddr, addr, ETH_ALEN))) {
-                       /*  if found the matched address */
+       list_for_each_entry(ploop, &pstapriv->sta_hash[index], hash_list) {
+               if (!memcmp(ploop->hwaddr, addr, ETH_ALEN)) {
+                       psta = ploop;
                        break;
                }
-               psta = NULL;
-               plist = plist->next;
        }
 
        spin_unlock_bh(&pstapriv->sta_hash_lock);