diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-25 19:59:51 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-25 19:59:51 -0400 |
commit | b1cdc4670b9508fcd47a15fbd12f70d269880b37 (patch) | |
tree | fea9e2650170886d539488f8b1e064f6ca60ad36 /include | |
parent | ce7d0226198aac42ed311dd2783232adc16b296d (diff) | |
parent | f925b1303e0672effc78547353bd2ddfe11f5b5f (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (63 commits)
drivers/net/usb/asix.c: Fix pointer cast.
be2net: Bug fix to avoid disabling bottom half during firmware upgrade.
proc_dointvec: write a single value
hso: add support for new products
Phonet: fix potential use-after-free in pep_sock_close()
ath9k: remove VEOL support for ad-hoc
ath9k: change beacon allocation to prefer the first beacon slot
sock.h: fix kernel-doc warning
cls_cgroup: Fix build error when built-in
macvlan: do proper cleanup in macvlan_common_newlink() V2
be2net: Bug fix in init code in probe
net/dccp: expansion of error code size
ath9k: Fix rx of mcast/bcast frames in PS mode with auto sleep
wireless: fix sta_info.h kernel-doc warnings
wireless: fix mac80211.h kernel-doc warnings
iwlwifi: testing the wrong variable in iwl_add_bssid_station()
ath9k_htc: rare leak in ath9k_hif_usb_alloc_tx_urbs()
ath9k_htc: dereferencing before check in hif_usb_tx_cb()
rt2x00: Fix rt2800usb TX descriptor writing.
rt2x00: Fix failed SLEEP->AWAKE and AWAKE->SLEEP transitions.
...
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fec.h | 21 | ||||
-rw-r--r-- | include/linux/netdevice.h | 16 | ||||
-rw-r--r-- | include/linux/netfilter/x_tables.h | 2 | ||||
-rw-r--r-- | include/net/caif/cfctrl.h | 4 | ||||
-rw-r--r-- | include/net/cls_cgroup.h | 63 | ||||
-rw-r--r-- | include/net/mac80211.h | 3 | ||||
-rw-r--r-- | include/net/netfilter/nf_conntrack_core.h | 2 | ||||
-rw-r--r-- | include/net/sock.h | 12 |
8 files changed, 113 insertions, 10 deletions
diff --git a/include/linux/fec.h b/include/linux/fec.h new file mode 100644 index 000000000000..5d3523d8dd0c --- /dev/null +++ b/include/linux/fec.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* include/linux/fec.h | ||
2 | * | ||
3 | * Copyright (c) 2009 Orex Computed Radiography | ||
4 | * Baruch Siach <baruch@tkos.co.il> | ||
5 | * | ||
6 | * Header file for the FEC platform data | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | #ifndef __LINUX_FEC_H__ | ||
13 | #define __LINUX_FEC_H__ | ||
14 | |||
15 | #include <linux/phy.h> | ||
16 | |||
17 | struct fec_platform_data { | ||
18 | phy_interface_t phy; | ||
19 | }; | ||
20 | |||
21 | #endif | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index a1bff6518166..40291f375024 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -1407,17 +1407,25 @@ struct softnet_data { | |||
1407 | struct softnet_data *rps_ipi_next; | 1407 | struct softnet_data *rps_ipi_next; |
1408 | unsigned int cpu; | 1408 | unsigned int cpu; |
1409 | unsigned int input_queue_head; | 1409 | unsigned int input_queue_head; |
1410 | unsigned int input_queue_tail; | ||
1410 | #endif | 1411 | #endif |
1411 | unsigned dropped; | 1412 | unsigned dropped; |
1412 | struct sk_buff_head input_pkt_queue; | 1413 | struct sk_buff_head input_pkt_queue; |
1413 | struct napi_struct backlog; | 1414 | struct napi_struct backlog; |
1414 | }; | 1415 | }; |
1415 | 1416 | ||
1416 | static inline void input_queue_head_add(struct softnet_data *sd, | 1417 | static inline void input_queue_head_incr(struct softnet_data *sd) |
1417 | unsigned int len) | ||
1418 | { | 1418 | { |
1419 | #ifdef CONFIG_RPS | 1419 | #ifdef CONFIG_RPS |
1420 | sd->input_queue_head += len; | 1420 | sd->input_queue_head++; |
1421 | #endif | ||
1422 | } | ||
1423 | |||
1424 | static inline void input_queue_tail_incr_save(struct softnet_data *sd, | ||
1425 | unsigned int *qtail) | ||
1426 | { | ||
1427 | #ifdef CONFIG_RPS | ||
1428 | *qtail = ++sd->input_queue_tail; | ||
1421 | #endif | 1429 | #endif |
1422 | } | 1430 | } |
1423 | 1431 | ||
@@ -2326,7 +2334,7 @@ do { \ | |||
2326 | #define netif_vdbg(priv, type, dev, format, args...) \ | 2334 | #define netif_vdbg(priv, type, dev, format, args...) \ |
2327 | ({ \ | 2335 | ({ \ |
2328 | if (0) \ | 2336 | if (0) \ |
2329 | netif_printk(KERN_DEBUG, dev, format, ##args); \ | 2337 | netif_printk(priv, type, KERN_DEBUG, dev, format, ##args); \ |
2330 | 0; \ | 2338 | 0; \ |
2331 | }) | 2339 | }) |
2332 | #endif | 2340 | #endif |
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index c2ee5d8550cf..c00cc0c4d0b7 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h | |||
@@ -333,7 +333,7 @@ struct xt_target { | |||
333 | /* Called when user tries to insert an entry of this type: | 333 | /* Called when user tries to insert an entry of this type: |
334 | hook_mask is a bitmask of hooks from which it can be | 334 | hook_mask is a bitmask of hooks from which it can be |
335 | called. */ | 335 | called. */ |
336 | /* Should return true or false, or an error code (-Exxxx). */ | 336 | /* Should return 0 on success or an error code otherwise (-Exxxx). */ |
337 | int (*checkentry)(const struct xt_tgchk_param *); | 337 | int (*checkentry)(const struct xt_tgchk_param *); |
338 | 338 | ||
339 | /* Called when entry of this type deleted. */ | 339 | /* Called when entry of this type deleted. */ |
diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h index 997603f2bf4c..9402543fc20d 100644 --- a/include/net/caif/cfctrl.h +++ b/include/net/caif/cfctrl.h | |||
@@ -94,8 +94,8 @@ struct cfctrl_request_info { | |||
94 | enum cfctrl_cmd cmd; | 94 | enum cfctrl_cmd cmd; |
95 | u8 channel_id; | 95 | u8 channel_id; |
96 | struct cfctrl_link_param param; | 96 | struct cfctrl_link_param param; |
97 | struct cfctrl_request_info *next; | ||
98 | struct cflayer *client_layer; | 97 | struct cflayer *client_layer; |
98 | struct list_head list; | ||
99 | }; | 99 | }; |
100 | 100 | ||
101 | struct cfctrl { | 101 | struct cfctrl { |
@@ -103,7 +103,7 @@ struct cfctrl { | |||
103 | struct cfctrl_rsp res; | 103 | struct cfctrl_rsp res; |
104 | atomic_t req_seq_no; | 104 | atomic_t req_seq_no; |
105 | atomic_t rsp_seq_no; | 105 | atomic_t rsp_seq_no; |
106 | struct cfctrl_request_info *first_req; | 106 | struct list_head list; |
107 | /* Protects from simultaneous access to first_req list */ | 107 | /* Protects from simultaneous access to first_req list */ |
108 | spinlock_t info_list_lock; | 108 | spinlock_t info_list_lock; |
109 | #ifndef CAIF_NO_LOOP | 109 | #ifndef CAIF_NO_LOOP |
diff --git a/include/net/cls_cgroup.h b/include/net/cls_cgroup.h new file mode 100644 index 000000000000..6cf44866cecd --- /dev/null +++ b/include/net/cls_cgroup.h | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * cls_cgroup.h Control Group Classifier | ||
3 | * | ||
4 | * Authors: Thomas Graf <tgraf@suug.ch> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the Free | ||
8 | * Software Foundation; either version 2 of the License, or (at your option) | ||
9 | * any later version. | ||
10 | * | ||
11 | */ | ||
12 | |||
13 | #ifndef _NET_CLS_CGROUP_H | ||
14 | #define _NET_CLS_CGROUP_H | ||
15 | |||
16 | #include <linux/cgroup.h> | ||
17 | #include <linux/hardirq.h> | ||
18 | #include <linux/rcupdate.h> | ||
19 | |||
20 | #ifdef CONFIG_CGROUPS | ||
21 | struct cgroup_cls_state | ||
22 | { | ||
23 | struct cgroup_subsys_state css; | ||
24 | u32 classid; | ||
25 | }; | ||
26 | |||
27 | #ifdef CONFIG_NET_CLS_CGROUP | ||
28 | static inline u32 task_cls_classid(struct task_struct *p) | ||
29 | { | ||
30 | if (in_interrupt()) | ||
31 | return 0; | ||
32 | |||
33 | return container_of(task_subsys_state(p, net_cls_subsys_id), | ||
34 | struct cgroup_cls_state, css)->classid; | ||
35 | } | ||
36 | #else | ||
37 | extern int net_cls_subsys_id; | ||
38 | |||
39 | static inline u32 task_cls_classid(struct task_struct *p) | ||
40 | { | ||
41 | int id; | ||
42 | u32 classid; | ||
43 | |||
44 | if (in_interrupt()) | ||
45 | return 0; | ||
46 | |||
47 | rcu_read_lock(); | ||
48 | id = rcu_dereference(net_cls_subsys_id); | ||
49 | if (id >= 0) | ||
50 | classid = container_of(task_subsys_state(p, id), | ||
51 | struct cgroup_cls_state, css)->classid; | ||
52 | rcu_read_unlock(); | ||
53 | |||
54 | return classid; | ||
55 | } | ||
56 | #endif | ||
57 | #else | ||
58 | static inline u32 task_cls_classid(struct task_struct *p) | ||
59 | { | ||
60 | return 0; | ||
61 | } | ||
62 | #endif | ||
63 | #endif /* _NET_CLS_CGROUP_H */ | ||
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index e24b0363e6cb..de22cbfef232 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -815,6 +815,7 @@ enum ieee80211_key_flags { | |||
815 | * encrypted in hardware. | 815 | * encrypted in hardware. |
816 | * @alg: The key algorithm. | 816 | * @alg: The key algorithm. |
817 | * @flags: key flags, see &enum ieee80211_key_flags. | 817 | * @flags: key flags, see &enum ieee80211_key_flags. |
818 | * @ap_addr: AP's MAC address | ||
818 | * @keyidx: the key index (0-3) | 819 | * @keyidx: the key index (0-3) |
819 | * @keylen: key material length | 820 | * @keylen: key material length |
820 | * @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte) | 821 | * @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte) |
@@ -1637,6 +1638,8 @@ enum ieee80211_ampdu_mlme_action { | |||
1637 | * Returns a negative error code on failure. | 1638 | * Returns a negative error code on failure. |
1638 | * The callback must be atomic. | 1639 | * The callback must be atomic. |
1639 | * | 1640 | * |
1641 | * @get_survey: Return per-channel survey information | ||
1642 | * | ||
1640 | * @rfkill_poll: Poll rfkill hardware state. If you need this, you also | 1643 | * @rfkill_poll: Poll rfkill hardware state. If you need this, you also |
1641 | * need to set wiphy->rfkill_poll to %true before registration, | 1644 | * need to set wiphy->rfkill_poll to %true before registration, |
1642 | * and need to call wiphy_rfkill_set_hw_state() in the callback. | 1645 | * and need to call wiphy_rfkill_set_hw_state() in the callback. |
diff --git a/include/net/netfilter/nf_conntrack_core.h b/include/net/netfilter/nf_conntrack_core.h index dffde8e6920e..3d7524fba194 100644 --- a/include/net/netfilter/nf_conntrack_core.h +++ b/include/net/netfilter/nf_conntrack_core.h | |||
@@ -61,7 +61,7 @@ static inline int nf_conntrack_confirm(struct sk_buff *skb) | |||
61 | int ret = NF_ACCEPT; | 61 | int ret = NF_ACCEPT; |
62 | 62 | ||
63 | if (ct && ct != &nf_conntrack_untracked) { | 63 | if (ct && ct != &nf_conntrack_untracked) { |
64 | if (!nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct)) | 64 | if (!nf_ct_is_confirmed(ct)) |
65 | ret = __nf_conntrack_confirm(skb); | 65 | ret = __nf_conntrack_confirm(skb); |
66 | if (likely(ret == NF_ACCEPT)) | 66 | if (likely(ret == NF_ACCEPT)) |
67 | nf_ct_deliver_cached_events(ct); | 67 | nf_ct_deliver_cached_events(ct); |
diff --git a/include/net/sock.h b/include/net/sock.h index 5697caf8cc76..d2a71b04a5ae 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -312,7 +312,7 @@ struct sock { | |||
312 | void *sk_security; | 312 | void *sk_security; |
313 | #endif | 313 | #endif |
314 | __u32 sk_mark; | 314 | __u32 sk_mark; |
315 | /* XXX 4 bytes hole on 64 bit */ | 315 | u32 sk_classid; |
316 | void (*sk_state_change)(struct sock *sk); | 316 | void (*sk_state_change)(struct sock *sk); |
317 | void (*sk_data_ready)(struct sock *sk, int bytes); | 317 | void (*sk_data_ready)(struct sock *sk, int bytes); |
318 | void (*sk_write_space)(struct sock *sk); | 318 | void (*sk_write_space)(struct sock *sk); |
@@ -1074,6 +1074,14 @@ extern void *sock_kmalloc(struct sock *sk, int size, | |||
1074 | extern void sock_kfree_s(struct sock *sk, void *mem, int size); | 1074 | extern void sock_kfree_s(struct sock *sk, void *mem, int size); |
1075 | extern void sk_send_sigurg(struct sock *sk); | 1075 | extern void sk_send_sigurg(struct sock *sk); |
1076 | 1076 | ||
1077 | #ifdef CONFIG_CGROUPS | ||
1078 | extern void sock_update_classid(struct sock *sk); | ||
1079 | #else | ||
1080 | static inline void sock_update_classid(struct sock *sk) | ||
1081 | { | ||
1082 | } | ||
1083 | #endif | ||
1084 | |||
1077 | /* | 1085 | /* |
1078 | * Functions to fill in entries in struct proto_ops when a protocol | 1086 | * Functions to fill in entries in struct proto_ops when a protocol |
1079 | * does not implement a particular function. | 1087 | * does not implement a particular function. |
@@ -1404,7 +1412,7 @@ static inline int sk_has_allocations(const struct sock *sk) | |||
1404 | 1412 | ||
1405 | /** | 1413 | /** |
1406 | * wq_has_sleeper - check if there are any waiting processes | 1414 | * wq_has_sleeper - check if there are any waiting processes |
1407 | * @sk: struct socket_wq | 1415 | * @wq: struct socket_wq |
1408 | * | 1416 | * |
1409 | * Returns true if socket_wq has waiting processes | 1417 | * Returns true if socket_wq has waiting processes |
1410 | * | 1418 | * |