aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJeremy Erickson <jerickso@cs.unc.edu>2014-04-11 13:24:45 -0400
committerJeremy Erickson <jerickso@cs.unc.edu>2014-04-11 13:24:45 -0400
commit438145c7ef5c9445f25bb8fc4d52e2c9d11fdc7c (patch)
tree76941991e36f4a32bf1be0db3854959053f24619 /include
parent9ddd1b8ad8abd321964b8add5581910de6d67c2a (diff)
Update from 2.6.36 to 2.6.36.4wip-dissipation-jerickso
Diffstat (limited to 'include')
-rw-r--r--include/drm/drm_pciids.h1
-rw-r--r--include/linux/binfmts.h5
-rw-r--r--include/linux/blkdev.h13
-rw-r--r--include/linux/bootmem.h2
-rw-r--r--include/linux/gfp.h4
-rw-r--r--include/linux/ieee80211.h2
-rw-r--r--include/linux/kfifo.h7
-rw-r--r--include/linux/klist.h2
-rw-r--r--include/linux/mfd/wm8994/pdata.h2
-rw-r--r--include/linux/mmzone.h10
-rw-r--r--include/linux/netfilter.h2
-rw-r--r--include/linux/pci_ids.h1
-rw-r--r--include/linux/perf_event.h1
-rw-r--r--include/linux/pipe_fs_i.h1
-rw-r--r--include/linux/pm_runtime.h3
-rw-r--r--include/linux/radix-tree.h36
-rw-r--r--include/linux/sched.h2
-rw-r--r--include/linux/socket.h2
-rw-r--r--include/linux/tty.h1
-rw-r--r--include/linux/usb/serial.h3
-rw-r--r--include/linux/vmstat.h5
-rw-r--r--include/media/saa7146.h2
-rw-r--r--include/net/af_unix.h2
-rw-r--r--include/net/cfg80211.h15
-rw-r--r--include/net/mac80211.h16
-rw-r--r--include/net/sock.h4
-rw-r--r--include/scsi/scsi.h1
-rw-r--r--include/xen/interface/io/ring.h11
28 files changed, 101 insertions, 55 deletions
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h
index 883c1d439899..40b1f0e14963 100644
--- a/include/drm/drm_pciids.h
+++ b/include/drm/drm_pciids.h
@@ -28,7 +28,6 @@
28 {0x1002, 0x4156, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350}, \ 28 {0x1002, 0x4156, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350}, \
29 {0x1002, 0x4237, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP}, \ 29 {0x1002, 0x4237, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP}, \
30 {0x1002, 0x4242, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R200}, \ 30 {0x1002, 0x4242, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R200}, \
31 {0x1002, 0x4243, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R200}, \
32 {0x1002, 0x4336, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS100|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \ 31 {0x1002, 0x4336, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS100|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \
33 {0x1002, 0x4337, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \ 32 {0x1002, 0x4337, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \
34 {0x1002, 0x4437, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \ 33 {0x1002, 0x4437, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
index a065612fc928..64a7114a9394 100644
--- a/include/linux/binfmts.h
+++ b/include/linux/binfmts.h
@@ -29,6 +29,7 @@ struct linux_binprm{
29 char buf[BINPRM_BUF_SIZE]; 29 char buf[BINPRM_BUF_SIZE];
30#ifdef CONFIG_MMU 30#ifdef CONFIG_MMU
31 struct vm_area_struct *vma; 31 struct vm_area_struct *vma;
32 unsigned long vma_pages;
32#else 33#else
33# define MAX_ARG_PAGES 32 34# define MAX_ARG_PAGES 32
34 struct page *page[MAX_ARG_PAGES]; 35 struct page *page[MAX_ARG_PAGES];
@@ -59,6 +60,10 @@ struct linux_binprm{
59 unsigned long loader, exec; 60 unsigned long loader, exec;
60}; 61};
61 62
63extern void acct_arg_size(struct linux_binprm *bprm, unsigned long pages);
64extern struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
65 int write);
66
62#define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0 67#define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0
63#define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT) 68#define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT)
64 69
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 2c54906f678f..f142a7f300f8 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -246,7 +246,7 @@ struct queue_limits {
246 246
247 unsigned char misaligned; 247 unsigned char misaligned;
248 unsigned char discard_misaligned; 248 unsigned char discard_misaligned;
249 unsigned char no_cluster; 249 unsigned char cluster;
250 signed char discard_zeroes_data; 250 signed char discard_zeroes_data;
251}; 251};
252 252
@@ -369,7 +369,6 @@ struct request_queue
369#endif 369#endif
370}; 370};
371 371
372#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */
373#define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */ 372#define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */
374#define QUEUE_FLAG_STOPPED 2 /* queue is stopped */ 373#define QUEUE_FLAG_STOPPED 2 /* queue is stopped */
375#define QUEUE_FLAG_SYNCFULL 3 /* read queue has been filled */ 374#define QUEUE_FLAG_SYNCFULL 3 /* read queue has been filled */
@@ -392,7 +391,6 @@ struct request_queue
392#define QUEUE_FLAG_SECDISCARD 19 /* supports SECDISCARD */ 391#define QUEUE_FLAG_SECDISCARD 19 /* supports SECDISCARD */
393 392
394#define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \ 393#define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \
395 (1 << QUEUE_FLAG_CLUSTER) | \
396 (1 << QUEUE_FLAG_STACKABLE) | \ 394 (1 << QUEUE_FLAG_STACKABLE) | \
397 (1 << QUEUE_FLAG_SAME_COMP) | \ 395 (1 << QUEUE_FLAG_SAME_COMP) | \
398 (1 << QUEUE_FLAG_ADD_RANDOM)) 396 (1 << QUEUE_FLAG_ADD_RANDOM))
@@ -550,6 +548,11 @@ enum {
550 548
551#define rq_data_dir(rq) ((rq)->cmd_flags & 1) 549#define rq_data_dir(rq) ((rq)->cmd_flags & 1)
552 550
551static inline unsigned int blk_queue_cluster(struct request_queue *q)
552{
553 return q->limits.cluster;
554}
555
553/* 556/*
554 * We regard a request as sync, if either a read or a sync write 557 * We regard a request as sync, if either a read or a sync write
555 */ 558 */
@@ -851,7 +854,7 @@ extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
851extern void blk_queue_max_discard_sectors(struct request_queue *q, 854extern void blk_queue_max_discard_sectors(struct request_queue *q,
852 unsigned int max_discard_sectors); 855 unsigned int max_discard_sectors);
853extern void blk_queue_logical_block_size(struct request_queue *, unsigned short); 856extern void blk_queue_logical_block_size(struct request_queue *, unsigned short);
854extern void blk_queue_physical_block_size(struct request_queue *, unsigned short); 857extern void blk_queue_physical_block_size(struct request_queue *, unsigned int);
855extern void blk_queue_alignment_offset(struct request_queue *q, 858extern void blk_queue_alignment_offset(struct request_queue *q,
856 unsigned int alignment); 859 unsigned int alignment);
857extern void blk_limits_io_min(struct queue_limits *limits, unsigned int min); 860extern void blk_limits_io_min(struct queue_limits *limits, unsigned int min);
@@ -1004,7 +1007,7 @@ static inline unsigned int queue_physical_block_size(struct request_queue *q)
1004 return q->limits.physical_block_size; 1007 return q->limits.physical_block_size;
1005} 1008}
1006 1009
1007static inline int bdev_physical_block_size(struct block_device *bdev) 1010static inline unsigned int bdev_physical_block_size(struct block_device *bdev)
1008{ 1011{
1009 return queue_physical_block_size(bdev_get_queue(bdev)); 1012 return queue_physical_block_size(bdev_get_queue(bdev));
1010} 1013}
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
index 266ab9291232..499dfe982a0e 100644
--- a/include/linux/bootmem.h
+++ b/include/linux/bootmem.h
@@ -105,6 +105,8 @@ extern void *__alloc_bootmem_low_node(pg_data_t *pgdat,
105 105
106#define alloc_bootmem(x) \ 106#define alloc_bootmem(x) \
107 __alloc_bootmem(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) 107 __alloc_bootmem(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
108#define alloc_bootmem_align(x, align) \
109 __alloc_bootmem(x, align, __pa(MAX_DMA_ADDRESS))
108#define alloc_bootmem_nopanic(x) \ 110#define alloc_bootmem_nopanic(x) \
109 __alloc_bootmem_nopanic(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) 111 __alloc_bootmem_nopanic(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
110#define alloc_bootmem_pages(x) \ 112#define alloc_bootmem_pages(x) \
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
index 975609cb8548..81483c20735f 100644
--- a/include/linux/gfp.h
+++ b/include/linux/gfp.h
@@ -339,7 +339,7 @@ void drain_local_pages(void *dummy);
339 339
340extern gfp_t gfp_allowed_mask; 340extern gfp_t gfp_allowed_mask;
341 341
342extern void set_gfp_allowed_mask(gfp_t mask); 342extern void pm_restrict_gfp_mask(void);
343extern gfp_t clear_gfp_allowed_mask(gfp_t mask); 343extern void pm_restore_gfp_mask(void);
344 344
345#endif /* __LINUX_GFP_H */ 345#endif /* __LINUX_GFP_H */
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 97b2eae6a22c..731854ccb840 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -959,7 +959,7 @@ struct ieee80211_ht_info {
959/* block-ack parameters */ 959/* block-ack parameters */
960#define IEEE80211_ADDBA_PARAM_POLICY_MASK 0x0002 960#define IEEE80211_ADDBA_PARAM_POLICY_MASK 0x0002
961#define IEEE80211_ADDBA_PARAM_TID_MASK 0x003C 961#define IEEE80211_ADDBA_PARAM_TID_MASK 0x003C
962#define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFA0 962#define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFC0
963#define IEEE80211_DELBA_PARAM_TID_MASK 0xF000 963#define IEEE80211_DELBA_PARAM_TID_MASK 0xF000
964#define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800 964#define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800
965 965
diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h
index 62dbee554f60..c238ad2f82ea 100644
--- a/include/linux/kfifo.h
+++ b/include/linux/kfifo.h
@@ -171,11 +171,8 @@ struct kfifo_rec_ptr_2 __STRUCT_KFIFO_PTR(unsigned char, 2, void);
171 } 171 }
172 172
173 173
174static inline unsigned int __must_check 174/* __kfifo_must_check_helper() is temporarily disabled because it was faulty */
175__kfifo_must_check_helper(unsigned int val) 175#define __kfifo_must_check_helper(x) (x)
176{
177 return val;
178}
179 176
180/** 177/**
181 * kfifo_initialized - Check if the fifo is initialized 178 * kfifo_initialized - Check if the fifo is initialized
diff --git a/include/linux/klist.h b/include/linux/klist.h
index e91a4e59b771..a370ce57cf1d 100644
--- a/include/linux/klist.h
+++ b/include/linux/klist.h
@@ -22,7 +22,7 @@ struct klist {
22 struct list_head k_list; 22 struct list_head k_list;
23 void (*get)(struct klist_node *); 23 void (*get)(struct klist_node *);
24 void (*put)(struct klist_node *); 24 void (*put)(struct klist_node *);
25} __attribute__ ((aligned (4))); 25} __attribute__ ((aligned (sizeof(void *))));
26 26
27#define KLIST_INIT(_name, _get, _put) \ 27#define KLIST_INIT(_name, _get, _put) \
28 { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \ 28 { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \
diff --git a/include/linux/mfd/wm8994/pdata.h b/include/linux/mfd/wm8994/pdata.h
index 5c51f367c061..add8a1b8bcf0 100644
--- a/include/linux/mfd/wm8994/pdata.h
+++ b/include/linux/mfd/wm8994/pdata.h
@@ -29,7 +29,7 @@ struct wm8994_ldo_pdata {
29#define WM8994_CONFIGURE_GPIO 0x8000 29#define WM8994_CONFIGURE_GPIO 0x8000
30 30
31#define WM8994_DRC_REGS 5 31#define WM8994_DRC_REGS 5
32#define WM8994_EQ_REGS 19 32#define WM8994_EQ_REGS 20
33 33
34/** 34/**
35 * DRC configurations are specified with a label and a set of register 35 * DRC configurations are specified with a label and a set of register
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 3984c4eb41fd..8d789d732e87 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -448,12 +448,6 @@ static inline int zone_is_oom_locked(const struct zone *zone)
448 return test_bit(ZONE_OOM_LOCKED, &zone->flags); 448 return test_bit(ZONE_OOM_LOCKED, &zone->flags);
449} 449}
450 450
451#ifdef CONFIG_SMP
452unsigned long zone_nr_free_pages(struct zone *zone);
453#else
454#define zone_nr_free_pages(zone) zone_page_state(zone, NR_FREE_PAGES)
455#endif /* CONFIG_SMP */
456
457/* 451/*
458 * The "priority" of VM scanning is how much of the queues we will scan in one 452 * The "priority" of VM scanning is how much of the queues we will scan in one
459 * go. A value of 12 for DEF_PRIORITY implies that we will scan 1/4096th of the 453 * go. A value of 12 for DEF_PRIORITY implies that we will scan 1/4096th of the
@@ -651,7 +645,9 @@ typedef struct pglist_data {
651extern struct mutex zonelists_mutex; 645extern struct mutex zonelists_mutex;
652void build_all_zonelists(void *data); 646void build_all_zonelists(void *data);
653void wakeup_kswapd(struct zone *zone, int order); 647void wakeup_kswapd(struct zone *zone, int order);
654int zone_watermark_ok(struct zone *z, int order, unsigned long mark, 648bool zone_watermark_ok(struct zone *z, int order, unsigned long mark,
649 int classzone_idx, int alloc_flags);
650bool zone_watermark_ok_safe(struct zone *z, int order, unsigned long mark,
655 int classzone_idx, int alloc_flags); 651 int classzone_idx, int alloc_flags);
656enum memmap_context { 652enum memmap_context {
657 MEMMAP_EARLY, 653 MEMMAP_EARLY,
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
index 89341c32631a..03317c8d4077 100644
--- a/include/linux/netfilter.h
+++ b/include/linux/netfilter.h
@@ -215,7 +215,7 @@ NF_HOOK_COND(uint8_t pf, unsigned int hook, struct sk_buff *skb,
215 int ret; 215 int ret;
216 216
217 if (!cond || 217 if (!cond ||
218 (ret = nf_hook_thresh(pf, hook, skb, in, out, okfn, INT_MIN) == 1)) 218 ((ret = nf_hook_thresh(pf, hook, skb, in, out, okfn, INT_MIN)) == 1))
219 ret = okfn(skb); 219 ret = okfn(skb);
220 return ret; 220 return ret;
221} 221}
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 570fddeb0388..db8aa93ce494 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2041,6 +2041,7 @@
2041#define PCI_DEVICE_ID_AFAVLAB_P030 0x2182 2041#define PCI_DEVICE_ID_AFAVLAB_P030 0x2182
2042#define PCI_SUBDEVICE_ID_AFAVLAB_P061 0x2150 2042#define PCI_SUBDEVICE_ID_AFAVLAB_P061 0x2150
2043 2043
2044#define PCI_VENDOR_ID_BCM_GVC 0x14a4
2044#define PCI_VENDOR_ID_BROADCOM 0x14e4 2045#define PCI_VENDOR_ID_BROADCOM 0x14e4
2045#define PCI_DEVICE_ID_TIGON3_5752 0x1600 2046#define PCI_DEVICE_ID_TIGON3_5752 0x1600
2046#define PCI_DEVICE_ID_TIGON3_5752M 0x1601 2047#define PCI_DEVICE_ID_TIGON3_5752M 0x1601
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 716f99b682c1..1d42c6ecd00a 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -788,6 +788,7 @@ struct perf_event_context {
788 int nr_active; 788 int nr_active;
789 int is_active; 789 int is_active;
790 int nr_stat; 790 int nr_stat;
791 int rotate_disable;
791 atomic_t refcount; 792 atomic_t refcount;
792 struct task_struct *task; 793 struct task_struct *task;
793 794
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
index 445796945ac9..bb27d7ec2fb9 100644
--- a/include/linux/pipe_fs_i.h
+++ b/include/linux/pipe_fs_i.h
@@ -160,5 +160,6 @@ void generic_pipe_buf_release(struct pipe_inode_info *, struct pipe_buffer *);
160 160
161/* for F_SETPIPE_SZ and F_GETPIPE_SZ */ 161/* for F_SETPIPE_SZ and F_GETPIPE_SZ */
162long pipe_fcntl(struct file *, unsigned int, unsigned long arg); 162long pipe_fcntl(struct file *, unsigned int, unsigned long arg);
163struct pipe_inode_info *get_pipe_info(struct file *file);
163 164
164#endif 165#endif
diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
index 6e81888c6222..5ea4b1582b07 100644
--- a/include/linux/pm_runtime.h
+++ b/include/linux/pm_runtime.h
@@ -67,7 +67,8 @@ static inline void device_set_run_wake(struct device *dev, bool enable)
67 67
68static inline bool pm_runtime_suspended(struct device *dev) 68static inline bool pm_runtime_suspended(struct device *dev)
69{ 69{
70 return dev->power.runtime_status == RPM_SUSPENDED; 70 return dev->power.runtime_status == RPM_SUSPENDED
71 && !dev->power.disable_depth;
71} 72}
72 73
73#else /* !CONFIG_PM_RUNTIME */ 74#else /* !CONFIG_PM_RUNTIME */
diff --git a/include/linux/radix-tree.h b/include/linux/radix-tree.h
index 634b8e674ac5..9f38fe50217e 100644
--- a/include/linux/radix-tree.h
+++ b/include/linux/radix-tree.h
@@ -36,17 +36,6 @@
36 * RCU. 36 * RCU.
37 */ 37 */
38#define RADIX_TREE_INDIRECT_PTR 1 38#define RADIX_TREE_INDIRECT_PTR 1
39#define RADIX_TREE_RETRY ((void *)-1UL)
40
41static inline void *radix_tree_ptr_to_indirect(void *ptr)
42{
43 return (void *)((unsigned long)ptr | RADIX_TREE_INDIRECT_PTR);
44}
45
46static inline void *radix_tree_indirect_to_ptr(void *ptr)
47{
48 return (void *)((unsigned long)ptr & ~RADIX_TREE_INDIRECT_PTR);
49}
50 39
51static inline int radix_tree_is_indirect_ptr(void *ptr) 40static inline int radix_tree_is_indirect_ptr(void *ptr)
52{ 41{
@@ -138,16 +127,29 @@ do { \
138 * removed. 127 * removed.
139 * 128 *
140 * For use with radix_tree_lookup_slot(). Caller must hold tree at least read 129 * For use with radix_tree_lookup_slot(). Caller must hold tree at least read
141 * locked across slot lookup and dereference. More likely, will be used with 130 * locked across slot lookup and dereference. Not required if write lock is
142 * radix_tree_replace_slot(), as well, so caller will hold tree write locked. 131 * held (ie. items cannot be concurrently inserted).
132 *
133 * radix_tree_deref_retry must be used to confirm validity of the pointer if
134 * only the read lock is held.
143 */ 135 */
144static inline void *radix_tree_deref_slot(void **pslot) 136static inline void *radix_tree_deref_slot(void **pslot)
145{ 137{
146 void *ret = rcu_dereference(*pslot); 138 return rcu_dereference(*pslot);
147 if (unlikely(radix_tree_is_indirect_ptr(ret)))
148 ret = RADIX_TREE_RETRY;
149 return ret;
150} 139}
140
141/**
142 * radix_tree_deref_retry - check radix_tree_deref_slot
143 * @arg: pointer returned by radix_tree_deref_slot
144 * Returns: 0 if retry is not required, otherwise retry is required
145 *
146 * radix_tree_deref_retry must be used with radix_tree_deref_slot.
147 */
148static inline int radix_tree_deref_retry(void *arg)
149{
150 return unlikely((unsigned long)arg & RADIX_TREE_INDIRECT_PTR);
151}
152
151/** 153/**
152 * radix_tree_replace_slot - replace item in a slot 154 * radix_tree_replace_slot - replace item in a slot
153 * @pslot: pointer to slot, returned by radix_tree_lookup_slot 155 * @pslot: pointer to slot, returned by radix_tree_lookup_slot
diff --git a/include/linux/sched.h b/include/linux/sched.h
index c9ac4fc837ba..cdb9672a11ea 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -147,7 +147,7 @@ extern unsigned long nr_iowait_cpu(int cpu);
147extern unsigned long this_cpu_load(void); 147extern unsigned long this_cpu_load(void);
148 148
149 149
150extern void calc_global_load(void); 150extern void calc_global_load(unsigned long ticks);
151 151
152extern unsigned long get_parent_ip(unsigned long addr); 152extern unsigned long get_parent_ip(unsigned long addr);
153 153
diff --git a/include/linux/socket.h b/include/linux/socket.h
index a8f56e1ec760..a2fada9becb6 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -322,7 +322,7 @@ extern int csum_partial_copy_fromiovecend(unsigned char *kdata,
322 int offset, 322 int offset,
323 unsigned int len, __wsum *csump); 323 unsigned int len, __wsum *csump);
324 324
325extern long verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr *address, int mode); 325extern int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr *address, int mode);
326extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len); 326extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len);
327extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata, 327extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata,
328 int offset, int len); 328 int offset, int len);
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 67d64e6efe7a..6f62c3055819 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -365,6 +365,7 @@ struct tty_file_private {
365#define TTY_HUPPED 18 /* Post driver->hangup() */ 365#define TTY_HUPPED 18 /* Post driver->hangup() */
366#define TTY_FLUSHING 19 /* Flushing to ldisc in progress */ 366#define TTY_FLUSHING 19 /* Flushing to ldisc in progress */
367#define TTY_FLUSHPENDING 20 /* Queued buffer flush pending */ 367#define TTY_FLUSHPENDING 20 /* Queued buffer flush pending */
368#define TTY_HUPPING 21 /* ->hangup() in progress */
368 369
369#define TTY_WRITE_FLUSH(tty) tty_write_flush((tty)) 370#define TTY_WRITE_FLUSH(tty) tty_write_flush((tty))
370 371
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h
index 55675b1efb28..e02848c55bd6 100644
--- a/include/linux/usb/serial.h
+++ b/include/linux/usb/serial.h
@@ -345,6 +345,9 @@ extern int usb_serial_generic_prepare_write_buffer(struct usb_serial_port *port,
345extern int usb_serial_handle_sysrq_char(struct usb_serial_port *port, 345extern int usb_serial_handle_sysrq_char(struct usb_serial_port *port,
346 unsigned int ch); 346 unsigned int ch);
347extern int usb_serial_handle_break(struct usb_serial_port *port); 347extern int usb_serial_handle_break(struct usb_serial_port *port);
348extern void usb_serial_handle_dcd_change(struct usb_serial_port *usb_port,
349 struct tty_struct *tty,
350 unsigned int status);
348 351
349 352
350extern int usb_serial_bus_register(struct usb_serial_driver *device); 353extern int usb_serial_bus_register(struct usb_serial_driver *device);
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
index eaaea37b3b75..e4cc21cf5870 100644
--- a/include/linux/vmstat.h
+++ b/include/linux/vmstat.h
@@ -254,6 +254,8 @@ extern void dec_zone_state(struct zone *, enum zone_stat_item);
254extern void __dec_zone_state(struct zone *, enum zone_stat_item); 254extern void __dec_zone_state(struct zone *, enum zone_stat_item);
255 255
256void refresh_cpu_vm_stats(int); 256void refresh_cpu_vm_stats(int);
257void reduce_pgdat_percpu_threshold(pg_data_t *pgdat);
258void restore_pgdat_percpu_threshold(pg_data_t *pgdat);
257#else /* CONFIG_SMP */ 259#else /* CONFIG_SMP */
258 260
259/* 261/*
@@ -298,6 +300,9 @@ static inline void __dec_zone_page_state(struct page *page,
298#define dec_zone_page_state __dec_zone_page_state 300#define dec_zone_page_state __dec_zone_page_state
299#define mod_zone_page_state __mod_zone_page_state 301#define mod_zone_page_state __mod_zone_page_state
300 302
303static inline void reduce_pgdat_percpu_threshold(pg_data_t *pgdat) { }
304static inline void restore_pgdat_percpu_threshold(pg_data_t *pgdat) { }
305
301static inline void refresh_cpu_vm_stats(int cpu) { } 306static inline void refresh_cpu_vm_stats(int cpu) { }
302#endif 307#endif
303 308
diff --git a/include/media/saa7146.h b/include/media/saa7146.h
index 7a9f76ecbbbd..ac7ce00f39cf 100644
--- a/include/media/saa7146.h
+++ b/include/media/saa7146.h
@@ -161,7 +161,7 @@ extern struct list_head saa7146_devices;
161extern struct mutex saa7146_devices_lock; 161extern struct mutex saa7146_devices_lock;
162int saa7146_register_extension(struct saa7146_extension*); 162int saa7146_register_extension(struct saa7146_extension*);
163int saa7146_unregister_extension(struct saa7146_extension*); 163int saa7146_unregister_extension(struct saa7146_extension*);
164struct saa7146_format* format_by_fourcc(struct saa7146_dev *dev, int fourcc); 164struct saa7146_format* saa7146_format_by_fourcc(struct saa7146_dev *dev, int fourcc);
165int saa7146_pgtable_alloc(struct pci_dev *pci, struct saa7146_pgtable *pt); 165int saa7146_pgtable_alloc(struct pci_dev *pci, struct saa7146_pgtable *pt);
166void saa7146_pgtable_free(struct pci_dev *pci, struct saa7146_pgtable *pt); 166void saa7146_pgtable_free(struct pci_dev *pci, struct saa7146_pgtable *pt);
167int saa7146_pgtable_build_single(struct pci_dev *pci, struct saa7146_pgtable *pt, struct scatterlist *list, int length ); 167int saa7146_pgtable_build_single(struct pci_dev *pci, struct saa7146_pgtable *pt, struct scatterlist *list, int length );
diff --git a/include/net/af_unix.h b/include/net/af_unix.h
index 90c9e2872f27..18e5c3f67580 100644
--- a/include/net/af_unix.h
+++ b/include/net/af_unix.h
@@ -10,6 +10,7 @@ extern void unix_inflight(struct file *fp);
10extern void unix_notinflight(struct file *fp); 10extern void unix_notinflight(struct file *fp);
11extern void unix_gc(void); 11extern void unix_gc(void);
12extern void wait_for_unix_gc(void); 12extern void wait_for_unix_gc(void);
13extern struct sock *unix_get_socket(struct file *filp);
13 14
14#define UNIX_HASH_SIZE 256 15#define UNIX_HASH_SIZE 256
15 16
@@ -56,6 +57,7 @@ struct unix_sock {
56 spinlock_t lock; 57 spinlock_t lock;
57 unsigned int gc_candidate : 1; 58 unsigned int gc_candidate : 1;
58 unsigned int gc_maybe_cycle : 1; 59 unsigned int gc_maybe_cycle : 1;
60 unsigned char recursion_level;
59 struct socket_wq peer_wq; 61 struct socket_wq peer_wq;
60}; 62};
61#define unix_sk(__sk) ((struct unix_sock *)__sk) 63#define unix_sk(__sk) ((struct unix_sock *)__sk)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 2fd06c60ffbb..a1662a52fb7d 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1201,13 +1201,14 @@ struct cfg80211_ops {
1201 * initiator is %REGDOM_SET_BY_CORE). 1201 * initiator is %REGDOM_SET_BY_CORE).
1202 * @WIPHY_FLAG_STRICT_REGULATORY: tells us the driver for this device will 1202 * @WIPHY_FLAG_STRICT_REGULATORY: tells us the driver for this device will
1203 * ignore regulatory domain settings until it gets its own regulatory 1203 * ignore regulatory domain settings until it gets its own regulatory
1204 * domain via its regulatory_hint(). After its gets its own regulatory 1204 * domain via its regulatory_hint() unless the regulatory hint is
1205 * domain it will only allow further regulatory domain settings to 1205 * from a country IE. After its gets its own regulatory domain it will
1206 * further enhance compliance. For example if channel 13 and 14 are 1206 * only allow further regulatory domain settings to further enhance
1207 * disabled by this regulatory domain no user regulatory domain can 1207 * compliance. For example if channel 13 and 14 are disabled by this
1208 * enable these channels at a later time. This can be used for devices 1208 * regulatory domain no user regulatory domain can enable these channels
1209 * which do not have calibration information gauranteed for frequencies 1209 * at a later time. This can be used for devices which do not have
1210 * or settings outside of its regulatory domain. 1210 * calibration information guaranteed for frequencies or settings
1211 * outside of its regulatory domain.
1211 * @WIPHY_FLAG_DISABLE_BEACON_HINTS: enable this if your driver needs to ensure 1212 * @WIPHY_FLAG_DISABLE_BEACON_HINTS: enable this if your driver needs to ensure
1212 * that passive scan flags and beaconing flags may not be lifted by 1213 * that passive scan flags and beaconing flags may not be lifted by
1213 * cfg80211 due to regulatory beacon hints. For more information on beacon 1214 * cfg80211 due to regulatory beacon hints. For more information on beacon
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index b0787a1dea90..05aaa8789848 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -315,6 +315,9 @@ struct ieee80211_bss_conf {
315 * @IEEE80211_TX_CTL_LDPC: tells the driver to use LDPC for this frame 315 * @IEEE80211_TX_CTL_LDPC: tells the driver to use LDPC for this frame
316 * @IEEE80211_TX_CTL_STBC: Enables Space-Time Block Coding (STBC) for this 316 * @IEEE80211_TX_CTL_STBC: Enables Space-Time Block Coding (STBC) for this
317 * frame and selects the maximum number of streams that it can use. 317 * frame and selects the maximum number of streams that it can use.
318 *
319 * Note: If you have to add new flags to the enumeration, then don't
320 * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary.
318 */ 321 */
319enum mac80211_tx_control_flags { 322enum mac80211_tx_control_flags {
320 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), 323 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
@@ -344,6 +347,19 @@ enum mac80211_tx_control_flags {
344 347
345#define IEEE80211_TX_CTL_STBC_SHIFT 23 348#define IEEE80211_TX_CTL_STBC_SHIFT 23
346 349
350/*
351 * This definition is used as a mask to clear all temporary flags, which are
352 * set by the tx handlers for each transmission attempt by the mac80211 stack.
353 */
354#define IEEE80211_TX_TEMPORARY_FLAGS (IEEE80211_TX_CTL_NO_ACK | \
355 IEEE80211_TX_CTL_CLEAR_PS_FILT | IEEE80211_TX_CTL_FIRST_FRAGMENT | \
356 IEEE80211_TX_CTL_SEND_AFTER_DTIM | IEEE80211_TX_CTL_AMPDU | \
357 IEEE80211_TX_STAT_TX_FILTERED | IEEE80211_TX_STAT_ACK | \
358 IEEE80211_TX_STAT_AMPDU | IEEE80211_TX_STAT_AMPDU_NO_BACK | \
359 IEEE80211_TX_CTL_RATE_CTRL_PROBE | IEEE80211_TX_CTL_PSPOLL_RESPONSE | \
360 IEEE80211_TX_CTL_MORE_FRAMES | IEEE80211_TX_CTL_LDPC | \
361 IEEE80211_TX_CTL_STBC)
362
347/** 363/**
348 * enum mac80211_rate_control_flags - per-rate flags set by the 364 * enum mac80211_rate_control_flags - per-rate flags set by the
349 * Rate Control algorithm. 365 * Rate Control algorithm.
diff --git a/include/net/sock.h b/include/net/sock.h
index adab9dc58183..6892a5e89c23 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1155,6 +1155,8 @@ extern void sk_common_release(struct sock *sk);
1155/* Initialise core socket variables */ 1155/* Initialise core socket variables */
1156extern void sock_init_data(struct socket *sock, struct sock *sk); 1156extern void sock_init_data(struct socket *sock, struct sock *sk);
1157 1157
1158extern void sk_filter_release_rcu(struct rcu_head *rcu);
1159
1158/** 1160/**
1159 * sk_filter_release - release a socket filter 1161 * sk_filter_release - release a socket filter
1160 * @fp: filter to remove 1162 * @fp: filter to remove
@@ -1165,7 +1167,7 @@ extern void sock_init_data(struct socket *sock, struct sock *sk);
1165static inline void sk_filter_release(struct sk_filter *fp) 1167static inline void sk_filter_release(struct sk_filter *fp)
1166{ 1168{
1167 if (atomic_dec_and_test(&fp->refcnt)) 1169 if (atomic_dec_and_test(&fp->refcnt))
1168 kfree(fp); 1170 call_rcu_bh(&fp->rcu, sk_filter_release_rcu);
1169} 1171}
1170 1172
1171static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) 1173static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp)
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
index 8fcb6e0e9e72..d38b58e735dc 100644
--- a/include/scsi/scsi.h
+++ b/include/scsi/scsi.h
@@ -9,6 +9,7 @@
9#define _SCSI_SCSI_H 9#define _SCSI_SCSI_H
10 10
11#include <linux/types.h> 11#include <linux/types.h>
12#include <linux/scatterlist.h>
12 13
13struct scsi_cmnd; 14struct scsi_cmnd;
14 15
diff --git a/include/xen/interface/io/ring.h b/include/xen/interface/io/ring.h
index e8cbf431c8cc..75271b9a8f61 100644
--- a/include/xen/interface/io/ring.h
+++ b/include/xen/interface/io/ring.h
@@ -24,8 +24,15 @@ typedef unsigned int RING_IDX;
24 * A ring contains as many entries as will fit, rounded down to the nearest 24 * A ring contains as many entries as will fit, rounded down to the nearest
25 * power of two (so we can mask with (size-1) to loop around). 25 * power of two (so we can mask with (size-1) to loop around).
26 */ 26 */
27#define __RING_SIZE(_s, _sz) \ 27#define __CONST_RING_SIZE(_s, _sz) \
28 (__RD32(((_sz) - (long)&(_s)->ring + (long)(_s)) / sizeof((_s)->ring[0]))) 28 (__RD32(((_sz) - offsetof(struct _s##_sring, ring)) / \
29 sizeof(((struct _s##_sring *)0)->ring[0])))
30
31/*
32 * The same for passing in an actual pointer instead of a name tag.
33 */
34#define __RING_SIZE(_s, _sz) \
35 (__RD32(((_sz) - (long)&(_s)->ring + (long)(_s)) / sizeof((_s)->ring[0])))
29 36
30/* 37/*
31 * Macros to make the correct C datatypes for a new kind of ring. 38 * Macros to make the correct C datatypes for a new kind of ring.