Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
drivers
/
net
/
ethernet
/
intel
/
fm10k
/
fm10k_main.c
diff --git
a/kernel/drivers/net/ethernet/intel/fm10k/fm10k_main.c
b/kernel/drivers/net/ethernet/intel/fm10k/fm10k_main.c
index
e76a44c
..
0928155
100644
(file)
--- a/
kernel/drivers/net/ethernet/intel/fm10k/fm10k_main.c
+++ b/
kernel/drivers/net/ethernet/intel/fm10k/fm10k_main.c
@@
-1428,6
+1428,10
@@
static int fm10k_poll(struct napi_struct *napi, int budget)
fm10k_for_each_ring(ring, q_vector->tx)
clean_complete &= fm10k_clean_tx_irq(q_vector, ring);
fm10k_for_each_ring(ring, q_vector->tx)
clean_complete &= fm10k_clean_tx_irq(q_vector, ring);
+ /* Handle case where we are called by netpoll with a budget of 0 */
+ if (budget <= 0)
+ return budget;
+
/* attempt to distribute budget to each queue fairly, but don't
* allow the budget to go below 1 because we'll exit polling
*/
/* attempt to distribute budget to each queue fairly, but don't
* allow the budget to go below 1 because we'll exit polling
*/
@@
-1966,8
+1970,10
@@
int fm10k_init_queueing_scheme(struct fm10k_intfc *interface)
/* Allocate memory for queues */
err = fm10k_alloc_q_vectors(interface);
/* Allocate memory for queues */
err = fm10k_alloc_q_vectors(interface);
- if (err)
+ if (err) {
+ fm10k_reset_msix_capability(interface);
return err;
return err;
+ }
/* Map rings to devices, and map devices to physical queues */
fm10k_assign_rings(interface);
/* Map rings to devices, and map devices to physical queues */
fm10k_assign_rings(interface);