diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-17 23:53:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-17 23:53:52 -0400 |
commit | f205ce83a766c08965ec78342f138cdc00631fba (patch) | |
tree | 7a9d2db6c16594ef7c730ca93a87131cf0abca41 /include | |
parent | 3dc95666df0e1ae5b7381a8ec97a583bb3ce4306 (diff) | |
parent | b31c50a7f9e93a61d14740dedcbbf2c376998bc7 (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: (66 commits)
be2net: fix some cmds to use mccq instead of mbox
atl1e: fix 2.6.31-git4 -- ATL1E 0000:03:00.0: DMA-API: device driver frees DMA
pkt_sched: Fix qstats.qlen updating in dump_stats
ipv6: Log the affected address when DAD failure occurs
wl12xx: Fix print_mac() conversion.
af_iucv: fix race when queueing skbs on the backlog queue
af_iucv: do not call iucv_sock_kill() twice
af_iucv: handle non-accepted sockets after resuming from suspend
af_iucv: fix race in __iucv_sock_wait()
iucv: use correct output register in iucv_query_maxconn()
iucv: fix iucv_buffer_cpumask check when calling IUCV functions
iucv: suspend/resume error msg for left over pathes
wl12xx: switch to %pM to print the mac address
b44: the poll handler b44_poll must not enable IRQ unconditionally
ipv6: Ignore route option with ROUTER_PREF_INVALID
bonding: make ab_arp select active slaves as other modes
cfg80211: fix SME connect
rc80211_minstrel: fix contention window calculation
ssb/sdio: fix printk format warnings
p54usb: add Zcomax XG-705A usbid
...
Diffstat (limited to 'include')
-rw-r--r-- | include/keys/rxrpc-type.h | 107 | ||||
-rw-r--r-- | include/linux/igmp.h | 2 | ||||
-rw-r--r-- | include/linux/net.h | 5 | ||||
-rw-r--r-- | include/linux/netdevice.h | 3 | ||||
-rw-r--r-- | include/linux/netlink.h | 4 | ||||
-rw-r--r-- | include/linux/notifier.h | 2 | ||||
-rw-r--r-- | include/linux/rxrpc.h | 7 | ||||
-rw-r--r-- | include/net/addrconf.h | 2 | ||||
-rw-r--r-- | include/net/protocol.h | 13 | ||||
-rw-r--r-- | include/net/sch_generic.h | 2 | ||||
-rw-r--r-- | include/net/tcp.h | 7 |
11 files changed, 145 insertions, 9 deletions
diff --git a/include/keys/rxrpc-type.h b/include/keys/rxrpc-type.h index 7609365577f1..5cb86c307f5d 100644 --- a/include/keys/rxrpc-type.h +++ b/include/keys/rxrpc-type.h | |||
@@ -21,4 +21,111 @@ extern struct key_type key_type_rxrpc; | |||
21 | 21 | ||
22 | extern struct key *rxrpc_get_null_key(const char *); | 22 | extern struct key *rxrpc_get_null_key(const char *); |
23 | 23 | ||
24 | /* | ||
25 | * RxRPC key for Kerberos IV (type-2 security) | ||
26 | */ | ||
27 | struct rxkad_key { | ||
28 | u32 vice_id; | ||
29 | u32 start; /* time at which ticket starts */ | ||
30 | u32 expiry; /* time at which ticket expires */ | ||
31 | u32 kvno; /* key version number */ | ||
32 | u8 primary_flag; /* T if key for primary cell for this user */ | ||
33 | u16 ticket_len; /* length of ticket[] */ | ||
34 | u8 session_key[8]; /* DES session key */ | ||
35 | u8 ticket[0]; /* the encrypted ticket */ | ||
36 | }; | ||
37 | |||
38 | /* | ||
39 | * Kerberos 5 principal | ||
40 | * name/name/name@realm | ||
41 | */ | ||
42 | struct krb5_principal { | ||
43 | u8 n_name_parts; /* N of parts of the name part of the principal */ | ||
44 | char **name_parts; /* parts of the name part of the principal */ | ||
45 | char *realm; /* parts of the realm part of the principal */ | ||
46 | }; | ||
47 | |||
48 | /* | ||
49 | * Kerberos 5 tagged data | ||
50 | */ | ||
51 | struct krb5_tagged_data { | ||
52 | /* for tag value, see /usr/include/krb5/krb5.h | ||
53 | * - KRB5_AUTHDATA_* for auth data | ||
54 | * - | ||
55 | */ | ||
56 | s32 tag; | ||
57 | u32 data_len; | ||
58 | u8 *data; | ||
59 | }; | ||
60 | |||
61 | /* | ||
62 | * RxRPC key for Kerberos V (type-5 security) | ||
63 | */ | ||
64 | struct rxk5_key { | ||
65 | u64 authtime; /* time at which auth token generated */ | ||
66 | u64 starttime; /* time at which auth token starts */ | ||
67 | u64 endtime; /* time at which auth token expired */ | ||
68 | u64 renew_till; /* time to which auth token can be renewed */ | ||
69 | s32 is_skey; /* T if ticket is encrypted in another ticket's | ||
70 | * skey */ | ||
71 | s32 flags; /* mask of TKT_FLG_* bits (krb5/krb5.h) */ | ||
72 | struct krb5_principal client; /* client principal name */ | ||
73 | struct krb5_principal server; /* server principal name */ | ||
74 | u16 ticket_len; /* length of ticket */ | ||
75 | u16 ticket2_len; /* length of second ticket */ | ||
76 | u8 n_authdata; /* number of authorisation data elements */ | ||
77 | u8 n_addresses; /* number of addresses */ | ||
78 | struct krb5_tagged_data session; /* session data; tag is enctype */ | ||
79 | struct krb5_tagged_data *addresses; /* addresses */ | ||
80 | u8 *ticket; /* krb5 ticket */ | ||
81 | u8 *ticket2; /* second krb5 ticket, if related to ticket (via | ||
82 | * DUPLICATE-SKEY or ENC-TKT-IN-SKEY) */ | ||
83 | struct krb5_tagged_data *authdata; /* authorisation data */ | ||
84 | }; | ||
85 | |||
86 | /* | ||
87 | * list of tokens attached to an rxrpc key | ||
88 | */ | ||
89 | struct rxrpc_key_token { | ||
90 | u16 security_index; /* RxRPC header security index */ | ||
91 | struct rxrpc_key_token *next; /* the next token in the list */ | ||
92 | union { | ||
93 | struct rxkad_key *kad; | ||
94 | struct rxk5_key *k5; | ||
95 | }; | ||
96 | }; | ||
97 | |||
98 | /* | ||
99 | * structure of raw payloads passed to add_key() or instantiate key | ||
100 | */ | ||
101 | struct rxrpc_key_data_v1 { | ||
102 | u32 kif_version; /* 1 */ | ||
103 | u16 security_index; | ||
104 | u16 ticket_length; | ||
105 | u32 expiry; /* time_t */ | ||
106 | u32 kvno; | ||
107 | u8 session_key[8]; | ||
108 | u8 ticket[0]; | ||
109 | }; | ||
110 | |||
111 | /* | ||
112 | * AF_RXRPC key payload derived from XDR format | ||
113 | * - based on openafs-1.4.10/src/auth/afs_token.xg | ||
114 | */ | ||
115 | #define AFSTOKEN_LENGTH_MAX 16384 /* max payload size */ | ||
116 | #define AFSTOKEN_STRING_MAX 256 /* max small string length */ | ||
117 | #define AFSTOKEN_DATA_MAX 64 /* max small data length */ | ||
118 | #define AFSTOKEN_CELL_MAX 64 /* max cellname length */ | ||
119 | #define AFSTOKEN_MAX 8 /* max tokens per payload */ | ||
120 | #define AFSTOKEN_BDATALN_MAX 16384 /* max big data length */ | ||
121 | #define AFSTOKEN_RK_TIX_MAX 12000 /* max RxKAD ticket size */ | ||
122 | #define AFSTOKEN_GK_KEY_MAX 64 /* max GSSAPI key size */ | ||
123 | #define AFSTOKEN_GK_TOKEN_MAX 16384 /* max GSSAPI token size */ | ||
124 | #define AFSTOKEN_K5_COMPONENTS_MAX 16 /* max K5 components */ | ||
125 | #define AFSTOKEN_K5_NAME_MAX 128 /* max K5 name length */ | ||
126 | #define AFSTOKEN_K5_REALM_MAX 64 /* max K5 realm name length */ | ||
127 | #define AFSTOKEN_K5_TIX_MAX 16384 /* max K5 ticket size */ | ||
128 | #define AFSTOKEN_K5_ADDRESSES_MAX 16 /* max K5 addresses */ | ||
129 | #define AFSTOKEN_K5_AUTHDATA_MAX 16 /* max K5 pieces of auth data */ | ||
130 | |||
24 | #endif /* _KEYS_RXRPC_TYPE_H */ | 131 | #endif /* _KEYS_RXRPC_TYPE_H */ |
diff --git a/include/linux/igmp.h b/include/linux/igmp.h index 92fbd8cbd68f..fe158e0e20e6 100644 --- a/include/linux/igmp.h +++ b/include/linux/igmp.h | |||
@@ -233,6 +233,8 @@ extern void ip_mc_init_dev(struct in_device *); | |||
233 | extern void ip_mc_destroy_dev(struct in_device *); | 233 | extern void ip_mc_destroy_dev(struct in_device *); |
234 | extern void ip_mc_up(struct in_device *); | 234 | extern void ip_mc_up(struct in_device *); |
235 | extern void ip_mc_down(struct in_device *); | 235 | extern void ip_mc_down(struct in_device *); |
236 | extern void ip_mc_unmap(struct in_device *); | ||
237 | extern void ip_mc_remap(struct in_device *); | ||
236 | extern void ip_mc_dec_group(struct in_device *in_dev, __be32 addr); | 238 | extern void ip_mc_dec_group(struct in_device *in_dev, __be32 addr); |
237 | extern void ip_mc_inc_group(struct in_device *in_dev, __be32 addr); | 239 | extern void ip_mc_inc_group(struct in_device *in_dev, __be32 addr); |
238 | extern void ip_mc_rejoin_group(struct ip_mc_list *im); | 240 | extern void ip_mc_rejoin_group(struct ip_mc_list *im); |
diff --git a/include/linux/net.h b/include/linux/net.h index 4fc2ffd527f9..9040a10584f7 100644 --- a/include/linux/net.h +++ b/include/linux/net.h | |||
@@ -57,6 +57,7 @@ typedef enum { | |||
57 | #include <linux/random.h> | 57 | #include <linux/random.h> |
58 | #include <linux/wait.h> | 58 | #include <linux/wait.h> |
59 | #include <linux/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK */ | 59 | #include <linux/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK */ |
60 | #include <linux/kmemcheck.h> | ||
60 | 61 | ||
61 | struct poll_table_struct; | 62 | struct poll_table_struct; |
62 | struct pipe_inode_info; | 63 | struct pipe_inode_info; |
@@ -127,7 +128,11 @@ enum sock_shutdown_cmd { | |||
127 | */ | 128 | */ |
128 | struct socket { | 129 | struct socket { |
129 | socket_state state; | 130 | socket_state state; |
131 | |||
132 | kmemcheck_bitfield_begin(type); | ||
130 | short type; | 133 | short type; |
134 | kmemcheck_bitfield_end(type); | ||
135 | |||
131 | unsigned long flags; | 136 | unsigned long flags; |
132 | /* | 137 | /* |
133 | * Please keep fasync_list & wait fields in the same cache line | 138 | * Please keep fasync_list & wait fields in the same cache line |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index a9aa4b5917d7..94958c109761 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -1873,7 +1873,8 @@ extern void __dev_addr_unsync(struct dev_addr_list **to, int *to_count, struct | |||
1873 | extern int dev_set_promiscuity(struct net_device *dev, int inc); | 1873 | extern int dev_set_promiscuity(struct net_device *dev, int inc); |
1874 | extern int dev_set_allmulti(struct net_device *dev, int inc); | 1874 | extern int dev_set_allmulti(struct net_device *dev, int inc); |
1875 | extern void netdev_state_change(struct net_device *dev); | 1875 | extern void netdev_state_change(struct net_device *dev); |
1876 | extern void netdev_bonding_change(struct net_device *dev); | 1876 | extern void netdev_bonding_change(struct net_device *dev, |
1877 | unsigned long event); | ||
1877 | extern void netdev_features_change(struct net_device *dev); | 1878 | extern void netdev_features_change(struct net_device *dev); |
1878 | /* Load a device via the kmod */ | 1879 | /* Load a device via the kmod */ |
1879 | extern void dev_load(struct net *net, const char *name); | 1880 | extern void dev_load(struct net *net, const char *name); |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 0fbecbbe8e9e..080f6ba9e73a 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
@@ -176,12 +176,16 @@ struct netlink_skb_parms | |||
176 | #define NETLINK_CREDS(skb) (&NETLINK_CB((skb)).creds) | 176 | #define NETLINK_CREDS(skb) (&NETLINK_CB((skb)).creds) |
177 | 177 | ||
178 | 178 | ||
179 | extern void netlink_table_grab(void); | ||
180 | extern void netlink_table_ungrab(void); | ||
181 | |||
179 | extern struct sock *netlink_kernel_create(struct net *net, | 182 | extern struct sock *netlink_kernel_create(struct net *net, |
180 | int unit,unsigned int groups, | 183 | int unit,unsigned int groups, |
181 | void (*input)(struct sk_buff *skb), | 184 | void (*input)(struct sk_buff *skb), |
182 | struct mutex *cb_mutex, | 185 | struct mutex *cb_mutex, |
183 | struct module *module); | 186 | struct module *module); |
184 | extern void netlink_kernel_release(struct sock *sk); | 187 | extern void netlink_kernel_release(struct sock *sk); |
188 | extern int __netlink_change_ngroups(struct sock *sk, unsigned int groups); | ||
185 | extern int netlink_change_ngroups(struct sock *sk, unsigned int groups); | 189 | extern int netlink_change_ngroups(struct sock *sk, unsigned int groups); |
186 | extern void netlink_clear_multicast_users(struct sock *sk, unsigned int group); | 190 | extern void netlink_clear_multicast_users(struct sock *sk, unsigned int group); |
187 | extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err); | 191 | extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err); |
diff --git a/include/linux/notifier.h b/include/linux/notifier.h index 81bc252dc8ac..44428d247dbe 100644 --- a/include/linux/notifier.h +++ b/include/linux/notifier.h | |||
@@ -199,6 +199,8 @@ static inline int notifier_to_errno(int ret) | |||
199 | #define NETDEV_FEAT_CHANGE 0x000B | 199 | #define NETDEV_FEAT_CHANGE 0x000B |
200 | #define NETDEV_BONDING_FAILOVER 0x000C | 200 | #define NETDEV_BONDING_FAILOVER 0x000C |
201 | #define NETDEV_PRE_UP 0x000D | 201 | #define NETDEV_PRE_UP 0x000D |
202 | #define NETDEV_BONDING_OLDTYPE 0x000E | ||
203 | #define NETDEV_BONDING_NEWTYPE 0x000F | ||
202 | 204 | ||
203 | #define SYS_DOWN 0x0001 /* Notify of system down */ | 205 | #define SYS_DOWN 0x0001 /* Notify of system down */ |
204 | #define SYS_RESTART SYS_DOWN | 206 | #define SYS_RESTART SYS_DOWN |
diff --git a/include/linux/rxrpc.h b/include/linux/rxrpc.h index f7b826b565c7..a53915cd5581 100644 --- a/include/linux/rxrpc.h +++ b/include/linux/rxrpc.h | |||
@@ -58,5 +58,12 @@ struct sockaddr_rxrpc { | |||
58 | #define RXRPC_SECURITY_AUTH 1 /* authenticated packets */ | 58 | #define RXRPC_SECURITY_AUTH 1 /* authenticated packets */ |
59 | #define RXRPC_SECURITY_ENCRYPT 2 /* encrypted packets */ | 59 | #define RXRPC_SECURITY_ENCRYPT 2 /* encrypted packets */ |
60 | 60 | ||
61 | /* | ||
62 | * RxRPC security indices | ||
63 | */ | ||
64 | #define RXRPC_SECURITY_NONE 0 /* no security protocol */ | ||
65 | #define RXRPC_SECURITY_RXKAD 2 /* kaserver or kerberos 4 */ | ||
66 | #define RXRPC_SECURITY_RXGK 4 /* gssapi-based */ | ||
67 | #define RXRPC_SECURITY_RXK5 5 /* kerberos 5 */ | ||
61 | 68 | ||
62 | #endif /* _LINUX_RXRPC_H */ | 69 | #endif /* _LINUX_RXRPC_H */ |
diff --git a/include/net/addrconf.h b/include/net/addrconf.h index 7b55ab215a64..0f7c37825fc1 100644 --- a/include/net/addrconf.h +++ b/include/net/addrconf.h | |||
@@ -143,6 +143,8 @@ extern int __ipv6_dev_mc_dec(struct inet6_dev *idev, const struct in6_addr *addr | |||
143 | extern int ipv6_dev_mc_dec(struct net_device *dev, const struct in6_addr *addr); | 143 | extern int ipv6_dev_mc_dec(struct net_device *dev, const struct in6_addr *addr); |
144 | extern void ipv6_mc_up(struct inet6_dev *idev); | 144 | extern void ipv6_mc_up(struct inet6_dev *idev); |
145 | extern void ipv6_mc_down(struct inet6_dev *idev); | 145 | extern void ipv6_mc_down(struct inet6_dev *idev); |
146 | extern void ipv6_mc_unmap(struct inet6_dev *idev); | ||
147 | extern void ipv6_mc_remap(struct inet6_dev *idev); | ||
146 | extern void ipv6_mc_init_dev(struct inet6_dev *idev); | 148 | extern void ipv6_mc_init_dev(struct inet6_dev *idev); |
147 | extern void ipv6_mc_destroy_dev(struct inet6_dev *idev); | 149 | extern void ipv6_mc_destroy_dev(struct inet6_dev *idev); |
148 | extern void addrconf_dad_failure(struct inet6_ifaddr *ifp); | 150 | extern void addrconf_dad_failure(struct inet6_ifaddr *ifp); |
diff --git a/include/net/protocol.h b/include/net/protocol.h index 1089d5aabd49..60249e51b669 100644 --- a/include/net/protocol.h +++ b/include/net/protocol.h | |||
@@ -94,21 +94,20 @@ struct inet_protosw { | |||
94 | #define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */ | 94 | #define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */ |
95 | #define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */ | 95 | #define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */ |
96 | 96 | ||
97 | extern struct net_protocol *inet_protocol_base; | 97 | extern const struct net_protocol *inet_protos[MAX_INET_PROTOS]; |
98 | extern struct net_protocol *inet_protos[MAX_INET_PROTOS]; | ||
99 | 98 | ||
100 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) | 99 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) |
101 | extern struct inet6_protocol *inet6_protos[MAX_INET_PROTOS]; | 100 | extern const struct inet6_protocol *inet6_protos[MAX_INET_PROTOS]; |
102 | #endif | 101 | #endif |
103 | 102 | ||
104 | extern int inet_add_protocol(struct net_protocol *prot, unsigned char num); | 103 | extern int inet_add_protocol(const struct net_protocol *prot, unsigned char num); |
105 | extern int inet_del_protocol(struct net_protocol *prot, unsigned char num); | 104 | extern int inet_del_protocol(const struct net_protocol *prot, unsigned char num); |
106 | extern void inet_register_protosw(struct inet_protosw *p); | 105 | extern void inet_register_protosw(struct inet_protosw *p); |
107 | extern void inet_unregister_protosw(struct inet_protosw *p); | 106 | extern void inet_unregister_protosw(struct inet_protosw *p); |
108 | 107 | ||
109 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) | 108 | #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) |
110 | extern int inet6_add_protocol(struct inet6_protocol *prot, unsigned char num); | 109 | extern int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char num); |
111 | extern int inet6_del_protocol(struct inet6_protocol *prot, unsigned char num); | 110 | extern int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char num); |
112 | extern int inet6_register_protosw(struct inet_protosw *p); | 111 | extern int inet6_register_protosw(struct inet_protosw *p); |
113 | extern void inet6_unregister_protosw(struct inet_protosw *p); | 112 | extern void inet6_unregister_protosw(struct inet_protosw *p); |
114 | #endif | 113 | #endif |
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 88eb9de095de..c33180dd42b4 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
@@ -81,7 +81,7 @@ struct Qdisc | |||
81 | struct Qdisc_class_ops | 81 | struct Qdisc_class_ops |
82 | { | 82 | { |
83 | /* Child qdisc manipulation */ | 83 | /* Child qdisc manipulation */ |
84 | unsigned int (*select_queue)(struct Qdisc *, struct tcmsg *); | 84 | struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *); |
85 | int (*graft)(struct Qdisc *, unsigned long cl, | 85 | int (*graft)(struct Qdisc *, unsigned long cl, |
86 | struct Qdisc *, struct Qdisc **); | 86 | struct Qdisc *, struct Qdisc **); |
87 | struct Qdisc * (*leaf)(struct Qdisc *, unsigned long cl); | 87 | struct Qdisc * (*leaf)(struct Qdisc *, unsigned long cl); |
diff --git a/include/net/tcp.h b/include/net/tcp.h index b71a446d58f6..56b76027b85e 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -793,6 +793,13 @@ static inline unsigned int tcp_packets_in_flight(const struct tcp_sock *tp) | |||
793 | return tp->packets_out - tcp_left_out(tp) + tp->retrans_out; | 793 | return tp->packets_out - tcp_left_out(tp) + tp->retrans_out; |
794 | } | 794 | } |
795 | 795 | ||
796 | #define TCP_INFINITE_SSTHRESH 0x7fffffff | ||
797 | |||
798 | static inline bool tcp_in_initial_slowstart(const struct tcp_sock *tp) | ||
799 | { | ||
800 | return tp->snd_ssthresh >= TCP_INFINITE_SSTHRESH; | ||
801 | } | ||
802 | |||
796 | /* If cwnd > ssthresh, we may raise ssthresh to be half-way to cwnd. | 803 | /* If cwnd > ssthresh, we may raise ssthresh to be half-way to cwnd. |
797 | * The exception is rate halving phase, when cwnd is decreasing towards | 804 | * The exception is rate halving phase, when cwnd is decreasing towards |
798 | * ssthresh. | 805 | * ssthresh. |