All of lore.kernel.org
 help / color / mirror / Atom feed
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 07/13] arm64: Change cpu_resume() to enable mmu early then access sleep_sp by va
Date: Mon, 8 Feb 2016 11:55:52 +0000	[thread overview]
Message-ID: <20160208115552.GA5471@red-moon> (raw)
In-Reply-To: <56B859D9.3080601@arm.com>

On Mon, Feb 08, 2016 at 09:03:21AM +0000, James Morse wrote:
> Hi Lorenzo,
> 
> On 05/02/16 16:26, Lorenzo Pieralisi wrote:
> >> cpu_do_{suspend,resume} could be further reduced to not restore: cpacr_el1,
> >> mdscr_el1, tcr_el1, vbar_el1 and sctlr_el1, all of which are set by
> >> __cpu_setup(). However these values all contain res0 bits that may be used
> >> to enable future features.
> > 
> > This patch is a very nice clean-up, a comment below.
> > 
> > I think that for registers like tcr_el1 and sctlr_el1 we should define
> > a restore mask (to avoid overwriting bits set-up by __cpu_setup), eg
> > current code that restores the tcr_el1 seems wrong to me, see below.
> 
> Presumably this should be two masks, one to find RES0 bits that are
> set, and are assumed to have some new meaning, and another to find
> RES1 bits that have been cleared.

For the time being, it is ok to just fix t0sz restore which means
that either you avoid overwriting tcr_el1.t0sz in cpu_do_resume()
or you force the t0sz value field to be whatever value is already
present in the register (ie set-up in __cpu_setup through
tcr_set_idmap_t0sz) and finally set it to correct the default value
in __cpu_suspend_exit() using the correct procedure:

- set reserved ttbr0
- flush tlb
- cpu_set_default_tcr_t0sz

Thanks,
Lorenzo

  reply	other threads:[~2016-02-08 11:55 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-28 10:42 [PATCH v4 00/13] arm64: kernel: Add support for hibernate/suspend-to-disk James Morse
2016-01-28 10:42 ` James Morse
2016-01-28 10:42 ` [PATCH v4 01/13] arm64: Fold proc-macros.S into assembler.h James Morse
2016-01-28 10:42 ` [PATCH v4 02/13] arm64: Cleanup SCTLR flags James Morse
2016-01-28 10:42 ` [PATCH v4 03/13] arm64: Convert hcalls to use HVC immediate value James Morse
2016-01-28 10:42 ` [PATCH v4 04/13] arm64: Add new hcall HVC_CALL_FUNC James Morse
2016-02-02  6:53   ` AKASHI Takahiro
2016-01-28 10:42 ` [PATCH v4 05/13] arm64: kvm: allows kvm cpu hotplug James Morse
2016-02-02  6:46   ` AKASHI Takahiro
2016-01-28 10:42 ` [PATCH v4 06/13] arm64: kernel: Rework finisher callback out of __cpu_suspend_enter() James Morse
2016-01-28 10:42 ` [PATCH v4 07/13] arm64: Change cpu_resume() to enable mmu early then access sleep_sp by va James Morse
2016-02-05 16:26   ` Lorenzo Pieralisi
2016-02-08  9:03     ` James Morse
2016-02-08 11:55       ` Lorenzo Pieralisi [this message]
2016-02-08 12:03         ` Mark Rutland
2016-01-28 10:42 ` [PATCH v4 08/13] arm64: kernel: Include _AC definition in page.h James Morse
2016-01-28 10:42 ` [PATCH v4 09/13] arm64: Promote KERNEL_START/KERNEL_END definitions to a header file James Morse
2016-01-28 10:42 ` [PATCH v4 10/13] arm64: Add new asm macro copy_page James Morse
2016-01-28 10:42 ` [PATCH v4 11/13] PM / Hibernate: Call flush_icache_range() on pages restored in-place James Morse
2016-01-28 10:42   ` James Morse
2016-01-31 17:25   ` Pavel Machek
2016-01-31 17:25     ` Pavel Machek
2016-01-28 10:42 ` [PATCH v4 12/13] arm64: kernel: Add support for hibernate/suspend-to-disk James Morse
2016-01-28 10:42 ` [PATCH v4 13/13] arm64: hibernate: Prevent resume from a different kernel version James Morse
2016-01-29 22:34 ` [PATCH v4 00/13] arm64: kernel: Add support for hibernate/suspend-to-disk Kevin Hilman
2016-01-29 22:34   ` Kevin Hilman
2016-02-01  8:53   ` James Morse
2016-02-01  8:53     ` James Morse
2016-02-03  0:42     ` Kevin Hilman
2016-02-03  0:42       ` Kevin Hilman
2016-02-05 14:18       ` James Morse
2016-02-05 14:18         ` James Morse
2016-02-08 21:20         ` Kevin Hilman
2016-02-08 21:20           ` Kevin Hilman

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=20160208115552.GA5471@red-moon \
    --to=lorenzo.pieralisi@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.