All of lore.kernel.org
 help / color / mirror / Atom feed
From: Claudio Imbrenda <imbrenda@linux.ibm.com>
To: David Hildenbrand <david@redhat.com>
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-kernel@vger.kernel.org, Vasily Gorbik <gor@linux.ibm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Cornelia Huck <cohuck@redhat.com>,
	Janosch Frank <frankja@linux.ibm.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>
Subject: Re: [PATCH v2 3/5] KVM: s390: vsie: Fix possible race when shadowing region 3 tables
Date: Tue, 7 Apr 2020 13:05:22 +0200	[thread overview]
Message-ID: <20200407130522.189a9a3f@p-imbrenda> (raw)
In-Reply-To: <20200403153050.20569-4-david@redhat.com>

On Fri,  3 Apr 2020 17:30:48 +0200
David Hildenbrand <david@redhat.com> wrote:

> We have to properly retry again by returning -EINVAL immediately in
> case somebody else instantiated the table concurrently. We missed to
> add the goto in this function only. The code now matches the other,
> similar shadowing functions.
> 
> We are overwriting an existing region 2 table entry. All allocated
> pages are added to the crst_list to be freed later, so they are not
> lost forever. However, when unshadowing the region 2 table, we
> wouldn't trigger unshadowing of the original shadowed region 3 table
> that we replaced. It would get unshadowed when the original region 3
> table is modified. As it's not connected to the page table hierarchy
> anymore, it's not going to get used anymore. However, for a limited
> time, this page table will stick around, so it's in some sense a
> temporary memory leak.
> 
> Identified by manual code inspection. I don't think this classifies as
> stable material.
> 
> Fixes: 998f637cc4b9 ("s390/mm: avoid races on region/segment/page
> table shadowing") Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  arch/s390/mm/gmap.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/s390/mm/gmap.c b/arch/s390/mm/gmap.c
> index b93dd54b234a..24ef30fb0833 100644
> --- a/arch/s390/mm/gmap.c
> +++ b/arch/s390/mm/gmap.c
> @@ -1844,6 +1844,7 @@ int gmap_shadow_r3t(struct gmap *sg, unsigned
> long saddr, unsigned long r3t, goto out_free;
>  	} else if (*table & _REGION_ENTRY_ORIGIN) {
>  		rc = -EAGAIN;		/* Race with shadow */
> +		goto out_free;
>  	}
>  	crst_table_init(s_r3t, _REGION3_ENTRY_EMPTY);
>  	/* mark as invalid as long as the parent table is not
> protected */

Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>


  reply	other threads:[~2020-04-07 11:10 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-03 15:30 [PATCH v2 0/5] KVM: s390: vsie: fixes and cleanups David Hildenbrand
2020-04-03 15:30 ` [PATCH v2 1/5] KVM: s390: vsie: Fix region 1 ASCE sanity shadow address checks David Hildenbrand
2020-04-03 17:56   ` Christian Borntraeger
2020-04-03 19:55     ` David Hildenbrand
2020-04-06  8:32       ` Christian Borntraeger
2020-04-07  7:33   ` Christian Borntraeger
2020-04-07  7:49     ` David Hildenbrand
2020-04-07  7:52       ` Christian Borntraeger
2020-04-07  7:53         ` David Hildenbrand
2020-04-07 10:48         ` Claudio Imbrenda
2020-04-03 15:30 ` [PATCH v2 2/5] KVM: s390: vsie: Fix delivery of addressing exceptions David Hildenbrand
2020-04-07 11:00   ` Claudio Imbrenda
2020-04-07 11:35     ` David Hildenbrand
2020-04-03 15:30 ` [PATCH v2 3/5] KVM: s390: vsie: Fix possible race when shadowing region 3 tables David Hildenbrand
2020-04-07 11:05   ` Claudio Imbrenda [this message]
2020-04-03 15:30 ` [PATCH v2 4/5] KVM: s390: vsie: Move conditional reschedule David Hildenbrand
2020-04-06 15:06   ` Christian Borntraeger
2020-04-07 10:52   ` Claudio Imbrenda
2020-04-03 15:30 ` [PATCH v2 5/5] KVM: s390: vsie: gmap_table_walk() simplifications David Hildenbrand
2020-04-06 16:06   ` Christian Borntraeger
2020-04-07 11:10   ` Claudio Imbrenda
2020-04-06 16:06 ` [PATCH v2 0/5] KVM: s390: vsie: fixes and cleanups Christian Borntraeger

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=20200407130522.189a9a3f@p-imbrenda \
    --to=imbrenda@linux.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@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.