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
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
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
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
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!
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
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.