Re: [PATCH] x86/xen: Remove use of VLAs

From: Laura Abbott
Date: Tue Apr 17 2018 - 19:34:06 EST


On 04/17/2018 12:16 AM, Juergen Gross wrote:
On 16/04/18 15:27, Boris Ostrovsky wrote:
On 04/13/2018 06:11 PM, Laura Abbott wrote:
There's an ongoing effort to remove VLAs[1] from the kernel to eventually
turn on -Wvla. The few VLAs in use have an upper bound based on a size
of 64K. This doesn't produce an excessively large stack so just switch
the upper bound.

[1] https://lkml.org/lkml/2018/3/7/621

Signed-off-by: Laura Abbott <labbott@xxxxxxxxxx>
---
arch/x86/xen/enlighten_pv.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index c36d23aa6c35..d96a5a535cbb 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -421,8 +421,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
{
unsigned long va = dtr->address;
unsigned int size = dtr->size + 1;
- unsigned pages = DIV_ROUND_UP(size, PAGE_SIZE);



Isn't dtr->size always either GDT_SIZE or 0?

GDT_SIZE - 1 :-)

- unsigned long frames[pages];
+ unsigned long frames[DIV_ROUND_UP(SZ_64K, PAGE_SIZE)];

So we could just go with one frame and modify the BUG_ON() further below
accordingly.


Do you want to just remove the loop as well since we're never going
to do more than one frame? We end up with net code deletion.

Thanks,
Laura


Juergen