[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/3] multiboot2: parse vga= option when setting GOP mode
- To: Jan Beulich <jbeulich@xxxxxxxx>
- From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
- Date: Tue, 4 Jul 2023 12:57:46 +0200
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+iq6Px3XuOK7jou86nQAx7Hx9wTtRpzX0xayRfgmwls=; b=P/NlHWJ4wdpPFNQGSDF81HNzgDwztxG+1OuqFzG+PI1H3gkZSMq1twfKT2vpkB7kt1wGE08XGtizvhJWmhplI7DBeJ1lVOEQw1Mm644HFLLmx6D70wACEh2pcRlfebdWYXcH5heMIkj/ZyVSseN07WPyQR/FJly1l34QOI4+gBFYNLYtEBDy1n2qMys2P2z+eK/qs/TiLC6bny5GgJKNyh5eSzk5jVubTFj7WoAG65xiS/qJaRbx4tOjNwQmr4/l+EIvDMmQHpT9Ymulxk8wO33o8QDj/fgjvgLemrAWl4txDMwR7eg0VUF8mh5ExrsB/c6SFJqCO2v4+XY/5Uk4jg==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dcnqmzJti7XUz5H2g53I/yQSung+rI5GgfEghGw28MKX6iLYW/R04MAvazLDnkpL4fJDhGGrExH2qi3dXYDquz3j3Ni1/QBrM5eoN/IOcjQRC7md4JF0u4TZxndgKKlzf/pGLhNHW57NgqdQYw4qoCDAJqi6uGTAwmxC5ESbeeQn6VdrdN0iVChU2Nrn65n75sZ4fHqPl77pkj4YtGXErBKGjcEuOSrTsAoYo4/baN1x9DVt2AjTJsfnE0tOZL7sGIR/4uSGn3DdqxqIfKiMMo7CMtcCwBH8QegUuef12cRJ1/Z2e8H3epyUaDOBoEOP+KzGuP58pl6X2/UKucY27Q==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
- Delivery-date: Tue, 04 Jul 2023 10:58:14 +0000
- Ironport-data: A9a23:iMvzO6p/gvhneDEfjriSJk03CIJeBmI+ZBIvgKrLsJaIsI4StFCzt garIBmFbKqPajCjKNBzaoq2oU4F6J/TnYJhGwRpq3o1F3tH9puZCYyVIHmrMnLJJKUvbq7FA +Y2MYCccZ9uHhcwgj/3b9ANeFEljfngqoLUUbKCYWYpA1c/Ek/NsDo788YhmIlknNOlNA2Ev NL2sqX3NUSsnjV5KQr40YrawP9UlKq04GpwUmAWP6gR5weBzyVNVvrzGInqR5fGatgMdgKFb 76rIIGRpgvx4xorA9W5pbf3GmVirmn6ZFXmZtJ+AsBOszAazsAA+v9T2Mk0MC+7vw6hjdFpo OihgLTrIesf0g8gr8xGO/VQO3kW0aSrY9YrK1Dn2SCY5xWun3cBX5yCpaz5VGEV0r8fPI1Ay RAXADMzPx2RmMTx+5uycdBPoeg6cOrsLKpK7xmMzRmBZRonabbqZvySoPN9gnI3jM0IGuvCb c0EbzYpdA7HfxBEJlYQDtQ5gfusgX78NTZfrTp5p4JuuzSVkFM3jeiraYKIEjCJbZw9ckKwv GXJ8n6/GhgHHNee1SCE4jSngeqncSbTAdtPTeTop6A76LGV7jQ4L0MmVHSXmPK0p2WTBIhgJ 2tO/AN7+MDe82TuFLERRSaQonSJoxodUNp4CPAh5UeGza+8yxmdLngJSHhGctNOnN87Q3km2 0GEm/vtBCdzq/uFRHSF7LCWoDiufy8PIgc/iTQsSAIE55zvpd81hxeWFtJ7Svft05vyBC36x C2MoG4mnbIPgMUX1qK9u1fanzaroZuPRQkwjunKYl+YAspCTNbNT+SVBZLzsZ6s8K7xooG9g UU5
- Ironport-hdrordr: A9a23:4vwpk64rJf72rU9s9wPXwamCI+orL9Y04lQ7vn2ZFiY5TiXIra qTdaogviMc6Ax/ZJjvo6HkBEClewKlyXcV2/hpAV7GZmXbUQSTTL2KgbGSoAEIXheOjdK1tp 0QD5SWaueAamSS5PySiGfYLz9j+qjgzEnBv5ai854Hd3APV0gP1XYaNu7NeXcGPjWuSKBJYq Z1oaF81kqdUEVSSv7+KmgOXuDFqdGOvJX6YSQeDxpixBiSgSiu4LvaFQHd+hsFSTtAzZor7G CAymXCl++emsD+7iWZ+37Y7pxQltek4txfBPaUgsxQBiTwhh2ubIFBXaTHmDwuuumg5Hsjjd GJiRY9OMZY7W/XYwiO0FDQ8jil9Axrx27pyFeej3emicvlRAgiA84EoY5CaBPW52cpodk5ic twriqknqsSKSmFsDX25tDOWR0vvk2ooUA6mepWq3BES4MRZJJYsIRa1kJIF5UrGj789ekcYa BTJfCZwMwTXUKRbnjfsGUq6NuwXk4rFhPDeUQGstz96UkioFlJi28jgOAPlHYJ85wwD7Ne4f 7fD6hunLZSCucLcKNUHo46MIWKI12IZSiJHHOZIFzhGq1CEWnKsYTL7LI84/zvUIAUzaE1hI /KXDpjxCEPknrVeI2zNaBwg1PwqD3XZ0Wu9ige3ek0hlTEfsurDcXZI2pe1vdJoJ0kc7/msr iISdZr6sTYXBrT8LZyrnLDsqZpWAcjue0uy6IGsgG107X2A7yvkNDnW9DuA5eoOQoYewrEcw g+tX7IVYh90nw=
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On Wed, Jun 07, 2023 at 12:10:28PM +0200, Jan Beulich wrote:
> On 01.06.2023 15:05, Roger Pau Monne wrote:
> > @@ -807,7 +830,41 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle,
> > EFI_SYSTEM_TABLE *SystemTable
> >
> > if ( gop )
> > {
> > - gop_mode = efi_find_gop_mode(gop, 0, 0, 0);
> > + const char *last = cmdline;
> > + unsigned int width = 0, height = 0, depth = 0;
> > + bool keep_current = false;
> > +
> > + while ( (last = get_option(last, "vga=")) != NULL )
> > + {
> > + if ( !strncmp(last, "gfx-", 4) )
> > + {
> > + width = simple_strtoul(last + 4, &last, 10);
> > + if ( *last == 'x' )
> > + height = simple_strtoul(last + 1, &last, 10);
> > + if ( *last == 'x' )
> > + depth = simple_strtoul(last + 1, &last, 10);
> > + if ( *last != ' ' && *last != '\t' && *last != '\0' &&
> > + *last != ',' )
>
> You check for an appropriate terminator here.
>
> > + width = height = depth = 0;
> > + keep_current = false;
> > + }
> > + else if ( !strncmp(last, "current", 7) )
>
> Don't you also need to do so here, and maybe even ...
>
> > + keep_current = true;
> > + else if ( !strncmp(last, "keep", 4) )
> > + {
> > + /* Ignore. */
>
> ... here?
Hm, quite possibly for correctness. I felt it was relevant in gfx- as
to avoid things like: gfx-1024x786x32x64 being handled, but the same
could apply to passing on option like current-bar.
Will try to generalize the terminator parsing so it applies to all
options.
Thanks, Roger.
|