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 commit 'v2.6.37-rc8' into perf/core
Merge reason: pick up latest -rc. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
+34
-9
@@ -81,16 +81,41 @@ struct kthread_work {
|
||||
#define DEFINE_KTHREAD_WORK(work, fn) \
|
||||
struct kthread_work work = KTHREAD_WORK_INIT(work, fn)
|
||||
|
||||
static inline void init_kthread_worker(struct kthread_worker *worker)
|
||||
{
|
||||
*worker = (struct kthread_worker)KTHREAD_WORKER_INIT(*worker);
|
||||
}
|
||||
/*
|
||||
* kthread_worker.lock and kthread_work.done need their own lockdep class
|
||||
* keys if they are defined on stack with lockdep enabled. Use the
|
||||
* following macros when defining them on stack.
|
||||
*/
|
||||
#ifdef CONFIG_LOCKDEP
|
||||
# define KTHREAD_WORKER_INIT_ONSTACK(worker) \
|
||||
({ init_kthread_worker(&worker); worker; })
|
||||
# define DEFINE_KTHREAD_WORKER_ONSTACK(worker) \
|
||||
struct kthread_worker worker = KTHREAD_WORKER_INIT_ONSTACK(worker)
|
||||
# define KTHREAD_WORK_INIT_ONSTACK(work, fn) \
|
||||
({ init_kthread_work((&work), fn); work; })
|
||||
# define DEFINE_KTHREAD_WORK_ONSTACK(work, fn) \
|
||||
struct kthread_work work = KTHREAD_WORK_INIT_ONSTACK(work, fn)
|
||||
#else
|
||||
# define DEFINE_KTHREAD_WORKER_ONSTACK(worker) DEFINE_KTHREAD_WORKER(worker)
|
||||
# define DEFINE_KTHREAD_WORK_ONSTACK(work, fn) DEFINE_KTHREAD_WORK(work, fn)
|
||||
#endif
|
||||
|
||||
static inline void init_kthread_work(struct kthread_work *work,
|
||||
kthread_work_func_t fn)
|
||||
{
|
||||
*work = (struct kthread_work)KTHREAD_WORK_INIT(*work, fn);
|
||||
}
|
||||
extern void __init_kthread_worker(struct kthread_worker *worker,
|
||||
const char *name, struct lock_class_key *key);
|
||||
|
||||
#define init_kthread_worker(worker) \
|
||||
do { \
|
||||
static struct lock_class_key __key; \
|
||||
__init_kthread_worker((worker), "("#worker")->lock", &__key); \
|
||||
} while (0)
|
||||
|
||||
#define init_kthread_work(work, fn) \
|
||||
do { \
|
||||
memset((work), 0, sizeof(struct kthread_work)); \
|
||||
INIT_LIST_HEAD(&(work)->node); \
|
||||
(work)->func = (fn); \
|
||||
init_waitqueue_head(&(work)->done); \
|
||||
} while (0)
|
||||
|
||||
int kthread_worker_fn(void *worker_ptr);
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
*/
|
||||
|
||||
|
||||
#define TASKSTATS_VERSION 7
|
||||
#define TASKSTATS_VERSION 8
|
||||
#define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN
|
||||
* in linux/sched.h */
|
||||
|
||||
@@ -188,6 +188,7 @@ enum {
|
||||
TASKSTATS_TYPE_STATS, /* taskstats structure */
|
||||
TASKSTATS_TYPE_AGGR_PID, /* contains pid + stats */
|
||||
TASKSTATS_TYPE_AGGR_TGID, /* contains tgid + stats */
|
||||
TASKSTATS_TYPE_NULL, /* contains nothing */
|
||||
__TASKSTATS_TYPE_MAX,
|
||||
};
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
||||
struct __una_u16 { u16 x __attribute__((packed)); };
|
||||
struct __una_u32 { u32 x __attribute__((packed)); };
|
||||
struct __una_u64 { u64 x __attribute__((packed)); };
|
||||
struct __una_u16 { u16 x; } __attribute__((packed));
|
||||
struct __una_u32 { u32 x; } __attribute__((packed));
|
||||
struct __una_u64 { u64 x; } __attribute__((packed));
|
||||
|
||||
static inline u16 __get_unaligned_cpu16(const void *p)
|
||||
{
|
||||
|
||||
@@ -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