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: (108 commits)
bridge: ensure to unlock in error path in br_multicast_query().
drivers/net/tulip/eeprom.c: fix bogus "(null)" in tulip init messages
sky2: Avoid rtnl_unlock without rtnl_lock
ipv6: Send netlink notification when DAD fails
drivers/net/tg3.c: change the field used with the TG3_FLAG_10_100_ONLY constant
ipconfig: Handle devices which take some time to come up.
mac80211: Fix memory leak in ieee80211_if_write()
mac80211: Fix (dynamic) power save entry
ipw2200: use kmalloc for large local variables
ath5k: read eeprom IQ calibration values correctly for G mode
ath5k: fix I/Q calibration (for real)
ath5k: fix TSF reset
ath5k: use fixed antenna for tx descriptors
libipw: split ieee->networks into small pieces
mac80211: Fix sta_mtx unlocking on insert STA failure path
rt2x00: remove KSEG1ADDR define from rt2x00soc.h
net: add ColdFire support to the smc91x driver
asix: fix setting mac address for AX88772
ipv6 ip6_tunnel: eliminate unused recursion field from ip6_tnl{}.
net: Fix dev_mc_add()
...
This commit is contained in:
+21
-3
@@ -61,6 +61,13 @@ struct ethtool_drvinfo {
|
||||
/* For PCI devices, use pci_name(pci_dev). */
|
||||
char reserved1[32];
|
||||
char reserved2[12];
|
||||
/*
|
||||
* Some struct members below are filled in
|
||||
* using ops->get_sset_count(). Obtaining
|
||||
* this info from ethtool_drvinfo is now
|
||||
* deprecated; Use ETHTOOL_GSSET_INFO
|
||||
* instead.
|
||||
*/
|
||||
__u32 n_priv_flags; /* number of flags valid in ETHTOOL_GPFLAGS */
|
||||
__u32 n_stats; /* number of u64's from ETHTOOL_GSTATS */
|
||||
__u32 testinfo_len;
|
||||
@@ -253,6 +260,17 @@ struct ethtool_gstrings {
|
||||
__u8 data[0];
|
||||
};
|
||||
|
||||
struct ethtool_sset_info {
|
||||
__u32 cmd; /* ETHTOOL_GSSET_INFO */
|
||||
__u32 reserved;
|
||||
__u64 sset_mask; /* input: each bit selects an sset to query */
|
||||
/* output: each bit a returned sset */
|
||||
__u32 data[0]; /* ETH_SS_xxx count, in order, based on bits
|
||||
in sset_mask. One bit implies one
|
||||
__u32, two bits implies two
|
||||
__u32's, etc. */
|
||||
};
|
||||
|
||||
enum ethtool_test_flags {
|
||||
ETH_TEST_FL_OFFLINE = (1 << 0), /* online / offline */
|
||||
ETH_TEST_FL_FAILED = (1 << 1), /* test passed / failed */
|
||||
@@ -606,9 +624,9 @@ struct ethtool_ops {
|
||||
#define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */
|
||||
#define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */
|
||||
#define ETHTOOL_RESET 0x00000034 /* Reset hardware */
|
||||
|
||||
#define ETHTOOL_SRXNTUPLE 0x00000035 /* Add an n-tuple filter to device */
|
||||
#define ETHTOOL_GRXNTUPLE 0x00000036 /* Get n-tuple filters from device */
|
||||
#define ETHTOOL_SRXNTUPLE 0x00000035 /* Add an n-tuple filter to device */
|
||||
#define ETHTOOL_GRXNTUPLE 0x00000036 /* Get n-tuple filters from device */
|
||||
#define ETHTOOL_GSSET_INFO 0x00000037 /* Get string set info */
|
||||
|
||||
/* compatibility with older code */
|
||||
#define SPARC_ETH_GSET ETHTOOL_GSET
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
/**
|
||||
* enum rfkill_type - type of rfkill switch.
|
||||
*
|
||||
* @RFKILL_TYPE_ALL: toggles all switches (userspace only)
|
||||
* @RFKILL_TYPE_ALL: toggles all switches (requests only - not a switch type)
|
||||
* @RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device.
|
||||
* @RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device.
|
||||
* @RFKILL_TYPE_UWB: switch is on a ultra wideband device.
|
||||
|
||||
@@ -225,6 +225,8 @@ enum
|
||||
LINUX_MIB_SACKSHIFTED,
|
||||
LINUX_MIB_SACKMERGED,
|
||||
LINUX_MIB_SACKSHIFTFALLBACK,
|
||||
LINUX_MIB_TCPBACKLOGDROP,
|
||||
LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */
|
||||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -37,6 +37,24 @@ struct route_info {
|
||||
#define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010
|
||||
#define RT6_LOOKUP_F_SRCPREF_COA 0x00000020
|
||||
|
||||
/*
|
||||
* rt6_srcprefs2flags() and rt6_flags2srcprefs() translate
|
||||
* between IPV6_ADDR_PREFERENCES socket option values
|
||||
* IPV6_PREFER_SRC_TMP = 0x1
|
||||
* IPV6_PREFER_SRC_PUBLIC = 0x2
|
||||
* IPV6_PREFER_SRC_COA = 0x4
|
||||
* and above RT6_LOOKUP_F_SRCPREF_xxx flags.
|
||||
*/
|
||||
static inline int rt6_srcprefs2flags(unsigned int srcprefs)
|
||||
{
|
||||
/* No need to bitmask because srcprefs have only 3 bits. */
|
||||
return srcprefs << 3;
|
||||
}
|
||||
|
||||
static inline unsigned int rt6_flags2srcprefs(int flags)
|
||||
{
|
||||
return (flags >> 3) & 7;
|
||||
}
|
||||
|
||||
extern void ip6_route_input(struct sk_buff *skb);
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
struct ip6_tnl {
|
||||
struct ip6_tnl *next; /* next tunnel in list */
|
||||
struct net_device *dev; /* virtual device associated with tunnel */
|
||||
int recursion; /* depth of hard_start_xmit recursion */
|
||||
struct ip6_tnl_parm parms; /* tunnel configuration parameters */
|
||||
struct flowi fl; /* flowi template for xmit */
|
||||
struct dst_entry *dst_cache; /* cached dst */
|
||||
|
||||
@@ -2426,7 +2426,8 @@ struct rate_control_ops {
|
||||
struct ieee80211_sta *sta, void *priv_sta);
|
||||
void (*rate_update)(void *priv, struct ieee80211_supported_band *sband,
|
||||
struct ieee80211_sta *sta,
|
||||
void *priv_sta, u32 changed);
|
||||
void *priv_sta, u32 changed,
|
||||
enum nl80211_channel_type oper_chan_type);
|
||||
void (*free_sta)(void *priv, struct ieee80211_sta *sta,
|
||||
void *priv_sta);
|
||||
|
||||
|
||||
+15
-2
@@ -253,6 +253,8 @@ struct sock {
|
||||
struct {
|
||||
struct sk_buff *head;
|
||||
struct sk_buff *tail;
|
||||
int len;
|
||||
int limit;
|
||||
} sk_backlog;
|
||||
wait_queue_head_t *sk_sleep;
|
||||
struct dst_entry *sk_dst_cache;
|
||||
@@ -589,8 +591,8 @@ static inline int sk_stream_memory_free(struct sock *sk)
|
||||
return sk->sk_wmem_queued < sk->sk_sndbuf;
|
||||
}
|
||||
|
||||
/* The per-socket spinlock must be held here. */
|
||||
static inline void sk_add_backlog(struct sock *sk, struct sk_buff *skb)
|
||||
/* OOB backlog add */
|
||||
static inline void __sk_add_backlog(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
if (!sk->sk_backlog.tail) {
|
||||
sk->sk_backlog.head = sk->sk_backlog.tail = skb;
|
||||
@@ -601,6 +603,17 @@ static inline void sk_add_backlog(struct sock *sk, struct sk_buff *skb)
|
||||
skb->next = NULL;
|
||||
}
|
||||
|
||||
/* The per-socket spinlock must be held here. */
|
||||
static inline __must_check int sk_add_backlog(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
if (sk->sk_backlog.len >= max(sk->sk_backlog.limit, sk->sk_rcvbuf << 1))
|
||||
return -ENOBUFS;
|
||||
|
||||
__sk_add_backlog(sk, skb);
|
||||
sk->sk_backlog.len += skb->truesize;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int sk_backlog_rcv(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
return sk->sk_backlog_rcv(sk, skb);
|
||||
|
||||
+1
-1
@@ -939,7 +939,7 @@ static inline int tcp_prequeue(struct sock *sk, struct sk_buff *skb)
|
||||
|
||||
tp->ucopy.memory = 0;
|
||||
} else if (skb_queue_len(&tp->ucopy.prequeue) == 1) {
|
||||
wake_up_interruptible_poll(sk->sk_sleep,
|
||||
wake_up_interruptible_sync_poll(sk->sk_sleep,
|
||||
POLLIN | POLLRDNORM | POLLRDBAND);
|
||||
if (!inet_csk_ack_scheduled(sk))
|
||||
inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK,
|
||||
|
||||
+2
-1
@@ -275,7 +275,8 @@ struct xfrm_policy_afinfo {
|
||||
struct dst_entry *dst,
|
||||
int nfheader_len);
|
||||
int (*fill_dst)(struct xfrm_dst *xdst,
|
||||
struct net_device *dev);
|
||||
struct net_device *dev,
|
||||
struct flowi *fl);
|
||||
};
|
||||
|
||||
extern int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
|
||||
|
||||
Reference in New Issue
Block a user