diff options
author | Robert Richter <robert.richter@amd.com> | 2009-07-10 12:15:21 -0400 |
---|---|---|
committer | Robert Richter <robert.richter@amd.com> | 2009-07-20 10:43:21 -0400 |
commit | 11be1a7b54283021777f409aa983ce125945e67c (patch) | |
tree | 29200e0dc0d614999fb75fbf429519ddded778d3 /arch/x86/oprofile | |
parent | 61d149d5248ad7428801cdede0f5fcc2b90cd61c (diff) |
x86/oprofile: Add counter reservation check for virtual counters
This patch adds a check for the availability of a counter. A virtual
counter is used only if its physical counter is not reserved.
Signed-off-by: Robert Richter <robert.richter@amd.com>
Diffstat (limited to 'arch/x86/oprofile')
-rw-r--r-- | arch/x86/oprofile/nmi_int.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index 5856e61cb098..cb88b1a0bd5f 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c | |||
@@ -435,15 +435,13 @@ static int nmi_create_files(struct super_block *sb, struct dentry *root) | |||
435 | struct dentry *dir; | 435 | struct dentry *dir; |
436 | char buf[4]; | 436 | char buf[4]; |
437 | 437 | ||
438 | #ifndef CONFIG_OPROFILE_EVENT_MULTIPLEX | ||
439 | /* quick little hack to _not_ expose a counter if it is not | 438 | /* quick little hack to _not_ expose a counter if it is not |
440 | * available for use. This should protect userspace app. | 439 | * available for use. This should protect userspace app. |
441 | * NOTE: assumes 1:1 mapping here (that counters are organized | 440 | * NOTE: assumes 1:1 mapping here (that counters are organized |
442 | * sequentially in their struct assignment). | 441 | * sequentially in their struct assignment). |
443 | */ | 442 | */ |
444 | if (unlikely(!avail_to_resrv_perfctr_nmi_bit(i))) | 443 | if (!avail_to_resrv_perfctr_nmi_bit(op_x86_virt_to_phys(i))) |
445 | continue; | 444 | continue; |
446 | #endif /* CONFIG_OPROFILE_EVENT_MULTIPLEX */ | ||
447 | 445 | ||
448 | snprintf(buf, sizeof(buf), "%d", i); | 446 | snprintf(buf, sizeof(buf), "%d", i); |
449 | dir = oprofilefs_mkdir(sb, root, buf); | 447 | dir = oprofilefs_mkdir(sb, root, buf); |