git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge to kernel-2.6.20-1.2949.fc6.vs2.2.0.1
[linux-2.6.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
..
19c5ee0
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;
@@
-175,10
+175,13
@@
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);
/* set the PMM bit (see comment below) */
mtmsrd(mfmsr() | MSR_PMM);
@@
-186,7
+189,7
@@
static void rs64_handle_interrupt(struct pt_regs *regs,
val = ctr_read(i);
if (val < 0) {
if (ctr[i].enabled) {
val = ctr_read(i);
if (val < 0) {
if (ctr[i].enabled) {
- oprofile_add_
pc(pc, is_kernel_addr(pc), i
);
+ oprofile_add_
ext_sample(pc, regs, i, is_kernel
);
ctr_write(i, reset_value[i]);
} else {
ctr_write(i, 0);
ctr_write(i, reset_value[i]);
} else {
ctr_write(i, 0);