]> www.infradead.org Git - users/jedix/linux-maple.git/commit
i40e: lock service task correctly
authorMitch Williams <mitch.a.williams@intel.com>
Mon, 21 Nov 2016 21:03:51 +0000 (13:03 -0800)
committerDhaval Giani <dhaval.giani@oracle.com>
Wed, 8 Mar 2017 00:41:42 +0000 (19:41 -0500)
commitf2e22752cd80df8d8785a1f05cadd87a176ca8d4
treef90c0c73f0754bea72698407db165f37f724b832
parent2e7795ddcb8a0edb6e8821748fae71626d40ad61
i40e: lock service task correctly

Orabug: 24568124

The service task lock was being set in the scheduling function, not the
actual service task. This would potentially leave the bit set for a long
time before the task actually ran. Furthermore, if the service task
takes too long, it calls the schedule function to reschedule itself -
which would fail to take the lock and do nothing.

Instead, set and clear the lock bit in the service task itself. In the
process, get rid of the i40e_service_event_complete() function, which is
really just two lines of code that can be put right in the service task
itself.

Change-ID: I83155e682b686121e2897f4429eb7d3f7c669168
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 910890338399258af210685210760bc0cc82a5dd)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_main.c