2021-06-16 00:38:12

by Huang, Kai

[permalink] [raw]
Subject: [PATCH v2] x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed

xa_destroy() needs to be called to destroy virtual EPC's page array
before calling kfree() to free the virtual EPC. Currently it is not
called. Add the missing xa_destroy() to fix.

Fixes: 540745ddbc70 ("x86/sgx: Introduce virtual EPC for use by KVM guests")
Tested-by: Yang Zhong <[email protected]>
Acked-by: Dave Hansen <[email protected]>
Signed-off-by: Kai Huang <[email protected]>
---
v1->v2:

- Fixed typo in commit msg
- Added Dave's Acked-by
---
arch/x86/kernel/cpu/sgx/virt.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/x86/kernel/cpu/sgx/virt.c b/arch/x86/kernel/cpu/sgx/virt.c
index 6ad165a5c0cc..64511c4a5200 100644
--- a/arch/x86/kernel/cpu/sgx/virt.c
+++ b/arch/x86/kernel/cpu/sgx/virt.c
@@ -212,6 +212,7 @@ static int sgx_vepc_release(struct inode *inode, struct file *file)
list_splice_tail(&secs_pages, &zombie_secs_pages);
mutex_unlock(&zombie_secs_pages_lock);

+ xa_destroy(&vepc->page_array);
kfree(vepc);

return 0;
--
2.31.1


2021-06-23 13:30:11

by Jarkko Sakkinen

[permalink] [raw]
Subject: Re: [PATCH v2] x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed

On Wed, Jun 16, 2021 at 12:36:34PM +1200, Kai Huang wrote:
> xa_destroy() needs to be called to destroy virtual EPC's page array
> before calling kfree() to free the virtual EPC. Currently it is not
> called. Add the missing xa_destroy() to fix.
>
> Fixes: 540745ddbc70 ("x86/sgx: Introduce virtual EPC for use by KVM guests")
> Tested-by: Yang Zhong <[email protected]>
> Acked-by: Dave Hansen <[email protected]>
> Signed-off-by: Kai Huang <[email protected]>


Reviewed-by: Jarkko Sakkinen <[email protected]>

> ---
> v1->v2:
>
> - Fixed typo in commit msg
> - Added Dave's Acked-by
> ---
> arch/x86/kernel/cpu/sgx/virt.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/x86/kernel/cpu/sgx/virt.c b/arch/x86/kernel/cpu/sgx/virt.c
> index 6ad165a5c0cc..64511c4a5200 100644
> --- a/arch/x86/kernel/cpu/sgx/virt.c
> +++ b/arch/x86/kernel/cpu/sgx/virt.c
> @@ -212,6 +212,7 @@ static int sgx_vepc_release(struct inode *inode, struct file *file)
> list_splice_tail(&secs_pages, &zombie_secs_pages);
> mutex_unlock(&zombie_secs_pages_lock);
>
> + xa_destroy(&vepc->page_array);
> kfree(vepc);
>
> return 0;
> --
> 2.31.1
>
>

/Jarkko

2021-06-25 01:47:02

by Huang, Kai

[permalink] [raw]
Subject: Re: [PATCH v2] x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed

On Wed, 2021-06-23 at 16:28 +0300, Jarkko Sakkinen wrote:
> On Wed, Jun 16, 2021 at 12:36:34PM +1200, Kai Huang wrote:
> > xa_destroy() needs to be called to destroy virtual EPC's page array
> > before calling kfree() to free the virtual EPC. Currently it is not
> > called. Add the missing xa_destroy() to fix.
> >
> > Fixes: 540745ddbc70 ("x86/sgx: Introduce virtual EPC for use by KVM guests")
> > Tested-by: Yang Zhong <[email protected]>
> > Acked-by: Dave Hansen <[email protected]>
> > Signed-off-by: Kai Huang <[email protected]>
>
>
> Reviewed-by: Jarkko Sakkinen <[email protected]>

Thanks Jarkko.

Hi Boris,

Should we consider to get this into 5.13, since it is a fix?

>
> > ---
> > v1->v2:
> >
> > - Fixed typo in commit msg
> > - Added Dave's Acked-by
> > ---
> > arch/x86/kernel/cpu/sgx/virt.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/x86/kernel/cpu/sgx/virt.c b/arch/x86/kernel/cpu/sgx/virt.c
> > index 6ad165a5c0cc..64511c4a5200 100644
> > --- a/arch/x86/kernel/cpu/sgx/virt.c
> > +++ b/arch/x86/kernel/cpu/sgx/virt.c
> > @@ -212,6 +212,7 @@ static int sgx_vepc_release(struct inode *inode, struct file *file)
> > list_splice_tail(&secs_pages, &zombie_secs_pages);
> > mutex_unlock(&zombie_secs_pages_lock);
> >
> > + xa_destroy(&vepc->page_array);
> > kfree(vepc);
> >
> > return 0;
> > --
> > 2.31.1
> >
> >
>
> /Jarkko


2021-06-25 08:24:45

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH v2] x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed

On Fri, Jun 25, 2021 at 01:45:35PM +1200, Kai Huang wrote:
> Should we consider to get this into 5.13, since it is a fix?

We have considered it, have queued it, you're on Cc on the tip-bot
notification:

https://lkml.kernel.org/r/162377378414.19906.6678244614782222506.tip-bot2@tip-bot2

In the meantime, that fix landed upstream and will be in 5.13:

4692bc775d21 ("x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed")

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

2021-06-25 12:06:19

by Huang, Kai

[permalink] [raw]
Subject: Re: [PATCH v2] x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed

On Fri, 2021-06-25 at 10:22 +0200, Borislav Petkov wrote:
> On Fri, Jun 25, 2021 at 01:45:35PM +1200, Kai Huang wrote:
> > Should we consider to get this into 5.13, since it is a fix?
>
> We have considered it, have queued it, you're on Cc on the tip-bot
> notification:
>
> https://lkml.kernel.org/r/162377378414.19906.6678244614782222506.tip-bot2@tip-bot2
>
> In the meantime, that fix landed upstream and will be in 5.13:
>
> 4692bc775d21 ("x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed")
>

Oh sorry I thought the patch would go via x86/sgx branch, and I didn't monitor
the tip-bot2 mail which was moved to my local x86 folder. Thanks!

2021-06-25 13:53:18

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH v2] x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed

On Sat, Jun 26, 2021 at 12:04:53AM +1200, Kai Huang wrote:
> Oh sorry I thought the patch would go via x86/sgx branch

We usually send fixes through tip's urgent branches because they go
straight to Linus and not wait for the merge window.

> and I didn't monitor the tip-bot2 mail which was moved to my local x86
> folder.

That's not optimal because those tip-bot notifications are *exactly* for
that - to let the involved parties know that the patch has been queued.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

2021-06-25 23:08:26

by Huang, Kai

[permalink] [raw]
Subject: Re: [PATCH v2] x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed

On Fri, 2021-06-25 at 15:47 +0200, Borislav Petkov wrote:
> On Sat, Jun 26, 2021 at 12:04:53AM +1200, Kai Huang wrote:
> > Oh sorry I thought the patch would go via x86/sgx branch
>
> We usually send fixes through tip's urgent branches because they go
> straight to Linus and not wait for the merge window.
>
> > and I didn't monitor the tip-bot2 mail which was moved to my local x86
> > folder.
>
> That's not optimal because those tip-bot notifications are *exactly* for
> that - to let the involved parties know that the patch has been queued.
>

Got it. Thanks for remaindering.