aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-05-06 18:51:10 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-05-06 18:51:10 -0400
commit51a26ae7a14b85c99c9be470c2d28eeeba0f26a3 (patch)
tree63b38cb292a53e89d4b0cfe631c7031e1fed3cfe /include
parent2b69703fea185bb0ae1af78ca2da41af677b9dff (diff)
parent6bf15191f666c5965d212561d7a5c7b78b808dfa (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: "Just a small pile of fixes" 1) Fix race conditions in IP fragmentation LRU list handling, from Konstantin Khlebnikov. 2) vfree() is no longer verboten in interrupts, so deferring is pointless, from Al Viro. 3) Conversion from mutex to semaphore in netpoll left trylock test inverted, caught by Dan Carpenter. 4) 3c59x uses wrong base address when releasing regions, from Sergei Shtylyov. 5) Bounds checking in TIPC from Dan Carpenter. 6) Fastopen cookies should not be expired as aggressively as other TCP metrics. From Eric Dumazet. 7) Fix retrieval of MAC address in ibmveth, from Ben Herrenschmidt. 8) Don't use "u16" in virtio user headers, from Stephen Hemminger * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: tipc: potential divide by zero in tipc_link_recv_fragment() tipc: add a bounds check in link_recv_changeover_msg() net/usb: new driver for RTL8152 3c59x: fix freeing nonexistent resource on driver unload netpoll: inverted down_trylock() test rps_dev_flow_table_release(): no need to delay vfree() fib_trie: no need to delay vfree() net: frag, fix race conditions in LRU list maintenance tcp: do not expire TCP fastopen cookies net/eth/ibmveth: Fixup retrieval of MAC address virtio: don't expose u16 in userspace api
Diffstat (limited to 'include')
-rw-r--r--include/linux/netdevice.h1
-rw-r--r--include/net/inet_frag.h5
-rw-r--r--include/uapi/linux/virtio_net.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index f8898a435dc5..a94a5a0ab122 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -593,7 +593,6 @@ struct rps_dev_flow {
593struct rps_dev_flow_table { 593struct rps_dev_flow_table {
594 unsigned int mask; 594 unsigned int mask;
595 struct rcu_head rcu; 595 struct rcu_head rcu;
596 struct work_struct free_work;
597 struct rps_dev_flow flows[0]; 596 struct rps_dev_flow flows[0];
598}; 597};
599#define RPS_DEV_FLOW_TABLE_SIZE(_num) (sizeof(struct rps_dev_flow_table) + \ 598#define RPS_DEV_FLOW_TABLE_SIZE(_num) (sizeof(struct rps_dev_flow_table) + \
diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h
index 4182c9be8bb5..bfcbc0017950 100644
--- a/include/net/inet_frag.h
+++ b/include/net/inet_frag.h
@@ -141,14 +141,15 @@ static inline int sum_frag_mem_limit(struct netns_frags *nf)
141static inline void inet_frag_lru_move(struct inet_frag_queue *q) 141static inline void inet_frag_lru_move(struct inet_frag_queue *q)
142{ 142{
143 spin_lock(&q->net->lru_lock); 143 spin_lock(&q->net->lru_lock);
144 list_move_tail(&q->lru_list, &q->net->lru_list); 144 if (!list_empty(&q->lru_list))
145 list_move_tail(&q->lru_list, &q->net->lru_list);
145 spin_unlock(&q->net->lru_lock); 146 spin_unlock(&q->net->lru_lock);
146} 147}
147 148
148static inline void inet_frag_lru_del(struct inet_frag_queue *q) 149static inline void inet_frag_lru_del(struct inet_frag_queue *q)
149{ 150{
150 spin_lock(&q->net->lru_lock); 151 spin_lock(&q->net->lru_lock);
151 list_del(&q->lru_list); 152 list_del_init(&q->lru_list);
152 q->net->nqueues--; 153 q->net->nqueues--;
153 spin_unlock(&q->net->lru_lock); 154 spin_unlock(&q->net->lru_lock);
154} 155}
diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h
index a5a8c88753b9..c520203fac2f 100644
--- a/include/uapi/linux/virtio_net.h
+++ b/include/uapi/linux/virtio_net.h
@@ -191,7 +191,7 @@ struct virtio_net_ctrl_mac {
191 * specified. 191 * specified.
192 */ 192 */
193struct virtio_net_ctrl_mq { 193struct virtio_net_ctrl_mq {
194 u16 virtqueue_pairs; 194 __u16 virtqueue_pairs;
195}; 195};
196 196
197#define VIRTIO_NET_CTRL_MQ 4 197#define VIRTIO_NET_CTRL_MQ 4