Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (49 commits) [SCTP]: Set assoc_id correctly during INIT collision. [SCTP]: Re-order SCTP initializations to avoid race with sctp_rcv() [SCTP]: Fix the SO_REUSEADDR handling to be similar to TCP. [SCTP]: Verify all destination ports in sctp_connectx. [XFRM] SPD info TLV aggregation [XFRM] SAD info TLV aggregationx [AF_RXRPC]: Sort out MTU handling. [AF_IUCV/IUCV] : Add missing section annotations [AF_IUCV]: Implementation of a skb backlog queue [NETLINK]: Remove bogus BUG_ON [IPV6]: Some cleanups in include/net/ipv6.h [TCP]: zero out rx_opt in tcp_disconnect() [BNX2]: Fix TSO problem with small MSS. [NET]: Rework dev_base via list_head (v3) [TCP] Highspeed: Limited slow-start is nowadays in tcp_slow_start [BNX2]: Update version and reldate. [BNX2]: Print bus information for PCIE devices. [BNX2]: Add 1-shot MSI handler for 5709. [BNX2]: Restructure PHY event handling. [BNX2]: Add indirect spinlock. ...
This commit is contained in:
commit
7e20ef030d
84 changed files with 6839 additions and 6152 deletions
|
@ -434,6 +434,7 @@ struct ethtool_ops {
|
|||
#define SUPPORTED_10000baseT_Full (1 << 12)
|
||||
#define SUPPORTED_Pause (1 << 13)
|
||||
#define SUPPORTED_Asym_Pause (1 << 14)
|
||||
#define SUPPORTED_2500baseX_Full (1 << 15)
|
||||
|
||||
/* Indicates what features are advertised by the interface. */
|
||||
#define ADVERTISED_10baseT_Half (1 << 0)
|
||||
|
@ -451,6 +452,7 @@ struct ethtool_ops {
|
|||
#define ADVERTISED_10000baseT_Full (1 << 12)
|
||||
#define ADVERTISED_Pause (1 << 13)
|
||||
#define ADVERTISED_Asym_Pause (1 << 14)
|
||||
#define ADVERTISED_2500baseX_Full (1 << 15)
|
||||
|
||||
/* The following are all involved in forcing a particular link
|
||||
* mode for the device for setting things. When getting the
|
||||
|
|
|
@ -304,7 +304,7 @@ struct net_device
|
|||
|
||||
unsigned long state;
|
||||
|
||||
struct net_device *next;
|
||||
struct list_head dev_list;
|
||||
|
||||
/* The device initialization function. Called only once. */
|
||||
int (*init)(struct net_device *dev);
|
||||
|
@ -575,13 +575,36 @@ struct packet_type {
|
|||
#include <linux/notifier.h>
|
||||
|
||||
extern struct net_device loopback_dev; /* The loopback */
|
||||
extern struct net_device *dev_base; /* All devices */
|
||||
extern struct list_head dev_base_head; /* All devices */
|
||||
extern rwlock_t dev_base_lock; /* Device list lock */
|
||||
|
||||
#define for_each_netdev(d) \
|
||||
list_for_each_entry(d, &dev_base_head, dev_list)
|
||||
#define for_each_netdev_safe(d, n) \
|
||||
list_for_each_entry_safe(d, n, &dev_base_head, dev_list)
|
||||
#define for_each_netdev_continue(d) \
|
||||
list_for_each_entry_continue(d, &dev_base_head, dev_list)
|
||||
#define net_device_entry(lh) list_entry(lh, struct net_device, dev_list)
|
||||
|
||||
static inline struct net_device *next_net_device(struct net_device *dev)
|
||||
{
|
||||
struct list_head *lh;
|
||||
|
||||
lh = dev->dev_list.next;
|
||||
return lh == &dev_base_head ? NULL : net_device_entry(lh);
|
||||
}
|
||||
|
||||
static inline struct net_device *first_net_device(void)
|
||||
{
|
||||
return list_empty(&dev_base_head) ? NULL :
|
||||
net_device_entry(dev_base_head.next);
|
||||
}
|
||||
|
||||
extern int netdev_boot_setup_check(struct net_device *dev);
|
||||
extern unsigned long netdev_boot_base(const char *prefix, int unit);
|
||||
extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr);
|
||||
extern struct net_device *dev_getfirstbyhwtype(unsigned short type);
|
||||
extern struct net_device *__dev_getfirstbyhwtype(unsigned short type);
|
||||
extern void dev_add_pack(struct packet_type *pt);
|
||||
extern void dev_remove_pack(struct packet_type *pt);
|
||||
extern void __dev_remove_pack(struct packet_type *pt);
|
||||
|
|
|
@ -87,24 +87,6 @@ int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir,
|
|||
/* delete keymap entries */
|
||||
void nf_ct_gre_keymap_destroy(struct nf_conn *ct);
|
||||
|
||||
/* get pointer to gre key, if present */
|
||||
static inline __be32 *gre_key(struct gre_hdr *greh)
|
||||
{
|
||||
if (!greh->key)
|
||||
return NULL;
|
||||
if (greh->csum || greh->routing)
|
||||
return (__be32 *)(greh+sizeof(*greh)+4);
|
||||
return (__be32 *)(greh+sizeof(*greh));
|
||||
}
|
||||
|
||||
/* get pointer ot gre csum, if present */
|
||||
static inline __sum16 *gre_csum(struct gre_hdr *greh)
|
||||
{
|
||||
if (!greh->csum)
|
||||
return NULL;
|
||||
return (__sum16 *)(greh+sizeof(*greh));
|
||||
}
|
||||
|
||||
extern void nf_ct_gre_keymap_flush(void);
|
||||
extern void nf_nat_need_gre(void);
|
||||
|
||||
|
|
|
@ -55,18 +55,25 @@ static inline int nf_bridge_maybe_copy_header(struct sk_buff *skb)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline unsigned int nf_bridge_encap_header_len(const struct sk_buff *skb)
|
||||
{
|
||||
switch (skb->protocol) {
|
||||
case __constant_htons(ETH_P_8021Q):
|
||||
return VLAN_HLEN;
|
||||
case __constant_htons(ETH_P_PPP_SES):
|
||||
return PPPOE_SES_HLEN;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* This is called by the IP fragmenting code and it ensures there is
|
||||
* enough room for the encapsulating header (if there is one). */
|
||||
static inline int nf_bridge_pad(const struct sk_buff *skb)
|
||||
static inline unsigned int nf_bridge_pad(const struct sk_buff *skb)
|
||||
{
|
||||
int padding = 0;
|
||||
|
||||
if (skb->nf_bridge && skb->protocol == htons(ETH_P_8021Q))
|
||||
padding = VLAN_HLEN;
|
||||
else if (skb->nf_bridge && skb->protocol == htons(ETH_P_PPP_SES))
|
||||
padding = PPPOE_SES_HLEN;
|
||||
|
||||
return padding;
|
||||
if (skb->nf_bridge)
|
||||
return nf_bridge_encap_header_len(skb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct bridge_skb_cb {
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
/* associates an integer enumerator with a pattern string. */
|
||||
struct match_token {
|
||||
int token;
|
||||
char *pattern;
|
||||
const char *pattern;
|
||||
};
|
||||
|
||||
typedef struct match_token match_table_t[];
|
||||
typedef const struct match_token match_table_t[];
|
||||
|
||||
/* Maximum number of arguments that match_token will find in a pattern */
|
||||
enum {MAX_OPT_ARGS = 3};
|
||||
|
@ -29,5 +29,5 @@ int match_token(char *, match_table_t table, substring_t args[]);
|
|||
int match_int(substring_t *, int *result);
|
||||
int match_octal(substring_t *, int *result);
|
||||
int match_hex(substring_t *, int *result);
|
||||
void match_strcpy(char *, substring_t *);
|
||||
char *match_strdup(substring_t *);
|
||||
void match_strcpy(char *, const substring_t *);
|
||||
char *match_strdup(const substring_t *);
|
||||
|
|
|
@ -1926,6 +1926,7 @@
|
|||
#define PCI_DEVICE_ID_TIGON3_5752 0x1600
|
||||
#define PCI_DEVICE_ID_TIGON3_5752M 0x1601
|
||||
#define PCI_DEVICE_ID_NX2_5709 0x1639
|
||||
#define PCI_DEVICE_ID_NX2_5709S 0x163a
|
||||
#define PCI_DEVICE_ID_TIGON3_5700 0x1644
|
||||
#define PCI_DEVICE_ID_TIGON3_5701 0x1645
|
||||
#define PCI_DEVICE_ID_TIGON3_5702 0x1646
|
||||
|
|
|
@ -197,7 +197,7 @@ typedef unsigned char *sk_buff_data_t;
|
|||
* @tstamp: Time we arrived
|
||||
* @dev: Device we arrived on/are leaving by
|
||||
* @iif: ifindex of device we arrived on
|
||||
* @h: Transport layer header
|
||||
* @transport_header: Transport layer header
|
||||
* @network_header: Network layer header
|
||||
* @mac_header: Link layer header
|
||||
* @dst: destination entry
|
||||
|
|
|
@ -243,17 +243,6 @@ enum xfrm_ae_ftype_t {
|
|||
#define XFRM_AE_MAX (__XFRM_AE_MAX - 1)
|
||||
};
|
||||
|
||||
/* SAD Table filter flags */
|
||||
enum xfrm_sad_ftype_t {
|
||||
XFRM_SAD_UNSPEC,
|
||||
XFRM_SAD_HMASK=1,
|
||||
XFRM_SAD_HMAX=2,
|
||||
XFRM_SAD_CNT=4,
|
||||
__XFRM_SAD_MAX
|
||||
|
||||
#define XFRM_SAD_MAX (__XFRM_SAD_MAX - 1)
|
||||
};
|
||||
|
||||
struct xfrm_userpolicy_type {
|
||||
__u8 type;
|
||||
__u16 reserved1;
|
||||
|
@ -287,44 +276,41 @@ enum xfrm_attr_type_t {
|
|||
|
||||
enum xfrm_sadattr_type_t {
|
||||
XFRMA_SAD_UNSPEC,
|
||||
XFRMA_SADHMASK,
|
||||
XFRMA_SADHMAX,
|
||||
XFRMA_SADCNT,
|
||||
XFRMA_SAD_CNT,
|
||||
XFRMA_SAD_HINFO,
|
||||
__XFRMA_SAD_MAX
|
||||
|
||||
#define XFRMA_SAD_MAX (__XFRMA_SAD_MAX - 1)
|
||||
};
|
||||
|
||||
/* SPD Table filter flags */
|
||||
enum xfrm_spd_ftype_t {
|
||||
XFRM_SPD_UNSPEC,
|
||||
XFRM_SPD_HMASK=1,
|
||||
XFRM_SPD_HMAX=2,
|
||||
XFRM_SPD_ICNT=4,
|
||||
XFRM_SPD_OCNT=8,
|
||||
XFRM_SPD_FCNT=16,
|
||||
XFRM_SPD_ISCNT=32,
|
||||
XFRM_SPD_OSCNT=64,
|
||||
XFRM_SPD_FSCNT=128,
|
||||
__XFRM_SPD_MAX
|
||||
|
||||
#define XFRM_SPD_MAX (__XFRM_SPD_MAX - 1)
|
||||
struct xfrmu_sadhinfo {
|
||||
__u32 sadhcnt; /* current hash bkts */
|
||||
__u32 sadhmcnt; /* max allowed hash bkts */
|
||||
};
|
||||
|
||||
enum xfrm_spdattr_type_t {
|
||||
XFRMA_SPD_UNSPEC,
|
||||
XFRMA_SPDHMASK,
|
||||
XFRMA_SPDHMAX,
|
||||
XFRMA_SPDICNT,
|
||||
XFRMA_SPDOCNT,
|
||||
XFRMA_SPDFCNT,
|
||||
XFRMA_SPDISCNT,
|
||||
XFRMA_SPDOSCNT,
|
||||
XFRMA_SPDFSCNT,
|
||||
XFRMA_SPD_INFO,
|
||||
XFRMA_SPD_HINFO,
|
||||
__XFRMA_SPD_MAX
|
||||
|
||||
#define XFRMA_SPD_MAX (__XFRMA_SPD_MAX - 1)
|
||||
};
|
||||
|
||||
struct xfrmu_spdinfo {
|
||||
__u32 incnt;
|
||||
__u32 outcnt;
|
||||
__u32 fwdcnt;
|
||||
__u32 inscnt;
|
||||
__u32 outscnt;
|
||||
__u32 fwdscnt;
|
||||
};
|
||||
|
||||
struct xfrmu_spdhinfo {
|
||||
__u32 spdhcnt;
|
||||
__u32 spdhmcnt;
|
||||
};
|
||||
|
||||
struct xfrm_usersa_info {
|
||||
struct xfrm_selector sel;
|
||||
struct xfrm_id id;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue