Message ID | 1452128791-17584-1-git-send-email-jesse.brandeburg@intel.com |
---|---|
State | Not Applicable |
Headers | show |
On Wed, 6 Jan 2016 17:06:31 -0800 Jesse Brandeburg <jesse.brandeburg@intel.com> wrote: > There was a bug (re-)introduced by a merge error when applying patches. > This fixes the issue by making the code schedule the work item as > originally intended for the fix included in commit 0e4425ed641f ("i40e: > fix: do not sleep in netdev_ops") and broken in commit ea02e90b4b49 > ("i40e: propagate properly"). > > Fixes: ea02e90b4b49 ("i40e: propagate properly") > Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> targeted at net-next, tested on next-queue/dev-queue, please send ASAP as this standalone patch applied cleanly to davem's net-next/master when tested just now.
On Wed, 2016-01-06 at 17:06 -0800, Jesse Brandeburg wrote: > There was a bug (re-)introduced by a merge error when applying > patches. > This fixes the issue by making the code schedule the work item as > originally intended for the fix included in commit 0e4425ed641f > ("i40e: > fix: do not sleep in netdev_ops") and broken in commit ea02e90b4b49 > ("i40e: propagate properly"). > > Fixes: ea02e90b4b49 ("i40e: propagate properly") > Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> > --- > drivers/net/ethernet/intel/i40e/i40e_main.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) This does not apply because it is already fixed in the following patch that was applied earlier: commit e91a9d1345bf8a75b988e4bc01a32610ce76084c Author: Jesse Brandeburg <jesse.brandeburg@intel.com> Date: Thu Jan 7 22:47:29 2016 -0800 i40e: fix: do not sleep in netdev_ops The driver was being called by vlan, bonding, teaming operations that expected to be able to hold locks like rcu_read_lock(). This causes the driver to be held to the requirement to not sleep, and was found by the kernel debug options for checking sleep inside critical section, and the locking validator. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Reviewed-by: Nelson, Shannon <shannon.nelson@intel.com> Change-ID: Ibc68c835f5ffa8ffe0638ffe910a66fc5649a7f7
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 5375d3e..590cf0b 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -1542,7 +1542,11 @@ static int i40e_set_mac(struct net_device *netdev, void *p) ether_addr_copy(netdev->dev_addr, addr->sa_data); - return i40e_sync_vsi_filters(vsi); + /* schedule our worker thread which will take care of + * applying the new filter changes + */ + i40e_service_event_schedule(vsi->back); + return 0; } /**
There was a bug (re-)introduced by a merge error when applying patches. This fixes the issue by making the code schedule the work item as originally intended for the fix included in commit 0e4425ed641f ("i40e: fix: do not sleep in netdev_ops") and broken in commit ea02e90b4b49 ("i40e: propagate properly"). Fixes: ea02e90b4b49 ("i40e: propagate properly") Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> --- drivers/net/ethernet/intel/i40e/i40e_main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)