[PATCH v13 08/24] selftests/vm: fix the wrong assert in pkey_disable_set()
Ram Pai
linuxram at us.ibm.com
Wed Jul 18 01:58:48 AEST 2018
On Wed, Jun 20, 2018 at 07:47:02AM -0700, Dave Hansen wrote:
> On 06/13/2018 05:44 PM, Ram Pai wrote:
> > If the flag is 0, no bits will be set. Hence we cant expect
> > the resulting bitmap to have a higher value than what it
> > was earlier
> ...
> > if (flags)
> > - pkey_assert(read_pkey_reg() > orig_pkey_reg);
> > + pkey_assert(read_pkey_reg() >= orig_pkey_reg);
> > dprintf1("END<---%s(%d, 0x%x)\n", __func__,
> > pkey, flags);
> > }
>
> This is the kind of thing where I'd love to hear the motivation and
> background. This "disable a key that was already disabled" operation
> obviously doesn't happen today. What motivated you to change it now?
On powerpc, hardware supports READ_DISABLE and WRITE_DISABLE.
ACCESS_DISABLE is basically READ_DISABLE|WRITE_DISABLE on powerpc.
If access disable is called on a key followed by a write disable, the
second operation becomes a nop. In such cases,
read_pkey_reg() == orig_pkey_reg
Hence the code above is modified to
pkey_assert(read_pkey_reg() >= orig_pkey_reg);
--
Ram Pai
More information about the Linuxppc-dev
mailing list