Message ID | 1448650215-15218-22-git-send-email-marc.zyngier@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Nov 27, 2015 at 06:50:15PM +0000, Marc Zyngier wrote: > As we've now switched to the new world switch implementation, > remove the weak attributes, as nobody is supposed to override > it anymore. Why not remove the aliases and change the callers? -Christoffer > > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> > --- > arch/arm64/kvm/hyp/debug-sr.c | 5 ++--- > arch/arm64/kvm/hyp/hyp-entry.S | 3 --- > arch/arm64/kvm/hyp/switch.c | 5 ++--- > arch/arm64/kvm/hyp/tlb.c | 16 +++++++--------- > arch/arm64/kvm/hyp/vgic-v3-sr.c | 5 ++--- > 5 files changed, 13 insertions(+), 21 deletions(-) > > diff --git a/arch/arm64/kvm/hyp/debug-sr.c b/arch/arm64/kvm/hyp/debug-sr.c > index 774a3f69..747546b 100644 > --- a/arch/arm64/kvm/hyp/debug-sr.c > +++ b/arch/arm64/kvm/hyp/debug-sr.c > @@ -125,10 +125,9 @@ void __hyp_text __debug_cond_restore_host_state(struct kvm_vcpu *vcpu) > } > } > > -u32 __hyp_text __debug_read_mdcr_el2(void) > +static u32 __hyp_text __debug_read_mdcr_el2(void) > { > return read_sysreg(mdcr_el2); > } > > -__alias(__debug_read_mdcr_el2) > -u32 __weak __kvm_get_mdcr_el2(void); > +__alias(__debug_read_mdcr_el2) u32 __kvm_get_mdcr_el2(void); > diff --git a/arch/arm64/kvm/hyp/hyp-entry.S b/arch/arm64/kvm/hyp/hyp-entry.S > index ace919b..bbc0be1 100644 > --- a/arch/arm64/kvm/hyp/hyp-entry.S > +++ b/arch/arm64/kvm/hyp/hyp-entry.S > @@ -184,9 +184,7 @@ ENDPROC(\label) > > .align 11 > > - .weak __kvm_hyp_vector > ENTRY(__kvm_hyp_vector) > -ENTRY(__hyp_vector) > ventry el2t_sync_invalid // Synchronous EL2t > ventry el2t_irq_invalid // IRQ EL2t > ventry el2t_fiq_invalid // FIQ EL2t > @@ -206,5 +204,4 @@ ENTRY(__hyp_vector) > ventry el1_irq // IRQ 32-bit EL1 > ventry el1_fiq_invalid // FIQ 32-bit EL1 > ventry el1_error_invalid // Error 32-bit EL1 > -ENDPROC(__hyp_vector) > ENDPROC(__kvm_hyp_vector) > diff --git a/arch/arm64/kvm/hyp/switch.c b/arch/arm64/kvm/hyp/switch.c > index c8ba370..1154d66 100644 > --- a/arch/arm64/kvm/hyp/switch.c > +++ b/arch/arm64/kvm/hyp/switch.c > @@ -84,7 +84,7 @@ static void __hyp_text __vgic_restore_state(struct kvm_vcpu *vcpu) > __vgic_call_restore_state()(vcpu); > } > > -int __hyp_text __guest_run(struct kvm_vcpu *vcpu) > +static int __hyp_text __guest_run(struct kvm_vcpu *vcpu) > { > struct kvm_cpu_context *host_ctxt; > struct kvm_cpu_context *guest_ctxt; > @@ -141,8 +141,7 @@ int __hyp_text __guest_run(struct kvm_vcpu *vcpu) > return exit_code; > } > > -__alias(__guest_run) > -int __weak __kvm_vcpu_run(struct kvm_vcpu *vcpu); > +__alias(__guest_run) int __kvm_vcpu_run(struct kvm_vcpu *vcpu); > > static const char __hyp_panic_string[] = "HYP panic:\nPS:%08llx PC:%016llx ESR:%08llx\nFAR:%016llx HPFAR:%016llx PAR:%016llx\nVCPU:%p\n"; > > diff --git a/arch/arm64/kvm/hyp/tlb.c b/arch/arm64/kvm/hyp/tlb.c > index 2c279a8..250e06c 100644 > --- a/arch/arm64/kvm/hyp/tlb.c > +++ b/arch/arm64/kvm/hyp/tlb.c > @@ -17,7 +17,7 @@ > > #include "hyp.h" > > -void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) > +static void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) > { > dsb(ishst); > > @@ -47,10 +47,10 @@ void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) > write_sysreg(0, vttbr_el2); > } > > -__alias(__tlb_flush_vmid_ipa) > -void __weak __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa); > +__alias(__tlb_flush_vmid_ipa) void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, > + phys_addr_t ipa); > > -void __hyp_text __tlb_flush_vmid(struct kvm *kvm) > +static void __hyp_text __tlb_flush_vmid(struct kvm *kvm) > { > dsb(ishst); > > @@ -66,10 +66,9 @@ void __hyp_text __tlb_flush_vmid(struct kvm *kvm) > write_sysreg(0, vttbr_el2); > } > > -__alias(__tlb_flush_vmid) > -void __weak __kvm_tlb_flush_vmid(struct kvm *kvm); > +__alias(__tlb_flush_vmid) void __kvm_tlb_flush_vmid(struct kvm *kvm); > > -void __hyp_text __tlb_flush_vm_context(void) > +static void __hyp_text __tlb_flush_vm_context(void) > { > dsb(ishst); > asm volatile("tlbi alle1is \n" > @@ -77,5 +76,4 @@ void __hyp_text __tlb_flush_vm_context(void) > dsb(ish); > } > > -__alias(__tlb_flush_vm_context) > -void __weak __kvm_flush_vm_context(void); > +__alias(__tlb_flush_vm_context) void __kvm_flush_vm_context(void); > diff --git a/arch/arm64/kvm/hyp/vgic-v3-sr.c b/arch/arm64/kvm/hyp/vgic-v3-sr.c > index 1b0eedb..82a4f4b 100644 > --- a/arch/arm64/kvm/hyp/vgic-v3-sr.c > +++ b/arch/arm64/kvm/hyp/vgic-v3-sr.c > @@ -216,10 +216,9 @@ void __hyp_text __vgic_v3_restore_state(struct kvm_vcpu *vcpu) > } > } > > -u64 __hyp_text __vgic_v3_read_ich_vtr_el2(void) > +static u64 __hyp_text __vgic_v3_read_ich_vtr_el2(void) > { > return read_gicreg(ICH_VTR_EL2); > } > > -__alias(__vgic_v3_read_ich_vtr_el2) > -u64 __weak __vgic_v3_get_ich_vtr_el2(void); > +__alias(__vgic_v3_read_ich_vtr_el2) u64 __vgic_v3_get_ich_vtr_el2(void); > -- > 2.1.4 > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 02/12/15 11:47, Christoffer Dall wrote: > On Fri, Nov 27, 2015 at 06:50:15PM +0000, Marc Zyngier wrote: >> As we've now switched to the new world switch implementation, >> remove the weak attributes, as nobody is supposed to override >> it anymore. > > Why not remove the aliases and change the callers? This is likely to be a bigger patch, and it would affect the 32bit as well. So far, I'm choosing to keep things the same. Another solution would be to completely drop the aliases, and just rename the new function to have the old names. I don't mind either way. M.
On Wed, Dec 02, 2015 at 03:21:49PM +0000, Marc Zyngier wrote: > On 02/12/15 11:47, Christoffer Dall wrote: > > On Fri, Nov 27, 2015 at 06:50:15PM +0000, Marc Zyngier wrote: > >> As we've now switched to the new world switch implementation, > >> remove the weak attributes, as nobody is supposed to override > >> it anymore. > > > > Why not remove the aliases and change the callers? > > This is likely to be a bigger patch, and it would affect the 32bit as > well. So far, I'm choosing to keep things the same. Another solution > would be to completely drop the aliases, and just rename the new > function to have the old names. > > I don't mind either way. > I didn't think of the 32-bit side. I think eventually we should get rid of the aliases and just have the funcitons named as they are called, but there's no rush. We can wait until we've the done the 32-bit side if you prefer. -Christoffer -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 02/12/15 16:21, Christoffer Dall wrote: > On Wed, Dec 02, 2015 at 03:21:49PM +0000, Marc Zyngier wrote: >> On 02/12/15 11:47, Christoffer Dall wrote: >>> On Fri, Nov 27, 2015 at 06:50:15PM +0000, Marc Zyngier wrote: >>>> As we've now switched to the new world switch implementation, >>>> remove the weak attributes, as nobody is supposed to override >>>> it anymore. >>> >>> Why not remove the aliases and change the callers? >> >> This is likely to be a bigger patch, and it would affect the 32bit as >> well. So far, I'm choosing to keep things the same. Another solution >> would be to completely drop the aliases, and just rename the new >> function to have the old names. >> >> I don't mind either way. >> > I didn't think of the 32-bit side. I think eventually we should get rid > of the aliases and just have the funcitons named as they are called, but > there's no rush. We can wait until we've the done the 32-bit side if > you prefer. Probably safest. We're already changing a lot of things. Hopefully for 4.6 I'll have the 32bit side sorted. M.
diff --git a/arch/arm64/kvm/hyp/debug-sr.c b/arch/arm64/kvm/hyp/debug-sr.c index 774a3f69..747546b 100644 --- a/arch/arm64/kvm/hyp/debug-sr.c +++ b/arch/arm64/kvm/hyp/debug-sr.c @@ -125,10 +125,9 @@ void __hyp_text __debug_cond_restore_host_state(struct kvm_vcpu *vcpu) } } -u32 __hyp_text __debug_read_mdcr_el2(void) +static u32 __hyp_text __debug_read_mdcr_el2(void) { return read_sysreg(mdcr_el2); } -__alias(__debug_read_mdcr_el2) -u32 __weak __kvm_get_mdcr_el2(void); +__alias(__debug_read_mdcr_el2) u32 __kvm_get_mdcr_el2(void); diff --git a/arch/arm64/kvm/hyp/hyp-entry.S b/arch/arm64/kvm/hyp/hyp-entry.S index ace919b..bbc0be1 100644 --- a/arch/arm64/kvm/hyp/hyp-entry.S +++ b/arch/arm64/kvm/hyp/hyp-entry.S @@ -184,9 +184,7 @@ ENDPROC(\label) .align 11 - .weak __kvm_hyp_vector ENTRY(__kvm_hyp_vector) -ENTRY(__hyp_vector) ventry el2t_sync_invalid // Synchronous EL2t ventry el2t_irq_invalid // IRQ EL2t ventry el2t_fiq_invalid // FIQ EL2t @@ -206,5 +204,4 @@ ENTRY(__hyp_vector) ventry el1_irq // IRQ 32-bit EL1 ventry el1_fiq_invalid // FIQ 32-bit EL1 ventry el1_error_invalid // Error 32-bit EL1 -ENDPROC(__hyp_vector) ENDPROC(__kvm_hyp_vector) diff --git a/arch/arm64/kvm/hyp/switch.c b/arch/arm64/kvm/hyp/switch.c index c8ba370..1154d66 100644 --- a/arch/arm64/kvm/hyp/switch.c +++ b/arch/arm64/kvm/hyp/switch.c @@ -84,7 +84,7 @@ static void __hyp_text __vgic_restore_state(struct kvm_vcpu *vcpu) __vgic_call_restore_state()(vcpu); } -int __hyp_text __guest_run(struct kvm_vcpu *vcpu) +static int __hyp_text __guest_run(struct kvm_vcpu *vcpu) { struct kvm_cpu_context *host_ctxt; struct kvm_cpu_context *guest_ctxt; @@ -141,8 +141,7 @@ int __hyp_text __guest_run(struct kvm_vcpu *vcpu) return exit_code; } -__alias(__guest_run) -int __weak __kvm_vcpu_run(struct kvm_vcpu *vcpu); +__alias(__guest_run) int __kvm_vcpu_run(struct kvm_vcpu *vcpu); static const char __hyp_panic_string[] = "HYP panic:\nPS:%08llx PC:%016llx ESR:%08llx\nFAR:%016llx HPFAR:%016llx PAR:%016llx\nVCPU:%p\n"; diff --git a/arch/arm64/kvm/hyp/tlb.c b/arch/arm64/kvm/hyp/tlb.c index 2c279a8..250e06c 100644 --- a/arch/arm64/kvm/hyp/tlb.c +++ b/arch/arm64/kvm/hyp/tlb.c @@ -17,7 +17,7 @@ #include "hyp.h" -void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) +static void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) { dsb(ishst); @@ -47,10 +47,10 @@ void __hyp_text __tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) write_sysreg(0, vttbr_el2); } -__alias(__tlb_flush_vmid_ipa) -void __weak __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa); +__alias(__tlb_flush_vmid_ipa) void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, + phys_addr_t ipa); -void __hyp_text __tlb_flush_vmid(struct kvm *kvm) +static void __hyp_text __tlb_flush_vmid(struct kvm *kvm) { dsb(ishst); @@ -66,10 +66,9 @@ void __hyp_text __tlb_flush_vmid(struct kvm *kvm) write_sysreg(0, vttbr_el2); } -__alias(__tlb_flush_vmid) -void __weak __kvm_tlb_flush_vmid(struct kvm *kvm); +__alias(__tlb_flush_vmid) void __kvm_tlb_flush_vmid(struct kvm *kvm); -void __hyp_text __tlb_flush_vm_context(void) +static void __hyp_text __tlb_flush_vm_context(void) { dsb(ishst); asm volatile("tlbi alle1is \n" @@ -77,5 +76,4 @@ void __hyp_text __tlb_flush_vm_context(void) dsb(ish); } -__alias(__tlb_flush_vm_context) -void __weak __kvm_flush_vm_context(void); +__alias(__tlb_flush_vm_context) void __kvm_flush_vm_context(void); diff --git a/arch/arm64/kvm/hyp/vgic-v3-sr.c b/arch/arm64/kvm/hyp/vgic-v3-sr.c index 1b0eedb..82a4f4b 100644 --- a/arch/arm64/kvm/hyp/vgic-v3-sr.c +++ b/arch/arm64/kvm/hyp/vgic-v3-sr.c @@ -216,10 +216,9 @@ void __hyp_text __vgic_v3_restore_state(struct kvm_vcpu *vcpu) } } -u64 __hyp_text __vgic_v3_read_ich_vtr_el2(void) +static u64 __hyp_text __vgic_v3_read_ich_vtr_el2(void) { return read_gicreg(ICH_VTR_EL2); } -__alias(__vgic_v3_read_ich_vtr_el2) -u64 __weak __vgic_v3_get_ich_vtr_el2(void); +__alias(__vgic_v3_read_ich_vtr_el2) u64 __vgic_v3_get_ich_vtr_el2(void);
As we've now switched to the new world switch implementation, remove the weak attributes, as nobody is supposed to override it anymore. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> --- arch/arm64/kvm/hyp/debug-sr.c | 5 ++--- arch/arm64/kvm/hyp/hyp-entry.S | 3 --- arch/arm64/kvm/hyp/switch.c | 5 ++--- arch/arm64/kvm/hyp/tlb.c | 16 +++++++--------- arch/arm64/kvm/hyp/vgic-v3-sr.c | 5 ++--- 5 files changed, 13 insertions(+), 21 deletions(-)