Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
These changes are a raw update to a vanilla kernel 4.1.10, with the
[kvmfornfv.git]
/
kernel
/
drivers
/
net
/
ethernet
/
intel
/
igb
/
igb_main.c
diff --git
a/kernel/drivers/net/ethernet/intel/igb/igb_main.c
b/kernel/drivers/net/ethernet/intel/igb/igb_main.c
index
a0a9b1f
..
4f6bf99
100644
(file)
--- a/
kernel/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/
kernel/drivers/net/ethernet/intel/igb/igb_main.c
@@
-1205,10
+1205,14
@@
static int igb_alloc_q_vector(struct igb_adapter *adapter,
/* allocate q_vector and rings */
q_vector = adapter->q_vector[v_idx];
/* allocate q_vector and rings */
q_vector = adapter->q_vector[v_idx];
- if (!q_vector)
+ if (!q_vector)
{
q_vector = kzalloc(size, GFP_KERNEL);
q_vector = kzalloc(size, GFP_KERNEL);
- else
+ } else if (size > ksize(q_vector)) {
+ kfree_rcu(q_vector, rcu);
+ q_vector = kzalloc(size, GFP_KERNEL);
+ } else {
memset(q_vector, 0, size);
memset(q_vector, 0, size);
+ }
if (!q_vector)
return -ENOMEM;
if (!q_vector)
return -ENOMEM;
@@
-2901,6
+2905,14
@@
static void igb_init_queue_configuration(struct igb_adapter *adapter)
adapter->rss_queues = min_t(u32, max_rss_queues, num_online_cpus());
adapter->rss_queues = min_t(u32, max_rss_queues, num_online_cpus());
+ igb_set_flag_queue_pairs(adapter, max_rss_queues);
+}
+
+void igb_set_flag_queue_pairs(struct igb_adapter *adapter,
+ const u32 max_rss_queues)
+{
+ struct e1000_hw *hw = &adapter->hw;
+
/* Determine if we need to pair queues. */
switch (hw->mac.type) {
case e1000_82575:
/* Determine if we need to pair queues. */
switch (hw->mac.type) {
case e1000_82575:
@@
-6584,7
+6596,7
@@
static void igb_reuse_rx_page(struct igb_ring *rx_ring,
static inline bool igb_page_is_reserved(struct page *page)
{
static inline bool igb_page_is_reserved(struct page *page)
{
- return (page_to_nid(page) != numa_mem_id()) || page
->pfmemalloc
;
+ return (page_to_nid(page) != numa_mem_id()) || page
_is_pfmemalloc(page)
;
}
static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer,
}
static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer,