i40evf: use GFP_ATOMIC under spin lock
authorWei Yongjun <weiyongjun1@huawei.com>
Fri, 12 Jan 2018 02:27:13 +0000 (02:27 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
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 <weiyongjun1@huawei.com>
Acked-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c

index d57a672..82e6b11 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;