staging: r8188eu: Use GFP_ATOMIC under spin lock
authorYang Yingliang <yangyingliang@huawei.com>
Tue, 10 Aug 2021 12:53:14 +0000 (20:53 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Aug 2021 07:42:08 +0000 (09:42 +0200)
A spin lock is taken in __nat25_db_network_insert() and
update_BCNTIM() is called under spin lock so we should
use GFP_ATOMIC in both place.

Fixes: 15865124feed ("staging: r8188eu: introduce new core dir for RTL8188eu driver")
Reported-by: Hulk Robot <hulkci@huawei.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20210810125314.2182112-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_ap.c
drivers/staging/r8188eu/core/rtw_br_ext.c

index d754861..3f23c1a 100644 (file)
@@ -98,7 +98,7 @@ static void update_BCNTIM(struct adapter *padapter)
                }
 
                if (remainder_ielen > 0) {
-                       pbackup_remainder_ie = kmalloc(remainder_ielen, GFP_KERNEL);
+                       pbackup_remainder_ie = kmalloc(remainder_ielen, GFP_ATOMIC);
                        if (pbackup_remainder_ie && premainder_ie)
                                memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
                }
index e13f134..63a4cab 100644 (file)
@@ -394,7 +394,7 @@ static void __nat25_db_network_insert(struct adapter *priv,
                }
                db = db->next_hash;
        }
-       db = kmalloc(sizeof(*db), GFP_KERNEL);
+       db = kmalloc(sizeof(*db), GFP_ATOMIC);
        if (!db) {
                spin_unlock_bh(&priv->br_ext_lock);
                return;