Commit 3c67430b authored by Fabio Aiuto's avatar Fabio Aiuto Committed by Greg Kroah-Hartman
Browse files

staging: rtl8723bs: use list_for_each_safe in loops deleting iterated items



Fix some beautified loops over linked lists.
Use list_for_each_safe on loops which could delete
objects in the list.

Fixes: b3cd518c ("staging: rtl8723bs: Use list iterators and helpers")
Suggested-by: default avatarGuenter Roeck <linux@roeck-us.net>
Tested-by: default avatarFabio Aiuto <fabioaiuto83@gmail.com>
Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
Reviewed-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarFabio Aiuto <fabioaiuto83@gmail.com>
Link: https://lore.kernel.org/r/20210607134618.11237-1-fabioaiuto83@gmail.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7973bfef
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ u8 chk_sta_is_alive(struct sta_info *psta)

void expire_timeout_chk(struct adapter *padapter)
{
	struct list_head	*phead, *plist;
	struct list_head *phead, *plist, *tmp;
	u8 updated = false;
	struct sta_info *psta = NULL;
	struct sta_priv *pstapriv = &padapter->stapriv;
@@ -186,7 +186,7 @@ void expire_timeout_chk(struct adapter *padapter)

	phead = &pstapriv->auth_list;
	/* check auth_queue */
	list_for_each(plist, phead) {
	list_for_each_safe(plist, tmp, phead) {
		psta = list_entry(plist, struct sta_info, auth_list);

		if (psta->expire_to > 0) {
@@ -211,7 +211,7 @@ void expire_timeout_chk(struct adapter *padapter)

	phead = &pstapriv->asoc_list;
	/* check asoc_queue */
	list_for_each(plist, phead) {
	list_for_each_safe(plist, tmp, phead) {
		psta = list_entry(plist, struct sta_info, asoc_list);
		if (chk_sta_is_alive(psta) || !psta->expire_to) {
			psta->expire_to = pstapriv->expire_to;
@@ -1243,7 +1243,7 @@ int rtw_acl_add_sta(struct adapter *padapter, u8 *addr)

void rtw_acl_remove_sta(struct adapter *padapter, u8 *addr)
{
	struct list_head	*plist, *phead;
	struct list_head *plist, *phead, *tmp;
	struct rtw_wlan_acl_node *paclnode;
	struct sta_priv *pstapriv = &padapter->stapriv;
	struct wlan_acl_pool *pacl_list = &pstapriv->acl_list;
@@ -1253,7 +1253,7 @@ void rtw_acl_remove_sta(struct adapter *padapter, u8 *addr)
	spin_lock_bh(&(pacl_node_q->lock));

	phead = get_list_head(pacl_node_q);
	list_for_each(plist, phead) {
	list_for_each_safe(plist, tmp, phead) {
		paclnode = list_entry(plist, struct rtw_wlan_acl_node, list);

		if (
@@ -1940,7 +1940,7 @@ u8 ap_free_sta(

void rtw_sta_flush(struct adapter *padapter)
{
	struct list_head	*phead, *plist;
	struct list_head *phead, *plist, *tmp;
	struct sta_info *psta = NULL;
	struct sta_priv *pstapriv = &padapter->stapriv;
	struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
@@ -1953,7 +1953,7 @@ void rtw_sta_flush(struct adapter *padapter)
	spin_lock_bh(&pstapriv->asoc_list_lock);
	phead = &pstapriv->asoc_list;
	/* free sta asoc_queue */
	list_for_each(plist, phead) {
	list_for_each_safe(plist, tmp, phead) {
		psta = list_entry(plist, struct sta_info, asoc_list);

		list_del_init(&psta->asoc_list);
@@ -2132,7 +2132,7 @@ void start_ap_mode(struct adapter *padapter)

void stop_ap_mode(struct adapter *padapter)
{
	struct list_head	*phead, *plist;
	struct list_head *phead, *plist, *tmp;
	struct rtw_wlan_acl_node *paclnode;
	struct sta_info *psta = NULL;
	struct sta_priv *pstapriv = &padapter->stapriv;
@@ -2156,7 +2156,7 @@ void stop_ap_mode(struct adapter *padapter)
	/* for ACL */
	spin_lock_bh(&(pacl_node_q->lock));
	phead = get_list_head(pacl_node_q);
	list_for_each(plist, phead) {
	list_for_each_safe(plist, tmp, phead) {
		paclnode = list_entry(plist, struct rtw_wlan_acl_node, list);

		if (paclnode->valid) {
+2 −2
Original line number Diff line number Diff line
@@ -260,7 +260,7 @@ struct wlan_network *_rtw_find_network(struct __queue *scanned_queue, u8 *addr)

void rtw_free_network_queue(struct adapter *padapter, u8 isfreeall)
{
	struct list_head *phead, *plist;
	struct list_head *phead, *plist, *tmp;
	struct wlan_network *pnetwork;
	struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
	struct __queue *scanned_queue = &pmlmepriv->scanned_queue;
@@ -268,7 +268,7 @@ void rtw_free_network_queue(struct adapter *padapter, u8 isfreeall)
	spin_lock_bh(&scanned_queue->lock);

	phead = get_list_head(scanned_queue);
	list_for_each(plist, phead) {
	list_for_each_safe(plist, tmp, phead) {

		pnetwork = list_entry(plist, struct wlan_network, list);

+2 −2
Original line number Diff line number Diff line
@@ -6058,7 +6058,7 @@ u8 h2c_msg_hdl(struct adapter *padapter, unsigned char *pbuf)
u8 chk_bmc_sleepq_hdl(struct adapter *padapter, unsigned char *pbuf)
{
	struct sta_info *psta_bmc;
	struct list_head	*xmitframe_plist, *xmitframe_phead;
	struct list_head *xmitframe_plist, *xmitframe_phead, *tmp;
	struct xmit_frame *pxmitframe = NULL;
	struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
	struct sta_priv  *pstapriv = &padapter->stapriv;
@@ -6075,7 +6075,7 @@ u8 chk_bmc_sleepq_hdl(struct adapter *padapter, unsigned char *pbuf)
		spin_lock_bh(&pxmitpriv->lock);

		xmitframe_phead = get_list_head(&psta_bmc->sleep_q);
		list_for_each(xmitframe_plist, xmitframe_phead) {
		list_for_each_safe(xmitframe_plist, tmp, xmitframe_phead) {
			pxmitframe = list_entry(xmitframe_plist,
						struct xmit_frame, list);

+2 −2
Original line number Diff line number Diff line
@@ -423,7 +423,7 @@ u32 rtw_free_stainfo(struct adapter *padapter, struct sta_info *psta)
/*  free all stainfo which in sta_hash[all] */
void rtw_free_all_stainfo(struct adapter *padapter)
{
	struct list_head	*plist, *phead;
	struct list_head *plist, *phead, *tmp;
	s32	index;
	struct sta_info *psta = NULL;
	struct	sta_priv *pstapriv = &padapter->stapriv;
@@ -436,7 +436,7 @@ void rtw_free_all_stainfo(struct adapter *padapter)

	for (index = 0; index < NUM_STA; index++) {
		phead = &(pstapriv->sta_hash[index]);
		list_for_each(plist, phead) {
		list_for_each_safe(plist, tmp, phead) {
			psta = list_entry(plist, struct sta_info, hash_list);

			if (pbcmc_stainfo != psta)
+9 −9
Original line number Diff line number Diff line
@@ -1723,13 +1723,13 @@ s32 rtw_free_xmitframe(struct xmit_priv *pxmitpriv, struct xmit_frame *pxmitfram

void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, struct __queue *pframequeue)
{
	struct list_head	*plist, *phead;
	struct list_head *plist, *phead, *tmp;
	struct	xmit_frame	*pxmitframe;

	spin_lock_bh(&pframequeue->lock);

	phead = get_list_head(pframequeue);
	list_for_each(plist, phead) {
	list_for_each_safe(plist, tmp, phead) {
		pxmitframe = list_entry(plist, struct xmit_frame, list);

		rtw_free_xmitframe(pxmitpriv, pxmitframe);
@@ -2122,7 +2122,7 @@ signed int xmitframe_enqueue_for_sleeping_sta(struct adapter *padapter, struct x
static void dequeue_xmitframes_to_sleeping_queue(struct adapter *padapter, struct sta_info *psta, struct __queue *pframequeue)
{
	signed int ret;
	struct list_head	*plist, *phead;
	struct list_head *plist, *phead, *tmp;
	u8 ac_index;
	struct tx_servq	*ptxservq;
	struct pkt_attrib	*pattrib;
@@ -2130,7 +2130,7 @@ static void dequeue_xmitframes_to_sleeping_queue(struct adapter *padapter, struc
	struct hw_xmit *phwxmits =  padapter->xmitpriv.hwxmits;

	phead = get_list_head(pframequeue);
	list_for_each(plist, phead) {
	list_for_each_safe(plist, tmp, phead) {
		pxmitframe = list_entry(plist, struct xmit_frame, list);

		pattrib = &pxmitframe->attrib;
@@ -2191,7 +2191,7 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta)
{
	u8 update_mask = 0, wmmps_ac = 0;
	struct sta_info *psta_bmc;
	struct list_head	*xmitframe_plist, *xmitframe_phead;
	struct list_head *xmitframe_plist, *xmitframe_phead, *tmp;
	struct xmit_frame *pxmitframe = NULL;
	struct sta_priv *pstapriv = &padapter->stapriv;
	struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
@@ -2201,7 +2201,7 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta)
	spin_lock_bh(&pxmitpriv->lock);

	xmitframe_phead = get_list_head(&psta->sleep_q);
	list_for_each(xmitframe_plist, xmitframe_phead) {
	list_for_each_safe(xmitframe_plist, tmp, xmitframe_phead) {
		pxmitframe = list_entry(xmitframe_plist, struct xmit_frame,
					list);

@@ -2272,7 +2272,7 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta)

	if ((pstapriv->sta_dz_bitmap&0xfffe) == 0x0) { /* no any sta in ps mode */
		xmitframe_phead = get_list_head(&psta_bmc->sleep_q);
		list_for_each(xmitframe_plist, xmitframe_phead) {
		list_for_each_safe(xmitframe_plist, tmp, xmitframe_phead) {
			pxmitframe = list_entry(xmitframe_plist,
						struct xmit_frame, list);

@@ -2308,7 +2308,7 @@ void wakeup_sta_to_xmit(struct adapter *padapter, struct sta_info *psta)
void xmit_delivery_enabled_frames(struct adapter *padapter, struct sta_info *psta)
{
	u8 wmmps_ac = 0;
	struct list_head	*xmitframe_plist, *xmitframe_phead;
	struct list_head *xmitframe_plist, *xmitframe_phead, *tmp;
	struct xmit_frame *pxmitframe = NULL;
	struct sta_priv *pstapriv = &padapter->stapriv;
	struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
@@ -2316,7 +2316,7 @@ void xmit_delivery_enabled_frames(struct adapter *padapter, struct sta_info *pst
	spin_lock_bh(&pxmitpriv->lock);

	xmitframe_phead = get_list_head(&psta->sleep_q);
	list_for_each(xmitframe_plist, xmitframe_phead) {
	list_for_each_safe(xmitframe_plist, tmp, xmitframe_phead) {
		pxmitframe = list_entry(xmitframe_plist, struct xmit_frame,
					list);

Loading