* [PATCH] powerpc/mm/radix: GR field got removed in ISA 3.0B
@ 2017-06-21 5:20 Aneesh Kumar K.V
2017-06-22 5:22 ` Paul Mackerras
0 siblings, 1 reply; 2+ messages in thread
From: Aneesh Kumar K.V @ 2017-06-21 5:20 UTC (permalink / raw)
To: benh, paulus, mpe; +Cc: linuxppc-dev, Aneesh Kumar K.V
The bit position is now marked reserved. Hence don't set the bit to 1.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
---
arch/powerpc/include/asm/book3s/64/mmu.h | 1 -
arch/powerpc/kvm/book3s_hv.c | 6 +-----
arch/powerpc/mm/pgtable-radix.c | 2 +-
3 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/mmu.h b/arch/powerpc/include/asm/book3s/64/mmu.h
index 77529a3e3811..e28ce2793e7d 100644
--- a/arch/powerpc/include/asm/book3s/64/mmu.h
+++ b/arch/powerpc/include/asm/book3s/64/mmu.h
@@ -55,7 +55,6 @@ extern struct patb_entry *partition_tb;
#define RPDS_MASK 0x1f /* root page dir. size field */
/* Bits in patb1 field */
-#define PATB_GR (1UL << 63) /* guest uses radix; must match HR */
#define PRTS_MASK 0x1f /* process table size field */
#define PRTB_MASK 0x0ffffffffffff000UL
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 42b7a4fd57d9..657729a433f9 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -3185,7 +3185,7 @@ static void kvmppc_setup_partition_table(struct kvm *kvm)
} else {
dw0 = PATB_HR | radix__get_tree_size() |
__pa(kvm->arch.pgtable) | RADIX_PGD_INDEX_SIZE;
- dw1 = PATB_GR | kvm->arch.process_table;
+ dw1 = kvm->arch.process_table;
}
mmu_partition_table_set_entry(kvm->arch.lpid, dw0, dw1);
@@ -3840,10 +3840,6 @@ static int kvmhv_configure_mmu(struct kvm *kvm, struct kvm_ppc_mmuv3_cfg *cfg)
if (radix != kvm_is_radix(kvm))
return -EINVAL;
- /* GR (guest radix) bit in process_table field must match */
- if (!!(cfg->process_table & PATB_GR) != radix)
- return -EINVAL;
-
/* Process table size field must be reasonable, i.e. <= 24 */
if ((cfg->process_table & PRTS_MASK) > 24)
return -EINVAL;
diff --git a/arch/powerpc/mm/pgtable-radix.c b/arch/powerpc/mm/pgtable-radix.c
index 6e3d1518eef3..338d69a726b2 100644
--- a/arch/powerpc/mm/pgtable-radix.c
+++ b/arch/powerpc/mm/pgtable-radix.c
@@ -25,7 +25,7 @@
static int native_register_process_table(unsigned long base, unsigned long pg_sz,
unsigned long table_size)
{
- unsigned long patb1 = base | table_size | PATB_GR;
+ unsigned long patb1 = base | table_size;
partition_tb->patb1 = cpu_to_be64(patb1);
return 0;
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] powerpc/mm/radix: GR field got removed in ISA 3.0B
2017-06-21 5:20 [PATCH] powerpc/mm/radix: GR field got removed in ISA 3.0B Aneesh Kumar K.V
@ 2017-06-22 5:22 ` Paul Mackerras
0 siblings, 0 replies; 2+ messages in thread
From: Paul Mackerras @ 2017-06-22 5:22 UTC (permalink / raw)
To: Aneesh Kumar K.V; +Cc: benh, mpe, linuxppc-dev
On Wed, Jun 21, 2017 at 10:50:12AM +0530, Aneesh Kumar K.V wrote:
> The bit position is now marked reserved. Hence don't set the bit to 1.
>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> ---
> arch/powerpc/include/asm/book3s/64/mmu.h | 1 -
> arch/powerpc/kvm/book3s_hv.c | 6 +-----
> arch/powerpc/mm/pgtable-radix.c | 2 +-
> 3 files changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/mmu.h b/arch/powerpc/include/asm/book3s/64/mmu.h
> index 77529a3e3811..e28ce2793e7d 100644
> --- a/arch/powerpc/include/asm/book3s/64/mmu.h
> +++ b/arch/powerpc/include/asm/book3s/64/mmu.h
> @@ -55,7 +55,6 @@ extern struct patb_entry *partition_tb;
> #define RPDS_MASK 0x1f /* root page dir. size field */
>
> /* Bits in patb1 field */
> -#define PATB_GR (1UL << 63) /* guest uses radix; must match HR */
> #define PRTS_MASK 0x1f /* process table size field */
> #define PRTB_MASK 0x0ffffffffffff000UL
>
> diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
> index 42b7a4fd57d9..657729a433f9 100644
> --- a/arch/powerpc/kvm/book3s_hv.c
> +++ b/arch/powerpc/kvm/book3s_hv.c
> @@ -3185,7 +3185,7 @@ static void kvmppc_setup_partition_table(struct kvm *kvm)
> } else {
> dw0 = PATB_HR | radix__get_tree_size() |
> __pa(kvm->arch.pgtable) | RADIX_PGD_INDEX_SIZE;
> - dw1 = PATB_GR | kvm->arch.process_table;
> + dw1 = kvm->arch.process_table;
> }
>
> mmu_partition_table_set_entry(kvm->arch.lpid, dw0, dw1);
> @@ -3840,10 +3840,6 @@ static int kvmhv_configure_mmu(struct kvm *kvm, struct kvm_ppc_mmuv3_cfg *cfg)
> if (radix != kvm_is_radix(kvm))
> return -EINVAL;
>
> - /* GR (guest radix) bit in process_table field must match */
> - if (!!(cfg->process_table & PATB_GR) != radix)
> - return -EINVAL;
> -
It's OK to take out the check, but we should also clear the GR bit,
and preferably any other reserved bits, before we put the value into
the partition table.
Paul.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-06-22 5:22 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-21 5:20 [PATCH] powerpc/mm/radix: GR field got removed in ISA 3.0B Aneesh Kumar K.V
2017-06-22 5:22 ` Paul Mackerras
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).