From: Christoffer Dall <c.dall@virtualopensystems.com> To: Will Deacon <will.deacon@arm.com> Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu> Subject: Re: [PATCH 01/15] ARM: add mem_type prot_pte accessor Date: Tue, 18 Sep 2012 15:18:12 -0400 [thread overview] Message-ID: <CANM98qJnEe6jJpJhvR6MrS_Wc9o4XSTTbnuCg6LO56M2oobAPw@mail.gmail.com> (raw) In-Reply-To: <20120918122308.GJ32204@mudshark.cambridge.arm.com> On Tue, Sep 18, 2012 at 8:23 AM, Will Deacon <will.deacon@arm.com> wrote: > On Sat, Sep 15, 2012 at 04:34:36PM +0100, Christoffer Dall wrote: >> From: Marc Zyngier <marc.zyngier@arm.com> >> >> The KVM hypervisor mmu code requires access to the mem_type prot_pte >> field when setting up page tables pointing to a device. Unfortunately, >> the mem_type structure is opaque. >> >> Add an accessor (get_mem_type_prot_pte()) to retrieve the prot_pte >> value. >> >> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> >> Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com> >> --- >> arch/arm/include/asm/mach/map.h | 1 + >> arch/arm/mm/mmu.c | 6 ++++++ >> 2 files changed, 7 insertions(+) >> >> diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h >> index a6efcdd..3787c9f 100644 >> --- a/arch/arm/include/asm/mach/map.h >> +++ b/arch/arm/include/asm/mach/map.h >> @@ -37,6 +37,7 @@ extern void iotable_init(struct map_desc *, int); >> >> struct mem_type; >> extern const struct mem_type *get_mem_type(unsigned int type); >> +extern pteval_t get_mem_type_prot_pte(unsigned int type); >> /* >> * external interface to remap single page with appropriate type >> */ >> diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c >> index 4c2d045..76bf4f5 100644 >> --- a/arch/arm/mm/mmu.c >> +++ b/arch/arm/mm/mmu.c >> @@ -301,6 +301,12 @@ const struct mem_type *get_mem_type(unsigned int type) >> } >> EXPORT_SYMBOL(get_mem_type); >> >> +pteval_t get_mem_type_prot_pte(unsigned int type) >> +{ >> + return get_mem_type(type)->prot_pte; >> +} >> +EXPORT_SYMBOL(get_mem_type_prot_pte); >> + > > get_mem_type can return NULL, so you should probably pass the error through > rather than dereferencing it. > right, I guess callers can check against 0, since L_PTE_PRESENT should always be there. diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index a153fd4..f2b6287 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -305,7 +305,9 @@ EXPORT_SYMBOL(get_mem_type); pteval_t get_mem_type_prot_pte(unsigned int type) { - return get_mem_type(type)->prot_pte; + if (get_mem_type(type)) + return get_mem_type(type)->prot_pte; + return 0; } EXPORT_SYMBOL(get_mem_type_prot_pte);
WARNING: multiple messages have this Message-ID (diff)
From: c.dall@virtualopensystems.com (Christoffer Dall) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 01/15] ARM: add mem_type prot_pte accessor Date: Tue, 18 Sep 2012 15:18:12 -0400 [thread overview] Message-ID: <CANM98qJnEe6jJpJhvR6MrS_Wc9o4XSTTbnuCg6LO56M2oobAPw@mail.gmail.com> (raw) In-Reply-To: <20120918122308.GJ32204@mudshark.cambridge.arm.com> On Tue, Sep 18, 2012 at 8:23 AM, Will Deacon <will.deacon@arm.com> wrote: > On Sat, Sep 15, 2012 at 04:34:36PM +0100, Christoffer Dall wrote: >> From: Marc Zyngier <marc.zyngier@arm.com> >> >> The KVM hypervisor mmu code requires access to the mem_type prot_pte >> field when setting up page tables pointing to a device. Unfortunately, >> the mem_type structure is opaque. >> >> Add an accessor (get_mem_type_prot_pte()) to retrieve the prot_pte >> value. >> >> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> >> Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com> >> --- >> arch/arm/include/asm/mach/map.h | 1 + >> arch/arm/mm/mmu.c | 6 ++++++ >> 2 files changed, 7 insertions(+) >> >> diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h >> index a6efcdd..3787c9f 100644 >> --- a/arch/arm/include/asm/mach/map.h >> +++ b/arch/arm/include/asm/mach/map.h >> @@ -37,6 +37,7 @@ extern void iotable_init(struct map_desc *, int); >> >> struct mem_type; >> extern const struct mem_type *get_mem_type(unsigned int type); >> +extern pteval_t get_mem_type_prot_pte(unsigned int type); >> /* >> * external interface to remap single page with appropriate type >> */ >> diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c >> index 4c2d045..76bf4f5 100644 >> --- a/arch/arm/mm/mmu.c >> +++ b/arch/arm/mm/mmu.c >> @@ -301,6 +301,12 @@ const struct mem_type *get_mem_type(unsigned int type) >> } >> EXPORT_SYMBOL(get_mem_type); >> >> +pteval_t get_mem_type_prot_pte(unsigned int type) >> +{ >> + return get_mem_type(type)->prot_pte; >> +} >> +EXPORT_SYMBOL(get_mem_type_prot_pte); >> + > > get_mem_type can return NULL, so you should probably pass the error through > rather than dereferencing it. > right, I guess callers can check against 0, since L_PTE_PRESENT should always be there. diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index a153fd4..f2b6287 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -305,7 +305,9 @@ EXPORT_SYMBOL(get_mem_type); pteval_t get_mem_type_prot_pte(unsigned int type) { - return get_mem_type(type)->prot_pte; + if (get_mem_type(type)) + return get_mem_type(type)->prot_pte; + return 0; } EXPORT_SYMBOL(get_mem_type_prot_pte);
next prev parent reply other threads:[~2012-09-18 19:18 UTC|newest] Thread overview: 164+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-09-15 15:34 [PATCH 00/15] KVM/ARM Implementation Christoffer Dall 2012-09-15 15:34 ` Christoffer Dall 2012-09-15 15:34 ` [PATCH 01/15] ARM: add mem_type prot_pte accessor Christoffer Dall 2012-09-15 15:34 ` Christoffer Dall 2012-09-18 12:23 ` Will Deacon 2012-09-18 12:23 ` Will Deacon 2012-09-18 19:18 ` Christoffer Dall [this message] 2012-09-18 19:18 ` Christoffer Dall 2012-09-18 21:04 ` Russell King - ARM Linux 2012-09-18 21:04 ` Russell King - ARM Linux 2012-09-18 21:53 ` Christoffer Dall 2012-09-18 21:53 ` Christoffer Dall 2012-09-20 10:01 ` Marc Zyngier 2012-09-20 10:01 ` Marc Zyngier 2012-09-20 13:21 ` Christoffer Dall 2012-09-20 13:21 ` Christoffer Dall 2012-09-15 15:34 ` [PATCH 02/15] ARM: Add page table and page defines needed by KVM Christoffer Dall 2012-09-15 15:34 ` Christoffer Dall 2012-09-18 12:47 ` Will Deacon 2012-09-18 12:47 ` Will Deacon 2012-09-18 14:06 ` Catalin Marinas 2012-09-18 14:06 ` Catalin Marinas 2012-09-18 15:05 ` Christoffer Dall 2012-09-18 15:05 ` Christoffer Dall 2012-09-18 15:07 ` Catalin Marinas 2012-09-18 15:07 ` Catalin Marinas 2012-09-18 15:10 ` Christoffer Dall 2012-09-18 15:10 ` Christoffer Dall 2012-09-18 22:01 ` Christoffer Dall 2012-09-18 22:01 ` Christoffer Dall 2012-09-19 9:21 ` Will Deacon 2012-09-19 9:21 ` Will Deacon 2012-09-20 0:10 ` Christoffer Dall 2012-09-20 0:10 ` Christoffer Dall 2012-09-15 15:34 ` [PATCH 03/15] ARM: Section based HYP idmap Christoffer Dall 2012-09-15 15:34 ` Christoffer Dall 2012-09-18 13:00 ` Will Deacon 2012-09-18 13:00 ` Will Deacon 2012-10-01 2:19 ` Christoffer Dall 2012-10-01 2:19 ` Christoffer Dall 2012-09-15 15:34 ` [PATCH 04/15] ARM: idmap: only initialize HYP idmap when HYP mode is available Christoffer Dall 2012-09-15 15:34 ` Christoffer Dall 2012-09-18 13:03 ` Will Deacon 2012-09-18 13:03 ` Will Deacon 2012-09-20 0:11 ` Christoffer Dall 2012-09-20 0:11 ` Christoffer Dall 2012-09-15 15:35 ` [PATCH 05/15] ARM: Expose PMNC bitfields for KVM use Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-18 13:08 ` Will Deacon 2012-09-18 13:08 ` Will Deacon 2012-09-18 22:13 ` Christoffer Dall 2012-09-18 22:13 ` Christoffer Dall 2012-09-19 4:09 ` [kvmarm] " Rusty Russell 2012-09-19 4:09 ` Rusty Russell 2012-09-19 9:30 ` Will Deacon 2012-09-19 9:30 ` Will Deacon 2012-09-15 15:35 ` [PATCH 06/15] KVM: ARM: Initial skeleton to compile KVM support Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-25 15:20 ` Will Deacon 2012-09-25 15:20 ` Will Deacon 2012-09-26 1:43 ` Christoffer Dall 2012-09-26 1:43 ` Christoffer Dall 2012-09-27 14:13 ` Will Deacon 2012-09-27 14:13 ` Will Deacon 2012-09-27 14:39 ` Marc Zyngier 2012-09-27 14:39 ` Marc Zyngier 2012-09-27 14:45 ` [kvmarm] " Peter Maydell 2012-09-27 14:45 ` Peter Maydell 2012-09-27 15:20 ` Will Deacon 2012-09-27 15:20 ` Will Deacon 2012-09-30 19:21 ` Christoffer Dall 2012-09-30 19:21 ` Christoffer Dall 2012-10-01 13:03 ` [kvmarm] " Marc Zyngier 2012-10-01 13:03 ` Marc Zyngier 2012-10-04 13:02 ` Min-gyu Kim 2012-10-04 13:02 ` Min-gyu Kim 2012-10-04 13:35 ` Christoffer Dall 2012-10-04 13:35 ` Christoffer Dall 2012-10-05 6:28 ` Rusty Russell 2012-10-05 6:28 ` Rusty Russell 2012-10-04 13:44 ` [kvmarm] " Avi Kivity 2012-10-04 13:44 ` Avi Kivity 2012-09-15 15:35 ` [PATCH 07/15] KVM: ARM: Hypervisor inititalization Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-15 15:35 ` [PATCH 08/15] KVM: ARM: Memory virtualization setup Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-15 15:35 ` [PATCH 09/15] KVM: ARM: Inject IRQs and FIQs from userspace Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-25 15:55 ` Will Deacon 2012-09-25 15:55 ` Will Deacon 2012-09-29 15:50 ` Christoffer Dall 2012-09-29 15:50 ` Christoffer Dall 2012-09-30 12:48 ` Will Deacon 2012-09-30 12:48 ` Will Deacon 2012-09-30 14:34 ` Christoffer Dall 2012-09-30 14:34 ` Christoffer Dall 2012-09-15 15:35 ` [PATCH 10/15] KVM: ARM: World-switch implementation Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-25 17:00 ` Will Deacon 2012-09-25 17:00 ` Will Deacon 2012-09-25 17:15 ` [kvmarm] " Peter Maydell 2012-09-25 17:15 ` Peter Maydell 2012-09-25 17:42 ` Marc Zyngier 2012-09-25 17:42 ` Marc Zyngier 2012-09-30 0:33 ` Christoffer Dall 2012-09-30 0:33 ` Christoffer Dall 2012-09-30 9:48 ` Peter Maydell 2012-09-30 9:48 ` Peter Maydell 2012-09-30 14:31 ` Christoffer Dall 2012-09-30 14:31 ` Christoffer Dall 2012-09-30 17:47 ` Christoffer Dall 2012-09-30 17:47 ` Christoffer Dall 2012-09-15 15:35 ` [PATCH 11/15] KVM: ARM: Emulation framework and CP15 emulation Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-15 15:35 ` [PATCH 12/15] KVM: ARM: User space API for getting/setting co-proc registers Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-15 15:35 ` [PATCH 13/15] KVM: ARM: Handle guest faults in KVM Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-25 11:11 ` Min-gyu Kim 2012-09-25 11:11 ` Min-gyu Kim 2012-09-25 12:38 ` Christoffer Dall 2012-09-25 12:38 ` Christoffer Dall 2012-09-27 3:11 ` Min-gyu Kim 2012-09-27 3:11 ` Min-gyu Kim 2012-09-27 5:35 ` Christoffer Dall 2012-09-27 5:35 ` Christoffer Dall 2012-09-27 15:26 ` [kvmarm] " Marc Zyngier 2012-09-27 15:26 ` Marc Zyngier 2012-09-27 12:39 ` Catalin Marinas 2012-09-27 12:39 ` Catalin Marinas 2012-09-27 17:15 ` Christoffer Dall 2012-09-27 17:15 ` Christoffer Dall 2012-09-27 17:21 ` Catalin Marinas 2012-09-27 17:21 ` Catalin Marinas 2012-09-15 15:35 ` [PATCH 14/15] KVM: ARM: Handle I/O aborts Christoffer Dall 2012-09-15 15:35 ` Christoffer Dall 2012-09-27 15:11 ` Will Deacon 2012-09-27 15:11 ` Will Deacon 2012-09-30 21:49 ` Christoffer Dall 2012-09-30 21:49 ` Christoffer Dall 2012-10-01 12:53 ` Dave Martin 2012-10-01 12:53 ` Dave Martin 2012-10-01 15:12 ` Jon Medhurst (Tixy) 2012-10-01 15:12 ` Jon Medhurst (Tixy) 2012-10-01 16:07 ` Dave Martin 2012-10-01 16:07 ` Dave Martin 2012-10-05 9:00 ` Russell King - ARM Linux 2012-10-05 9:00 ` Russell King - ARM Linux 2012-10-08 10:04 ` Dave Martin 2012-10-08 10:04 ` Dave Martin 2012-10-08 21:52 ` Christoffer Dall 2012-10-08 21:52 ` Christoffer Dall 2012-09-15 15:36 ` [PATCH 15/15] KVM: ARM: Guest wait-for-interrupts (WFI) support Christoffer Dall 2012-09-15 15:36 ` Christoffer Dall 2012-09-25 17:04 ` Will Deacon 2012-09-25 17:04 ` Will Deacon 2012-09-29 23:00 ` Christoffer Dall 2012-09-29 23:00 ` Christoffer Dall 2012-09-18 12:21 ` [PATCH 00/15] KVM/ARM Implementation Will Deacon 2012-09-18 12:21 ` Will Deacon 2012-09-18 12:32 ` Christoffer Dall 2012-09-18 12:32 ` Christoffer Dall 2012-09-19 12:44 ` Avi Kivity 2012-09-19 12:44 ` Avi Kivity
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CANM98qJnEe6jJpJhvR6MrS_Wc9o4XSTTbnuCg6LO56M2oobAPw@mail.gmail.com \ --to=c.dall@virtualopensystems.com \ --cc=kvm@vger.kernel.org \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.