All of lore.kernel.org
 help / color / mirror / Atom feed
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv3 5/6] arm64: Use __pa_symbol for kernel symbols
Date: Fri, 18 Nov 2016 16:46:02 +0000	[thread overview]
Message-ID: <20161118164602.GD1197@leverpostej> (raw)
In-Reply-To: <20161118143543.GC1197@leverpostej>

On Fri, Nov 18, 2016 at 02:35:44PM +0000, Mark Rutland wrote:
> Hi Laura,
> 
> On Thu, Nov 17, 2016 at 05:16:55PM -0800, Laura Abbott wrote:
> > 
> > __pa_symbol is technically the marco that should be used for kernel
> > symbols. Switch to this as a pre-requisite for DEBUG_VIRTUAL which
> > will do bounds checking.
> > 
> > Signed-off-by: Laura Abbott <labbott@redhat.com>
> > ---
> > v3: Conversion of more sites besides just _end. Addition of __lm_sym_addr
> > macro to take care of the _va(__pa_symbol(..)) idiom.
> > 
> > Note that a copy of __pa_symbol was added to avoid a mess of headers
> > since the #ifndef __pa_symbol case is defined in linux/mm.h
> 
> I think we also need to fix up virt_to_phys(__cpu_soft_restart) in
> arch/arm64/kernel/cpu-reset.h. Otherwise, this looks complete for uses
> falling under arch/arm64/.

I think I spoke too soon. :(

In the kasan code, use of tmp_pg_dir, kasan_zero_{page,pte,pmd,pud} all
need to be vetted, as those are in the image, but get passed directly to
functions which will end up doing a virt_to_phys behind the scenes (e.g.
cpu_replace_ttbr1(), pmd_populate_kernel()).

There's also some virt_to_pfn(<symbol>) usage that needs to be fixed up
in arch/arm64/kernel/hibernate.c.

... there's also more of that in common kernel code. :(

Thanks,
Mark.

WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: Laura Abbott <labbott@redhat.com>, lorenzo.pieralisi@arm.com
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	x86@kernel.org, Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-arm-kernel@lists.infradead.org,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCHv3 5/6] arm64: Use __pa_symbol for kernel symbols
Date: Fri, 18 Nov 2016 16:46:02 +0000	[thread overview]
Message-ID: <20161118164602.GD1197@leverpostej> (raw)
In-Reply-To: <20161118143543.GC1197@leverpostej>

On Fri, Nov 18, 2016 at 02:35:44PM +0000, Mark Rutland wrote:
> Hi Laura,
> 
> On Thu, Nov 17, 2016 at 05:16:55PM -0800, Laura Abbott wrote:
> > 
> > __pa_symbol is technically the marco that should be used for kernel
> > symbols. Switch to this as a pre-requisite for DEBUG_VIRTUAL which
> > will do bounds checking.
> > 
> > Signed-off-by: Laura Abbott <labbott@redhat.com>
> > ---
> > v3: Conversion of more sites besides just _end. Addition of __lm_sym_addr
> > macro to take care of the _va(__pa_symbol(..)) idiom.
> > 
> > Note that a copy of __pa_symbol was added to avoid a mess of headers
> > since the #ifndef __pa_symbol case is defined in linux/mm.h
> 
> I think we also need to fix up virt_to_phys(__cpu_soft_restart) in
> arch/arm64/kernel/cpu-reset.h. Otherwise, this looks complete for uses
> falling under arch/arm64/.

I think I spoke too soon. :(

In the kasan code, use of tmp_pg_dir, kasan_zero_{page,pte,pmd,pud} all
need to be vetted, as those are in the image, but get passed directly to
functions which will end up doing a virt_to_phys behind the scenes (e.g.
cpu_replace_ttbr1(), pmd_populate_kernel()).

There's also some virt_to_pfn(<symbol>) usage that needs to be fixed up
in arch/arm64/kernel/hibernate.c.

... there's also more of that in common kernel code. :(

Thanks,
Mark.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: Laura Abbott <labbott@redhat.com>, lorenzo.pieralisi@arm.com
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	x86@kernel.org, Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-arm-kernel@lists.infradead.org,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCHv3 5/6] arm64: Use __pa_symbol for kernel symbols
Date: Fri, 18 Nov 2016 16:46:02 +0000	[thread overview]
Message-ID: <20161118164602.GD1197@leverpostej> (raw)
In-Reply-To: <20161118143543.GC1197@leverpostej>

On Fri, Nov 18, 2016 at 02:35:44PM +0000, Mark Rutland wrote:
> Hi Laura,
> 
> On Thu, Nov 17, 2016 at 05:16:55PM -0800, Laura Abbott wrote:
> > 
> > __pa_symbol is technically the marco that should be used for kernel
> > symbols. Switch to this as a pre-requisite for DEBUG_VIRTUAL which
> > will do bounds checking.
> > 
> > Signed-off-by: Laura Abbott <labbott@redhat.com>
> > ---
> > v3: Conversion of more sites besides just _end. Addition of __lm_sym_addr
> > macro to take care of the _va(__pa_symbol(..)) idiom.
> > 
> > Note that a copy of __pa_symbol was added to avoid a mess of headers
> > since the #ifndef __pa_symbol case is defined in linux/mm.h
> 
> I think we also need to fix up virt_to_phys(__cpu_soft_restart) in
> arch/arm64/kernel/cpu-reset.h. Otherwise, this looks complete for uses
> falling under arch/arm64/.

I think I spoke too soon. :(

In the kasan code, use of tmp_pg_dir, kasan_zero_{page,pte,pmd,pud} all
need to be vetted, as those are in the image, but get passed directly to
functions which will end up doing a virt_to_phys behind the scenes (e.g.
cpu_replace_ttbr1(), pmd_populate_kernel()).

There's also some virt_to_pfn(<symbol>) usage that needs to be fixed up
in arch/arm64/kernel/hibernate.c.

... there's also more of that in common kernel code. :(

Thanks,
Mark.

  reply	other threads:[~2016-11-18 16:46 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-18  1:16 [PATCHv3 0/6] CONFIG_DEBUG_VIRTUAL for arm64 Laura Abbott
2016-11-18  1:16 ` Laura Abbott
2016-11-18  1:16 ` Laura Abbott
2016-11-18  1:16 ` [PATCHv3 1/6] lib/Kconfig.debug: Add ARCH_HAS_DEBUG_VIRTUAL Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  8:25   ` Ingo Molnar
2016-11-18  8:25     ` Ingo Molnar
2016-11-18  8:25     ` Ingo Molnar
2016-11-18  1:16 ` [PATCHv3 2/6] mm/cma: Cleanup highmem check Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  1:16 ` [PATCHv3 3/6] arm64: Move some macros under #ifndef __ASSEMBLY__ Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  1:16 ` [PATCHv3 4/6] arm64: Add cast for virt_to_pfn Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  1:16 ` [PATCHv3 5/6] arm64: Use __pa_symbol for kernel symbols Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18 14:35   ` Mark Rutland
2016-11-18 14:35     ` Mark Rutland
2016-11-18 14:35     ` Mark Rutland
2016-11-18 16:46     ` Mark Rutland [this message]
2016-11-18 16:46       ` Mark Rutland
2016-11-18 16:46       ` Mark Rutland
2016-11-21 17:40     ` Laura Abbott
2016-11-21 17:40       ` Laura Abbott
2016-11-21 17:40       ` Laura Abbott
2016-11-23  9:48       ` Mark Rutland
2016-11-23  9:48         ` Mark Rutland
2016-11-23  9:48         ` Mark Rutland
2016-11-18  1:16 ` [PATCHv3 6/6] arm64: Add support for CONFIG_DEBUG_VIRTUAL Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18  1:16   ` Laura Abbott
2016-11-18 17:53   ` Mark Rutland
2016-11-18 17:53     ` Mark Rutland
2016-11-18 17:53     ` Mark Rutland
2016-11-18 18:42     ` Laura Abbott
2016-11-18 18:42       ` Laura Abbott
2016-11-18 18:42       ` Laura Abbott
2016-11-18 19:05       ` Mark Rutland
2016-11-18 19:05         ` Mark Rutland
2016-11-18 19:05         ` Mark Rutland
2016-11-18 19:17         ` Laura Abbott
2016-11-18 19:17           ` Laura Abbott
2016-11-18 19:17           ` Laura Abbott
2016-11-18 18:25   ` Mark Rutland
2016-11-18 18:25     ` Mark Rutland
2016-11-18 18:25     ` Mark Rutland
2016-11-18 17:57 ` [PATCHv3 0/6] CONFIG_DEBUG_VIRTUAL for arm64 Mark Rutland
2016-11-18 17:57   ` Mark Rutland
2016-11-18 17:57   ` Mark Rutland

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=20161118164602.GD1197@leverpostej \
    --to=mark.rutland@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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: link
Be 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.