diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-07-05 02:46:08 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-07-05 02:46:08 -0400 |
commit | 285eba57db7bd7d7c3c5929fb8621fdcaaea1b00 (patch) | |
tree | a9e7f0563cef296b24c53b20dbb388ec5c210172 /include | |
parent | 1c14e6cecb1811543b1016f27e5d308fbea8c08a (diff) | |
parent | 815c4163b6c8ebf8152f42b0a5fd015cfdcedc78 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
include/linux/serial_sci.h
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'include')
61 files changed, 605 insertions, 187 deletions
diff --git a/include/acpi/acexcep.h b/include/acpi/acexcep.h index 5958d7845bd5..17714beb868e 100644 --- a/include/acpi/acexcep.h +++ b/include/acpi/acexcep.h | |||
@@ -212,7 +212,7 @@ char const *acpi_gbl_exception_names_env[] = { | |||
212 | "AE_NO_GLOBAL_LOCK", | 212 | "AE_NO_GLOBAL_LOCK", |
213 | "AE_ABORT_METHOD", | 213 | "AE_ABORT_METHOD", |
214 | "AE_SAME_HANDLER", | 214 | "AE_SAME_HANDLER", |
215 | "AE_WAKE_ONLY_GPE", | 215 | "AE_NO_HANDLER", |
216 | "AE_OWNER_ID_LIMIT" | 216 | "AE_OWNER_ID_LIMIT" |
217 | }; | 217 | }; |
218 | 218 | ||
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index 0e4ab1fe5966..1371cc997393 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h | |||
@@ -69,6 +69,7 @@ extern acpi_name acpi_gbl_trace_method_name; | |||
69 | extern u32 acpi_gbl_trace_flags; | 69 | extern u32 acpi_gbl_trace_flags; |
70 | extern u8 acpi_gbl_enable_aml_debug_object; | 70 | extern u8 acpi_gbl_enable_aml_debug_object; |
71 | extern u8 acpi_gbl_copy_dsdt_locally; | 71 | extern u8 acpi_gbl_copy_dsdt_locally; |
72 | extern u8 acpi_gbl_truncate_io_addresses; | ||
72 | 73 | ||
73 | extern u32 acpi_current_gpe_count; | 74 | extern u32 acpi_current_gpe_count; |
74 | extern struct acpi_table_fadt acpi_gbl_FADT; | 75 | extern struct acpi_table_fadt acpi_gbl_FADT; |
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index bade172cad47..d55f4a7b824d 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h | |||
@@ -663,10 +663,11 @@ typedef u32 acpi_event_status; | |||
663 | #define ACPI_GPE_MAX 0xFF | 663 | #define ACPI_GPE_MAX 0xFF |
664 | #define ACPI_NUM_GPE 256 | 664 | #define ACPI_NUM_GPE 256 |
665 | 665 | ||
666 | /* Actions for acpi_set_gpe */ | 666 | /* Actions for acpi_set_gpe and acpi_hw_low_set_gpe */ |
667 | 667 | ||
668 | #define ACPI_GPE_ENABLE 0 | 668 | #define ACPI_GPE_ENABLE 0 |
669 | #define ACPI_GPE_DISABLE 1 | 669 | #define ACPI_GPE_DISABLE 1 |
670 | #define ACPI_GPE_COND_ENABLE 2 | ||
670 | 671 | ||
671 | /* gpe_types for acpi_enable_gpe and acpi_disable_gpe */ | 672 | /* gpe_types for acpi_enable_gpe and acpi_disable_gpe */ |
672 | 673 | ||
diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h index 04f91c2d3f7b..b5043a9890d8 100644 --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h | |||
@@ -80,7 +80,7 @@ extern void setup_per_cpu_areas(void); | |||
80 | 80 | ||
81 | #ifndef PER_CPU_BASE_SECTION | 81 | #ifndef PER_CPU_BASE_SECTION |
82 | #ifdef CONFIG_SMP | 82 | #ifdef CONFIG_SMP |
83 | #define PER_CPU_BASE_SECTION ".data.percpu" | 83 | #define PER_CPU_BASE_SECTION ".data..percpu" |
84 | #else | 84 | #else |
85 | #define PER_CPU_BASE_SECTION ".data" | 85 | #define PER_CPU_BASE_SECTION ".data" |
86 | #endif | 86 | #endif |
@@ -92,15 +92,15 @@ extern void setup_per_cpu_areas(void); | |||
92 | #define PER_CPU_SHARED_ALIGNED_SECTION "" | 92 | #define PER_CPU_SHARED_ALIGNED_SECTION "" |
93 | #define PER_CPU_ALIGNED_SECTION "" | 93 | #define PER_CPU_ALIGNED_SECTION "" |
94 | #else | 94 | #else |
95 | #define PER_CPU_SHARED_ALIGNED_SECTION ".shared_aligned" | 95 | #define PER_CPU_SHARED_ALIGNED_SECTION "..shared_aligned" |
96 | #define PER_CPU_ALIGNED_SECTION ".shared_aligned" | 96 | #define PER_CPU_ALIGNED_SECTION "..shared_aligned" |
97 | #endif | 97 | #endif |
98 | #define PER_CPU_FIRST_SECTION ".first" | 98 | #define PER_CPU_FIRST_SECTION "..first" |
99 | 99 | ||
100 | #else | 100 | #else |
101 | 101 | ||
102 | #define PER_CPU_SHARED_ALIGNED_SECTION "" | 102 | #define PER_CPU_SHARED_ALIGNED_SECTION "" |
103 | #define PER_CPU_ALIGNED_SECTION ".shared_aligned" | 103 | #define PER_CPU_ALIGNED_SECTION "..shared_aligned" |
104 | #define PER_CPU_FIRST_SECTION "" | 104 | #define PER_CPU_FIRST_SECTION "" |
105 | 105 | ||
106 | #endif | 106 | #endif |
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index ef779c6fc3d7..48c5299cbf26 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -175,25 +175,25 @@ | |||
175 | #define NOSAVE_DATA \ | 175 | #define NOSAVE_DATA \ |
176 | . = ALIGN(PAGE_SIZE); \ | 176 | . = ALIGN(PAGE_SIZE); \ |
177 | VMLINUX_SYMBOL(__nosave_begin) = .; \ | 177 | VMLINUX_SYMBOL(__nosave_begin) = .; \ |
178 | *(.data.nosave) \ | 178 | *(.data..nosave) \ |
179 | . = ALIGN(PAGE_SIZE); \ | 179 | . = ALIGN(PAGE_SIZE); \ |
180 | VMLINUX_SYMBOL(__nosave_end) = .; | 180 | VMLINUX_SYMBOL(__nosave_end) = .; |
181 | 181 | ||
182 | #define PAGE_ALIGNED_DATA(page_align) \ | 182 | #define PAGE_ALIGNED_DATA(page_align) \ |
183 | . = ALIGN(page_align); \ | 183 | . = ALIGN(page_align); \ |
184 | *(.data.page_aligned) | 184 | *(.data..page_aligned) |
185 | 185 | ||
186 | #define READ_MOSTLY_DATA(align) \ | 186 | #define READ_MOSTLY_DATA(align) \ |
187 | . = ALIGN(align); \ | 187 | . = ALIGN(align); \ |
188 | *(.data.read_mostly) | 188 | *(.data..read_mostly) |
189 | 189 | ||
190 | #define CACHELINE_ALIGNED_DATA(align) \ | 190 | #define CACHELINE_ALIGNED_DATA(align) \ |
191 | . = ALIGN(align); \ | 191 | . = ALIGN(align); \ |
192 | *(.data.cacheline_aligned) | 192 | *(.data..cacheline_aligned) |
193 | 193 | ||
194 | #define INIT_TASK_DATA(align) \ | 194 | #define INIT_TASK_DATA(align) \ |
195 | . = ALIGN(align); \ | 195 | . = ALIGN(align); \ |
196 | *(.data.init_task) | 196 | *(.data..init_task) |
197 | 197 | ||
198 | /* | 198 | /* |
199 | * Read only Data | 199 | * Read only Data |
@@ -435,7 +435,7 @@ | |||
435 | */ | 435 | */ |
436 | #define INIT_TASK_DATA_SECTION(align) \ | 436 | #define INIT_TASK_DATA_SECTION(align) \ |
437 | . = ALIGN(align); \ | 437 | . = ALIGN(align); \ |
438 | .data.init_task : { \ | 438 | .data..init_task : { \ |
439 | INIT_TASK_DATA(align) \ | 439 | INIT_TASK_DATA(align) \ |
440 | } | 440 | } |
441 | 441 | ||
@@ -499,7 +499,7 @@ | |||
499 | #define BSS(bss_align) \ | 499 | #define BSS(bss_align) \ |
500 | . = ALIGN(bss_align); \ | 500 | . = ALIGN(bss_align); \ |
501 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { \ | 501 | .bss : AT(ADDR(.bss) - LOAD_OFFSET) { \ |
502 | *(.bss.page_aligned) \ | 502 | *(.bss..page_aligned) \ |
503 | *(.dynbss) \ | 503 | *(.dynbss) \ |
504 | *(.bss) \ | 504 | *(.bss) \ |
505 | *(COMMON) \ | 505 | *(COMMON) \ |
@@ -666,16 +666,16 @@ | |||
666 | */ | 666 | */ |
667 | #define PERCPU_VADDR(vaddr, phdr) \ | 667 | #define PERCPU_VADDR(vaddr, phdr) \ |
668 | VMLINUX_SYMBOL(__per_cpu_load) = .; \ | 668 | VMLINUX_SYMBOL(__per_cpu_load) = .; \ |
669 | .data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \ | 669 | .data..percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \ |
670 | - LOAD_OFFSET) { \ | 670 | - LOAD_OFFSET) { \ |
671 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ | 671 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ |
672 | *(.data.percpu.first) \ | 672 | *(.data..percpu..first) \ |
673 | *(.data.percpu.page_aligned) \ | 673 | *(.data..percpu..page_aligned) \ |
674 | *(.data.percpu) \ | 674 | *(.data..percpu) \ |
675 | *(.data.percpu.shared_aligned) \ | 675 | *(.data..percpu..shared_aligned) \ |
676 | VMLINUX_SYMBOL(__per_cpu_end) = .; \ | 676 | VMLINUX_SYMBOL(__per_cpu_end) = .; \ |
677 | } phdr \ | 677 | } phdr \ |
678 | . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data.percpu); | 678 | . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data..percpu); |
679 | 679 | ||
680 | /** | 680 | /** |
681 | * PERCPU - define output section for percpu area, simple version | 681 | * PERCPU - define output section for percpu area, simple version |
@@ -687,18 +687,18 @@ | |||
687 | * | 687 | * |
688 | * This macro is equivalent to ALIGN(align); PERCPU_VADDR( , ) except | 688 | * This macro is equivalent to ALIGN(align); PERCPU_VADDR( , ) except |
689 | * that __per_cpu_load is defined as a relative symbol against | 689 | * that __per_cpu_load is defined as a relative symbol against |
690 | * .data.percpu which is required for relocatable x86_32 | 690 | * .data..percpu which is required for relocatable x86_32 |
691 | * configuration. | 691 | * configuration. |
692 | */ | 692 | */ |
693 | #define PERCPU(align) \ | 693 | #define PERCPU(align) \ |
694 | . = ALIGN(align); \ | 694 | . = ALIGN(align); \ |
695 | .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { \ | 695 | .data..percpu : AT(ADDR(.data..percpu) - LOAD_OFFSET) { \ |
696 | VMLINUX_SYMBOL(__per_cpu_load) = .; \ | 696 | VMLINUX_SYMBOL(__per_cpu_load) = .; \ |
697 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ | 697 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ |
698 | *(.data.percpu.first) \ | 698 | *(.data..percpu..first) \ |
699 | *(.data.percpu.page_aligned) \ | 699 | *(.data..percpu..page_aligned) \ |
700 | *(.data.percpu) \ | 700 | *(.data..percpu) \ |
701 | *(.data.percpu.shared_aligned) \ | 701 | *(.data..percpu..shared_aligned) \ |
702 | VMLINUX_SYMBOL(__per_cpu_end) = .; \ | 702 | VMLINUX_SYMBOL(__per_cpu_end) = .; \ |
703 | } | 703 | } |
704 | 704 | ||
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h index dc5873c21e45..1121f7799c6f 100644 --- a/include/drm/drm_crtc_helper.h +++ b/include/drm/drm_crtc_helper.h | |||
@@ -130,4 +130,7 @@ extern int drm_helper_resume_force_mode(struct drm_device *dev); | |||
130 | extern void drm_kms_helper_poll_init(struct drm_device *dev); | 130 | extern void drm_kms_helper_poll_init(struct drm_device *dev); |
131 | extern void drm_kms_helper_poll_fini(struct drm_device *dev); | 131 | extern void drm_kms_helper_poll_fini(struct drm_device *dev); |
132 | extern void drm_helper_hpd_irq_event(struct drm_device *dev); | 132 | extern void drm_helper_hpd_irq_event(struct drm_device *dev); |
133 | |||
134 | extern void drm_kms_helper_poll_disable(struct drm_device *dev); | ||
135 | extern void drm_kms_helper_poll_enable(struct drm_device *dev); | ||
133 | #endif | 136 | #endif |
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h index b64a8d7cdf6d..7f0028e1010b 100644 --- a/include/drm/i915_drm.h +++ b/include/drm/i915_drm.h | |||
@@ -275,6 +275,7 @@ typedef struct drm_i915_irq_wait { | |||
275 | #define I915_PARAM_HAS_OVERLAY 7 | 275 | #define I915_PARAM_HAS_OVERLAY 7 |
276 | #define I915_PARAM_HAS_PAGEFLIPPING 8 | 276 | #define I915_PARAM_HAS_PAGEFLIPPING 8 |
277 | #define I915_PARAM_HAS_EXECBUF2 9 | 277 | #define I915_PARAM_HAS_EXECBUF2 9 |
278 | #define I915_PARAM_HAS_BSD 10 | ||
278 | 279 | ||
279 | typedef struct drm_i915_getparam { | 280 | typedef struct drm_i915_getparam { |
280 | int param; | 281 | int param; |
@@ -616,7 +617,9 @@ struct drm_i915_gem_execbuffer2 { | |||
616 | __u32 num_cliprects; | 617 | __u32 num_cliprects; |
617 | /** This is a struct drm_clip_rect *cliprects */ | 618 | /** This is a struct drm_clip_rect *cliprects */ |
618 | __u64 cliprects_ptr; | 619 | __u64 cliprects_ptr; |
619 | __u64 flags; /* currently unused */ | 620 | #define I915_EXEC_RENDER (1<<0) |
621 | #define I915_EXEC_BSD (1<<1) | ||
622 | __u64 flags; | ||
620 | __u64 rsvd1; | 623 | __u64 rsvd1; |
621 | __u64 rsvd2; | 624 | __u64 rsvd2; |
622 | }; | 625 | }; |
diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h index a6a9f4af5ebd..fe917dee723a 100644 --- a/include/drm/nouveau_drm.h +++ b/include/drm/nouveau_drm.h | |||
@@ -79,6 +79,7 @@ struct drm_nouveau_gpuobj_free { | |||
79 | #define NOUVEAU_GETPARAM_CHIPSET_ID 11 | 79 | #define NOUVEAU_GETPARAM_CHIPSET_ID 11 |
80 | #define NOUVEAU_GETPARAM_VM_VRAM_BASE 12 | 80 | #define NOUVEAU_GETPARAM_VM_VRAM_BASE 12 |
81 | #define NOUVEAU_GETPARAM_GRAPH_UNITS 13 | 81 | #define NOUVEAU_GETPARAM_GRAPH_UNITS 13 |
82 | #define NOUVEAU_GETPARAM_PTIMER_TIME 14 | ||
82 | struct drm_nouveau_getparam { | 83 | struct drm_nouveau_getparam { |
83 | uint64_t param; | 84 | uint64_t param; |
84 | uint64_t value; | 85 | uint64_t value; |
diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h index 3ff9fc071dfe..5347063e9d5a 100644 --- a/include/drm/radeon_drm.h +++ b/include/drm/radeon_drm.h | |||
@@ -903,6 +903,7 @@ struct drm_radeon_cs { | |||
903 | #define RADEON_INFO_NUM_Z_PIPES 0x02 | 903 | #define RADEON_INFO_NUM_Z_PIPES 0x02 |
904 | #define RADEON_INFO_ACCEL_WORKING 0x03 | 904 | #define RADEON_INFO_ACCEL_WORKING 0x03 |
905 | #define RADEON_INFO_CRTC_FROM_ID 0x04 | 905 | #define RADEON_INFO_CRTC_FROM_ID 0x04 |
906 | #define RADEON_INFO_ACCEL_WORKING2 0x05 | ||
906 | 907 | ||
907 | struct drm_radeon_info { | 908 | struct drm_radeon_info { |
908 | uint32_t request; | 909 | uint32_t request; |
diff --git a/include/drm/vmwgfx_drm.h b/include/drm/vmwgfx_drm.h index c7645f480d12..4d0842391edc 100644 --- a/include/drm/vmwgfx_drm.h +++ b/include/drm/vmwgfx_drm.h | |||
@@ -50,6 +50,8 @@ | |||
50 | #define DRM_VMW_EXECBUF 12 | 50 | #define DRM_VMW_EXECBUF 12 |
51 | #define DRM_VMW_FIFO_DEBUG 13 | 51 | #define DRM_VMW_FIFO_DEBUG 13 |
52 | #define DRM_VMW_FENCE_WAIT 14 | 52 | #define DRM_VMW_FENCE_WAIT 14 |
53 | /* guarded by minor version >= 2 */ | ||
54 | #define DRM_VMW_UPDATE_LAYOUT 15 | ||
53 | 55 | ||
54 | 56 | ||
55 | /*************************************************************************/ | 57 | /*************************************************************************/ |
@@ -585,4 +587,28 @@ struct drm_vmw_stream_arg { | |||
585 | * sure that the stream has been stopped. | 587 | * sure that the stream has been stopped. |
586 | */ | 588 | */ |
587 | 589 | ||
590 | /*************************************************************************/ | ||
591 | /** | ||
592 | * DRM_VMW_UPDATE_LAYOUT - Update layout | ||
593 | * | ||
594 | * Updates the prefered modes and connection status for connectors. The | ||
595 | * command conisits of one drm_vmw_update_layout_arg pointing out a array | ||
596 | * of num_outputs drm_vmw_rect's. | ||
597 | */ | ||
598 | |||
599 | /** | ||
600 | * struct drm_vmw_update_layout_arg | ||
601 | * | ||
602 | * @num_outputs: number of active | ||
603 | * @rects: pointer to array of drm_vmw_rect | ||
604 | * | ||
605 | * Input argument to the DRM_VMW_UPDATE_LAYOUT Ioctl. | ||
606 | */ | ||
607 | |||
608 | struct drm_vmw_update_layout_arg { | ||
609 | uint32_t num_outputs; | ||
610 | uint32_t pad64; | ||
611 | uint64_t rects; | ||
612 | }; | ||
613 | |||
588 | #endif | 614 | #endif |
diff --git a/include/linux/agp_backend.h b/include/linux/agp_backend.h index 9101ed64f803..09ea4a1e9505 100644 --- a/include/linux/agp_backend.h +++ b/include/linux/agp_backend.h | |||
@@ -79,7 +79,6 @@ struct agp_memory { | |||
79 | u32 physical; | 79 | u32 physical; |
80 | bool is_bound; | 80 | bool is_bound; |
81 | bool is_flushed; | 81 | bool is_flushed; |
82 | bool vmalloc_flag; | ||
83 | /* list of agp_memory mapped to the aperture */ | 82 | /* list of agp_memory mapped to the aperture */ |
84 | struct list_head mapped_list; | 83 | struct list_head mapped_list; |
85 | /* DMA-mapped addresses */ | 84 | /* DMA-mapped addresses */ |
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index e6e0cb5437e6..9ae2889096b6 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
@@ -105,8 +105,8 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent, | |||
105 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); | 105 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); |
106 | void bdi_unregister(struct backing_dev_info *bdi); | 106 | void bdi_unregister(struct backing_dev_info *bdi); |
107 | int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int); | 107 | int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int); |
108 | void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, | 108 | void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages); |
109 | long nr_pages, int sb_locked); | 109 | void bdi_start_background_writeback(struct backing_dev_info *bdi); |
110 | int bdi_writeback_task(struct bdi_writeback *wb); | 110 | int bdi_writeback_task(struct bdi_writeback *wb); |
111 | int bdi_has_dirty_io(struct backing_dev_info *bdi); | 111 | int bdi_has_dirty_io(struct backing_dev_info *bdi); |
112 | void bdi_arm_supers_timer(void); | 112 | void bdi_arm_supers_timer(void); |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 8b7f5e0914ad..09a840264d6f 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -1211,14 +1211,23 @@ struct work_struct; | |||
1211 | int kblockd_schedule_work(struct request_queue *q, struct work_struct *work); | 1211 | int kblockd_schedule_work(struct request_queue *q, struct work_struct *work); |
1212 | 1212 | ||
1213 | #ifdef CONFIG_BLK_CGROUP | 1213 | #ifdef CONFIG_BLK_CGROUP |
1214 | /* | ||
1215 | * This should not be using sched_clock(). A real patch is in progress | ||
1216 | * to fix this up, until that is in place we need to disable preemption | ||
1217 | * around sched_clock() in this function and set_io_start_time_ns(). | ||
1218 | */ | ||
1214 | static inline void set_start_time_ns(struct request *req) | 1219 | static inline void set_start_time_ns(struct request *req) |
1215 | { | 1220 | { |
1221 | preempt_disable(); | ||
1216 | req->start_time_ns = sched_clock(); | 1222 | req->start_time_ns = sched_clock(); |
1223 | preempt_enable(); | ||
1217 | } | 1224 | } |
1218 | 1225 | ||
1219 | static inline void set_io_start_time_ns(struct request *req) | 1226 | static inline void set_io_start_time_ns(struct request *req) |
1220 | { | 1227 | { |
1228 | preempt_disable(); | ||
1221 | req->io_start_time_ns = sched_clock(); | 1229 | req->io_start_time_ns = sched_clock(); |
1230 | preempt_enable(); | ||
1222 | } | 1231 | } |
1223 | 1232 | ||
1224 | static inline uint64_t rq_start_time_ns(struct request *req) | 1233 | static inline uint64_t rq_start_time_ns(struct request *req) |
diff --git a/include/linux/cache.h b/include/linux/cache.h index 97e24881c4c6..4c570653ab84 100644 --- a/include/linux/cache.h +++ b/include/linux/cache.h | |||
@@ -31,7 +31,7 @@ | |||
31 | #ifndef __cacheline_aligned | 31 | #ifndef __cacheline_aligned |
32 | #define __cacheline_aligned \ | 32 | #define __cacheline_aligned \ |
33 | __attribute__((__aligned__(SMP_CACHE_BYTES), \ | 33 | __attribute__((__aligned__(SMP_CACHE_BYTES), \ |
34 | __section__(".data.cacheline_aligned"))) | 34 | __section__(".data..cacheline_aligned"))) |
35 | #endif /* __cacheline_aligned */ | 35 | #endif /* __cacheline_aligned */ |
36 | 36 | ||
37 | #ifndef __cacheline_aligned_in_smp | 37 | #ifndef __cacheline_aligned_in_smp |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 0c621604baa1..e3d00fdb858d 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
@@ -525,13 +525,21 @@ static inline struct cgroup_subsys_state *cgroup_subsys_state( | |||
525 | return cgrp->subsys[subsys_id]; | 525 | return cgrp->subsys[subsys_id]; |
526 | } | 526 | } |
527 | 527 | ||
528 | static inline struct cgroup_subsys_state *task_subsys_state( | 528 | /* |
529 | struct task_struct *task, int subsys_id) | 529 | * function to get the cgroup_subsys_state which allows for extra |
530 | * rcu_dereference_check() conditions, such as locks used during the | ||
531 | * cgroup_subsys::attach() methods. | ||
532 | */ | ||
533 | #define task_subsys_state_check(task, subsys_id, __c) \ | ||
534 | rcu_dereference_check(task->cgroups->subsys[subsys_id], \ | ||
535 | rcu_read_lock_held() || \ | ||
536 | lockdep_is_held(&task->alloc_lock) || \ | ||
537 | cgroup_lock_is_held() || (__c)) | ||
538 | |||
539 | static inline struct cgroup_subsys_state * | ||
540 | task_subsys_state(struct task_struct *task, int subsys_id) | ||
530 | { | 541 | { |
531 | return rcu_dereference_check(task->cgroups->subsys[subsys_id], | 542 | return task_subsys_state_check(task, subsys_id, false); |
532 | rcu_read_lock_held() || | ||
533 | lockdep_is_held(&task->alloc_lock) || | ||
534 | cgroup_lock_is_held()); | ||
535 | } | 543 | } |
536 | 544 | ||
537 | static inline struct cgroup* task_cgroup(struct task_struct *task, | 545 | static inline struct cgroup* task_cgroup(struct task_struct *task, |
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 73dcf804bc94..0da5b187f124 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
@@ -58,8 +58,12 @@ | |||
58 | * naked functions because then mcount is called without stack and frame pointer | 58 | * naked functions because then mcount is called without stack and frame pointer |
59 | * being set up and there is no chance to restore the lr register to the value | 59 | * being set up and there is no chance to restore the lr register to the value |
60 | * before mcount was called. | 60 | * before mcount was called. |
61 | * | ||
62 | * The asm() bodies of naked functions often depend on standard calling conventions, | ||
63 | * therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce | ||
64 | * this, so we must do so ourselves. See GCC PR44290. | ||
61 | */ | 65 | */ |
62 | #define __naked __attribute__((naked)) notrace | 66 | #define __naked __attribute__((naked)) noinline __noclone notrace |
63 | 67 | ||
64 | #define __noreturn __attribute__((noreturn)) | 68 | #define __noreturn __attribute__((noreturn)) |
65 | 69 | ||
@@ -85,3 +89,7 @@ | |||
85 | #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h) | 89 | #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h) |
86 | #define gcc_header(x) _gcc_header(x) | 90 | #define gcc_header(x) _gcc_header(x) |
87 | #include gcc_header(__GNUC__) | 91 | #include gcc_header(__GNUC__) |
92 | |||
93 | #if !defined(__noclone) | ||
94 | #define __noclone /* not needed */ | ||
95 | #endif | ||
diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h index 94dea3ffbfa1..fcfa5b9a4317 100644 --- a/include/linux/compiler-gcc4.h +++ b/include/linux/compiler-gcc4.h | |||
@@ -48,6 +48,10 @@ | |||
48 | * unreleased. Really, we need to have autoconf for the kernel. | 48 | * unreleased. Really, we need to have autoconf for the kernel. |
49 | */ | 49 | */ |
50 | #define unreachable() __builtin_unreachable() | 50 | #define unreachable() __builtin_unreachable() |
51 | |||
52 | /* Mark a function definition as prohibited from being cloned. */ | ||
53 | #define __noclone __attribute__((__noclone__)) | ||
54 | |||
51 | #endif | 55 | #endif |
52 | 56 | ||
53 | #endif | 57 | #endif |
diff --git a/include/linux/drbd.h b/include/linux/drbd.h index 68530521ad00..b8d2516668aa 100644 --- a/include/linux/drbd.h +++ b/include/linux/drbd.h | |||
@@ -53,7 +53,7 @@ | |||
53 | 53 | ||
54 | 54 | ||
55 | extern const char *drbd_buildtag(void); | 55 | extern const char *drbd_buildtag(void); |
56 | #define REL_VERSION "8.3.8rc1" | 56 | #define REL_VERSION "8.3.8" |
57 | #define API_VERSION 88 | 57 | #define API_VERSION 88 |
58 | #define PRO_VERSION_MIN 86 | 58 | #define PRO_VERSION_MIN 86 |
59 | #define PRO_VERSION_MAX 94 | 59 | #define PRO_VERSION_MAX 94 |
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h index b3cd4de9432b..52c0da4bdd18 100644 --- a/include/linux/dynamic_debug.h +++ b/include/linux/dynamic_debug.h | |||
@@ -40,7 +40,7 @@ int ddebug_add_module(struct _ddebug *tab, unsigned int n, | |||
40 | const char *modname); | 40 | const char *modname); |
41 | 41 | ||
42 | #if defined(CONFIG_DYNAMIC_DEBUG) | 42 | #if defined(CONFIG_DYNAMIC_DEBUG) |
43 | extern int ddebug_remove_module(char *mod_name); | 43 | extern int ddebug_remove_module(const char *mod_name); |
44 | 44 | ||
45 | #define __dynamic_dbg_enabled(dd) ({ \ | 45 | #define __dynamic_dbg_enabled(dd) ({ \ |
46 | int __ret = 0; \ | 46 | int __ret = 0; \ |
@@ -73,7 +73,7 @@ extern int ddebug_remove_module(char *mod_name); | |||
73 | 73 | ||
74 | #else | 74 | #else |
75 | 75 | ||
76 | static inline int ddebug_remove_module(char *mod) | 76 | static inline int ddebug_remove_module(const char *mod) |
77 | { | 77 | { |
78 | return 0; | 78 | return 0; |
79 | } | 79 | } |
diff --git a/include/linux/edac_mce.h b/include/linux/edac_mce.h new file mode 100644 index 000000000000..f974fc035363 --- /dev/null +++ b/include/linux/edac_mce.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* Provides edac interface to mcelog events | ||
2 | * | ||
3 | * This file may be distributed under the terms of the | ||
4 | * GNU General Public License version 2. | ||
5 | * | ||
6 | * Copyright (c) 2009 by: | ||
7 | * Mauro Carvalho Chehab <mchehab@redhat.com> | ||
8 | * | ||
9 | * Red Hat Inc. http://www.redhat.com | ||
10 | */ | ||
11 | |||
12 | #if defined(CONFIG_EDAC_MCE) || \ | ||
13 | (defined(CONFIG_EDAC_MCE_MODULE) && defined(MODULE)) | ||
14 | |||
15 | #include <asm/mce.h> | ||
16 | #include <linux/list.h> | ||
17 | |||
18 | struct edac_mce { | ||
19 | struct list_head list; | ||
20 | |||
21 | void *priv; | ||
22 | int (*check_error)(void *priv, struct mce *mce); | ||
23 | }; | ||
24 | |||
25 | int edac_mce_register(struct edac_mce *edac_mce); | ||
26 | void edac_mce_unregister(struct edac_mce *edac_mce); | ||
27 | int edac_mce_parse(struct mce *mce); | ||
28 | |||
29 | #else | ||
30 | #define edac_mce_parse(mce) (0) | ||
31 | #endif | ||
diff --git a/include/linux/fb.h b/include/linux/fb.h index 907ace3a64c8..8e5a9dfb76bf 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
@@ -786,8 +786,6 @@ struct fb_tile_ops { | |||
786 | #define FBINFO_MISC_USEREVENT 0x10000 /* event request | 786 | #define FBINFO_MISC_USEREVENT 0x10000 /* event request |
787 | from userspace */ | 787 | from userspace */ |
788 | #define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ | 788 | #define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ |
789 | #define FBINFO_MISC_FIRMWARE 0x40000 /* a replaceable firmware | ||
790 | inited framebuffer */ | ||
791 | 789 | ||
792 | /* A driver may set this flag to indicate that it does want a set_par to be | 790 | /* A driver may set this flag to indicate that it does want a set_par to be |
793 | * called every time when fbcon_switch is executed. The advantage is that with | 791 | * called every time when fbcon_switch is executed. The advantage is that with |
@@ -801,6 +799,8 @@ struct fb_tile_ops { | |||
801 | */ | 799 | */ |
802 | #define FBINFO_MISC_ALWAYS_SETPAR 0x40000 | 800 | #define FBINFO_MISC_ALWAYS_SETPAR 0x40000 |
803 | 801 | ||
802 | /* where the fb is a firmware driver, and can be replaced with a proper one */ | ||
803 | #define FBINFO_MISC_FIRMWARE 0x80000 | ||
804 | /* | 804 | /* |
805 | * Host and GPU endianness differ. | 805 | * Host and GPU endianness differ. |
806 | */ | 806 | */ |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 3428393942a6..471e1ff5079a 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -2388,7 +2388,7 @@ extern const struct file_operations simple_dir_operations; | |||
2388 | extern const struct inode_operations simple_dir_inode_operations; | 2388 | extern const struct inode_operations simple_dir_inode_operations; |
2389 | struct tree_descr { char *name; const struct file_operations *ops; int mode; }; | 2389 | struct tree_descr { char *name; const struct file_operations *ops; int mode; }; |
2390 | struct dentry *d_alloc_name(struct dentry *, const char *); | 2390 | struct dentry *d_alloc_name(struct dentry *, const char *); |
2391 | extern int simple_fill_super(struct super_block *, int, struct tree_descr *); | 2391 | extern int simple_fill_super(struct super_block *, unsigned long, struct tree_descr *); |
2392 | extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count); | 2392 | extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count); |
2393 | extern void simple_release_fs(struct vfsmount **mount, int *count); | 2393 | extern void simple_release_fs(struct vfsmount **mount, int *count); |
2394 | 2394 | ||
diff --git a/include/linux/init.h b/include/linux/init.h index ab1d31f9352b..de994304e0bb 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
@@ -301,7 +301,7 @@ void __init parse_early_options(char *cmdline); | |||
301 | #endif | 301 | #endif |
302 | 302 | ||
303 | /* Data marked not to be saved by software suspend */ | 303 | /* Data marked not to be saved by software suspend */ |
304 | #define __nosavedata __section(.data.nosave) | 304 | #define __nosavedata __section(.data..nosave) |
305 | 305 | ||
306 | /* This means "can be init if no module support, otherwise module load | 306 | /* This means "can be init if no module support, otherwise module load |
307 | may call it." */ | 307 | may call it." */ |
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 2beaa13492be..1f43fa56f600 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
@@ -183,7 +183,7 @@ extern struct cred init_cred; | |||
183 | } | 183 | } |
184 | 184 | ||
185 | /* Attach to the init_task data structure for proper alignment */ | 185 | /* Attach to the init_task data structure for proper alignment */ |
186 | #define __init_task_data __attribute__((__section__(".data.init_task"))) | 186 | #define __init_task_data __attribute__((__section__(".data..init_task"))) |
187 | 187 | ||
188 | 188 | ||
189 | #endif | 189 | #endif |
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h index a0bb301afac0..64d529133031 100644 --- a/include/linux/iocontext.h +++ b/include/linux/iocontext.h | |||
@@ -7,7 +7,6 @@ | |||
7 | struct cfq_queue; | 7 | struct cfq_queue; |
8 | struct cfq_io_context { | 8 | struct cfq_io_context { |
9 | void *key; | 9 | void *key; |
10 | unsigned long dead_key; | ||
11 | 10 | ||
12 | struct cfq_queue *cfqq[2]; | 11 | struct cfq_queue *cfqq[2]; |
13 | 12 | ||
diff --git a/include/linux/libata.h b/include/linux/libata.h index 3bad2701bfa6..b85f3ff34d7d 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -1023,6 +1023,7 @@ extern void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd, | |||
1023 | extern int ata_std_bios_param(struct scsi_device *sdev, | 1023 | extern int ata_std_bios_param(struct scsi_device *sdev, |
1024 | struct block_device *bdev, | 1024 | struct block_device *bdev, |
1025 | sector_t capacity, int geom[]); | 1025 | sector_t capacity, int geom[]); |
1026 | extern void ata_scsi_unlock_native_capacity(struct scsi_device *sdev); | ||
1026 | extern int ata_scsi_slave_config(struct scsi_device *sdev); | 1027 | extern int ata_scsi_slave_config(struct scsi_device *sdev); |
1027 | extern void ata_scsi_slave_destroy(struct scsi_device *sdev); | 1028 | extern void ata_scsi_slave_destroy(struct scsi_device *sdev); |
1028 | extern int ata_scsi_change_queue_depth(struct scsi_device *sdev, | 1029 | extern int ata_scsi_change_queue_depth(struct scsi_device *sdev, |
@@ -1174,6 +1175,7 @@ extern struct device_attribute *ata_common_sdev_attrs[]; | |||
1174 | .slave_configure = ata_scsi_slave_config, \ | 1175 | .slave_configure = ata_scsi_slave_config, \ |
1175 | .slave_destroy = ata_scsi_slave_destroy, \ | 1176 | .slave_destroy = ata_scsi_slave_destroy, \ |
1176 | .bios_param = ata_std_bios_param, \ | 1177 | .bios_param = ata_std_bios_param, \ |
1178 | .unlock_native_capacity = ata_scsi_unlock_native_capacity, \ | ||
1177 | .sdev_attrs = ata_common_sdev_attrs | 1179 | .sdev_attrs = ata_common_sdev_attrs |
1178 | 1180 | ||
1179 | #define ATA_NCQ_SHT(drv_name) \ | 1181 | #define ATA_NCQ_SHT(drv_name) \ |
diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 5126cceb6ae9..7135ebc8428c 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h | |||
@@ -18,8 +18,8 @@ | |||
18 | # define asmregparm | 18 | # define asmregparm |
19 | #endif | 19 | #endif |
20 | 20 | ||
21 | #define __page_aligned_data __section(.data.page_aligned) __aligned(PAGE_SIZE) | 21 | #define __page_aligned_data __section(.data..page_aligned) __aligned(PAGE_SIZE) |
22 | #define __page_aligned_bss __section(.bss.page_aligned) __aligned(PAGE_SIZE) | 22 | #define __page_aligned_bss __section(.bss..page_aligned) __aligned(PAGE_SIZE) |
23 | 23 | ||
24 | /* | 24 | /* |
25 | * For assembly routines. | 25 | * For assembly routines. |
@@ -27,8 +27,8 @@ | |||
27 | * Note when using these that you must specify the appropriate | 27 | * Note when using these that you must specify the appropriate |
28 | * alignment directives yourself | 28 | * alignment directives yourself |
29 | */ | 29 | */ |
30 | #define __PAGE_ALIGNED_DATA .section ".data.page_aligned", "aw" | 30 | #define __PAGE_ALIGNED_DATA .section ".data..page_aligned", "aw" |
31 | #define __PAGE_ALIGNED_BSS .section ".bss.page_aligned", "aw" | 31 | #define __PAGE_ALIGNED_BSS .section ".bss..page_aligned", "aw" |
32 | 32 | ||
33 | /* | 33 | /* |
34 | * This is used by architectures to keep arguments on the stack | 34 | * This is used by architectures to keep arguments on the stack |
diff --git a/include/linux/list.h b/include/linux/list.h index 8392884a2977..5d57a3a1fa1b 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
@@ -544,6 +544,21 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
544 | &pos->member != (head); \ | 544 | &pos->member != (head); \ |
545 | pos = n, n = list_entry(n->member.prev, typeof(*n), member)) | 545 | pos = n, n = list_entry(n->member.prev, typeof(*n), member)) |
546 | 546 | ||
547 | /** | ||
548 | * list_safe_reset_next - reset a stale list_for_each_entry_safe loop | ||
549 | * @pos: the loop cursor used in the list_for_each_entry_safe loop | ||
550 | * @n: temporary storage used in list_for_each_entry_safe | ||
551 | * @member: the name of the list_struct within the struct. | ||
552 | * | ||
553 | * list_safe_reset_next is not safe to use in general if the list may be | ||
554 | * modified concurrently (eg. the lock is dropped in the loop body). An | ||
555 | * exception to this is if the cursor element (pos) is pinned in the list, | ||
556 | * and list_safe_reset_next is called after re-taking the lock and before | ||
557 | * completing the current iteration of the loop body. | ||
558 | */ | ||
559 | #define list_safe_reset_next(pos, n, member) \ | ||
560 | n = list_entry(pos->member.next, typeof(*pos), member) | ||
561 | |||
547 | /* | 562 | /* |
548 | * Double linked lists with a single pointer list head. | 563 | * Double linked lists with a single pointer list head. |
549 | * Mostly useful for hash tables where the two pointer list head is | 564 | * Mostly useful for hash tables where the two pointer list head is |
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h index b631c46cffd9..f6c9b7dcb9fd 100644 --- a/include/linux/miscdevice.h +++ b/include/linux/miscdevice.h | |||
@@ -3,6 +3,12 @@ | |||
3 | #include <linux/module.h> | 3 | #include <linux/module.h> |
4 | #include <linux/major.h> | 4 | #include <linux/major.h> |
5 | 5 | ||
6 | /* | ||
7 | * These allocations are managed by device@lanana.org. If you use an | ||
8 | * entry that is not in assigned your entry may well be moved and | ||
9 | * reassigned, or set dynamic if a fixed value is not justified. | ||
10 | */ | ||
11 | |||
6 | #define PSMOUSE_MINOR 1 | 12 | #define PSMOUSE_MINOR 1 |
7 | #define MS_BUSMOUSE_MINOR 2 | 13 | #define MS_BUSMOUSE_MINOR 2 |
8 | #define ATIXL_BUSMOUSE_MINOR 3 | 14 | #define ATIXL_BUSMOUSE_MINOR 3 |
@@ -30,7 +36,6 @@ | |||
30 | #define HPET_MINOR 228 | 36 | #define HPET_MINOR 228 |
31 | #define FUSE_MINOR 229 | 37 | #define FUSE_MINOR 229 |
32 | #define KVM_MINOR 232 | 38 | #define KVM_MINOR 232 |
33 | #define VHOST_NET_MINOR 233 | ||
34 | #define BTRFS_MINOR 234 | 39 | #define BTRFS_MINOR 234 |
35 | #define AUTOFS_MINOR 235 | 40 | #define AUTOFS_MINOR 235 |
36 | #define MISC_DYNAMIC_MINOR 255 | 41 | #define MISC_DYNAMIC_MINOR 255 |
diff --git a/include/linux/mmc/sh_mmcif.h b/include/linux/mmc/sh_mmcif.h index aafe832f18aa..d4a2ebbdab4b 100644 --- a/include/linux/mmc/sh_mmcif.h +++ b/include/linux/mmc/sh_mmcif.h | |||
@@ -14,6 +14,9 @@ | |||
14 | #ifndef __SH_MMCIF_H__ | 14 | #ifndef __SH_MMCIF_H__ |
15 | #define __SH_MMCIF_H__ | 15 | #define __SH_MMCIF_H__ |
16 | 16 | ||
17 | #include <linux/platform_device.h> | ||
18 | #include <linux/io.h> | ||
19 | |||
17 | /* | 20 | /* |
18 | * MMCIF : CE_CLK_CTRL [19:16] | 21 | * MMCIF : CE_CLK_CTRL [19:16] |
19 | * 1000 : Peripheral clock / 512 | 22 | * 1000 : Peripheral clock / 512 |
@@ -36,4 +39,162 @@ struct sh_mmcif_plat_data { | |||
36 | u32 ocr; | 39 | u32 ocr; |
37 | }; | 40 | }; |
38 | 41 | ||
42 | #define MMCIF_CE_CMD_SET 0x00000000 | ||
43 | #define MMCIF_CE_ARG 0x00000008 | ||
44 | #define MMCIF_CE_ARG_CMD12 0x0000000C | ||
45 | #define MMCIF_CE_CMD_CTRL 0x00000010 | ||
46 | #define MMCIF_CE_BLOCK_SET 0x00000014 | ||
47 | #define MMCIF_CE_CLK_CTRL 0x00000018 | ||
48 | #define MMCIF_CE_BUF_ACC 0x0000001C | ||
49 | #define MMCIF_CE_RESP3 0x00000020 | ||
50 | #define MMCIF_CE_RESP2 0x00000024 | ||
51 | #define MMCIF_CE_RESP1 0x00000028 | ||
52 | #define MMCIF_CE_RESP0 0x0000002C | ||
53 | #define MMCIF_CE_RESP_CMD12 0x00000030 | ||
54 | #define MMCIF_CE_DATA 0x00000034 | ||
55 | #define MMCIF_CE_INT 0x00000040 | ||
56 | #define MMCIF_CE_INT_MASK 0x00000044 | ||
57 | #define MMCIF_CE_HOST_STS1 0x00000048 | ||
58 | #define MMCIF_CE_HOST_STS2 0x0000004C | ||
59 | #define MMCIF_CE_VERSION 0x0000007C | ||
60 | |||
61 | extern inline u32 sh_mmcif_readl(void __iomem *addr, int reg) | ||
62 | { | ||
63 | return readl(addr + reg); | ||
64 | } | ||
65 | |||
66 | extern inline void sh_mmcif_writel(void __iomem *addr, int reg, u32 val) | ||
67 | { | ||
68 | writel(val, addr + reg); | ||
69 | } | ||
70 | |||
71 | #define SH_MMCIF_BBS 512 /* boot block size */ | ||
72 | |||
73 | extern inline void sh_mmcif_boot_cmd_send(void __iomem *base, | ||
74 | unsigned long cmd, unsigned long arg) | ||
75 | { | ||
76 | sh_mmcif_writel(base, MMCIF_CE_INT, 0); | ||
77 | sh_mmcif_writel(base, MMCIF_CE_ARG, arg); | ||
78 | sh_mmcif_writel(base, MMCIF_CE_CMD_SET, cmd); | ||
79 | } | ||
80 | |||
81 | extern inline int sh_mmcif_boot_cmd_poll(void __iomem *base, unsigned long mask) | ||
82 | { | ||
83 | unsigned long tmp; | ||
84 | int cnt; | ||
85 | |||
86 | for (cnt = 0; cnt < 1000000; cnt++) { | ||
87 | tmp = sh_mmcif_readl(base, MMCIF_CE_INT); | ||
88 | if (tmp & mask) { | ||
89 | sh_mmcif_writel(base, MMCIF_CE_INT, tmp & ~mask); | ||
90 | return 0; | ||
91 | } | ||
92 | } | ||
93 | |||
94 | return -1; | ||
95 | } | ||
96 | |||
97 | extern inline int sh_mmcif_boot_cmd(void __iomem *base, | ||
98 | unsigned long cmd, unsigned long arg) | ||
99 | { | ||
100 | sh_mmcif_boot_cmd_send(base, cmd, arg); | ||
101 | return sh_mmcif_boot_cmd_poll(base, 0x00010000); | ||
102 | } | ||
103 | |||
104 | extern inline int sh_mmcif_boot_do_read_single(void __iomem *base, | ||
105 | unsigned int block_nr, | ||
106 | unsigned long *buf) | ||
107 | { | ||
108 | int k; | ||
109 | |||
110 | /* CMD13 - Status */ | ||
111 | sh_mmcif_boot_cmd(base, 0x0d400000, 0x00010000); | ||
112 | |||
113 | if (sh_mmcif_readl(base, MMCIF_CE_RESP0) != 0x0900) | ||
114 | return -1; | ||
115 | |||
116 | /* CMD17 - Read */ | ||
117 | sh_mmcif_boot_cmd(base, 0x11480000, block_nr * SH_MMCIF_BBS); | ||
118 | if (sh_mmcif_boot_cmd_poll(base, 0x00100000) < 0) | ||
119 | return -1; | ||
120 | |||
121 | for (k = 0; k < (SH_MMCIF_BBS / 4); k++) | ||
122 | buf[k] = sh_mmcif_readl(base, MMCIF_CE_DATA); | ||
123 | |||
124 | return 0; | ||
125 | } | ||
126 | |||
127 | extern inline int sh_mmcif_boot_do_read(void __iomem *base, | ||
128 | unsigned long first_block, | ||
129 | unsigned long nr_blocks, | ||
130 | void *buf) | ||
131 | { | ||
132 | unsigned long k; | ||
133 | int ret = 0; | ||
134 | |||
135 | /* CMD16 - Set the block size */ | ||
136 | sh_mmcif_boot_cmd(base, 0x10400000, SH_MMCIF_BBS); | ||
137 | |||
138 | for (k = 0; !ret && k < nr_blocks; k++) | ||
139 | ret = sh_mmcif_boot_do_read_single(base, first_block + k, | ||
140 | buf + (k * SH_MMCIF_BBS)); | ||
141 | |||
142 | return ret; | ||
143 | } | ||
144 | |||
145 | extern inline void sh_mmcif_boot_init(void __iomem *base) | ||
146 | { | ||
147 | unsigned long tmp; | ||
148 | |||
149 | /* reset */ | ||
150 | tmp = sh_mmcif_readl(base, MMCIF_CE_VERSION); | ||
151 | sh_mmcif_writel(base, MMCIF_CE_VERSION, tmp | 0x80000000); | ||
152 | sh_mmcif_writel(base, MMCIF_CE_VERSION, tmp & ~0x80000000); | ||
153 | |||
154 | /* byte swap */ | ||
155 | sh_mmcif_writel(base, MMCIF_CE_BUF_ACC, 0x00010000); | ||
156 | |||
157 | /* Set block size in MMCIF hardware */ | ||
158 | sh_mmcif_writel(base, MMCIF_CE_BLOCK_SET, SH_MMCIF_BBS); | ||
159 | |||
160 | /* Enable the clock, set it to Bus clock/256 (about 325Khz)*/ | ||
161 | sh_mmcif_writel(base, MMCIF_CE_CLK_CTRL, 0x01072fff); | ||
162 | |||
163 | /* CMD0 */ | ||
164 | sh_mmcif_boot_cmd(base, 0x00000040, 0); | ||
165 | |||
166 | /* CMD1 - Get OCR */ | ||
167 | do { | ||
168 | sh_mmcif_boot_cmd(base, 0x01405040, 0x40300000); /* CMD1 */ | ||
169 | } while ((sh_mmcif_readl(base, MMCIF_CE_RESP0) & 0x80000000) | ||
170 | != 0x80000000); | ||
171 | |||
172 | /* CMD2 - Get CID */ | ||
173 | sh_mmcif_boot_cmd(base, 0x02806040, 0); | ||
174 | |||
175 | /* CMD3 - Set card relative address */ | ||
176 | sh_mmcif_boot_cmd(base, 0x03400040, 0x00010000); | ||
177 | } | ||
178 | |||
179 | extern inline void sh_mmcif_boot_slurp(void __iomem *base, | ||
180 | unsigned char *buf, | ||
181 | unsigned long no_bytes) | ||
182 | { | ||
183 | unsigned long tmp; | ||
184 | |||
185 | /* In data transfer mode: Set clock to Bus clock/4 (about 20Mhz) */ | ||
186 | sh_mmcif_writel(base, MMCIF_CE_CLK_CTRL, 0x01012fff); | ||
187 | |||
188 | /* CMD9 - Get CSD */ | ||
189 | sh_mmcif_boot_cmd(base, 0x09806000, 0x00010000); | ||
190 | |||
191 | /* CMD7 - Select the card */ | ||
192 | sh_mmcif_boot_cmd(base, 0x07400000, 0x00010000); | ||
193 | |||
194 | tmp = no_bytes / SH_MMCIF_BBS; | ||
195 | tmp += (no_bytes % SH_MMCIF_BBS) ? 1 : 0; | ||
196 | |||
197 | sh_mmcif_boot_do_read(base, 512, tmp, buf); | ||
198 | } | ||
199 | |||
39 | #endif /* __SH_MMCIF_H__ */ | 200 | #endif /* __SH_MMCIF_H__ */ |
diff --git a/include/linux/module.h b/include/linux/module.h index 6914fcad4673..8a6b9fdc7ffa 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
@@ -181,6 +181,13 @@ void *__symbol_get(const char *symbol); | |||
181 | void *__symbol_get_gpl(const char *symbol); | 181 | void *__symbol_get_gpl(const char *symbol); |
182 | #define symbol_get(x) ((typeof(&x))(__symbol_get(MODULE_SYMBOL_PREFIX #x))) | 182 | #define symbol_get(x) ((typeof(&x))(__symbol_get(MODULE_SYMBOL_PREFIX #x))) |
183 | 183 | ||
184 | /* modules using other modules: kdb wants to see this. */ | ||
185 | struct module_use { | ||
186 | struct list_head source_list; | ||
187 | struct list_head target_list; | ||
188 | struct module *source, *target; | ||
189 | }; | ||
190 | |||
184 | #ifndef __GENKSYMS__ | 191 | #ifndef __GENKSYMS__ |
185 | #ifdef CONFIG_MODVERSIONS | 192 | #ifdef CONFIG_MODVERSIONS |
186 | /* Mark the CRC weak since genksyms apparently decides not to | 193 | /* Mark the CRC weak since genksyms apparently decides not to |
@@ -359,7 +366,9 @@ struct module | |||
359 | 366 | ||
360 | #ifdef CONFIG_MODULE_UNLOAD | 367 | #ifdef CONFIG_MODULE_UNLOAD |
361 | /* What modules depend on me? */ | 368 | /* What modules depend on me? */ |
362 | struct list_head modules_which_use_me; | 369 | struct list_head source_list; |
370 | /* What modules do I depend on? */ | ||
371 | struct list_head target_list; | ||
363 | 372 | ||
364 | /* Who is waiting for us to be unloaded */ | 373 | /* Who is waiting for us to be unloaded */ |
365 | struct task_struct *waiter; | 374 | struct task_struct *waiter; |
@@ -663,43 +672,10 @@ static inline int module_get_iter_tracepoints(struct tracepoint_iter *iter) | |||
663 | 672 | ||
664 | #endif /* CONFIG_MODULES */ | 673 | #endif /* CONFIG_MODULES */ |
665 | 674 | ||
666 | struct device_driver; | ||
667 | #ifdef CONFIG_SYSFS | 675 | #ifdef CONFIG_SYSFS |
668 | struct module; | ||
669 | |||
670 | extern struct kset *module_kset; | 676 | extern struct kset *module_kset; |
671 | extern struct kobj_type module_ktype; | 677 | extern struct kobj_type module_ktype; |
672 | extern int module_sysfs_initialized; | 678 | extern int module_sysfs_initialized; |
673 | |||
674 | int mod_sysfs_init(struct module *mod); | ||
675 | int mod_sysfs_setup(struct module *mod, | ||
676 | struct kernel_param *kparam, | ||
677 | unsigned int num_params); | ||
678 | int module_add_modinfo_attrs(struct module *mod); | ||
679 | void module_remove_modinfo_attrs(struct module *mod); | ||
680 | |||
681 | #else /* !CONFIG_SYSFS */ | ||
682 | |||
683 | static inline int mod_sysfs_init(struct module *mod) | ||
684 | { | ||
685 | return 0; | ||
686 | } | ||
687 | |||
688 | static inline int mod_sysfs_setup(struct module *mod, | ||
689 | struct kernel_param *kparam, | ||
690 | unsigned int num_params) | ||
691 | { | ||
692 | return 0; | ||
693 | } | ||
694 | |||
695 | static inline int module_add_modinfo_attrs(struct module *mod) | ||
696 | { | ||
697 | return 0; | ||
698 | } | ||
699 | |||
700 | static inline void module_remove_modinfo_attrs(struct module *mod) | ||
701 | { } | ||
702 | |||
703 | #endif /* CONFIG_SYSFS */ | 679 | #endif /* CONFIG_SYSFS */ |
704 | 680 | ||
705 | #define symbol_request(x) try_then_request_module(symbol_get(x), "symbol:" #x) | 681 | #define symbol_request(x) try_then_request_module(symbol_get(x), "symbol:" #x) |
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index c00cc0c4d0b7..24e5d01d27d0 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h | |||
@@ -397,7 +397,7 @@ struct xt_table_info { | |||
397 | * @stacksize jumps (number of user chains) can possibly be made. | 397 | * @stacksize jumps (number of user chains) can possibly be made. |
398 | */ | 398 | */ |
399 | unsigned int stacksize; | 399 | unsigned int stacksize; |
400 | unsigned int *stackptr; | 400 | unsigned int __percpu *stackptr; |
401 | void ***jumpstack; | 401 | void ***jumpstack; |
402 | /* ipt_entry tables: one per CPU */ | 402 | /* ipt_entry tables: one per CPU */ |
403 | /* Note : this field MUST be the last one, see XT_TABLE_INFO_SZ */ | 403 | /* Note : this field MUST be the last one, see XT_TABLE_INFO_SZ */ |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 6a471aba3b07..7cb00845f150 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -632,6 +632,7 @@ void pci_fixup_cardbus(struct pci_bus *); | |||
632 | 632 | ||
633 | /* Generic PCI functions used internally */ | 633 | /* Generic PCI functions used internally */ |
634 | 634 | ||
635 | void pcibios_scan_specific_bus(int busn); | ||
635 | extern struct pci_bus *pci_find_bus(int domain, int busnr); | 636 | extern struct pci_bus *pci_find_bus(int domain, int busnr); |
636 | void pci_bus_add_devices(const struct pci_bus *bus); | 637 | void pci_bus_add_devices(const struct pci_bus *bus); |
637 | struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, | 638 | struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index ae66851870be..3bedcc149c84 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -1261,6 +1261,7 @@ | |||
1261 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759 | 1261 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759 |
1262 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8 | 1262 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8 |
1263 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2 | 1263 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2 |
1264 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP89_SATA 0x0D85 | ||
1264 | 1265 | ||
1265 | #define PCI_VENDOR_ID_IMS 0x10e0 | 1266 | #define PCI_VENDOR_ID_IMS 0x10e0 |
1266 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 | 1267 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 |
@@ -2321,6 +2322,7 @@ | |||
2321 | #define PCI_VENDOR_ID_JMICRON 0x197B | 2322 | #define PCI_VENDOR_ID_JMICRON 0x197B |
2322 | #define PCI_DEVICE_ID_JMICRON_JMB360 0x2360 | 2323 | #define PCI_DEVICE_ID_JMICRON_JMB360 0x2360 |
2323 | #define PCI_DEVICE_ID_JMICRON_JMB361 0x2361 | 2324 | #define PCI_DEVICE_ID_JMICRON_JMB361 0x2361 |
2325 | #define PCI_DEVICE_ID_JMICRON_JMB362 0x2362 | ||
2324 | #define PCI_DEVICE_ID_JMICRON_JMB363 0x2363 | 2326 | #define PCI_DEVICE_ID_JMICRON_JMB363 0x2363 |
2325 | #define PCI_DEVICE_ID_JMICRON_JMB365 0x2365 | 2327 | #define PCI_DEVICE_ID_JMICRON_JMB365 0x2365 |
2326 | #define PCI_DEVICE_ID_JMICRON_JMB366 0x2366 | 2328 | #define PCI_DEVICE_ID_JMICRON_JMB366 0x2366 |
@@ -2532,11 +2534,63 @@ | |||
2532 | #define PCI_DEVICE_ID_INTEL_ICH9_6 0x2930 | 2534 | #define PCI_DEVICE_ID_INTEL_ICH9_6 0x2930 |
2533 | #define PCI_DEVICE_ID_INTEL_ICH9_7 0x2916 | 2535 | #define PCI_DEVICE_ID_INTEL_ICH9_7 0x2916 |
2534 | #define PCI_DEVICE_ID_INTEL_ICH9_8 0x2918 | 2536 | #define PCI_DEVICE_ID_INTEL_ICH9_8 0x2918 |
2537 | #define PCI_DEVICE_ID_INTEL_I7_MCR 0x2c18 | ||
2538 | #define PCI_DEVICE_ID_INTEL_I7_MC_TAD 0x2c19 | ||
2539 | #define PCI_DEVICE_ID_INTEL_I7_MC_RAS 0x2c1a | ||
2540 | #define PCI_DEVICE_ID_INTEL_I7_MC_TEST 0x2c1c | ||
2541 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_CTRL 0x2c20 | ||
2542 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_ADDR 0x2c21 | ||
2543 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_RANK 0x2c22 | ||
2544 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_TC 0x2c23 | ||
2545 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_CTRL 0x2c28 | ||
2546 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_ADDR 0x2c29 | ||
2547 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_RANK 0x2c2a | ||
2548 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_TC 0x2c2b | ||
2549 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_CTRL 0x2c30 | ||
2550 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_ADDR 0x2c31 | ||
2551 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_RANK 0x2c32 | ||
2552 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_TC 0x2c33 | ||
2553 | #define PCI_DEVICE_ID_INTEL_I7_NONCORE 0x2c41 | ||
2554 | #define PCI_DEVICE_ID_INTEL_I7_NONCORE_ALT 0x2c40 | ||
2555 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE 0x2c50 | ||
2556 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_ALT 0x2c51 | ||
2557 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_REV2 0x2c70 | ||
2558 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_SAD 0x2c81 | ||
2559 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_QPI_LINK0 0x2c90 | ||
2560 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_QPI_PHY0 0x2c91 | ||
2561 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MCR 0x2c98 | ||
2562 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TAD 0x2c99 | ||
2563 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TEST 0x2c9C | ||
2564 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_CTRL 0x2ca0 | ||
2565 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_ADDR 0x2ca1 | ||
2566 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_RANK 0x2ca2 | ||
2567 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_TC 0x2ca3 | ||
2568 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_CTRL 0x2ca8 | ||
2569 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_ADDR 0x2ca9 | ||
2570 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_RANK 0x2caa | ||
2571 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_TC 0x2cab | ||
2572 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MCR_REV2 0x2d98 | ||
2573 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TAD_REV2 0x2d99 | ||
2574 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_RAS_REV2 0x2d9a | ||
2575 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TEST_REV2 0x2d9c | ||
2576 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_CTRL_REV2 0x2da0 | ||
2577 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_ADDR_REV2 0x2da1 | ||
2578 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_RANK_REV2 0x2da2 | ||
2579 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_TC_REV2 0x2da3 | ||
2580 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_CTRL_REV2 0x2da8 | ||
2581 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_ADDR_REV2 0x2da9 | ||
2582 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_RANK_REV2 0x2daa | ||
2583 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_TC_REV2 0x2dab | ||
2584 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_CTRL_REV2 0x2db0 | ||
2585 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_ADDR_REV2 0x2db1 | ||
2586 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_RANK_REV2 0x2db2 | ||
2587 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_TC_REV2 0x2db3 | ||
2535 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 | 2588 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 |
2536 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG4 0x3429 | 2589 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG4 0x3429 |
2537 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a | 2590 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a |
2538 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b | 2591 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b |
2539 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c | 2592 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c |
2593 | #define PCI_DEVICE_ID_INTEL_X58_HUB_MGMT 0x342e | ||
2540 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430 | 2594 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430 |
2541 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431 | 2595 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431 |
2542 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432 | 2596 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432 |
diff --git a/include/linux/percpu-defs.h b/include/linux/percpu-defs.h index 68567c0b3a5d..ce2dc655cd1d 100644 --- a/include/linux/percpu-defs.h +++ b/include/linux/percpu-defs.h | |||
@@ -131,11 +131,11 @@ | |||
131 | * Declaration/definition used for per-CPU variables that must be page aligned. | 131 | * Declaration/definition used for per-CPU variables that must be page aligned. |
132 | */ | 132 | */ |
133 | #define DECLARE_PER_CPU_PAGE_ALIGNED(type, name) \ | 133 | #define DECLARE_PER_CPU_PAGE_ALIGNED(type, name) \ |
134 | DECLARE_PER_CPU_SECTION(type, name, ".page_aligned") \ | 134 | DECLARE_PER_CPU_SECTION(type, name, "..page_aligned") \ |
135 | __aligned(PAGE_SIZE) | 135 | __aligned(PAGE_SIZE) |
136 | 136 | ||
137 | #define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \ | 137 | #define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \ |
138 | DEFINE_PER_CPU_SECTION(type, name, ".page_aligned") \ | 138 | DEFINE_PER_CPU_SECTION(type, name, "..page_aligned") \ |
139 | __aligned(PAGE_SIZE) | 139 | __aligned(PAGE_SIZE) |
140 | 140 | ||
141 | /* | 141 | /* |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index fb6c91eac7e3..5d0266d94985 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -585,6 +585,7 @@ enum perf_event_active_state { | |||
585 | struct file; | 585 | struct file; |
586 | 586 | ||
587 | struct perf_mmap_data { | 587 | struct perf_mmap_data { |
588 | atomic_t refcount; | ||
588 | struct rcu_head rcu_head; | 589 | struct rcu_head rcu_head; |
589 | #ifdef CONFIG_PERF_USE_VMALLOC | 590 | #ifdef CONFIG_PERF_USE_VMALLOC |
590 | struct work_struct work; | 591 | struct work_struct work; |
@@ -592,7 +593,6 @@ struct perf_mmap_data { | |||
592 | #endif | 593 | #endif |
593 | int nr_pages; /* nr of data pages */ | 594 | int nr_pages; /* nr of data pages */ |
594 | int writable; /* are we writable */ | 595 | int writable; /* are we writable */ |
595 | int nr_locked; /* nr pages mlocked */ | ||
596 | 596 | ||
597 | atomic_t poll; /* POLL_ for wakeups */ | 597 | atomic_t poll; /* POLL_ for wakeups */ |
598 | 598 | ||
@@ -631,6 +631,9 @@ struct swevent_hlist { | |||
631 | struct rcu_head rcu_head; | 631 | struct rcu_head rcu_head; |
632 | }; | 632 | }; |
633 | 633 | ||
634 | #define PERF_ATTACH_CONTEXT 0x01 | ||
635 | #define PERF_ATTACH_GROUP 0x02 | ||
636 | |||
634 | /** | 637 | /** |
635 | * struct perf_event - performance event kernel representation: | 638 | * struct perf_event - performance event kernel representation: |
636 | */ | 639 | */ |
@@ -643,10 +646,10 @@ struct perf_event { | |||
643 | int nr_siblings; | 646 | int nr_siblings; |
644 | int group_flags; | 647 | int group_flags; |
645 | struct perf_event *group_leader; | 648 | struct perf_event *group_leader; |
646 | struct perf_event *output; | ||
647 | const struct pmu *pmu; | 649 | const struct pmu *pmu; |
648 | 650 | ||
649 | enum perf_event_active_state state; | 651 | enum perf_event_active_state state; |
652 | unsigned int attach_state; | ||
650 | atomic64_t count; | 653 | atomic64_t count; |
651 | 654 | ||
652 | /* | 655 | /* |
@@ -704,6 +707,8 @@ struct perf_event { | |||
704 | /* mmap bits */ | 707 | /* mmap bits */ |
705 | struct mutex mmap_mutex; | 708 | struct mutex mmap_mutex; |
706 | atomic_t mmap_count; | 709 | atomic_t mmap_count; |
710 | int mmap_locked; | ||
711 | struct user_struct *mmap_user; | ||
707 | struct perf_mmap_data *data; | 712 | struct perf_mmap_data *data; |
708 | 713 | ||
709 | /* poll related */ | 714 | /* poll related */ |
diff --git a/include/linux/personality.h b/include/linux/personality.h index 126120819a0d..eec3bae164d4 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h | |||
@@ -12,7 +12,7 @@ struct pt_regs; | |||
12 | 12 | ||
13 | extern int register_exec_domain(struct exec_domain *); | 13 | extern int register_exec_domain(struct exec_domain *); |
14 | extern int unregister_exec_domain(struct exec_domain *); | 14 | extern int unregister_exec_domain(struct exec_domain *); |
15 | extern int __set_personality(unsigned long); | 15 | extern int __set_personality(unsigned int); |
16 | 16 | ||
17 | #endif /* __KERNEL__ */ | 17 | #endif /* __KERNEL__ */ |
18 | 18 | ||
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index 16de3933c45e..445796945ac9 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
@@ -139,7 +139,9 @@ void pipe_lock(struct pipe_inode_info *); | |||
139 | void pipe_unlock(struct pipe_inode_info *); | 139 | void pipe_unlock(struct pipe_inode_info *); |
140 | void pipe_double_lock(struct pipe_inode_info *, struct pipe_inode_info *); | 140 | void pipe_double_lock(struct pipe_inode_info *, struct pipe_inode_info *); |
141 | 141 | ||
142 | extern unsigned int pipe_max_pages; | 142 | extern unsigned int pipe_max_size, pipe_min_size; |
143 | int pipe_proc_fn(struct ctl_table *, int, void __user *, size_t *, loff_t *); | ||
144 | |||
143 | 145 | ||
144 | /* Drop the inode semaphore and wait for a pipe event, atomically */ | 146 | /* Drop the inode semaphore and wait for a pipe event, atomically */ |
145 | void pipe_wait(struct pipe_inode_info *pipe); | 147 | void pipe_wait(struct pipe_inode_info *pipe); |
diff --git a/include/linux/sched.h b/include/linux/sched.h index f118809c953f..747fcaedddb7 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -139,7 +139,7 @@ extern int nr_processes(void); | |||
139 | extern unsigned long nr_running(void); | 139 | extern unsigned long nr_running(void); |
140 | extern unsigned long nr_uninterruptible(void); | 140 | extern unsigned long nr_uninterruptible(void); |
141 | extern unsigned long nr_iowait(void); | 141 | extern unsigned long nr_iowait(void); |
142 | extern unsigned long nr_iowait_cpu(void); | 142 | extern unsigned long nr_iowait_cpu(int cpu); |
143 | extern unsigned long this_cpu_load(void); | 143 | extern unsigned long this_cpu_load(void); |
144 | 144 | ||
145 | 145 | ||
diff --git a/include/linux/serial_sci.h b/include/linux/serial_sci.h index 837efa4e63c2..baed2122c5a6 100644 --- a/include/linux/serial_sci.h +++ b/include/linux/serial_sci.h | |||
@@ -2,9 +2,7 @@ | |||
2 | #define __LINUX_SERIAL_SCI_H | 2 | #define __LINUX_SERIAL_SCI_H |
3 | 3 | ||
4 | #include <linux/serial_core.h> | 4 | #include <linux/serial_core.h> |
5 | #ifdef CONFIG_SERIAL_SH_SCI_DMA | ||
6 | #include <linux/sh_dma.h> | 5 | #include <linux/sh_dma.h> |
7 | #endif | ||
8 | 6 | ||
9 | /* | 7 | /* |
10 | * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) | 8 | * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 7cdfb4d52847..f89e7fd59a4c 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -380,7 +380,10 @@ struct sk_buff { | |||
380 | kmemcheck_bitfield_begin(flags2); | 380 | kmemcheck_bitfield_begin(flags2); |
381 | __u16 queue_mapping:16; | 381 | __u16 queue_mapping:16; |
382 | #ifdef CONFIG_IPV6_NDISC_NODETYPE | 382 | #ifdef CONFIG_IPV6_NDISC_NODETYPE |
383 | __u8 ndisc_nodetype:2; | 383 | __u8 ndisc_nodetype:2, |
384 | deliver_no_wcard:1; | ||
385 | #else | ||
386 | __u8 deliver_no_wcard:1; | ||
384 | #endif | 387 | #endif |
385 | kmemcheck_bitfield_end(flags2); | 388 | kmemcheck_bitfield_end(flags2); |
386 | 389 | ||
@@ -501,7 +504,7 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size, | |||
501 | return __alloc_skb(size, priority, 1, -1); | 504 | return __alloc_skb(size, priority, 1, -1); |
502 | } | 505 | } |
503 | 506 | ||
504 | extern int skb_recycle_check(struct sk_buff *skb, int skb_size); | 507 | extern bool skb_recycle_check(struct sk_buff *skb, int skb_size); |
505 | 508 | ||
506 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); | 509 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); |
507 | extern struct sk_buff *skb_clone(struct sk_buff *skb, | 510 | extern struct sk_buff *skb_clone(struct sk_buff *skb, |
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 89fac6a3f78b..f8854655860e 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h | |||
@@ -60,7 +60,7 @@ | |||
60 | /* | 60 | /* |
61 | * Must define these before including other files, inline functions need them | 61 | * Must define these before including other files, inline functions need them |
62 | */ | 62 | */ |
63 | #define LOCK_SECTION_NAME ".text.lock."KBUILD_BASENAME | 63 | #define LOCK_SECTION_NAME ".text..lock."KBUILD_BASENAME |
64 | 64 | ||
65 | #define LOCK_SECTION_START(extra) \ | 65 | #define LOCK_SECTION_START(extra) \ |
66 | ".subsection 1\n\t" \ | 66 | ".subsection 1\n\t" \ |
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 5e781d824e6d..bc7d6bb4cd8e 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
@@ -256,22 +256,22 @@ static inline int hibernate(void) { return -ENOSYS; } | |||
256 | static inline bool system_entering_hibernation(void) { return false; } | 256 | static inline bool system_entering_hibernation(void) { return false; } |
257 | #endif /* CONFIG_HIBERNATION */ | 257 | #endif /* CONFIG_HIBERNATION */ |
258 | 258 | ||
259 | #ifdef CONFIG_HIBERNATION_NVS | 259 | #ifdef CONFIG_SUSPEND_NVS |
260 | extern int hibernate_nvs_register(unsigned long start, unsigned long size); | 260 | extern int suspend_nvs_register(unsigned long start, unsigned long size); |
261 | extern int hibernate_nvs_alloc(void); | 261 | extern int suspend_nvs_alloc(void); |
262 | extern void hibernate_nvs_free(void); | 262 | extern void suspend_nvs_free(void); |
263 | extern void hibernate_nvs_save(void); | 263 | extern void suspend_nvs_save(void); |
264 | extern void hibernate_nvs_restore(void); | 264 | extern void suspend_nvs_restore(void); |
265 | #else /* CONFIG_HIBERNATION_NVS */ | 265 | #else /* CONFIG_SUSPEND_NVS */ |
266 | static inline int hibernate_nvs_register(unsigned long a, unsigned long b) | 266 | static inline int suspend_nvs_register(unsigned long a, unsigned long b) |
267 | { | 267 | { |
268 | return 0; | 268 | return 0; |
269 | } | 269 | } |
270 | static inline int hibernate_nvs_alloc(void) { return 0; } | 270 | static inline int suspend_nvs_alloc(void) { return 0; } |
271 | static inline void hibernate_nvs_free(void) {} | 271 | static inline void suspend_nvs_free(void) {} |
272 | static inline void hibernate_nvs_save(void) {} | 272 | static inline void suspend_nvs_save(void) {} |
273 | static inline void hibernate_nvs_restore(void) {} | 273 | static inline void suspend_nvs_restore(void) {} |
274 | #endif /* CONFIG_HIBERNATION_NVS */ | 274 | #endif /* CONFIG_SUSPEND_NVS */ |
275 | 275 | ||
276 | #ifdef CONFIG_PM_SLEEP | 276 | #ifdef CONFIG_PM_SLEEP |
277 | void save_processor_state(void); | 277 | void save_processor_state(void); |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index a1a86a53bc73..7f614ce274a9 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -289,7 +289,7 @@ asmlinkage long sys_capget(cap_user_header_t header, | |||
289 | cap_user_data_t dataptr); | 289 | cap_user_data_t dataptr); |
290 | asmlinkage long sys_capset(cap_user_header_t header, | 290 | asmlinkage long sys_capset(cap_user_header_t header, |
291 | const cap_user_data_t data); | 291 | const cap_user_data_t data); |
292 | asmlinkage long sys_personality(u_long personality); | 292 | asmlinkage long sys_personality(unsigned int personality); |
293 | 293 | ||
294 | asmlinkage long sys_sigpending(old_sigset_t __user *set); | 294 | asmlinkage long sys_sigpending(old_sigset_t __user *set); |
295 | asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set, | 295 | asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set, |
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h index 9a59d1f98cd4..103d1b61aacb 100644 --- a/include/linux/tracepoint.h +++ b/include/linux/tracepoint.h | |||
@@ -14,6 +14,7 @@ | |||
14 | * See the file COPYING for more details. | 14 | * See the file COPYING for more details. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/errno.h> | ||
17 | #include <linux/types.h> | 18 | #include <linux/types.h> |
18 | #include <linux/rcupdate.h> | 19 | #include <linux/rcupdate.h> |
19 | 20 | ||
diff --git a/include/linux/usb/audio-v2.h b/include/linux/usb/audio-v2.h index 92f1d99f0f17..383b94ba8c20 100644 --- a/include/linux/usb/audio-v2.h +++ b/include/linux/usb/audio-v2.h | |||
@@ -18,6 +18,16 @@ | |||
18 | /* v1.0 and v2.0 of this standard have many things in common. For the rest | 18 | /* v1.0 and v2.0 of this standard have many things in common. For the rest |
19 | * of the definitions, please refer to audio.h */ | 19 | * of the definitions, please refer to audio.h */ |
20 | 20 | ||
21 | static inline bool uac2_control_is_readable(u32 bmControls, u8 control) | ||
22 | { | ||
23 | return (bmControls >> (control * 2)) & 0x1; | ||
24 | } | ||
25 | |||
26 | static inline bool uac2_control_is_writeable(u32 bmControls, u8 control) | ||
27 | { | ||
28 | return (bmControls >> (control * 2)) & 0x2; | ||
29 | } | ||
30 | |||
21 | /* 4.7.2.1 Clock Source Descriptor */ | 31 | /* 4.7.2.1 Clock Source Descriptor */ |
22 | 32 | ||
23 | struct uac_clock_source_descriptor { | 33 | struct uac_clock_source_descriptor { |
@@ -31,6 +41,13 @@ struct uac_clock_source_descriptor { | |||
31 | __u8 iClockSource; | 41 | __u8 iClockSource; |
32 | } __attribute__((packed)); | 42 | } __attribute__((packed)); |
33 | 43 | ||
44 | /* bmAttribute fields */ | ||
45 | #define UAC_CLOCK_SOURCE_TYPE_EXT 0x0 | ||
46 | #define UAC_CLOCK_SOURCE_TYPE_INT_FIXED 0x1 | ||
47 | #define UAC_CLOCK_SOURCE_TYPE_INT_VAR 0x2 | ||
48 | #define UAC_CLOCK_SOURCE_TYPE_INT_PROG 0x3 | ||
49 | #define UAC_CLOCK_SOURCE_SYNCED_TO_SOF (1 << 2) | ||
50 | |||
34 | /* 4.7.2.2 Clock Source Descriptor */ | 51 | /* 4.7.2.2 Clock Source Descriptor */ |
35 | 52 | ||
36 | struct uac_clock_selector_descriptor { | 53 | struct uac_clock_selector_descriptor { |
@@ -39,8 +56,20 @@ struct uac_clock_selector_descriptor { | |||
39 | __u8 bDescriptorSubtype; | 56 | __u8 bDescriptorSubtype; |
40 | __u8 bClockID; | 57 | __u8 bClockID; |
41 | __u8 bNrInPins; | 58 | __u8 bNrInPins; |
42 | __u8 bmControls; | ||
43 | __u8 baCSourceID[]; | 59 | __u8 baCSourceID[]; |
60 | /* bmControls, bAssocTerminal and iClockSource omitted */ | ||
61 | } __attribute__((packed)); | ||
62 | |||
63 | /* 4.7.2.3 Clock Multiplier Descriptor */ | ||
64 | |||
65 | struct uac_clock_multiplier_descriptor { | ||
66 | __u8 bLength; | ||
67 | __u8 bDescriptorType; | ||
68 | __u8 bDescriptorSubtype; | ||
69 | __u8 bClockID; | ||
70 | __u8 bCSourceID; | ||
71 | __u8 bmControls; | ||
72 | __u8 iClockMultiplier; | ||
44 | } __attribute__((packed)); | 73 | } __attribute__((packed)); |
45 | 74 | ||
46 | /* 4.7.2.4 Input terminal descriptor */ | 75 | /* 4.7.2.4 Input terminal descriptor */ |
diff --git a/include/linux/usb/audio.h b/include/linux/usb/audio.h index 5d646c388752..c51200c715e5 100644 --- a/include/linux/usb/audio.h +++ b/include/linux/usb/audio.h | |||
@@ -47,6 +47,15 @@ | |||
47 | #define UAC_FORMAT_TYPE 0x02 | 47 | #define UAC_FORMAT_TYPE 0x02 |
48 | #define UAC_FORMAT_SPECIFIC 0x03 | 48 | #define UAC_FORMAT_SPECIFIC 0x03 |
49 | 49 | ||
50 | /* A.7 Processing Unit Process Types */ | ||
51 | #define UAC_PROCESS_UNDEFINED 0x00 | ||
52 | #define UAC_PROCESS_UP_DOWNMIX 0x01 | ||
53 | #define UAC_PROCESS_DOLBY_PROLOGIC 0x02 | ||
54 | #define UAC_PROCESS_STEREO_EXTENDER 0x03 | ||
55 | #define UAC_PROCESS_REVERB 0x04 | ||
56 | #define UAC_PROCESS_CHORUS 0x05 | ||
57 | #define UAC_PROCESS_DYN_RANGE_COMP 0x06 | ||
58 | |||
50 | /* A.8 Audio Class-Specific Endpoint Descriptor Subtypes */ | 59 | /* A.8 Audio Class-Specific Endpoint Descriptor Subtypes */ |
51 | #define UAC_EP_GENERAL 0x01 | 60 | #define UAC_EP_GENERAL 0x01 |
52 | 61 | ||
@@ -73,6 +82,60 @@ | |||
73 | 82 | ||
74 | #define UAC_GET_STAT 0xff | 83 | #define UAC_GET_STAT 0xff |
75 | 84 | ||
85 | /* A.10 Control Selector Codes */ | ||
86 | |||
87 | /* A.10.1 Terminal Control Selectors */ | ||
88 | #define UAC_TERM_COPY_PROTECT 0x01 | ||
89 | |||
90 | /* A.10.2 Feature Unit Control Selectors */ | ||
91 | #define UAC_FU_MUTE 0x01 | ||
92 | #define UAC_FU_VOLUME 0x02 | ||
93 | #define UAC_FU_BASS 0x03 | ||
94 | #define UAC_FU_MID 0x04 | ||
95 | #define UAC_FU_TREBLE 0x05 | ||
96 | #define UAC_FU_GRAPHIC_EQUALIZER 0x06 | ||
97 | #define UAC_FU_AUTOMATIC_GAIN 0x07 | ||
98 | #define UAC_FU_DELAY 0x08 | ||
99 | #define UAC_FU_BASS_BOOST 0x09 | ||
100 | #define UAC_FU_LOUDNESS 0x0a | ||
101 | |||
102 | #define UAC_CONTROL_BIT(CS) (1 << ((CS) - 1)) | ||
103 | |||
104 | /* A.10.3.1 Up/Down-mix Processing Unit Controls Selectors */ | ||
105 | #define UAC_UD_ENABLE 0x01 | ||
106 | #define UAC_UD_MODE_SELECT 0x02 | ||
107 | |||
108 | /* A.10.3.2 Dolby Prologic (tm) Processing Unit Controls Selectors */ | ||
109 | #define UAC_DP_ENABLE 0x01 | ||
110 | #define UAC_DP_MODE_SELECT 0x02 | ||
111 | |||
112 | /* A.10.3.3 3D Stereo Extender Processing Unit Control Selectors */ | ||
113 | #define UAC_3D_ENABLE 0x01 | ||
114 | #define UAC_3D_SPACE 0x02 | ||
115 | |||
116 | /* A.10.3.4 Reverberation Processing Unit Control Selectors */ | ||
117 | #define UAC_REVERB_ENABLE 0x01 | ||
118 | #define UAC_REVERB_LEVEL 0x02 | ||
119 | #define UAC_REVERB_TIME 0x03 | ||
120 | #define UAC_REVERB_FEEDBACK 0x04 | ||
121 | |||
122 | /* A.10.3.5 Chorus Processing Unit Control Selectors */ | ||
123 | #define UAC_CHORUS_ENABLE 0x01 | ||
124 | #define UAC_CHORUS_LEVEL 0x02 | ||
125 | #define UAC_CHORUS_RATE 0x03 | ||
126 | #define UAC_CHORUS_DEPTH 0x04 | ||
127 | |||
128 | /* A.10.3.6 Dynamic Range Compressor Unit Control Selectors */ | ||
129 | #define UAC_DCR_ENABLE 0x01 | ||
130 | #define UAC_DCR_RATE 0x02 | ||
131 | #define UAC_DCR_MAXAMPL 0x03 | ||
132 | #define UAC_DCR_THRESHOLD 0x04 | ||
133 | #define UAC_DCR_ATTACK_TIME 0x05 | ||
134 | #define UAC_DCR_RELEASE_TIME 0x06 | ||
135 | |||
136 | /* A.10.4 Extension Unit Control Selectors */ | ||
137 | #define UAC_XU_ENABLE 0x01 | ||
138 | |||
76 | /* MIDI - A.1 MS Class-Specific Interface Descriptor Subtypes */ | 139 | /* MIDI - A.1 MS Class-Specific Interface Descriptor Subtypes */ |
77 | #define UAC_MS_HEADER 0x01 | 140 | #define UAC_MS_HEADER 0x01 |
78 | #define UAC_MIDI_IN_JACK 0x02 | 141 | #define UAC_MIDI_IN_JACK 0x02 |
@@ -244,7 +307,7 @@ struct uac_selector_unit_descriptor { | |||
244 | static inline __u8 uac_selector_unit_iSelector(struct uac_selector_unit_descriptor *desc) | 307 | static inline __u8 uac_selector_unit_iSelector(struct uac_selector_unit_descriptor *desc) |
245 | { | 308 | { |
246 | __u8 *raw = (__u8 *) desc; | 309 | __u8 *raw = (__u8 *) desc; |
247 | return raw[9 + desc->bLength - 1]; | 310 | return raw[desc->bLength - 1]; |
248 | } | 311 | } |
249 | 312 | ||
250 | /* 4.3.2.5 Feature Unit Descriptor */ | 313 | /* 4.3.2.5 Feature Unit Descriptor */ |
@@ -463,31 +526,6 @@ struct uac_iso_endpoint_descriptor { | |||
463 | #define UAC_EP_CS_ATTR_PITCH_CONTROL 0x02 | 526 | #define UAC_EP_CS_ATTR_PITCH_CONTROL 0x02 |
464 | #define UAC_EP_CS_ATTR_FILL_MAX 0x80 | 527 | #define UAC_EP_CS_ATTR_FILL_MAX 0x80 |
465 | 528 | ||
466 | /* A.10.2 Feature Unit Control Selectors */ | ||
467 | |||
468 | #define UAC_FU_CONTROL_UNDEFINED 0x00 | ||
469 | #define UAC_MUTE_CONTROL 0x01 | ||
470 | #define UAC_VOLUME_CONTROL 0x02 | ||
471 | #define UAC_BASS_CONTROL 0x03 | ||
472 | #define UAC_MID_CONTROL 0x04 | ||
473 | #define UAC_TREBLE_CONTROL 0x05 | ||
474 | #define UAC_GRAPHIC_EQUALIZER_CONTROL 0x06 | ||
475 | #define UAC_AUTOMATIC_GAIN_CONTROL 0x07 | ||
476 | #define UAC_DELAY_CONTROL 0x08 | ||
477 | #define UAC_BASS_BOOST_CONTROL 0x09 | ||
478 | #define UAC_LOUDNESS_CONTROL 0x0a | ||
479 | |||
480 | #define UAC_FU_MUTE (1 << (UAC_MUTE_CONTROL - 1)) | ||
481 | #define UAC_FU_VOLUME (1 << (UAC_VOLUME_CONTROL - 1)) | ||
482 | #define UAC_FU_BASS (1 << (UAC_BASS_CONTROL - 1)) | ||
483 | #define UAC_FU_MID (1 << (UAC_MID_CONTROL - 1)) | ||
484 | #define UAC_FU_TREBLE (1 << (UAC_TREBLE_CONTROL - 1)) | ||
485 | #define UAC_FU_GRAPHIC_EQ (1 << (UAC_GRAPHIC_EQUALIZER_CONTROL - 1)) | ||
486 | #define UAC_FU_AUTO_GAIN (1 << (UAC_AUTOMATIC_GAIN_CONTROL - 1)) | ||
487 | #define UAC_FU_DELAY (1 << (UAC_DELAY_CONTROL - 1)) | ||
488 | #define UAC_FU_BASS_BOOST (1 << (UAC_BASS_BOOST_CONTROL - 1)) | ||
489 | #define UAC_FU_LOUDNESS (1 << (UAC_LOUDNESS_CONTROL - 1)) | ||
490 | |||
491 | /* status word format (3.7.1.1) */ | 529 | /* status word format (3.7.1.1) */ |
492 | 530 | ||
493 | #define UAC1_STATUS_TYPE_ORIG_MASK 0x0f | 531 | #define UAC1_STATUS_TYPE_ORIG_MASK 0x0f |
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index 2dfaa293ae8c..c9a975976995 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h | |||
@@ -5,6 +5,27 @@ | |||
5 | * (C) Copyright 2005 Benjamin Herrenschmidt <benh@kernel.crashing.org> | 5 | * (C) Copyright 2005 Benjamin Herrenschmidt <benh@kernel.crashing.org> |
6 | * (C) Copyright 2007 Paulo R. Zanoni <przanoni@gmail.com> | 6 | * (C) Copyright 2007 Paulo R. Zanoni <przanoni@gmail.com> |
7 | * (C) Copyright 2007, 2009 Tiago Vignatti <vignatti@freedesktop.org> | 7 | * (C) Copyright 2007, 2009 Tiago Vignatti <vignatti@freedesktop.org> |
8 | * | ||
9 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
10 | * copy of this software and associated documentation files (the "Software"), | ||
11 | * to deal in the Software without restriction, including without limitation | ||
12 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
13 | * and/or sell copies of the Software, and to permit persons to whom the | ||
14 | * Software is furnished to do so, subject to the following conditions: | ||
15 | * | ||
16 | * The above copyright notice and this permission notice (including the next | ||
17 | * paragraph) shall be included in all copies or substantial portions of the | ||
18 | * Software. | ||
19 | * | ||
20 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
21 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
22 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
23 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
24 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
25 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
26 | * DEALINGS | ||
27 | * IN THE SOFTWARE. | ||
28 | * | ||
8 | */ | 29 | */ |
9 | 30 | ||
10 | #ifndef LINUX_VGA_H | 31 | #ifndef LINUX_VGA_H |
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index cc97d6caf2b3..d63ef8f9609f 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
@@ -56,24 +56,6 @@ struct writeback_control { | |||
56 | unsigned for_reclaim:1; /* Invoked from the page allocator */ | 56 | unsigned for_reclaim:1; /* Invoked from the page allocator */ |
57 | unsigned range_cyclic:1; /* range_start is cyclic */ | 57 | unsigned range_cyclic:1; /* range_start is cyclic */ |
58 | unsigned more_io:1; /* more io to be dispatched */ | 58 | unsigned more_io:1; /* more io to be dispatched */ |
59 | /* | ||
60 | * write_cache_pages() won't update wbc->nr_to_write and | ||
61 | * mapping->writeback_index if no_nrwrite_index_update | ||
62 | * is set. write_cache_pages() may write more than we | ||
63 | * requested and we want to make sure nr_to_write and | ||
64 | * writeback_index are updated in a consistent manner | ||
65 | * so we use a single control to update them | ||
66 | */ | ||
67 | unsigned no_nrwrite_index_update:1; | ||
68 | |||
69 | /* | ||
70 | * For WB_SYNC_ALL, the sb must always be pinned. For WB_SYNC_NONE, | ||
71 | * the writeback code will pin the sb for the caller. However, | ||
72 | * for eg umount, the caller does WB_SYNC_NONE but already has | ||
73 | * the sb pinned. If the below is set, caller already has the | ||
74 | * sb pinned. | ||
75 | */ | ||
76 | unsigned sb_pinned:1; | ||
77 | }; | 59 | }; |
78 | 60 | ||
79 | /* | 61 | /* |
@@ -82,7 +64,6 @@ struct writeback_control { | |||
82 | struct bdi_writeback; | 64 | struct bdi_writeback; |
83 | int inode_wait(void *); | 65 | int inode_wait(void *); |
84 | void writeback_inodes_sb(struct super_block *); | 66 | void writeback_inodes_sb(struct super_block *); |
85 | void writeback_inodes_sb_locked(struct super_block *); | ||
86 | int writeback_inodes_sb_if_idle(struct super_block *); | 67 | int writeback_inodes_sb_if_idle(struct super_block *); |
87 | void sync_inodes_sb(struct super_block *); | 68 | void sync_inodes_sb(struct super_block *); |
88 | void writeback_inodes_wbc(struct writeback_control *wbc); | 69 | void writeback_inodes_wbc(struct writeback_control *wbc); |
diff --git a/include/media/rc-map.h b/include/media/rc-map.h index 5833966a7100..c78e99a435b6 100644 --- a/include/media/rc-map.h +++ b/include/media/rc-map.h | |||
@@ -55,7 +55,8 @@ void rc_map_init(void); | |||
55 | #define RC_MAP_AVERMEDIA_A16D "rc-avermedia-a16d" | 55 | #define RC_MAP_AVERMEDIA_A16D "rc-avermedia-a16d" |
56 | #define RC_MAP_AVERMEDIA_CARDBUS "rc-avermedia-cardbus" | 56 | #define RC_MAP_AVERMEDIA_CARDBUS "rc-avermedia-cardbus" |
57 | #define RC_MAP_AVERMEDIA_DVBT "rc-avermedia-dvbt" | 57 | #define RC_MAP_AVERMEDIA_DVBT "rc-avermedia-dvbt" |
58 | #define RC_MAP_AVERMEDIA_M135A_RM_JX "rc-avermedia-m135a-rm-jx" | 58 | #define RC_MAP_AVERMEDIA_M135A "rc-avermedia-m135a" |
59 | #define RC_MAP_AVERMEDIA_M733A_RM_K6 "rc-avermedia-m733a-rm-k6" | ||
59 | #define RC_MAP_AVERMEDIA "rc-avermedia" | 60 | #define RC_MAP_AVERMEDIA "rc-avermedia" |
60 | #define RC_MAP_AVERTV_303 "rc-avertv-303" | 61 | #define RC_MAP_AVERTV_303 "rc-avertv-303" |
61 | #define RC_MAP_BEHOLD_COLUMBUS "rc-behold-columbus" | 62 | #define RC_MAP_BEHOLD_COLUMBUS "rc-behold-columbus" |
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h index c9a5bbfa6ab5..b8289c2f609b 100644 --- a/include/media/soc_camera.h +++ b/include/media/soc_camera.h | |||
@@ -66,7 +66,7 @@ struct soc_camera_host_ops { | |||
66 | * .get_formats() fail, .put_formats() will not be called at all, the | 66 | * .get_formats() fail, .put_formats() will not be called at all, the |
67 | * failing .get_formats() must then clean up internally. | 67 | * failing .get_formats() must then clean up internally. |
68 | */ | 68 | */ |
69 | int (*get_formats)(struct soc_camera_device *, int, | 69 | int (*get_formats)(struct soc_camera_device *, unsigned int, |
70 | struct soc_camera_format_xlate *); | 70 | struct soc_camera_format_xlate *); |
71 | void (*put_formats)(struct soc_camera_device *); | 71 | void (*put_formats)(struct soc_camera_device *); |
72 | int (*cropcap)(struct soc_camera_device *, struct v4l2_cropcap *); | 72 | int (*cropcap)(struct soc_camera_device *, struct v4l2_cropcap *); |
diff --git a/include/media/v4l2-mediabus.h b/include/media/v4l2-mediabus.h index 0dbe02ada259..865cda7cd611 100644 --- a/include/media/v4l2-mediabus.h +++ b/include/media/v4l2-mediabus.h | |||
@@ -40,6 +40,7 @@ enum v4l2_mbus_pixelcode { | |||
40 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE, | 40 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE, |
41 | V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE, | 41 | V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE, |
42 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE, | 42 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE, |
43 | V4L2_MBUS_FMT_SGRBG8_1X8, | ||
43 | }; | 44 | }; |
44 | 45 | ||
45 | /** | 46 | /** |
@@ -58,4 +59,24 @@ struct v4l2_mbus_framefmt { | |||
58 | enum v4l2_colorspace colorspace; | 59 | enum v4l2_colorspace colorspace; |
59 | }; | 60 | }; |
60 | 61 | ||
62 | static inline void v4l2_fill_pix_format(struct v4l2_pix_format *pix_fmt, | ||
63 | const struct v4l2_mbus_framefmt *mbus_fmt) | ||
64 | { | ||
65 | pix_fmt->width = mbus_fmt->width; | ||
66 | pix_fmt->height = mbus_fmt->height; | ||
67 | pix_fmt->field = mbus_fmt->field; | ||
68 | pix_fmt->colorspace = mbus_fmt->colorspace; | ||
69 | } | ||
70 | |||
71 | static inline void v4l2_fill_mbus_format(struct v4l2_mbus_framefmt *mbus_fmt, | ||
72 | const struct v4l2_pix_format *pix_fmt, | ||
73 | enum v4l2_mbus_pixelcode code) | ||
74 | { | ||
75 | mbus_fmt->width = pix_fmt->width; | ||
76 | mbus_fmt->height = pix_fmt->height; | ||
77 | mbus_fmt->field = pix_fmt->field; | ||
78 | mbus_fmt->colorspace = pix_fmt->colorspace; | ||
79 | mbus_fmt->code = code; | ||
80 | } | ||
81 | |||
61 | #endif | 82 | #endif |
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index a88889355ae0..02c6f4d11ed3 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h | |||
@@ -246,7 +246,7 @@ struct v4l2_subdev_video_ops { | |||
246 | struct v4l2_dv_timings *timings); | 246 | struct v4l2_dv_timings *timings); |
247 | int (*g_dv_timings)(struct v4l2_subdev *sd, | 247 | int (*g_dv_timings)(struct v4l2_subdev *sd, |
248 | struct v4l2_dv_timings *timings); | 248 | struct v4l2_dv_timings *timings); |
249 | int (*enum_mbus_fmt)(struct v4l2_subdev *sd, int index, | 249 | int (*enum_mbus_fmt)(struct v4l2_subdev *sd, unsigned int index, |
250 | enum v4l2_mbus_pixelcode *code); | 250 | enum v4l2_mbus_pixelcode *code); |
251 | int (*g_mbus_fmt)(struct v4l2_subdev *sd, | 251 | int (*g_mbus_fmt)(struct v4l2_subdev *sd, |
252 | struct v4l2_mbus_framefmt *fmt); | 252 | struct v4l2_mbus_framefmt *fmt); |
diff --git a/include/net/dst.h b/include/net/dst.h index 612069beda73..81d1413a8701 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
@@ -250,11 +250,11 @@ static inline void skb_tunnel_rx(struct sk_buff *skb, struct net_device *dev) | |||
250 | * Linux networking. Thus, destinations are stackable. | 250 | * Linux networking. Thus, destinations are stackable. |
251 | */ | 251 | */ |
252 | 252 | ||
253 | static inline struct dst_entry *dst_pop(struct dst_entry *dst) | 253 | static inline struct dst_entry *skb_dst_pop(struct sk_buff *skb) |
254 | { | 254 | { |
255 | struct dst_entry *child = dst_clone(dst->child); | 255 | struct dst_entry *child = skb_dst(skb)->child; |
256 | 256 | ||
257 | dst_release(dst); | 257 | skb_dst_drop(skb); |
258 | return child; | 258 | return child; |
259 | } | 259 | } |
260 | 260 | ||
diff --git a/include/net/snmp.h b/include/net/snmp.h index 92456f1035f5..899003d18db9 100644 --- a/include/net/snmp.h +++ b/include/net/snmp.h | |||
@@ -134,7 +134,7 @@ struct linux_xfrm_mib { | |||
134 | #define SNMP_ADD_STATS_USER(mib, field, addend) \ | 134 | #define SNMP_ADD_STATS_USER(mib, field, addend) \ |
135 | this_cpu_add(mib[1]->mibs[field], addend) | 135 | this_cpu_add(mib[1]->mibs[field], addend) |
136 | #define SNMP_ADD_STATS(mib, field, addend) \ | 136 | #define SNMP_ADD_STATS(mib, field, addend) \ |
137 | this_cpu_add(mib[0]->mibs[field], addend) | 137 | this_cpu_add(mib[!in_softirq()]->mibs[field], addend) |
138 | /* | 138 | /* |
139 | * Use "__typeof__(*mib[0]) *ptr" instead of "__typeof__(mib[0]) ptr" | 139 | * Use "__typeof__(*mib[0]) *ptr" instead of "__typeof__(mib[0]) ptr" |
140 | * to make @ptr a non-percpu pointer. | 140 | * to make @ptr a non-percpu pointer. |
diff --git a/include/net/sock.h b/include/net/sock.h index ca241ea14875..731150d52799 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -1524,20 +1524,7 @@ extern void sk_stop_timer(struct sock *sk, struct timer_list* timer); | |||
1524 | 1524 | ||
1525 | extern int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb); | 1525 | extern int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb); |
1526 | 1526 | ||
1527 | static inline int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb) | 1527 | extern int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb); |
1528 | { | ||
1529 | /* Cast skb->rcvbuf to unsigned... It's pointless, but reduces | ||
1530 | number of warnings when compiling with -W --ANK | ||
1531 | */ | ||
1532 | if (atomic_read(&sk->sk_rmem_alloc) + skb->truesize >= | ||
1533 | (unsigned)sk->sk_rcvbuf) | ||
1534 | return -ENOMEM; | ||
1535 | skb_set_owner_r(skb, sk); | ||
1536 | skb_queue_tail(&sk->sk_error_queue, skb); | ||
1537 | if (!sock_flag(sk, SOCK_DEAD)) | ||
1538 | sk->sk_data_ready(sk, skb->len); | ||
1539 | return 0; | ||
1540 | } | ||
1541 | 1528 | ||
1542 | /* | 1529 | /* |
1543 | * Recover an error report and clear atomically | 1530 | * Recover an error report and clear atomically |
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index c50a97fc76f9..b7bdecb7b76e 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
@@ -327,6 +327,14 @@ struct scsi_host_template { | |||
327 | sector_t, int []); | 327 | sector_t, int []); |
328 | 328 | ||
329 | /* | 329 | /* |
330 | * This function is called when one or more partitions on the | ||
331 | * device reach beyond the end of the device. | ||
332 | * | ||
333 | * Status: OPTIONAL | ||
334 | */ | ||
335 | void (*unlock_native_capacity)(struct scsi_device *); | ||
336 | |||
337 | /* | ||
330 | * Can be used to export driver statistics and other infos to the | 338 | * Can be used to export driver statistics and other infos to the |
331 | * world outside the kernel ie. userspace and it also provides an | 339 | * world outside the kernel ie. userspace and it also provides an |
332 | * interface to feed the driver with information. | 340 | * interface to feed the driver with information. |
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h index f5b1ba90e952..f3865c7b4166 100644 --- a/include/trace/events/ext4.h +++ b/include/trace/events/ext4.h | |||
@@ -306,7 +306,6 @@ TRACE_EVENT(ext4_da_writepages_result, | |||
306 | __field( int, pages_written ) | 306 | __field( int, pages_written ) |
307 | __field( long, pages_skipped ) | 307 | __field( long, pages_skipped ) |
308 | __field( char, more_io ) | 308 | __field( char, more_io ) |
309 | __field( char, no_nrwrite_index_update ) | ||
310 | __field( pgoff_t, writeback_index ) | 309 | __field( pgoff_t, writeback_index ) |
311 | ), | 310 | ), |
312 | 311 | ||
@@ -317,16 +316,14 @@ TRACE_EVENT(ext4_da_writepages_result, | |||
317 | __entry->pages_written = pages_written; | 316 | __entry->pages_written = pages_written; |
318 | __entry->pages_skipped = wbc->pages_skipped; | 317 | __entry->pages_skipped = wbc->pages_skipped; |
319 | __entry->more_io = wbc->more_io; | 318 | __entry->more_io = wbc->more_io; |
320 | __entry->no_nrwrite_index_update = wbc->no_nrwrite_index_update; | ||
321 | __entry->writeback_index = inode->i_mapping->writeback_index; | 319 | __entry->writeback_index = inode->i_mapping->writeback_index; |
322 | ), | 320 | ), |
323 | 321 | ||
324 | TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld more_io %d no_nrwrite_index_update %d writeback_index %lu", | 322 | TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld more_io %d writeback_index %lu", |
325 | jbd2_dev_to_name(__entry->dev), | 323 | jbd2_dev_to_name(__entry->dev), |
326 | (unsigned long) __entry->ino, __entry->ret, | 324 | (unsigned long) __entry->ino, __entry->ret, |
327 | __entry->pages_written, __entry->pages_skipped, | 325 | __entry->pages_written, __entry->pages_skipped, |
328 | __entry->more_io, | 326 | __entry->more_io, |
329 | __entry->no_nrwrite_index_update, | ||
330 | (unsigned long) __entry->writeback_index) | 327 | (unsigned long) __entry->writeback_index) |
331 | ); | 328 | ); |
332 | 329 | ||
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 4f733ecea46e..b9e1dd6c6208 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
@@ -115,6 +115,23 @@ DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new, | |||
115 | TP_PROTO(struct task_struct *p, int success), | 115 | TP_PROTO(struct task_struct *p, int success), |
116 | TP_ARGS(p, success)); | 116 | TP_ARGS(p, success)); |
117 | 117 | ||
118 | #ifdef CREATE_TRACE_POINTS | ||
119 | static inline long __trace_sched_switch_state(struct task_struct *p) | ||
120 | { | ||
121 | long state = p->state; | ||
122 | |||
123 | #ifdef CONFIG_PREEMPT | ||
124 | /* | ||
125 | * For all intents and purposes a preempted task is a running task. | ||
126 | */ | ||
127 | if (task_thread_info(p)->preempt_count & PREEMPT_ACTIVE) | ||
128 | state = TASK_RUNNING; | ||
129 | #endif | ||
130 | |||
131 | return state; | ||
132 | } | ||
133 | #endif | ||
134 | |||
118 | /* | 135 | /* |
119 | * Tracepoint for task switches, performed by the scheduler: | 136 | * Tracepoint for task switches, performed by the scheduler: |
120 | */ | 137 | */ |
@@ -139,7 +156,7 @@ TRACE_EVENT(sched_switch, | |||
139 | memcpy(__entry->next_comm, next->comm, TASK_COMM_LEN); | 156 | memcpy(__entry->next_comm, next->comm, TASK_COMM_LEN); |
140 | __entry->prev_pid = prev->pid; | 157 | __entry->prev_pid = prev->pid; |
141 | __entry->prev_prio = prev->prio; | 158 | __entry->prev_prio = prev->prio; |
142 | __entry->prev_state = prev->state; | 159 | __entry->prev_state = __trace_sched_switch_state(prev); |
143 | memcpy(__entry->prev_comm, prev->comm, TASK_COMM_LEN); | 160 | memcpy(__entry->prev_comm, prev->comm, TASK_COMM_LEN); |
144 | __entry->next_pid = next->pid; | 161 | __entry->next_pid = next->pid; |
145 | __entry->next_prio = next->prio; | 162 | __entry->next_prio = next->prio; |
diff --git a/include/trace/events/signal.h b/include/trace/events/signal.h index 814566c99d29..17df43464df0 100644 --- a/include/trace/events/signal.h +++ b/include/trace/events/signal.h | |||
@@ -10,7 +10,8 @@ | |||
10 | 10 | ||
11 | #define TP_STORE_SIGINFO(__entry, info) \ | 11 | #define TP_STORE_SIGINFO(__entry, info) \ |
12 | do { \ | 12 | do { \ |
13 | if (info == SEND_SIG_NOINFO) { \ | 13 | if (info == SEND_SIG_NOINFO || \ |
14 | info == SEND_SIG_FORCED) { \ | ||
14 | __entry->errno = 0; \ | 15 | __entry->errno = 0; \ |
15 | __entry->code = SI_USER; \ | 16 | __entry->code = SI_USER; \ |
16 | } else if (info == SEND_SIG_PRIV) { \ | 17 | } else if (info == SEND_SIG_PRIV) { \ |
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 3d685d1f2a03..5a64905d7278 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
@@ -725,7 +725,7 @@ perf_trace_##call(void *__data, proto) \ | |||
725 | \ | 725 | \ |
726 | { assign; } \ | 726 | { assign; } \ |
727 | \ | 727 | \ |
728 | head = per_cpu_ptr(event_call->perf_events, smp_processor_id());\ | 728 | head = this_cpu_ptr(event_call->perf_events); \ |
729 | perf_trace_buf_submit(entry, __entry_size, rctx, __addr, \ | 729 | perf_trace_buf_submit(entry, __entry_size, rctx, __addr, \ |
730 | __count, &__regs, head); \ | 730 | __count, &__regs, head); \ |
731 | } | 731 | } |