i40evf: use GFP_ATOMIC under spin lock
authorWei Yongjun <[email protected]>
Fri, 12 Jan 2018 02:27:13 +0000 (02:27 +0000)
committerJeff Kirsher <[email protected]>
Tue, 13 Feb 2018 19:40:10 +0000 (11:40 -0800)
A spin lock is taken here so we should use GFP_ATOMIC.

Fixes: 504398f0a78e ("i40evf: use spinlock to protect (mac|vlan)_filter_list")
Signed-off-by: Wei Yongjun <[email protected]>
Acked-by: Jacob Keller <[email protected]>
Tested-by: Andrew Bowers <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c

index d57a6728550556ec4537acf138ce927fb85bfc79..82e6b115be87c17381093aff780cd43e4b0926bf 100644 (file)
@@ -465,7 +465,7 @@ void i40evf_add_ether_addrs(struct i40evf_adapter *adapter)
                more = true;
        }
 
-       veal = kzalloc(len, GFP_KERNEL);
+       veal = kzalloc(len, GFP_ATOMIC);
        if (!veal) {
                spin_unlock_bh(&adapter->mac_vlan_list_lock);
                return;
@@ -538,7 +538,7 @@ void i40evf_del_ether_addrs(struct i40evf_adapter *adapter)
                      (count * sizeof(struct virtchnl_ether_addr));
                more = true;
        }
-       veal = kzalloc(len, GFP_KERNEL);
+       veal = kzalloc(len, GFP_ATOMIC);
        if (!veal) {
                spin_unlock_bh(&adapter->mac_vlan_list_lock);
                return;
@@ -612,7 +612,7 @@ void i40evf_add_vlans(struct i40evf_adapter *adapter)
                      (count * sizeof(u16));
                more = true;
        }
-       vvfl = kzalloc(len, GFP_KERNEL);
+       vvfl = kzalloc(len, GFP_ATOMIC);
        if (!vvfl) {
                spin_unlock_bh(&adapter->mac_vlan_list_lock);
                return;
@@ -684,7 +684,7 @@ void i40evf_del_vlans(struct i40evf_adapter *adapter)
                      (count * sizeof(u16));
                more = true;
        }
-       vvfl = kzalloc(len, GFP_KERNEL);
+       vvfl = kzalloc(len, GFP_ATOMIC);
        if (!vvfl) {
                spin_unlock_bh(&adapter->mac_vlan_list_lock);
                return;