From patchwork Fri Jan 29 09:05:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Roger_Pau_Monn=C3=A9?= X-Patchwork-Id: 12055483 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98277C433DB for ; Fri, 29 Jan 2021 09:06:13 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 29D9764E19 for ; Fri, 29 Jan 2021 09:06:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 29D9764E19 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.77811.141185 (Exim 4.92) (envelope-from ) id 1l5PjA-0003ob-1n; Fri, 29 Jan 2021 09:06:04 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 77811.141185; Fri, 29 Jan 2021 09:06:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l5Pj9-0003oT-Uo; Fri, 29 Jan 2021 09:06:03 +0000 Received: by outflank-mailman (input) for mailman id 77811; Fri, 29 Jan 2021 09:06:02 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1l5Pj8-0003oO-OH for xen-devel@lists.xenproject.org; Fri, 29 Jan 2021 09:06:02 +0000 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id cae8ac3c-a65f-4da4-8312-decf2bb7739f; Fri, 29 Jan 2021 09:06:01 +0000 (UTC) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: cae8ac3c-a65f-4da4-8312-decf2bb7739f DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1611911161; h=from:to:cc:subject:date:message-id: content-transfer-encoding:mime-version; bh=+Pwlva5qEZYQQd7eMR0UfQ5Q/mEV29/BMaP52I74Er8=; b=IPd+xtm+TpEraOTGx7bFaeeg7pMaDYX3GInSwgrPpW6yddEhuavk5mjy z4UBHkvslh37NK/QBq2HmI1PLXtP5SMwkvOyJHJ20EfJ7q5eeJ9ZVdBKm 7wT7AWpnB+vn++0DOK1IfkVrNGJIROCBNdtmQ5jgxnoCuJRuPvZWHacwX M=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: yUhqcFN9uStfSliSXHGpRcbe47B6ur7VzX8NTHdE1Ob1EM5WNWUWkcnMBw7EQKchV9o3r4gcEB Qh/4kOZuPEp7YI82GXXY1T60K6qKdxX4IY5ZNXczaUhdXsVBtX6bP6k22X39A9KLltKG7LKU6J OQi88AofkvXAr6PM768OLwPOvjYzEg2W2mTSTrkha3UDhQ8bSJFNhOh6CTRge/5Ey5KXUYU9Jq 8dnT3DBfx96bRcDJa7bXYmFfkcAxZS6Uxd70hhtg5xCUXqSO23qAGdiZvoRx5fVhlxbPbAK5Yh gu0= X-SBRS: 5.2 X-MesageID: 36511941 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.79,385,1602561600"; d="scan'208";a="36511941" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A0g4Z/4WxR6LbWo0Ay5FT32P5bOtKHfoQpH1Q/otUUqOLx3fFXY2EIXSJ6ZghzsIb1qFvQPmLtXSdg/aso7zOG9v8u8g6K2OyVGQkfVFejJgwXAU9chKlT5o6Ij3jnx0zhc8K7sl8G0SYUVwjQsUN08E0lBp7DgORmHqSPlWElMSwKX8m4ULjRX0gtmzzEbFjdvJitHjvcm9aOkpyE2TaArJYeoP4epopQLu11p9Kr5cqzxi1RXCbwTFWKoH7P2SE0H2Br/gxOOeFsZlvrdGTJs0M/FjhbgEWdZwPQFsq/LeUL2Yg6sIbeXtyGWjOWLcSJCEh8X0p7APhxm99dLBtw== 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-SenderADCheck; bh=lfK1gAKaxc06QxEGH4rsRQ2svR0t2dib7ZOV92E0sRA=; b=gI0llmaxQETsVYoBCMj6iWtIxA2RTbQhKWoIK3TvYapJKnGCfol+yn/zxwh6yDaO5Vs/fz0V4yJJMCfEQzMKZHf9DSZhWzYcDbsnjck/XwZBY4S1CpXXdbObuH+mDLdkhdtXNTlvnroPeee0OOK2HqAc2mRLvaZCBFjWmiCfU3Qjndg2fzqsYDgmnC2g9zNGJw4vtzrNp6zHkR+n2ArsmGjY0E8xmdTo+CDA+tsjQ/acKybe8o7BvhJj111fiONiU53kfmteeVm9+Hj/3KPQevIJQsAxUreqD8bKmruDClIslKHX/f5p6Kiq96ps0yfcHg7OPmGfNH6x4M5fSsxEyQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lfK1gAKaxc06QxEGH4rsRQ2svR0t2dib7ZOV92E0sRA=; b=mxgJnBVbdC19WYMBPkq0Fi2UhVhkJ+8A1vPKlr41Qkc6gZ4F6dqQ2uCUKhewVMoA9xUaA0JBHIjOiewHMJQ6AEhEPHdP5s0M1iJDsbuurxENAxWlE+I38NVFmJ4vT5lJh+vicsXFm2dMxW10VxygBZrIsuGsFJEkrhknq7YlnnU= From: Roger Pau Monne To: CC: Roger Pau Monne , Jan Beulich , Andrew Cooper , Wei Liu Subject: [PATCH] x86/pvh: pass module command line to dom0 Date: Fri, 29 Jan 2021 10:05:51 +0100 Message-ID: <20210129090551.15608-1-roger.pau@citrix.com> X-Mailer: git-send-email 2.29.2 X-ClientProxiedBy: MRXP264CA0012.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:15::24) To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a19e268e-7f19-4a86-7e9b-08d8c4351741 X-MS-TrafficTypeDiagnostic: DM5PR03MB2842: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QWPFPM1aD6DhUSMg69u8E1p3Pb5MI2hGOc5MgiVj4w4dhBdix4qqXJzKQISg0rQZu+ojLF46kup5eIoYj2Z3r0sA0TzPXQ0wrKiAKho4I7BeqhtZjvDadrod9oMxcTKh6dKjZAa4il2Jg/Hum/DE2Ylf8jw6/oTw2OyxkKA31ShLhq5WPygEFNA/CvTlG6/R7TuY7LBipAQEdFPkWqS2Y650ndJTO8e3nCUtCZtnrcljVTU8UpbC9JldsHb+VfeODXrtdN5TPKromC+GU5DUS1uQxIOO0lcYfkWhTNc0D6q/J4VCWtA+dJuVzG2iYlTqjktXibWcNA3vP38/Dh2I2k4mXwe4YQXmTpxWLAliPjRbDueCbXaqD0mDDwQeIqVBmsxzve6AzfIy6jPRgWmL3hNFunnJriUknpjnNjiUcigwcwQXZQw+mShxH1jPmD41rocmb8Rqg1BjAb7E75dhAJJIPnIvrrSzNgObTckEksQ423AD5Pn6jl7csSrokyDbNOXAB1Zc1LacFD2Hn8uKZA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(346002)(39860400002)(376002)(366004)(136003)(26005)(6666004)(66556008)(83380400001)(54906003)(86362001)(16526019)(1076003)(316002)(478600001)(5660300002)(66476007)(6916009)(66946007)(8676002)(2616005)(2906002)(36756003)(4326008)(956004)(8936002)(6496006)(186003)(6486002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?q?w8v0CyKigp1U9tA8Wuo6sDn5xrcKqK?= =?utf-8?q?uH/lasd6u3aIoqgS0hLW/1BW+p7+XvGEPGV67P41p7lP+eWGYPMUPwOhMTJOyA3aE?= =?utf-8?q?aR2Zc21Be84am/hB6s7FtXcYgYl90vzkW3R5Q7uMBopSRnGrT3qTd7HSNKE+qfvxr?= =?utf-8?q?/snbgr+qNoeenb0npikB3iQb/m79NVUaV778AkVcX5B3dVn3+WsQnNqvvzrM7R+6X?= =?utf-8?q?HwTdJYZPQnEeqvy8QzvFdhS1jtz0HAXmcxsf8qxWge+7SZ3A6poi+X8zhi5xYEODL?= =?utf-8?q?hMKNYEB4bYxxCiHcbIOkXKVQfi5E+e58F9yLtzkqvsehaEAuDX7XKcf4QcVQWBeQn?= =?utf-8?q?6G21oMFdT2euMAMQZl2vZlv3NpklOEF3TifPpTFJ//KaYfNIlxLKerQESFucoKHkB?= =?utf-8?q?WVYwR55ayLtyBcDrHSVOdccRQ+obY7t0uuVMxwfMAal8QTakpAx8R+Y9npmQV+j1I?= =?utf-8?q?x2aRlA6i9paTSd5Ni3fSXeT857tiqGVErVlrrR7yLwgpEye5DLfn20lwChLHbeF+U?= =?utf-8?q?Eevi1fA9LiAwGl4+q9Ja8baqLSG7pO1gPWNLyStmISgxfJDBbBQIjlNaNGNDFMGAq?= =?utf-8?q?xvanwuPUvN+1jTMgXNk2CgPCbEodfq9Xsssj4sY1qd2k8ANvvDcyMQMR/ZOskXA+3?= =?utf-8?q?8zy6IIglqOSwRHAGTVw/vnY+aOFd6ruLOy1To5PWb8C0jE4EujW4UyIu2nt5HLrAn?= =?utf-8?q?Z+ytpAjnNqwbSS8u5No+PgWHC64/toIwZnNY/nWOo7uqlUfF1pKq+tdsn1zikNnyU?= =?utf-8?q?f+vtV9IgozIO3ZXaeR8pylNCNGINTHu6ptq67ZI+neNMBvzk2R3uEuzf7dpp7U53E?= =?utf-8?q?1dTeN5VPc1ML6baW5Ho7zMZbw38W87WGJgNlqdgB2dbok5WmHwA1FkRkR/kAMxcul?= =?utf-8?q?qrT9LXnmCOLUUGG1rWR6Hsw4f+jMQQK0S0cNE1y8znTFOxoLpysAlPH2InDSvsx6B?= =?utf-8?q?fXVNoJFftNZd91CzEUhgPmXnZpl+JybNJ4PXpDWMAxRESWd9HcaZuLcwrlodqxY6J?= =?utf-8?q?zVS9XLFznokZYIlybRQk/nzQaFkhGM3d/03TTuAw=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: a19e268e-7f19-4a86-7e9b-08d8c4351741 X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2021 09:05:57.7674 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5f2xcm7HGuYeNj4Qd4k2UvYwvAv5dBNkgNaX7Fa/R3d9afnkUuRc+Xl7o2I6YR7uPkGnLob92+X4oxNvtdYAdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2842 X-OriginatorOrg: citrix.com Both the multiboot and the HVM start info structures allow passing a string together with a module. Implement the missing support in pvh_load_kernel so that module strings found in the multiboot structure are forwarded to dom0. Fixes: 62ba982424 ('x86: parse Dom0 kernel for PVHv2') Signed-off-by: Roger Pau Monné Acked-by: Jan Beulich --- NB: str cannot be made const because __hvm_copy buf parameter (that maps to str in the added code) is bi-directional depending on the flags passed to the function. --- xen/arch/x86/hvm/dom0_build.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c index 12a82c9d7c..5f9281ce30 100644 --- a/xen/arch/x86/hvm/dom0_build.c +++ b/xen/arch/x86/hvm/dom0_build.c @@ -617,7 +617,21 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image, mod.paddr = last_addr; mod.size = initrd->mod_end; - last_addr += ROUNDUP(initrd->mod_end, PAGE_SIZE); + last_addr += ROUNDUP(initrd->mod_end, elf_64bit(&elf) ? 8 : 4); + if ( initrd->string ) + { + char *str = __va(initrd->string); + + rc = hvm_copy_to_guest_phys(last_addr, str, strlen(str) + 1, v); + if ( rc ) + { + printk("Unable to copy module command line\n"); + return rc; + } + mod.cmdline_paddr = last_addr; + last_addr += strlen(str) + 1; + } + last_addr = ROUNDUP(last_addr, PAGE_SIZE); } /* Free temporary buffers. */