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: (77 commits) [IPV6]: Reorg struct ifmcaddr6 to save some bytes [INET_TIMEWAIT_SOCK]: Reorganize struct inet_timewait_sock to save some bytes [DCCP]: Reorganize struct dccp_sock to save 8 bytes [INET6]: Reorganize struct inet6_dev to save 8 bytes [SOCK] proto: Add hashinfo member to struct proto EMAC driver: Fix bug: The clock divisor is set to all ones at reset. EMAC driver: fix bug - invalidate data cache of new_skb->data range when cache is WB EMAC driver: add power down mode EMAC driver: ADSP-BF52x arch/mach support EMAC driver: use simpler comment headers and strip out information that is maintained in the scm's log EMAC driver: bf537 MAC multicast hash filtering patch EMAC driver: define MDC_CLK=2.5MHz and caculate mdc_div according to SCLK. EMAC driver: shorten the mdelay value to solve netperf performance issue [netdrvr] sis190: build fix sky2: fix Wake On Lan interaction with BIOS sky2: restore multicast addresses after recovery pci-skeleton: Misc fixes to build neatly phylib: Add Realtek 821x eth PHY support natsemi: Update locking documentation PHYLIB: Locking fixes for PHY I/O potentially sleeping ...
This commit is contained in:
@@ -525,6 +525,7 @@ struct dccp_sock {
|
||||
__u64 dccps_gsr;
|
||||
__u64 dccps_gar;
|
||||
__be32 dccps_service;
|
||||
__u32 dccps_mss_cache;
|
||||
struct dccp_service_list *dccps_service_list;
|
||||
__u32 dccps_timestamp_echo;
|
||||
__u32 dccps_timestamp_time;
|
||||
@@ -533,7 +534,6 @@ struct dccp_sock {
|
||||
__u16 dccps_pcslen;
|
||||
__u16 dccps_pcrlen;
|
||||
unsigned long dccps_ndp_count;
|
||||
__u32 dccps_mss_cache;
|
||||
unsigned long dccps_rate_last;
|
||||
struct dccp_minisock dccps_minisock;
|
||||
struct dccp_ackvec *dccps_hc_rx_ackvec;
|
||||
|
||||
@@ -287,6 +287,12 @@ struct ieee80211_ht_addt_info {
|
||||
#define IEEE80211_HT_IE_NON_GF_STA_PRSNT 0x0004
|
||||
#define IEEE80211_HT_IE_NON_HT_STA_PRSNT 0x0010
|
||||
|
||||
/* MIMO Power Save Modes */
|
||||
#define WLAN_HT_CAP_MIMO_PS_STATIC 0
|
||||
#define WLAN_HT_CAP_MIMO_PS_DYNAMIC 1
|
||||
#define WLAN_HT_CAP_MIMO_PS_INVALID 2
|
||||
#define WLAN_HT_CAP_MIMO_PS_DISABLED 3
|
||||
|
||||
/* Authentication algorithms */
|
||||
#define WLAN_AUTH_OPEN 0
|
||||
#define WLAN_AUTH_SHARED_KEY 1
|
||||
|
||||
@@ -88,7 +88,7 @@ struct mii_bus {
|
||||
|
||||
/* A lock to ensure that only one thing can read/write
|
||||
* the MDIO bus at a time */
|
||||
spinlock_t mdio_lock;
|
||||
struct mutex mdio_lock;
|
||||
|
||||
struct device *dev;
|
||||
|
||||
@@ -284,10 +284,11 @@ struct phy_device {
|
||||
|
||||
/* Interrupt and Polling infrastructure */
|
||||
struct work_struct phy_queue;
|
||||
struct work_struct state_queue;
|
||||
struct timer_list phy_timer;
|
||||
atomic_t irq_disable;
|
||||
|
||||
spinlock_t lock;
|
||||
struct mutex lock;
|
||||
|
||||
struct net_device *attached_dev;
|
||||
|
||||
|
||||
@@ -112,13 +112,13 @@ struct ifmcaddr6
|
||||
struct ip6_sf_list *mca_sources;
|
||||
struct ip6_sf_list *mca_tomb;
|
||||
unsigned int mca_sfmode;
|
||||
unsigned char mca_crcount;
|
||||
unsigned long mca_sfcount[2];
|
||||
struct timer_list mca_timer;
|
||||
unsigned mca_flags;
|
||||
int mca_users;
|
||||
atomic_t mca_refcnt;
|
||||
spinlock_t mca_lock;
|
||||
unsigned char mca_crcount;
|
||||
unsigned long mca_cstamp;
|
||||
unsigned long mca_tstamp;
|
||||
};
|
||||
@@ -166,11 +166,11 @@ struct inet6_dev
|
||||
struct ifmcaddr6 *mc_list;
|
||||
struct ifmcaddr6 *mc_tomb;
|
||||
rwlock_t mc_lock;
|
||||
unsigned long mc_v1_seen;
|
||||
unsigned long mc_maxdelay;
|
||||
unsigned char mc_qrv;
|
||||
unsigned char mc_gq_running;
|
||||
unsigned char mc_ifc_count;
|
||||
unsigned long mc_v1_seen;
|
||||
unsigned long mc_maxdelay;
|
||||
struct timer_list mc_gq_timer; /* general query timer */
|
||||
struct timer_list mc_ifc_timer; /* interface change timer */
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ static inline int inet6_sk_ehashfn(const struct sock *sk)
|
||||
return inet6_ehashfn(laddr, lport, faddr, fport);
|
||||
}
|
||||
|
||||
extern void __inet6_hash(struct inet_hashinfo *hashinfo, struct sock *sk);
|
||||
extern void __inet6_hash(struct sock *sk);
|
||||
|
||||
/*
|
||||
* Sockets in TCP_CLOSE state are _always_ taken out of the hash, so
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
#undef INET_CSK_CLEAR_TIMERS
|
||||
|
||||
struct inet_bind_bucket;
|
||||
struct inet_hashinfo;
|
||||
struct tcp_congestion_ops;
|
||||
|
||||
/*
|
||||
@@ -59,6 +58,8 @@ struct inet_connection_sock_af_ops {
|
||||
int level, int optname,
|
||||
char __user *optval, int __user *optlen);
|
||||
void (*addr2sockaddr)(struct sock *sk, struct sockaddr *);
|
||||
int (*bind_conflict)(const struct sock *sk,
|
||||
const struct inet_bind_bucket *tb);
|
||||
};
|
||||
|
||||
/** inet_connection_sock - INET connection oriented sock
|
||||
@@ -244,10 +245,7 @@ extern struct request_sock *inet_csk_search_req(const struct sock *sk,
|
||||
const __be32 laddr);
|
||||
extern int inet_csk_bind_conflict(const struct sock *sk,
|
||||
const struct inet_bind_bucket *tb);
|
||||
extern int inet_csk_get_port(struct inet_hashinfo *hashinfo,
|
||||
struct sock *sk, unsigned short snum,
|
||||
int (*bind_conflict)(const struct sock *sk,
|
||||
const struct inet_bind_bucket *tb));
|
||||
extern int inet_csk_get_port(struct sock *sk, unsigned short snum);
|
||||
|
||||
extern struct dst_entry* inet_csk_route_req(struct sock *sk,
|
||||
const struct request_sock *req);
|
||||
|
||||
@@ -221,9 +221,9 @@ static inline int inet_sk_listen_hashfn(const struct sock *sk)
|
||||
}
|
||||
|
||||
/* Caller must disable local BH processing. */
|
||||
static inline void __inet_inherit_port(struct inet_hashinfo *table,
|
||||
struct sock *sk, struct sock *child)
|
||||
static inline void __inet_inherit_port(struct sock *sk, struct sock *child)
|
||||
{
|
||||
struct inet_hashinfo *table = sk->sk_prot->hashinfo;
|
||||
const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size);
|
||||
struct inet_bind_hashbucket *head = &table->bhash[bhash];
|
||||
struct inet_bind_bucket *tb;
|
||||
@@ -235,15 +235,14 @@ static inline void __inet_inherit_port(struct inet_hashinfo *table,
|
||||
spin_unlock(&head->lock);
|
||||
}
|
||||
|
||||
static inline void inet_inherit_port(struct inet_hashinfo *table,
|
||||
struct sock *sk, struct sock *child)
|
||||
static inline void inet_inherit_port(struct sock *sk, struct sock *child)
|
||||
{
|
||||
local_bh_disable();
|
||||
__inet_inherit_port(table, sk, child);
|
||||
__inet_inherit_port(sk, child);
|
||||
local_bh_enable();
|
||||
}
|
||||
|
||||
extern void inet_put_port(struct inet_hashinfo *table, struct sock *sk);
|
||||
extern void inet_put_port(struct sock *sk);
|
||||
|
||||
extern void inet_listen_wlock(struct inet_hashinfo *hashinfo);
|
||||
|
||||
@@ -266,41 +265,9 @@ static inline void inet_listen_unlock(struct inet_hashinfo *hashinfo)
|
||||
wake_up(&hashinfo->lhash_wait);
|
||||
}
|
||||
|
||||
extern void __inet_hash(struct inet_hashinfo *hashinfo, struct sock *sk);
|
||||
extern void __inet_hash_nolisten(struct inet_hashinfo *hinfo, struct sock *sk);
|
||||
|
||||
static inline void inet_hash(struct inet_hashinfo *hashinfo, struct sock *sk)
|
||||
{
|
||||
if (sk->sk_state != TCP_CLOSE) {
|
||||
local_bh_disable();
|
||||
__inet_hash(hashinfo, sk);
|
||||
local_bh_enable();
|
||||
}
|
||||
}
|
||||
|
||||
static inline void inet_unhash(struct inet_hashinfo *hashinfo, struct sock *sk)
|
||||
{
|
||||
rwlock_t *lock;
|
||||
|
||||
if (sk_unhashed(sk))
|
||||
goto out;
|
||||
|
||||
if (sk->sk_state == TCP_LISTEN) {
|
||||
local_bh_disable();
|
||||
inet_listen_wlock(hashinfo);
|
||||
lock = &hashinfo->lhash_lock;
|
||||
} else {
|
||||
lock = inet_ehash_lockp(hashinfo, sk->sk_hash);
|
||||
write_lock_bh(lock);
|
||||
}
|
||||
|
||||
if (__sk_del_node_init(sk))
|
||||
sock_prot_inuse_add(sk->sk_prot, -1);
|
||||
write_unlock_bh(lock);
|
||||
out:
|
||||
if (sk->sk_state == TCP_LISTEN)
|
||||
wake_up(&hashinfo->lhash_wait);
|
||||
}
|
||||
extern void __inet_hash_nolisten(struct sock *sk);
|
||||
extern void inet_hash(struct sock *sk);
|
||||
extern void inet_unhash(struct sock *sk);
|
||||
|
||||
extern struct sock *__inet_lookup_listener(struct net *net,
|
||||
struct inet_hashinfo *hashinfo,
|
||||
@@ -425,7 +392,7 @@ extern int __inet_hash_connect(struct inet_timewait_death_row *death_row,
|
||||
struct sock *sk,
|
||||
int (*check_established)(struct inet_timewait_death_row *,
|
||||
struct sock *, __u16, struct inet_timewait_sock **),
|
||||
void (*hash)(struct inet_hashinfo *, struct sock *));
|
||||
void (*hash)(struct sock *sk));
|
||||
extern int inet_hash_connect(struct inet_timewait_death_row *death_row,
|
||||
struct sock *sk);
|
||||
#endif /* _INET_HASHTABLES_H */
|
||||
|
||||
@@ -116,6 +116,7 @@ struct inet_timewait_sock {
|
||||
#define tw_hash __tw_common.skc_hash
|
||||
#define tw_prot __tw_common.skc_prot
|
||||
#define tw_net __tw_common.skc_net
|
||||
int tw_timeout;
|
||||
volatile unsigned char tw_substate;
|
||||
/* 3 bits hole, try to pack */
|
||||
unsigned char tw_rcv_wscale;
|
||||
@@ -130,7 +131,6 @@ struct inet_timewait_sock {
|
||||
__u8 tw_ipv6only:1;
|
||||
/* 15 bits hole, try to pack */
|
||||
__u16 tw_ipv6_offset;
|
||||
int tw_timeout;
|
||||
unsigned long tw_ttd;
|
||||
struct inet_bind_bucket *tw_tb;
|
||||
struct hlist_node tw_death_node;
|
||||
|
||||
@@ -496,6 +496,7 @@ extern int sk_wait_data(struct sock *sk, long *timeo);
|
||||
|
||||
struct request_sock_ops;
|
||||
struct timewait_sock_ops;
|
||||
struct inet_hashinfo;
|
||||
|
||||
/* Networking protocol blocks we attach to sockets.
|
||||
* socket layer -> transport layer interface
|
||||
@@ -578,6 +579,8 @@ struct proto {
|
||||
struct request_sock_ops *rsk_prot;
|
||||
struct timewait_sock_ops *twsk_prot;
|
||||
|
||||
struct inet_hashinfo *hashinfo;
|
||||
|
||||
struct module *owner;
|
||||
|
||||
char name[32];
|
||||
|
||||
Reference in New Issue
Block a user