You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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: (42 commits) ipv4: dont create routes on down devices epic100: hamachi: yellowfin: Fix skb allocation size sundance: Fix oopses with corrupted skb_shared_info Revert "ipv4: Allow configuring subnets as local addresses" USB: mcs7830: return negative if auto negotiate fails irda: prevent integer underflow in IRLMP_ENUMDEVICES tcp: fix listening_get_next() atl1c: Do not use legacy PCI power management mac80211: fix mesh forwarding MAINTAINERS: email address change net: Fix range checks in tcf_valid_offset(). net_sched: sch_sfq: fix allot handling hostap: remove netif_stop_queue from init mac80211/rt2x00: add ieee80211_tx_status_ni() typhoon: memory corruption in typhoon_get_drvinfo() net: Add USB PID for new MOSCHIP USB ethernet controller MCS7832 variant net_sched: always clone skbs ipv6: Fragment locally generated tunnel-mode IPSec6 packets as needed. netlink: fix gcc -Wconversion compilation warning asix: add USB ID for Logitec LAN-GTJ U2A ...
This commit is contained in:
@@ -70,7 +70,7 @@ struct nlmsghdr {
|
||||
Check NLM_F_EXCL
|
||||
*/
|
||||
|
||||
#define NLMSG_ALIGNTO 4
|
||||
#define NLMSG_ALIGNTO 4U
|
||||
#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )
|
||||
#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
|
||||
#define NLMSG_LENGTH(len) ((len)+NLMSG_ALIGN(NLMSG_HDRLEN))
|
||||
|
||||
@@ -49,7 +49,6 @@ struct flowi {
|
||||
__u8 proto;
|
||||
__u8 flags;
|
||||
#define FLOWI_FLAG_ANYSRC 0x01
|
||||
#define FLOWI_FLAG_MATCH_ANY_IIF 0x02
|
||||
union {
|
||||
struct {
|
||||
__be16 sport;
|
||||
|
||||
@@ -164,5 +164,15 @@ static inline int ipv6_unicast_destination(struct sk_buff *skb)
|
||||
return rt->rt6i_flags & RTF_LOCAL;
|
||||
}
|
||||
|
||||
int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *));
|
||||
|
||||
static inline int ip6_skb_dst_mtu(struct sk_buff *skb)
|
||||
{
|
||||
struct ipv6_pinfo *np = skb->sk ? inet6_sk(skb->sk) : NULL;
|
||||
|
||||
return (np && np->pmtudisc == IPV6_PMTUDISC_PROBE) ?
|
||||
skb_dst(skb)->dev->mtu : dst_mtu(skb_dst(skb));
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+24
-4
@@ -2024,8 +2024,8 @@ static inline void ieee80211_rx_ni(struct ieee80211_hw *hw,
|
||||
*
|
||||
* This function may not be called in IRQ context. Calls to this function
|
||||
* for a single hardware must be synchronized against each other. Calls
|
||||
* to this function and ieee80211_tx_status_irqsafe() may not be mixed
|
||||
* for a single hardware.
|
||||
* to this function, ieee80211_tx_status_ni() and ieee80211_tx_status_irqsafe()
|
||||
* may not be mixed for a single hardware.
|
||||
*
|
||||
* @hw: the hardware the frame was transmitted by
|
||||
* @skb: the frame that was transmitted, owned by mac80211 after this call
|
||||
@@ -2033,14 +2033,34 @@ static inline void ieee80211_rx_ni(struct ieee80211_hw *hw,
|
||||
void ieee80211_tx_status(struct ieee80211_hw *hw,
|
||||
struct sk_buff *skb);
|
||||
|
||||
/**
|
||||
* ieee80211_tx_status_ni - transmit status callback (in process context)
|
||||
*
|
||||
* Like ieee80211_tx_status() but can be called in process context.
|
||||
*
|
||||
* Calls to this function, ieee80211_tx_status() and
|
||||
* ieee80211_tx_status_irqsafe() may not be mixed
|
||||
* for a single hardware.
|
||||
*
|
||||
* @hw: the hardware the frame was transmitted by
|
||||
* @skb: the frame that was transmitted, owned by mac80211 after this call
|
||||
*/
|
||||
static inline void ieee80211_tx_status_ni(struct ieee80211_hw *hw,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
local_bh_disable();
|
||||
ieee80211_tx_status(hw, skb);
|
||||
local_bh_enable();
|
||||
}
|
||||
|
||||
/**
|
||||
* ieee80211_tx_status_irqsafe - IRQ-safe transmit status callback
|
||||
*
|
||||
* Like ieee80211_tx_status() but can be called in IRQ context
|
||||
* (internally defers to a tasklet.)
|
||||
*
|
||||
* Calls to this function and ieee80211_tx_status() may not be mixed for a
|
||||
* single hardware.
|
||||
* Calls to this function, ieee80211_tx_status() and
|
||||
* ieee80211_tx_status_ni() may not be mixed for a single hardware.
|
||||
*
|
||||
* @hw: the hardware the frame was transmitted by
|
||||
* @skb: the frame that was transmitted, owned by mac80211 after this call
|
||||
|
||||
@@ -323,7 +323,9 @@ static inline unsigned char * tcf_get_base_ptr(struct sk_buff *skb, int layer)
|
||||
static inline int tcf_valid_offset(const struct sk_buff *skb,
|
||||
const unsigned char *ptr, const int len)
|
||||
{
|
||||
return unlikely((ptr + len) < skb_tail_pointer(skb) && ptr > skb->head);
|
||||
return likely((ptr + len) <= skb_tail_pointer(skb) &&
|
||||
ptr >= skb->head &&
|
||||
(ptr <= (ptr + len)));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NET_CLS_IND
|
||||
|
||||
@@ -610,11 +610,7 @@ static inline struct sk_buff *skb_act_clone(struct sk_buff *skb, gfp_t gfp_mask,
|
||||
{
|
||||
struct sk_buff *n;
|
||||
|
||||
if ((action == TC_ACT_STOLEN || action == TC_ACT_QUEUED) &&
|
||||
!skb_shared(skb))
|
||||
n = skb_get(skb);
|
||||
else
|
||||
n = skb_clone(skb, gfp_mask);
|
||||
n = skb_clone(skb, gfp_mask);
|
||||
|
||||
if (n) {
|
||||
n->tc_verd = SET_TC_VERD(n->tc_verd, 0);
|
||||
|
||||
@@ -754,6 +754,7 @@ struct proto {
|
||||
void (*unhash)(struct sock *sk);
|
||||
void (*rehash)(struct sock *sk);
|
||||
int (*get_port)(struct sock *sk, unsigned short snum);
|
||||
void (*clear_sk)(struct sock *sk, int size);
|
||||
|
||||
/* Keeping track of sockets in use */
|
||||
#ifdef CONFIG_PROC_FS
|
||||
@@ -852,6 +853,8 @@ static inline void __sk_prot_rehash(struct sock *sk)
|
||||
sk->sk_prot->hash(sk);
|
||||
}
|
||||
|
||||
void sk_prot_clear_portaddr_nulls(struct sock *sk, int size);
|
||||
|
||||
/* About 10 seconds */
|
||||
#define SOCK_DESTROY_TIME (10*HZ)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user