diff options
author | Jeremy Erickson <jerickso@cs.unc.edu> | 2014-04-11 13:24:45 -0400 |
---|---|---|
committer | Jeremy Erickson <jerickso@cs.unc.edu> | 2014-04-11 13:24:45 -0400 |
commit | 438145c7ef5c9445f25bb8fc4d52e2c9d11fdc7c (patch) | |
tree | 76941991e36f4a32bf1be0db3854959053f24619 /include | |
parent | 9ddd1b8ad8abd321964b8add5581910de6d67c2a (diff) |
Update from 2.6.36 to 2.6.36.4wip-dissipation-jerickso
Diffstat (limited to 'include')
-rw-r--r-- | include/drm/drm_pciids.h | 1 | ||||
-rw-r--r-- | include/linux/binfmts.h | 5 | ||||
-rw-r--r-- | include/linux/blkdev.h | 13 | ||||
-rw-r--r-- | include/linux/bootmem.h | 2 | ||||
-rw-r--r-- | include/linux/gfp.h | 4 | ||||
-rw-r--r-- | include/linux/ieee80211.h | 2 | ||||
-rw-r--r-- | include/linux/kfifo.h | 7 | ||||
-rw-r--r-- | include/linux/klist.h | 2 | ||||
-rw-r--r-- | include/linux/mfd/wm8994/pdata.h | 2 | ||||
-rw-r--r-- | include/linux/mmzone.h | 10 | ||||
-rw-r--r-- | include/linux/netfilter.h | 2 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 1 | ||||
-rw-r--r-- | include/linux/perf_event.h | 1 | ||||
-rw-r--r-- | include/linux/pipe_fs_i.h | 1 | ||||
-rw-r--r-- | include/linux/pm_runtime.h | 3 | ||||
-rw-r--r-- | include/linux/radix-tree.h | 36 | ||||
-rw-r--r-- | include/linux/sched.h | 2 | ||||
-rw-r--r-- | include/linux/socket.h | 2 | ||||
-rw-r--r-- | include/linux/tty.h | 1 | ||||
-rw-r--r-- | include/linux/usb/serial.h | 3 | ||||
-rw-r--r-- | include/linux/vmstat.h | 5 | ||||
-rw-r--r-- | include/media/saa7146.h | 2 | ||||
-rw-r--r-- | include/net/af_unix.h | 2 | ||||
-rw-r--r-- | include/net/cfg80211.h | 15 | ||||
-rw-r--r-- | include/net/mac80211.h | 16 | ||||
-rw-r--r-- | include/net/sock.h | 4 | ||||
-rw-r--r-- | include/scsi/scsi.h | 1 | ||||
-rw-r--r-- | include/xen/interface/io/ring.h | 11 |
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 | ||
63 | extern void acct_arg_size(struct linux_binprm *bprm, unsigned long pages); | ||
64 | extern 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 | ||
551 | static 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); | |||
851 | extern void blk_queue_max_discard_sectors(struct request_queue *q, | 854 | extern void blk_queue_max_discard_sectors(struct request_queue *q, |
852 | unsigned int max_discard_sectors); | 855 | unsigned int max_discard_sectors); |
853 | extern void blk_queue_logical_block_size(struct request_queue *, unsigned short); | 856 | extern void blk_queue_logical_block_size(struct request_queue *, unsigned short); |
854 | extern void blk_queue_physical_block_size(struct request_queue *, unsigned short); | 857 | extern void blk_queue_physical_block_size(struct request_queue *, unsigned int); |
855 | extern void blk_queue_alignment_offset(struct request_queue *q, | 858 | extern void blk_queue_alignment_offset(struct request_queue *q, |
856 | unsigned int alignment); | 859 | unsigned int alignment); |
857 | extern void blk_limits_io_min(struct queue_limits *limits, unsigned int min); | 860 | extern 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 | ||
1007 | static inline int bdev_physical_block_size(struct block_device *bdev) | 1010 | static 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 | ||
340 | extern gfp_t gfp_allowed_mask; | 340 | extern gfp_t gfp_allowed_mask; |
341 | 341 | ||
342 | extern void set_gfp_allowed_mask(gfp_t mask); | 342 | extern void pm_restrict_gfp_mask(void); |
343 | extern gfp_t clear_gfp_allowed_mask(gfp_t mask); | 343 | extern 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 | ||
174 | static 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 | ||
452 | unsigned 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 { | |||
651 | extern struct mutex zonelists_mutex; | 645 | extern struct mutex zonelists_mutex; |
652 | void build_all_zonelists(void *data); | 646 | void build_all_zonelists(void *data); |
653 | void wakeup_kswapd(struct zone *zone, int order); | 647 | void wakeup_kswapd(struct zone *zone, int order); |
654 | int zone_watermark_ok(struct zone *z, int order, unsigned long mark, | 648 | bool zone_watermark_ok(struct zone *z, int order, unsigned long mark, |
649 | int classzone_idx, int alloc_flags); | ||
650 | bool 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); |
656 | enum memmap_context { | 652 | enum 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 */ |
162 | long pipe_fcntl(struct file *, unsigned int, unsigned long arg); | 162 | long pipe_fcntl(struct file *, unsigned int, unsigned long arg); |
163 | struct 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 | ||
68 | static inline bool pm_runtime_suspended(struct device *dev) | 68 | static 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 | |||
41 | static inline void *radix_tree_ptr_to_indirect(void *ptr) | ||
42 | { | ||
43 | return (void *)((unsigned long)ptr | RADIX_TREE_INDIRECT_PTR); | ||
44 | } | ||
45 | |||
46 | static inline void *radix_tree_indirect_to_ptr(void *ptr) | ||
47 | { | ||
48 | return (void *)((unsigned long)ptr & ~RADIX_TREE_INDIRECT_PTR); | ||
49 | } | ||
50 | 39 | ||
51 | static inline int radix_tree_is_indirect_ptr(void *ptr) | 40 | static 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 | */ |
144 | static inline void *radix_tree_deref_slot(void **pslot) | 136 | static 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 | */ | ||
148 | static 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); | |||
147 | extern unsigned long this_cpu_load(void); | 147 | extern unsigned long this_cpu_load(void); |
148 | 148 | ||
149 | 149 | ||
150 | extern void calc_global_load(void); | 150 | extern void calc_global_load(unsigned long ticks); |
151 | 151 | ||
152 | extern unsigned long get_parent_ip(unsigned long addr); | 152 | extern 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 | ||
325 | extern long verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr *address, int mode); | 325 | extern int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr *address, int mode); |
326 | extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len); | 326 | extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len); |
327 | extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata, | 327 | extern 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, | |||
345 | extern int usb_serial_handle_sysrq_char(struct usb_serial_port *port, | 345 | extern int usb_serial_handle_sysrq_char(struct usb_serial_port *port, |
346 | unsigned int ch); | 346 | unsigned int ch); |
347 | extern int usb_serial_handle_break(struct usb_serial_port *port); | 347 | extern int usb_serial_handle_break(struct usb_serial_port *port); |
348 | extern 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 | ||
350 | extern int usb_serial_bus_register(struct usb_serial_driver *device); | 353 | extern 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); | |||
254 | extern void __dec_zone_state(struct zone *, enum zone_stat_item); | 254 | extern void __dec_zone_state(struct zone *, enum zone_stat_item); |
255 | 255 | ||
256 | void refresh_cpu_vm_stats(int); | 256 | void refresh_cpu_vm_stats(int); |
257 | void reduce_pgdat_percpu_threshold(pg_data_t *pgdat); | ||
258 | void 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 | ||
303 | static inline void reduce_pgdat_percpu_threshold(pg_data_t *pgdat) { } | ||
304 | static inline void restore_pgdat_percpu_threshold(pg_data_t *pgdat) { } | ||
305 | |||
301 | static inline void refresh_cpu_vm_stats(int cpu) { } | 306 | static 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; | |||
161 | extern struct mutex saa7146_devices_lock; | 161 | extern struct mutex saa7146_devices_lock; |
162 | int saa7146_register_extension(struct saa7146_extension*); | 162 | int saa7146_register_extension(struct saa7146_extension*); |
163 | int saa7146_unregister_extension(struct saa7146_extension*); | 163 | int saa7146_unregister_extension(struct saa7146_extension*); |
164 | struct saa7146_format* format_by_fourcc(struct saa7146_dev *dev, int fourcc); | 164 | struct saa7146_format* saa7146_format_by_fourcc(struct saa7146_dev *dev, int fourcc); |
165 | int saa7146_pgtable_alloc(struct pci_dev *pci, struct saa7146_pgtable *pt); | 165 | int saa7146_pgtable_alloc(struct pci_dev *pci, struct saa7146_pgtable *pt); |
166 | void saa7146_pgtable_free(struct pci_dev *pci, struct saa7146_pgtable *pt); | 166 | void saa7146_pgtable_free(struct pci_dev *pci, struct saa7146_pgtable *pt); |
167 | int saa7146_pgtable_build_single(struct pci_dev *pci, struct saa7146_pgtable *pt, struct scatterlist *list, int length ); | 167 | int 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); | |||
10 | extern void unix_notinflight(struct file *fp); | 10 | extern void unix_notinflight(struct file *fp); |
11 | extern void unix_gc(void); | 11 | extern void unix_gc(void); |
12 | extern void wait_for_unix_gc(void); | 12 | extern void wait_for_unix_gc(void); |
13 | extern 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 | */ |
319 | enum mac80211_tx_control_flags { | 322 | enum 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 */ |
1156 | extern void sock_init_data(struct socket *sock, struct sock *sk); | 1156 | extern void sock_init_data(struct socket *sock, struct sock *sk); |
1157 | 1157 | ||
1158 | extern 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); | |||
1165 | static inline void sk_filter_release(struct sk_filter *fp) | 1167 | static 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 | ||
1171 | static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) | 1173 | static 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 | ||
13 | struct scsi_cmnd; | 14 | struct 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. |