File tree Expand file tree Collapse file tree 4 files changed +14
-9
lines changed Expand file tree Collapse file tree 4 files changed +14
-9
lines changed Original file line number Diff line number Diff line change @@ -357,7 +357,8 @@ ENDPROC(__pabt_svc)
357
357
.endm
358
358
359
359
.macro kuser_cmpxchg_check
360
- #if !defined(CONFIG_CPU_32v6K) && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG)
360
+ #if !defined(CONFIG_CPU_32v6K) && defined(CONFIG_KUSER_HELPERS) && \
361
+ !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG)
361
362
#ifndef CONFIG_MMU
362
363
#warning "NPTL on non MMU needs fixing"
363
364
#else
Original file line number Diff line number Diff line change @@ -84,17 +84,13 @@ int show_fiq_list(struct seq_file *p, int prec)
84
84
85
85
void set_fiq_handler (void * start , unsigned int length )
86
86
{
87
- #if defined(CONFIG_CPU_USE_DOMAINS )
88
- void * base = (void * )0xffff0000 ;
89
- #else
90
87
void * base = vectors_page ;
91
- #endif
92
88
unsigned offset = FIQ_OFFSET ;
93
89
94
90
memcpy (base + offset , start , length );
91
+ if (!cache_is_vipt_nonaliasing ())
92
+ flush_icache_range (base + offset , offset + length );
95
93
flush_icache_range (0xffff0000 + offset , 0xffff0000 + offset + length );
96
- if (!vectors_high ())
97
- flush_icache_range (offset , offset + length );
98
94
}
99
95
100
96
int claim_fiq (struct fiq_handler * f )
Original file line number Diff line number Diff line change @@ -53,7 +53,12 @@ armpmu_map_cache_event(const unsigned (*cache_map)
53
53
static int
54
54
armpmu_map_hw_event (const unsigned (* event_map )[PERF_COUNT_HW_MAX ], u64 config )
55
55
{
56
- int mapping = (* event_map )[config ];
56
+ int mapping ;
57
+
58
+ if (config >= PERF_COUNT_HW_MAX )
59
+ return - EINVAL ;
60
+
61
+ mapping = (* event_map )[config ];
57
62
return mapping == HW_OP_UNSUPPORTED ? - ENOENT : mapping ;
58
63
}
59
64
@@ -253,6 +258,9 @@ validate_event(struct pmu_hw_events *hw_events,
253
258
struct arm_pmu * armpmu = to_arm_pmu (event -> pmu );
254
259
struct pmu * leader_pmu = event -> group_leader -> pmu ;
255
260
261
+ if (is_software_event (event ))
262
+ return 1 ;
263
+
256
264
if (event -> pmu != leader_pmu || event -> state < PERF_EVENT_STATE_OFF )
257
265
return 1 ;
258
266
Original file line number Diff line number Diff line change @@ -462,7 +462,7 @@ int in_gate_area_no_mm(unsigned long addr)
462
462
{
463
463
return in_gate_area (NULL , addr );
464
464
}
465
- #define is_gate_vma (vma ) ((vma) = &gate_vma)
465
+ #define is_gate_vma (vma ) ((vma) == &gate_vma)
466
466
#else
467
467
#define is_gate_vma (vma ) 0
468
468
#endif
You can’t perform that action at this time.
0 commit comments