diff mbox

powerpc/mm: use the correct pointer when setting a 2M pte

Message ID 1485359673-4474-1-git-send-email-arbab@linux.vnet.ibm.com (mailing list archive)
State Accepted
Headers show

Commit Message

Reza Arbab Jan. 25, 2017, 3:54 p.m. UTC
When setting a 2M pte, radix__map_kernel_page() is using the address

	ptep = (pte_t *)pudp;

Fix this conversion to use pmdp instead. Use pmdp_ptep() to do this
instead of casting the pointer.

Signed-off-by: Reza Arbab <arbab@linux.vnet.ibm.com>
---
 arch/powerpc/mm/pgtable-radix.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Aneesh Kumar K.V Jan. 28, 2017, 3:59 p.m. UTC | #1
Reza Arbab <arbab@linux.vnet.ibm.com> writes:

> When setting a 2M pte, radix__map_kernel_page() is using the address
>
> 	ptep = (pte_t *)pudp;
>
> Fix this conversion to use pmdp instead. Use pmdp_ptep() to do this
> instead of casting the pointer.
>

Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

> Signed-off-by: Reza Arbab <arbab@linux.vnet.ibm.com>
> ---
>  arch/powerpc/mm/pgtable-radix.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/mm/pgtable-radix.c b/arch/powerpc/mm/pgtable-radix.c
> index cfa53cc..34f1a0d 100644
> --- a/arch/powerpc/mm/pgtable-radix.c
> +++ b/arch/powerpc/mm/pgtable-radix.c
> @@ -65,7 +65,7 @@ int radix__map_kernel_page(unsigned long ea, unsigned long pa,
>  		if (!pmdp)
>  			return -ENOMEM;
>  		if (map_page_size == PMD_SIZE) {
> -			ptep = (pte_t *)pudp;
> +			ptep = pmdp_ptep(pmdp);
>  			goto set_the_pte;
>  		}
>  		ptep = pte_alloc_kernel(pmdp, ea);
> @@ -90,7 +90,7 @@ int radix__map_kernel_page(unsigned long ea, unsigned long pa,
>  		}
>  		pmdp = pmd_offset(pudp, ea);
>  		if (map_page_size == PMD_SIZE) {
> -			ptep = (pte_t *)pudp;
> +			ptep = pmdp_ptep(pmdp);
>  			goto set_the_pte;
>  		}
>  		if (!pmd_present(*pmdp)) {
> -- 
> 1.8.3.1
Michael Ellerman Jan. 30, 2017, 11:34 a.m. UTC | #2
On Wed, 2017-01-25 at 15:54:33 UTC, Reza Arbab wrote:
> When setting a 2M pte, radix__map_kernel_page() is using the address
> 
> 	ptep = (pte_t *)pudp;
> 
> Fix this conversion to use pmdp instead. Use pmdp_ptep() to do this
> instead of casting the pointer.
> 
> Signed-off-by: Reza Arbab <arbab@linux.vnet.ibm.com>

Applied to powerpc fixes, thanks.

https://git.kernel.org/powerpc/c/a0615a16f7d0ceb5804d295203c302

cheers
diff mbox

Patch

diff --git a/arch/powerpc/mm/pgtable-radix.c b/arch/powerpc/mm/pgtable-radix.c
index cfa53cc..34f1a0d 100644
--- a/arch/powerpc/mm/pgtable-radix.c
+++ b/arch/powerpc/mm/pgtable-radix.c
@@ -65,7 +65,7 @@  int radix__map_kernel_page(unsigned long ea, unsigned long pa,
 		if (!pmdp)
 			return -ENOMEM;
 		if (map_page_size == PMD_SIZE) {
-			ptep = (pte_t *)pudp;
+			ptep = pmdp_ptep(pmdp);
 			goto set_the_pte;
 		}
 		ptep = pte_alloc_kernel(pmdp, ea);
@@ -90,7 +90,7 @@  int radix__map_kernel_page(unsigned long ea, unsigned long pa,
 		}
 		pmdp = pmd_offset(pudp, ea);
 		if (map_page_size == PMD_SIZE) {
-			ptep = (pte_t *)pudp;
+			ptep = pmdp_ptep(pmdp);
 			goto set_the_pte;
 		}
 		if (!pmd_present(*pmdp)) {