Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (41 commits) [RTNETLINK]: Fix warning for !CONFIG_KMOD [IPV4] ip_options.c: kmalloc + memset conversion to kzalloc [DECNET]: kmalloc + memset conversion to kzalloc [NET]: ethtool_perm_addr only has one implementation [NET]: ethtool ops are the only way [PPPOE]: Improve hashing function in hash_item(). [XFRM]: State selection update to use inner addresses. [IPSEC]: Ensure that state inner family is set [TCP]: Bidir flow must not disregard SACK blocks for lost marking [TCP]: Fix ratehalving with bidirectional flows [PPPOL2TP]: Add CONFIG_INET Kconfig dependency. [NET]: Page offsets and lengths need to be __u32. [AF_UNIX]: Make code static. [NETFILTER]: Make nf_ct_ipv6_skip_exthdr() static. [PKTGEN]: make get_ipsec_sa() static and non-inline [PPPoE]: move lock_sock() in pppoe_sendmsg() to the right location [PPPoX/E]: return ENOTTY on unknown ioctl requests [IPV6]: ipv6_addr_type() doesn't know about RFC4193 addresses. [NET]: Fix prio_tune() handling of root qdisc. [NET]: Fix sch_api to properly set sch->parent on the root. ...
This commit is contained in:
@@ -270,8 +270,6 @@ u32 ethtool_op_get_sg(struct net_device *dev);
|
||||
int ethtool_op_set_sg(struct net_device *dev, u32 data);
|
||||
u32 ethtool_op_get_tso(struct net_device *dev);
|
||||
int ethtool_op_set_tso(struct net_device *dev, u32 data);
|
||||
int ethtool_op_get_perm_addr(struct net_device *dev,
|
||||
struct ethtool_perm_addr *addr, u8 *data);
|
||||
u32 ethtool_op_get_ufo(struct net_device *dev);
|
||||
int ethtool_op_set_ufo(struct net_device *dev, u32 data);
|
||||
|
||||
@@ -309,7 +307,6 @@ int ethtool_op_set_ufo(struct net_device *dev, u32 data);
|
||||
* get_strings: Return a set of strings that describe the requested objects
|
||||
* phys_id: Identify the device
|
||||
* get_stats: Return statistics about the device
|
||||
* get_perm_addr: Gets the permanent hardware address
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
@@ -368,7 +365,6 @@ struct ethtool_ops {
|
||||
int (*phys_id)(struct net_device *, u32);
|
||||
int (*get_stats_count)(struct net_device *);
|
||||
void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
|
||||
int (*get_perm_addr)(struct net_device *, struct ethtool_perm_addr *, u8 *);
|
||||
int (*begin)(struct net_device *);
|
||||
void (*complete)(struct net_device *);
|
||||
u32 (*get_ufo)(struct net_device *);
|
||||
|
||||
@@ -219,7 +219,6 @@ enum {
|
||||
#include <linux/tcp.h>
|
||||
#include <linux/udp.h>
|
||||
|
||||
#include <net/if_inet6.h> /* struct ipv6_mc_socklist */
|
||||
#include <net/inet_sock.h>
|
||||
|
||||
static inline struct ipv6hdr *ipv6_hdr(const struct sk_buff *skb)
|
||||
@@ -273,6 +272,10 @@ struct tcp6_request_sock {
|
||||
struct inet6_request_sock tcp6rsk_inet6;
|
||||
};
|
||||
|
||||
struct ipv6_mc_socklist;
|
||||
struct ipv6_ac_socklist;
|
||||
struct ipv6_fl_socklist;
|
||||
|
||||
/**
|
||||
* struct ipv6_pinfo - ipv6 private area
|
||||
*
|
||||
|
||||
@@ -157,6 +157,19 @@ extern int __srcu_notifier_call_chain(struct srcu_notifier_head *nh,
|
||||
*/
|
||||
#define NOTIFY_STOP (NOTIFY_OK|NOTIFY_STOP_MASK)
|
||||
|
||||
/* Encapsulate (negative) errno value (in particular, NOTIFY_BAD <=> EPERM). */
|
||||
static inline int notifier_from_errno(int err)
|
||||
{
|
||||
return NOTIFY_STOP_MASK | (NOTIFY_OK - err);
|
||||
}
|
||||
|
||||
/* Restore (negative) errno value from notify return value. */
|
||||
static inline int notifier_to_errno(int ret)
|
||||
{
|
||||
ret &= ~NOTIFY_STOP_MASK;
|
||||
return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Declared notifiers so far. I can imagine quite a few more chains
|
||||
* over time (eg laptop power reset chains, reboot chain (to clean
|
||||
|
||||
@@ -134,8 +134,8 @@ typedef struct skb_frag_struct skb_frag_t;
|
||||
|
||||
struct skb_frag_struct {
|
||||
struct page *page;
|
||||
__u16 page_offset;
|
||||
__u16 size;
|
||||
__u32 page_offset;
|
||||
__u32 size;
|
||||
};
|
||||
|
||||
/* This data is invariant across clones and lives at
|
||||
|
||||
@@ -12,37 +12,8 @@ extern void unix_gc(void);
|
||||
|
||||
#define UNIX_HASH_SIZE 256
|
||||
|
||||
extern struct hlist_head unix_socket_table[UNIX_HASH_SIZE + 1];
|
||||
extern spinlock_t unix_table_lock;
|
||||
|
||||
extern atomic_t unix_tot_inflight;
|
||||
|
||||
static inline struct sock *first_unix_socket(int *i)
|
||||
{
|
||||
for (*i = 0; *i <= UNIX_HASH_SIZE; (*i)++) {
|
||||
if (!hlist_empty(&unix_socket_table[*i]))
|
||||
return __sk_head(&unix_socket_table[*i]);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline struct sock *next_unix_socket(int *i, struct sock *s)
|
||||
{
|
||||
struct sock *next = sk_next(s);
|
||||
/* More in this chain? */
|
||||
if (next)
|
||||
return next;
|
||||
/* Look for next non-empty chain. */
|
||||
for ((*i)++; *i <= UNIX_HASH_SIZE; (*i)++) {
|
||||
if (!hlist_empty(&unix_socket_table[*i]))
|
||||
return __sk_head(&unix_socket_table[*i]);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#define forall_unix_sockets(i, s) \
|
||||
for (s = first_unix_socket(&(i)); s; s = next_unix_socket(&(i),(s)))
|
||||
|
||||
struct unix_address {
|
||||
atomic_t refcnt;
|
||||
int len;
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
/* L2CAP socket address */
|
||||
struct sockaddr_l2 {
|
||||
sa_family_t l2_family;
|
||||
unsigned short l2_psm;
|
||||
__le16 l2_psm;
|
||||
bdaddr_t l2_bdaddr;
|
||||
};
|
||||
|
||||
@@ -76,32 +76,32 @@ struct l2cap_conninfo {
|
||||
|
||||
/* L2CAP structures */
|
||||
struct l2cap_hdr {
|
||||
__u16 len;
|
||||
__u16 cid;
|
||||
__le16 len;
|
||||
__le16 cid;
|
||||
} __attribute__ ((packed));
|
||||
#define L2CAP_HDR_SIZE 4
|
||||
|
||||
struct l2cap_cmd_hdr {
|
||||
__u8 code;
|
||||
__u8 ident;
|
||||
__u16 len;
|
||||
__le16 len;
|
||||
} __attribute__ ((packed));
|
||||
#define L2CAP_CMD_HDR_SIZE 4
|
||||
|
||||
struct l2cap_cmd_rej {
|
||||
__u16 reason;
|
||||
__le16 reason;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct l2cap_conn_req {
|
||||
__u16 psm;
|
||||
__u16 scid;
|
||||
__le16 psm;
|
||||
__le16 scid;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct l2cap_conn_rsp {
|
||||
__u16 dcid;
|
||||
__u16 scid;
|
||||
__u16 result;
|
||||
__u16 status;
|
||||
__le16 dcid;
|
||||
__le16 scid;
|
||||
__le16 result;
|
||||
__le16 status;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* connect result */
|
||||
@@ -117,15 +117,15 @@ struct l2cap_conn_rsp {
|
||||
#define L2CAP_CS_AUTHOR_PEND 0x0002
|
||||
|
||||
struct l2cap_conf_req {
|
||||
__u16 dcid;
|
||||
__u16 flags;
|
||||
__le16 dcid;
|
||||
__le16 flags;
|
||||
__u8 data[0];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct l2cap_conf_rsp {
|
||||
__u16 scid;
|
||||
__u16 flags;
|
||||
__u16 result;
|
||||
__le16 scid;
|
||||
__le16 flags;
|
||||
__le16 result;
|
||||
__u8 data[0];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
@@ -149,23 +149,23 @@ struct l2cap_conf_opt {
|
||||
#define L2CAP_CONF_MAX_SIZE 22
|
||||
|
||||
struct l2cap_disconn_req {
|
||||
__u16 dcid;
|
||||
__u16 scid;
|
||||
__le16 dcid;
|
||||
__le16 scid;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct l2cap_disconn_rsp {
|
||||
__u16 dcid;
|
||||
__u16 scid;
|
||||
__le16 dcid;
|
||||
__le16 scid;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct l2cap_info_req {
|
||||
__u16 type;
|
||||
__le16 type;
|
||||
__u8 data[0];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct l2cap_info_rsp {
|
||||
__u16 type;
|
||||
__u16 result;
|
||||
__le16 type;
|
||||
__le16 result;
|
||||
__u8 data[0];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
@@ -207,7 +207,7 @@ struct l2cap_conn {
|
||||
|
||||
struct l2cap_pinfo {
|
||||
struct bt_sock bt;
|
||||
__u16 psm;
|
||||
__le16 psm;
|
||||
__u16 dcid;
|
||||
__u16 scid;
|
||||
|
||||
@@ -225,7 +225,7 @@ struct l2cap_pinfo {
|
||||
|
||||
__u8 ident;
|
||||
|
||||
__u16 sport;
|
||||
__le16 sport;
|
||||
|
||||
struct l2cap_conn *conn;
|
||||
struct sock *next_c;
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <linux/ipv6.h>
|
||||
#include <linux/hardirq.h>
|
||||
#include <net/if_inet6.h>
|
||||
#include <net/ndisc.h>
|
||||
#include <net/flow.h>
|
||||
#include <net/snmp.h>
|
||||
|
||||
@@ -7,9 +7,6 @@ extern struct nf_conntrack_l4proto nf_conntrack_l4proto_tcp6;
|
||||
extern struct nf_conntrack_l4proto nf_conntrack_l4proto_udp6;
|
||||
extern struct nf_conntrack_l4proto nf_conntrack_l4proto_icmpv6;
|
||||
|
||||
extern int nf_ct_ipv6_skip_exthdr(const struct sk_buff *skb, int start,
|
||||
u8 *nexthdrp, int len);
|
||||
|
||||
extern int nf_ct_frag6_init(void);
|
||||
extern void nf_ct_frag6_cleanup(void);
|
||||
extern struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb);
|
||||
|
||||
+1
-1
@@ -660,7 +660,7 @@ struct tcp_congestion_ops {
|
||||
/* new value of cwnd after loss (optional) */
|
||||
u32 (*undo_cwnd)(struct sock *sk);
|
||||
/* hook for packet ack accounting (optional) */
|
||||
void (*pkts_acked)(struct sock *sk, u32 num_acked, ktime_t last);
|
||||
void (*pkts_acked)(struct sock *sk, u32 num_acked, s32 rtt_us);
|
||||
/* get info for inet_diag (optional) */
|
||||
void (*get_info)(struct sock *sk, u32 ext, struct sk_buff *skb);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user