diff mbox

[GIT,PULL,2/4] KVM: s390: obey kptr_restrict in traces

Message ID 1450207426-17222-3-git-send-email-borntraeger@de.ibm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Christian Borntraeger Dec. 15, 2015, 7:23 p.m. UTC
The s390dbf and trace events provide a debugfs interface.
If kptr_restrict is active, we should not expose kernel
pointers. We can fence the debugfs output by using %pK
instead of %p.

Cc: Kees Cook <keescook@chromium.org>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
 arch/s390/kvm/kvm-s390.c   | 9 +++++----
 arch/s390/kvm/trace-s390.h | 6 +++---
 2 files changed, 8 insertions(+), 7 deletions(-)

Comments

Kees Cook Dec. 15, 2015, 7:33 p.m. UTC | #1
On Tue, Dec 15, 2015 at 11:23 AM, Christian Borntraeger
<borntraeger@de.ibm.com> wrote:
> The s390dbf and trace events provide a debugfs interface.
> If kptr_restrict is active, we should not expose kernel
> pointers. We can fence the debugfs output by using %pK
> instead of %p.
>
> Cc: Kees Cook <keescook@chromium.org>
> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>

Nice catch, thanks!

Acked-by: Kees Cook <keescook@chromium.org>

-Kees

> ---
>  arch/s390/kvm/kvm-s390.c   | 9 +++++----
>  arch/s390/kvm/trace-s390.h | 6 +++---
>  2 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index 6dec01d..c14845c 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -1185,7 +1185,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
>         kvm->arch.epoch = 0;
>
>         spin_lock_init(&kvm->arch.start_stop_lock);
> -       KVM_EVENT(3, "vm 0x%p created by pid %u", kvm, current->pid);
> +       KVM_EVENT(3, "vm 0x%pK created by pid %u", kvm, current->pid);
>
>         return 0;
>  out_err:
> @@ -1245,7 +1245,7 @@ void kvm_arch_destroy_vm(struct kvm *kvm)
>                 gmap_free(kvm->arch.gmap);
>         kvm_s390_destroy_adapters(kvm);
>         kvm_s390_clear_float_irqs(kvm);
> -       KVM_EVENT(3, "vm 0x%p destroyed", kvm);
> +       KVM_EVENT(3, "vm 0x%pK destroyed", kvm);
>  }
>
>  /* Section: vcpu related */
> @@ -1349,7 +1349,8 @@ static int sca_switch_to_extended(struct kvm *kvm)
>
>         free_page((unsigned long)old_sca);
>
> -       VM_EVENT(kvm, 2, "Switched to ESCA (%p -> %p)", old_sca, kvm->arch.sca);
> +       VM_EVENT(kvm, 2, "Switched to ESCA (0x%pK -> 0x%pK)",
> +                old_sca, kvm->arch.sca);
>         return 0;
>  }
>
> @@ -1624,7 +1625,7 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
>         rc = kvm_vcpu_init(vcpu, kvm, id);
>         if (rc)
>                 goto out_free_sie_block;
> -       VM_EVENT(kvm, 3, "create cpu %d at %p, sie block at %p", id, vcpu,
> +       VM_EVENT(kvm, 3, "create cpu %d at 0x%pK, sie block at 0x%pK", id, vcpu,
>                  vcpu->arch.sie_block);
>         trace_kvm_s390_create_vcpu(id, vcpu, vcpu->arch.sie_block);
>
> diff --git a/arch/s390/kvm/trace-s390.h b/arch/s390/kvm/trace-s390.h
> index cc1d6c6..396485b 100644
> --- a/arch/s390/kvm/trace-s390.h
> +++ b/arch/s390/kvm/trace-s390.h
> @@ -55,8 +55,8 @@ TRACE_EVENT(kvm_s390_create_vcpu,
>                     __entry->sie_block = sie_block;
>                     ),
>
> -           TP_printk("create cpu %d at %p, sie block at %p", __entry->id,
> -                     __entry->vcpu, __entry->sie_block)
> +           TP_printk("create cpu %d at 0x%pK, sie block at 0x%pK",
> +                     __entry->id, __entry->vcpu, __entry->sie_block)
>         );
>
>  TRACE_EVENT(kvm_s390_destroy_vcpu,
> @@ -254,7 +254,7 @@ TRACE_EVENT(kvm_s390_enable_css,
>                     __entry->kvm = kvm;
>                     ),
>
> -           TP_printk("enabling channel I/O support (kvm @ %p)\n",
> +           TP_printk("enabling channel I/O support (kvm @ %pK)\n",
>                       __entry->kvm)
>         );
>
> --
> 2.3.0
>
diff mbox

Patch

diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 6dec01d..c14845c 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -1185,7 +1185,7 @@  int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
 	kvm->arch.epoch = 0;
 
 	spin_lock_init(&kvm->arch.start_stop_lock);
-	KVM_EVENT(3, "vm 0x%p created by pid %u", kvm, current->pid);
+	KVM_EVENT(3, "vm 0x%pK created by pid %u", kvm, current->pid);
 
 	return 0;
 out_err:
@@ -1245,7 +1245,7 @@  void kvm_arch_destroy_vm(struct kvm *kvm)
 		gmap_free(kvm->arch.gmap);
 	kvm_s390_destroy_adapters(kvm);
 	kvm_s390_clear_float_irqs(kvm);
-	KVM_EVENT(3, "vm 0x%p destroyed", kvm);
+	KVM_EVENT(3, "vm 0x%pK destroyed", kvm);
 }
 
 /* Section: vcpu related */
@@ -1349,7 +1349,8 @@  static int sca_switch_to_extended(struct kvm *kvm)
 
 	free_page((unsigned long)old_sca);
 
-	VM_EVENT(kvm, 2, "Switched to ESCA (%p -> %p)", old_sca, kvm->arch.sca);
+	VM_EVENT(kvm, 2, "Switched to ESCA (0x%pK -> 0x%pK)",
+		 old_sca, kvm->arch.sca);
 	return 0;
 }
 
@@ -1624,7 +1625,7 @@  struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
 	rc = kvm_vcpu_init(vcpu, kvm, id);
 	if (rc)
 		goto out_free_sie_block;
-	VM_EVENT(kvm, 3, "create cpu %d at %p, sie block at %p", id, vcpu,
+	VM_EVENT(kvm, 3, "create cpu %d at 0x%pK, sie block at 0x%pK", id, vcpu,
 		 vcpu->arch.sie_block);
 	trace_kvm_s390_create_vcpu(id, vcpu, vcpu->arch.sie_block);
 
diff --git a/arch/s390/kvm/trace-s390.h b/arch/s390/kvm/trace-s390.h
index cc1d6c6..396485b 100644
--- a/arch/s390/kvm/trace-s390.h
+++ b/arch/s390/kvm/trace-s390.h
@@ -55,8 +55,8 @@  TRACE_EVENT(kvm_s390_create_vcpu,
 		    __entry->sie_block = sie_block;
 		    ),
 
-	    TP_printk("create cpu %d at %p, sie block at %p", __entry->id,
-		      __entry->vcpu, __entry->sie_block)
+	    TP_printk("create cpu %d at 0x%pK, sie block at 0x%pK",
+		      __entry->id, __entry->vcpu, __entry->sie_block)
 	);
 
 TRACE_EVENT(kvm_s390_destroy_vcpu,
@@ -254,7 +254,7 @@  TRACE_EVENT(kvm_s390_enable_css,
 		    __entry->kvm = kvm;
 		    ),
 
-	    TP_printk("enabling channel I/O support (kvm @ %p)\n",
+	    TP_printk("enabling channel I/O support (kvm @ %pK)\n",
 		      __entry->kvm)
 	);