git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
[pandora-kernel.git]
/
arch
/
powerpc
/
oprofile
/
op_model_rs64.c
diff --git
a/arch/powerpc/oprofile/op_model_rs64.c
b/arch/powerpc/oprofile/op_model_rs64.c
index
5c909ee
..
c731acb
100644
(file)
--- a/
arch/powerpc/oprofile/op_model_rs64.c
+++ b/
arch/powerpc/oprofile/op_model_rs64.c
@@
-102,7
+102,7
@@
static void rs64_reg_setup(struct op_counter_config *ctr,
/* XXX setup user and kernel profiling */
}
/* XXX setup user and kernel profiling */
}
-static void rs64_cpu_setup(
void *unused
)
+static void rs64_cpu_setup(
struct op_counter_config *ctr
)
{
unsigned int mmcr0;
{
unsigned int mmcr0;
@@
-137,10
+137,10
@@
static void rs64_start(struct op_counter_config *ctr)
for (i = 0; i < num_counters; ++i) {
if (ctr[i].enabled) {
for (i = 0; i < num_counters; ++i) {
if (ctr[i].enabled) {
- ctr_write(i, reset_value[i]);
+ c
lassic_c
tr_write(i, reset_value[i]);
ctrl_write(i, ctr[i].event);
} else {
ctrl_write(i, ctr[i].event);
} else {
- ctr_write(i, 0);
+ c
lassic_c
tr_write(i, 0);
}
}
}
}
@@
-175,21
+175,24
@@
static void rs64_handle_interrupt(struct pt_regs *regs,
struct op_counter_config *ctr)
{
unsigned int mmcr0;
struct op_counter_config *ctr)
{
unsigned int mmcr0;
+ int is_kernel;
int val;
int i;
unsigned long pc = mfspr(SPRN_SIAR);
int val;
int i;
unsigned long pc = mfspr(SPRN_SIAR);
+ is_kernel = is_kernel_addr(pc);
+
/* set the PMM bit (see comment below) */
mtmsrd(mfmsr() | MSR_PMM);
for (i = 0; i < num_counters; ++i) {
/* set the PMM bit (see comment below) */
mtmsrd(mfmsr() | MSR_PMM);
for (i = 0; i < num_counters; ++i) {
- val = ctr_read(i);
+ val = c
lassic_c
tr_read(i);
if (val < 0) {
if (ctr[i].enabled) {
if (val < 0) {
if (ctr[i].enabled) {
- oprofile_add_
pc(pc, is_kernel_addr(pc), i
);
- ctr_write(i, reset_value[i]);
+ oprofile_add_
ext_sample(pc, regs, i, is_kernel
);
+ c
lassic_c
tr_write(i, reset_value[i]);
} else {
} else {
- ctr_write(i, 0);
+ c
lassic_c
tr_write(i, 0);
}
}
}
}
}
}