All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: Janosch Frank <frankja@linux.ibm.com>, kvm@vger.kernel.org
Cc: linux-s390@vger.kernel.org, imbrenda@linux.ibm.com,
	david@redhat.com, cohuck@redhat.com
Subject: Re: [kvm-unit-tests PATCH 4/8] lib: s390x: Start using bitops instead of magic constants
Date: Wed, 18 Aug 2021 11:24:39 +0200	[thread overview]
Message-ID: <f6b4c1e2-ac05-3567-5209-be9227b39786@redhat.com> (raw)
In-Reply-To: <20210813073615.32837-5-frankja@linux.ibm.com>

On 13/08/2021 09.36, Janosch Frank wrote:
> TEID data is specified in the Principles of Operation as bits so it
> makes more sens to test the bits instead of anding the mask.
> 
> We need to set -Wno-address-of-packed-member since for test bit we
> take an address of a struct lowcore member.
> 
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
> ---
>   lib/s390x/interrupt.c | 5 +++--
>   s390x/Makefile        | 1 +
>   2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/s390x/interrupt.c b/lib/s390x/interrupt.c
> index 1248bceb..e05c212e 100644
> --- a/lib/s390x/interrupt.c
> +++ b/lib/s390x/interrupt.c
> @@ -8,6 +8,7 @@
>    *  David Hildenbrand <david@redhat.com>
>    */
>   #include <libcflat.h>
> +#include <bitops.h>
>   #include <asm/barrier.h>
>   #include <sclp.h>
>   #include <interrupt.h>
> @@ -77,8 +78,8 @@ static void fixup_pgm_int(struct stack_frame_int *stack)
>   		break;
>   	case PGM_INT_CODE_PROTECTION:
>   		/* Handling for iep.c test case. */
> -		if (lc->trans_exc_id & 0x80UL && lc->trans_exc_id & 0x04UL &&
> -		    !(lc->trans_exc_id & 0x08UL))
> +		if (test_bit_inv(56, &lc->trans_exc_id) && test_bit_inv(61, &lc->trans_exc_id) &&
> +		    !test_bit_inv(60, &lc->trans_exc_id))

I'd rather prefer:

	if ((lc->trans_exc_id & 0x8c) == 0x84)

... or maybe you could add a helper function for these checks a la:

bool check_teid_prot_cause(uint64_t teid, bool bit56, bool bit60,
                            bool bit61)

then you could replace the if statement with:

	if (check_teid_prot_cause(lc->trans_exc_id, 1, 0, 1))

which would be way more readable, IMHO.

>   			/*
>   			 * We branched to the instruction that caused
>   			 * the exception so we can use the return
> diff --git a/s390x/Makefile b/s390x/Makefile
> index ef8041a6..d260b336 100644
> --- a/s390x/Makefile
> +++ b/s390x/Makefile
> @@ -45,6 +45,7 @@ CFLAGS += -O2
>   CFLAGS += -march=zEC12
>   CFLAGS += -mbackchain
>   CFLAGS += -fno-delete-null-pointer-checks
> +CFLAGS += -Wno-address-of-packed-member

I think we should avoid this since this also affects the common code, 
doesn't it? And in common code, we might need to deal with this.

  Thomas


  parent reply	other threads:[~2021-08-18  9:24 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-13  7:36 [kvm-unit-tests PATCH 0/8] s390x: Cleanup and maintenance Janosch Frank
2021-08-13  7:36 ` [kvm-unit-tests PATCH 1/8] s390x: lib: Extend bitops Janosch Frank
2021-08-13  8:32   ` Claudio Imbrenda
2021-08-13 11:31     ` Janosch Frank
2021-08-18  8:20       ` Thomas Huth
2021-08-18  8:39         ` Janosch Frank
2021-08-18  8:57           ` Thomas Huth
2021-08-13  7:36 ` [kvm-unit-tests PATCH 2/8] lib: s390x: Add 0x3d, 0x3e and 0x3f PGM constants Janosch Frank
2021-08-13  8:20   ` Claudio Imbrenda
2021-08-13  7:36 ` [kvm-unit-tests PATCH 3/8] lib: s390x: Print addressing related exception information Janosch Frank
2021-08-13  8:40   ` Claudio Imbrenda
2021-08-13 11:34     ` Janosch Frank
2021-08-18  9:12   ` Thomas Huth
2021-08-18  9:29     ` Claudio Imbrenda
2021-08-18  9:53     ` Janosch Frank
2021-08-13  7:36 ` [kvm-unit-tests PATCH 4/8] lib: s390x: Start using bitops instead of magic constants Janosch Frank
2021-08-13  8:41   ` Claudio Imbrenda
2021-08-18  9:24   ` Thomas Huth [this message]
2021-08-13  7:36 ` [kvm-unit-tests PATCH 5/8] s390x: uv-host: Explain why we set up the home space and remove the space change Janosch Frank
2021-08-13  8:45   ` Claudio Imbrenda
2021-08-13 13:14     ` Janosch Frank
2021-08-13  7:36 ` [kvm-unit-tests PATCH 6/8] lib: s390x: Add PSW_MASK_64 Janosch Frank
2021-08-13  8:46   ` Claudio Imbrenda
2021-08-18  9:28   ` Thomas Huth
2021-08-13  7:36 ` [kvm-unit-tests PATCH 7/8] lib: s390x: Control register constant cleanup Janosch Frank
2021-08-13  8:49   ` Claudio Imbrenda
2021-08-13  9:09     ` Janosch Frank
2021-08-13  7:36 ` [kvm-unit-tests PATCH 8/8] lib: s390x: uv: Add rc 0x100 query error handling Janosch Frank
2021-08-13  8:50   ` Claudio Imbrenda
2021-08-18  9:30   ` Thomas Huth
2021-08-18  9:57     ` Janosch Frank

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=f6b4c1e2-ac05-3567-5209-be9227b39786@redhat.com \
    --to=thuth@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.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.