Skip to content

Commit

Permalink
Linux 3.0.23
Browse files Browse the repository at this point in the history
  • Loading branch information
intervigilium authored and Snuzzo committed Oct 3, 2012
1 parent 7f71f7c commit 9355a78
Show file tree
Hide file tree
Showing 85 changed files with 1,061 additions and 612 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 22
SUBLEVEL = 23
EXTRAVERSION =
NAME = Sneaky Weasel

Expand Down
5 changes: 5 additions & 0 deletions arch/arm/include/asm/assembler.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,11 @@
disable_irq
.endm

.macro save_and_disable_irqs_notrace, oldcpsr
mrs \oldcpsr, cpsr
disable_irq_notrace
.endm

/*
* Restore interrupt state previously stored in a register. We don't
* guarantee that this will preserve the flags.
Expand Down
6 changes: 6 additions & 0 deletions arch/arm/mm/cache-v7.S
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,15 @@ loop1:
and r1, r1, #7 @ mask of the bits for current cache only
cmp r1, #2 @ see what cache we have at this level
blt skip @ skip if no cache, or just i-cache
#ifdef CONFIG_PREEMPT
save_and_disable_irqs_notrace r9 @ make cssr&csidr read atomic
#endif
mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr
isb @ isb to sych the new cssr&csidr
mrc p15, 1, r1, c0, c0, 0 @ read the new csidr
#ifdef CONFIG_PREEMPT
restore_irqs_notrace r9
#endif
and r2, r1, #7 @ extract the length of the cache lines
add r2, r2, #4 @ add 4 (line length offset)
ldr r4, =0x3ff
Expand Down
8 changes: 7 additions & 1 deletion arch/powerpc/kernel/perf_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -865,6 +865,7 @@ static void power_pmu_start(struct perf_event *event, int ef_flags)
{
unsigned long flags;
s64 left;
unsigned long val;

if (!event->hw.idx || !event->hw.sample_period)
return;
Expand All @@ -880,7 +881,12 @@ static void power_pmu_start(struct perf_event *event, int ef_flags)

event->hw.state = 0;
left = local64_read(&event->hw.period_left);
write_pmc(event->hw.idx, left);

val = 0;
if (left < 0x80000000L)
val = 0x80000000L - left;

write_pmc(event->hw.idx, val);

perf_event_update_userpage(event);
perf_pmu_enable(event->pmu);
Expand Down
Loading

0 comments on commit 9355a78

Please sign in to comment.