From nobody Fri May 3 11:10:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1621513857; cv=pass; d=zohomail.com; s=zohoarc; b=fGyZNXuS498TZl+t6rEzAjBtc86rA64cHcCteGnLUIBAgE5NDmd+9hlOs+XyRBnHnKWFJ0xzW692cpN19SY/cZCWUttwrajfU75e8A+DgQ3cEogIOHiQYEoe97U0QRPDoeKK3xiyhGVWzoblYIHokgxv84ISF63Tw52pW8B3UoM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621513857; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FX66gErbVbl+5wBpfx4Y0txO4O300Tono3Zv/ra1bB4=; b=bwE0ARcnxc96e3oq96t6j3Wluu/LRV2OKemSIzfStCvQmwH1wqsm+SZmNg6/W/lifmFQPIh75pmTNRUnGyTcHtLJPx0bn/i85nhVN0HF48N8kicR2MBv8Q4bi/b4xsA24byTrDCqJQaaBK4tKpKoy2yAm5vnuVVJ+OQbywu23Zw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1621513857627493.90162235722164; Thu, 20 May 2021 05:30:57 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.130930.244993 (Exim 4.92) (envelope-from ) id 1ljhp7-0007kE-Ge; Thu, 20 May 2021 12:30:45 +0000 Received: by outflank-mailman (output) from mailman id 130930.244993; Thu, 20 May 2021 12:30:45 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ljhp7-0007k7-DM; Thu, 20 May 2021 12:30:45 +0000 Received: by outflank-mailman (input) for mailman id 130930; Thu, 20 May 2021 12:30:44 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ljhp6-0007iu-4H for xen-devel@lists.xenproject.org; Thu, 20 May 2021 12:30:44 +0000 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id c04ed44d-6193-42e6-9876-75e697ba86b7; Thu, 20 May 2021 12:30:43 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version 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: c04ed44d-6193-42e6-9876-75e697ba86b7 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1621513842; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=pz3YuJzmpguFtK4yG9GS6ET957dZMF7imY4C1CnCr5M=; b=dkUUsjX3nOFYCn183Md2Hpy5F5qbUpj9Dn1wH4GKqtS6iZ4WKKBnlc7D EFjX8AS4EpFelEwYA+UlxFRvesz/OcuqsOxTwG6UpagamkLHrYREHo1am AUnh/X1+6sill9oxL+8fj63uDLBdKi4AFqwcma2X5nzfbgKiGDM6De878 w=; Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: UQ8p2LR5tn+Kk8TxP1ZzDXvXlH1AdSAjqKyRvU9kGyT0vjqa9E58tMvHvxxZZD5sny7PF0AHM2 opprexNebWA1W9KI3+xaeTu4ljwQqmpIoYBjCWbfQJyECcNmY2F0MZWaM06o3qoj+R4CNe4uw1 HnPre1+iq8FgTqYM8M1roxsDimWzPy+OeK8OEy8MpNR5ZqG2hiTjE0kKPa8WqYksK71gvnoKFA DcwuEqNmEPw2v1EOz3/eh5X6jHd9gT9jSZdDukj19EtDH3iSnJ+GE5sphsTPDZqUK1FFr4SvNf w+g= X-SBRS: 5.1 X-MesageID: 44217040 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-Data: A9a23:N2uh5KsZttZfLkdMLd0HVZBMR+fnVEteMUV32f8akzHdYApBsoF/q tZmKT+HOanYMWPxc4x2aNvkpB4DuMeBydFmT1Nt+XpnHyxA+JbJXdiXEBz9bniYRiHhoOOLz Cm8hv3odp1coqr0/0/1WlTZhSAnk/7OHtIQMcacUsxLbVYMpBwJ1FQzwYbVvqYy2YLgW17U6 IusyyHiEATNNwBcYzp8B52r8HuDjNyq0N/PlgVjDRzjlAa2e0g9VPrzF4noR5fLatA88tqBb /TC1NmEElbxpH/BPD8HfoHTKSXmSpaKVeSHZ+E/t6KK2nCurQRquko32WZ1he66RFxlkvgoo Oihu6BcRi92M4OQk8lAeiNyCih6bZZE85vMcHWg5Jn7I03uKxMAwt1rBUAye4YZ5vx2ESdF8 vlwxDIlN07ZwbjsmfTiF7kq3J1LwMrDZevzvll6yj7UF7A+SI3rSKTW/95Imjw3g6iiGN6CO 5BANmIzNHwsZTViYVIoOc8RmNu4rXjTfR9V8kOuorUOtj27IAtZj+G2bYu9lsaxbdVYmAOUq 3zL+0z9AwoGL5qPxDyd6HWui+TT2yThV+o6FaK63u5nhkWJwW4eAwFQUkG0ydG7gEOjX9NUK 2QP5zEj66M18SSDTMT5XhC+iG6JuFgbQdU4O/Yh9AiHx67Q4gCYLmsJVDhMbJohrsBebSMu/ k+EmZXuHzMHjVGOYSvDrPHO92r0YHVFazVbDcMZcecby4bujt04o0/mdPx6Garltd/+PTqhz i/f+UDSmI4vYd43O7STpA6d2mj998mRE2bZ9S2NADv9s1oRiJqNItzwsAKKtZ6sOa7EFgHpg ZQSpySJAAni57mjkzaRCMEEAb2k/fqMNDC0bbVHRMJ6rmrFF5JOZ+ltDNBCyKVBaZxsldzBO hW7VeZtCHh7ZirCUEOPS9jtY/nGNIC5fTgfahwxUjapSsQpHDJrAQk3Oh/Kt4wTuBFzwcnTx qt3ge7zVC1HWMyLPRKdRvsH0K9D+8zN7TiKGPjGI+Cc+efONRa9FOZeWHPTP79R0U9xiFiMm zqpH5DRkEs3vSyXSnS/zLP/2nhafCBnWsiu85I/myzqClMOJVzNwsT5mNsJU4dkg75UhqHP+ HS8UVVf013xmTvMLgDiV5ypQO+HsUpXxZ7jARERAA== IronPort-HdrOrdr: A9a23:iNbysKkbAw+YZby64nQEDs2+MavpDfMeimdD5ihNYBxZY6Wkfp +V8cjzhCWftN9OYhodcIi7SdG9qADnhOVICOgqTPyftWzd1FdAQ7sSibcKrweAJ8S6zJ8l6U 4CSdk1NDSTNykcsS+S2mDRfLgdKZu8gcaVbIzlvhRQpHRRGsRdBnBCe2Sm+yNNJDVuNN4cLt 6x98BHrz2vdTA8dcKgHEQIWODFupniiI/mSQRuPW9q1CC+yReTrJLqGRmR2RkTFxlVx605zG TDmwvloo2+rvCAzAPG3WO71eUYpDKh8KoMOCW/sLlUFtzesHfqWG2nYczBgNkBmpDv1L/tqq iIn/5vBbU215qbRBDOnfKk4Xic7N9p0Q6u9bbQuwqeneXpAD09EMZPnoRfb1/Q7Fchpsh11O ZR03uerIc/N2K3oM3R3am9a/hRrDvCnZPiq59hs5VVa/pWVFaQl/1rwKpxKuZJIMvX0vFXLA BeNrCv2B8NSyLlU5nwhBge/DWDZAVNIiu7 X-IronPort-AV: E=Sophos;i="5.82,313,1613451600"; d="scan'208";a="44217040" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NuQJOlW44zMV0DU9DZ7GUj4KzeXKrI/FevVEzMkDv1dMHMSyIgD6dPQaSeZCXHb2CcZx3K6L1+6SaYZKNzmqeepS1vS+zLdNV72qGJU7oN4nU95yZeKtSN/Dci12bPT8kc2B/pSQZjO4WSsD87MQ1gWWmTgp84tKZemhrv7aQUr54DDRalrEcdscHVnlDyAqlp5GYadaSEjYUfAeFJgL0fko2p2fCMiymi3hhqYVB1oq+BNJvfCusNJ7r70fV6vwbzEntNOxJjwOMkpEONbggdAK37ndZ3AMF54kcLbhOZqlEBXWBPDQaZU0Cxpb3F2Lj9X1lp6QZZ5NQq4cnY8qLw== 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=FX66gErbVbl+5wBpfx4Y0txO4O300Tono3Zv/ra1bB4=; b=VlavZ2t0d7r1aUz3XadaFS9t6ea6JhE3tYH6vPLmSUlvCcjR40koHFMTEXGKpwQWBPPAzSx3vvrWliIACFqVA1jiWaz1hWMfeJE4Nhe6YQoDgQV4FEJLHk1ljD5aA4ibBkHtOdc6DxmlkJP/PbkAVwZVbhEghQUSiEcCGgzIAo4CB9Vm6JiEEy9rwdhf99vqVGOte6X4IL4+uKDAFIaUBvA7+1IqOD/KmwrQFO7upolZFMkhTWm/gjwrC0yqsUoQS09z0aLBDEQtdUyGUhxaeYxlJI43o1CtVXnjCRMPcsp92V3eUCrIKMq/RYXOMkmypi8jI25PK0PoIl8UJdv3IA== 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=FX66gErbVbl+5wBpfx4Y0txO4O300Tono3Zv/ra1bB4=; b=GuIqUt9aFXVbVmZch71cjhCkoZzGF8ayxsH/goGq+9nRYWty/28lfyX87IIZo3WjM8DfNbPtspHU3tGRQzTNR4NIMoUVetqAMDSHmGtrAwNj2Yasnxt8rjAK+paObQ9BvDYMNymdyB1BVCgL6yroiGHkxQsi0pTZSv+qW4Qbp7A= From: Roger Pau Monne To: CC: Roger Pau Monne , Andrew Cooper , George Dunlap , "Ian Jackson" , Jan Beulich , Julien Grall , Stefano Stabellini , Wei Liu Subject: [PATCH v3 1/2] libelf: don't attempt to parse __xen_guest for PVH Date: Thu, 20 May 2021 14:30:11 +0200 Message-ID: <20210520123012.89855-2-roger.pau@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210520123012.89855-1-roger.pau@citrix.com> References: <20210520123012.89855-1-roger.pau@citrix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MRXP264CA0040.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:14::28) 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: 460f9abf-1ebf-4ce4-7cf1-08d91b8b0dbf X-MS-TrafficTypeDiagnostic: DM6PR03MB3738: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RAvq3dkgZeXoN83o2IeCLj0MS6uuk7h7p7KeW7jHRFBnv1eP25IvjwpEkZKxIdLF9we9RaEORhXktUMhmglRJdOZ80cQNGwiWQB4GVy+Pwdcq9p3CfRzPoq+bAb2vBrsc9SZIghauOaPeiGfPEC/0JIpPx21BMc9V4EnkWEtrp1UZE/UhxBnn5Wl+ikhwoKfT6riR1CbTxMR0BJ47TTvKLmAjlXTvhbPGSecVIEtk5enZAYx6KqzWvSDC0SWJHDZ1JeRbqZNDGD5epiDZGcpHN/lDes5i8yYANmlwH7NtqZOnWDrWmn0Zi3//amiPycZvnWNfdvIQFsCFmt9/tzy+shZ99ahJxIZog8jd8plrJOZSALepyPgYOif6zcE2tvqUQkLlG+0EClf7MOdk1J1J2/w2pZdWtSz8z8eiK8hwhRauJYIi8JSdms5iCzXZcD0oCacqfRzvFLAeau5Izb/ifJPr1RbO57/iC/sDMMecz5wU2vr89p2SzbIAFgTNRUP5GBJcavsZBvhYirOPmTrFvjwhvF13kZe7pwZ1uUYinvEm6D6a1egu6xtiTKod/W9gs24BTx9JEwMeVugEWQulM3Qc3TEIe6Hv9abzpBHVo8= 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)(366004)(396003)(136003)(346002)(376002)(39860400002)(1076003)(478600001)(66476007)(86362001)(8936002)(2906002)(36756003)(4326008)(6916009)(6486002)(5660300002)(4744005)(8676002)(6496006)(66556008)(38100700002)(26005)(83380400001)(316002)(66946007)(2616005)(186003)(16526019)(6666004)(956004)(54906003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?VDYxNHduODA5Y1RsVGlENU8vWmFWbFhxbnM1cUk5THBhUmQ3Vyt6MlR4dzVy?= =?utf-8?B?R1FyNS9WeUxjVUt6ZU9oZjlkU2UxR2J2ams2L1JVNit4VjJwdnZnbnZWVXl2?= =?utf-8?B?RndqanM2ODIrejFUVEpKQzRLRTEzSEk2d0xLM0E0Ynk0WHNaOWZ2UmtKcVJq?= =?utf-8?B?cHlmMUcwMFU2eUN2TmJsZ2IvQncwbVFjMC9ZQlYrdGlQU0lQeUpUb3lkRFpH?= =?utf-8?B?NjF5bUdDbFV6KzZWNUd0bkQ2elliUW16aGo2VXByNlg4bVRCNlNvbjhNc0VT?= =?utf-8?B?ZEZaMVBVbUg4UDM0eGJlYjFoWGFydi9ydjF1YTlCQTJlR0dRSC80MkZNL0sr?= =?utf-8?B?VEt2eU9WSnNPYmZhTlRkOWpTOHdERTFKaCtFZlhRNVpZZk9XVHRUYTQ0SEE1?= =?utf-8?B?aEJUbTBZa3Jkc2xGMVNBdkhiak9OSStiU1d1MFFQUDRBVVhTcTZNSnFhMjI5?= =?utf-8?B?eXZCa3JuUFlpbXZDUGxBMm9IaUt6TUw0SXZ1OUl3cDNtajRxeG9MNisvOTdh?= =?utf-8?B?RFpEa3c0eXBsVGpFZUxZNXVxZTZYQ2pCOFhrSWdRMFY2Z2FZS0xDSUtiTFJZ?= =?utf-8?B?c0ZtZ3h5azY0L2ErYzVvd1lMVEFvdFYrNlNCUHFSbU5abUJETHFVYU5XdkN5?= =?utf-8?B?WjhnaEpEQkJjVER0dnByeUlYR1hRUE1uTmVYbjc3Q0UrQXhFQkhZQkIzSUJk?= =?utf-8?B?dkc4NTFId1MwaHpyM1NZdW84ZVVoOFFaVDJXRFpMbnJzU0l2VnlYcDJ5S3dS?= =?utf-8?B?bnNGOXVvU3NOelVhYWpXQkRkWm9UNDlPKzRpTk42N3l0MUJ4eUlNd2pTajBQ?= =?utf-8?B?Ulg4dEdlaUgwNjRlUmlVOG1lN1QxWmhjYjVmY0dOSzdrZ1A3emNhd1JHWUp5?= =?utf-8?B?ditUUS9LU0JNckVMNW9STEFpVGYzWW9mRWlhcW5WQU9hQktVRE9wMlgyQkpE?= =?utf-8?B?WHdZclpMVkx0NW14WkJTOGJQWWZ5eHN5aWRFN1M0dUNudng3KzlDbHJhN0dO?= =?utf-8?B?ZXRRNTNNTTY1YUtiMlNvT20rS0xJR0pRS1ROdTF5N003WUxjeENHcGxOYi8w?= =?utf-8?B?M2xOVXJBbXVmVEN2TUJINXNsbXpRTHRSYXJ6N3lpdjdzeXQ4bzJCZnBVVDF6?= =?utf-8?B?Z0JQRFNZS2dpalBxRXpMWGxlbEkvYmRlWktwelk5bnZWKzFRQkNXL1NWa1hJ?= =?utf-8?B?SGJ6TUc1V2srNmE1dTk3OGZFZUZrc3hNN3p2QVJreW1EUVJMTnJxNFNPMElW?= =?utf-8?B?MVV1OWV0SXNoYnlpSlAwT2FwNUthREd6QzhQZUsyTC9menV6ajdzdzdTbTB4?= =?utf-8?B?d2d3eWtveVdxemRneXNWbTY1bE9Fc2tOMnREbm54bDA5bkc2VnNjN2dSS05i?= =?utf-8?B?WWV1Mk90SFNYODRHLytEYm40TjJLaFFTckFhaUJpaWlhSU1sSjVQbERudGdz?= =?utf-8?B?TUE5VW4rcFBtRnVuN0JBc1puN2lpTm9na0krRk1uUWJKZHI3MGhFRGdPNi8w?= =?utf-8?B?UmkwVCtYNDg4NTIybXEwSDczVlJFWjQrYmUzQ1hGbXRVc3dGRGR2eUpkUU1L?= =?utf-8?B?ZUxsY2VyYU56WW5ERlFmRGh1cXJqU3FUcmFGUXhBQ1QrbjRzQjFlcTU1R3Ns?= =?utf-8?B?SHNCZGx4Q3Q4Rzg5VzZWZGt4WElDbE14VXVYSENWM2lRcnRpSG1BazMwWjZ5?= =?utf-8?B?SzZSRXdPVm9PRjZ4VTNrSzNxUG1OWEN1cDBRbVZndXhwc2VIL0ZNY3ZWMmFx?= =?utf-8?Q?6gotedSg4ZPVnNHIBurAnfhCGvmuXJ33YFebcOu?= X-MS-Exchange-CrossTenant-Network-Message-Id: 460f9abf-1ebf-4ce4-7cf1-08d91b8b0dbf X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2021 12:30:29.6793 (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: p+vAAGOKYR39RxVx8DC259yl+hCE62yg5XP/O0txNEV50b2Axmn3iClfmq2GHTq10oakq/O6UbqFxPyT+nHMlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3738 X-OriginatorOrg: citrix.com X-ZohoMail-DKIM: pass (identity @citrix.com) The legacy __xen_guest section doesn't support the PHYS32_ENTRY elfnote, so it's pointless to attempt to parse the elfnotes from that section when called from an hvm container. Suggested-by: Jan Beulich Signed-off-by: Roger Pau Monn=C3=A9 Reviewed-by: Jan Beulich --- Changes since v2: - New in this version. --- xen/common/libelf/libelf-dominfo.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/xen/common/libelf/libelf-dominfo.c b/xen/common/libelf/libelf-= dominfo.c index 69c94b6f3bb..abea1011c18 100644 --- a/xen/common/libelf/libelf-dominfo.c +++ b/xen/common/libelf/libelf-dominfo.c @@ -577,10 +577,8 @@ elf_errorstatus elf_xen_parse(struct elf_binary *elf, =20 } =20 - /* - * Finally fall back to the __xen_guest section. - */ - if ( xen_elfnotes =3D=3D 0 ) + /* Finally fall back to the __xen_guest section for PV guests only. */ + if ( xen_elfnotes =3D=3D 0 && !hvm ) { shdr =3D elf_shdr_by_name(elf, "__xen_guest"); if ( ELF_HANDLE_VALID(shdr) ) --=20 2.31.1 From nobody Fri May 3 11:10:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1621513856; cv=pass; d=zohomail.com; s=zohoarc; b=HL1r4OUQO3kCDdFK2lli30IbQvnDPvi5OEF2t2HnxG+jbY1/SCtDzfKTpdhhA/2fX/woo4ulhz04VKzZbbUKLEBTXuQ2RiZhnSO24RZz00C5HG7xAptxM0v68/wCABHDLGQ3k/NHNz+8mbGPb8ny2fCRCDHspKIO6Ebs/pFEwBM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621513856; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sPwA3OmQRR4Le01oTZkBmItUHWI1w1PcWSsZAP5z+lQ=; b=Jr7cBNSxY67ZwAaEx2xSG3Y8ZZzP6qpmuaHoeV5IXJXuXHSfHxRQxA4ji3c+AMoTcIq8GGV5Heh09rIjNc4FJRJpwUWw9KGz/KQsaPjrKvjZfNIn5W/qDhWH9dp8M6VIH1cNYVmmecb6DD0k3Zvf4m1FTiMdQokqHFrkSjtFne0= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1dmarc=pass fromdomain=citrix.com); dmarc=pass header.from= (p=reject dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1621513856868247.64210090758013; Thu, 20 May 2021 05:30:56 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.130929.244982 (Exim 4.92) (envelope-from ) id 1ljhp4-0007QT-2a; Thu, 20 May 2021 12:30:42 +0000 Received: by outflank-mailman (output) from mailman id 130929.244982; Thu, 20 May 2021 12:30:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ljhp3-0007QM-Un; Thu, 20 May 2021 12:30:41 +0000 Received: by outflank-mailman (input) for mailman id 130929; Thu, 20 May 2021 12:30:40 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ljhp2-0007Pl-QU for xen-devel@lists.xenproject.org; Thu, 20 May 2021 12:30:40 +0000 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id d2883251-3f26-41aa-86d1-c13d1837d1ef; Thu, 20 May 2021 12:30:39 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version 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: d2883251-3f26-41aa-86d1-c13d1837d1ef DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1621513839; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=P40Hog//rApTFLCIQlAqgR9U8c+aP1G/ygiI3z8p7k0=; b=AeegSZUuGiBrUEAYekEQn69dGtYsj7CdOOKHSI2lSTaGHlzbpITeuewP RYJ5GM2EeT/ezaz4OZzpFIlauV7N+be9keMBaa7gZFXFb3lxEZO89SmBr eE8gfebyEVaCgH95H23T9cuFHmHPTUWii03TnjdbzZzKH74h7OUf3sPO2 c=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: ymovIQQs5e0mFckladA2MZsPtjhMjBw94wJ3E9sQlrAIJ3s36NOWbMkbKwCKNHSps9op3cAgOa DhKzN3eu5f5KuRRcG4HcVnvdM7B2yIUB/fdDP3+/F39FBfnGYPUryOuSXk2v7YzJWkqc94mvvY IC+zF6sONS3oZKV5xPVMcvNnMPGvaBxwmfytsrefQC97rj5XYg2IXLY43xCYQ3jqfFHNnHjG9B RBDNLWTls0gr0UvE0CKCFgsMi8m/av3r+Ygq7RD85jBRRwfFZZvzcqgHKYN9GjShp1X6oRnh57 +UY= X-SBRS: 5.1 X-MesageID: 44609525 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-Data: A9a23:tRL2O6AxBJrg4hVW/zTjw5YqxClBgxIJ4kV8jS/XYbTApGgihTwBx 2pMDDiHafjeNmCneNh/a4zk9kxXsJLXyNdlQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA xA2M4GYRCwMZiaH4EjratANlFEkvU2ybuOU5NXsZ2YhH2eIdA970Ug6w7Ng09Y26TSEK1jlV e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJMt3yZWKB2n5WuFp8tuSH I4v+l0bElTxpH/BAvv9+lryn9ZjrrT6ZWBigVIOM0Sub4QrSoXfHc/XOdJFAXq7hQllkPgyl PgVqKfveDxqFYDMt+Eld15nASZhaPguFL/veRBTsOSWxkzCNXDt3+9vHAc9OohwFuRfWD8Us 6ZCcXZUM0DF3bveLLGTE4GAguw5K8bmJsUHs2xIxjDFF/c2B5vERs0m4PcEgGlo150UQJ4yY eJDMDgzNw3DSSFIeWscB7UGs76Rol/GJmgwRFW9+vNsvjm7IBZK+KjgNp/Zd8KHQe1Rn12Ev STW8mLhGBYYOdeDjz2f/RqEh/DNtTP2XpoIE7+1/eIsh0ecrkQMDDUGWF39puO24ma8Ud9CL 00f+gI1sLM/skesS7HVXQC8oXOClg4RXZxXCeJSwBqW1qPe7gKdB24FZj1MctorsIkxXzNC6 7OSt4q3X3o16uTTEC/NsO3Nxd+vBcQLBSxeSHcZdlQ02JrIjYEciyrrCelxF7Hg27UZBgrML yC2QDkW3utJ1JRahvTjoDgrkBr2+MGRE1ddChH/GzL9t1koPOZJcqT1sQCz0BpWEGqOorBtV lAqnNKCpMQHEJ2AjiCEROhl8FqBvK3eaWO0bbKCBfAcG9WRF5yLJto4DNJWfh0B3iM4ldjBO h67hO+pzMUPVEZGlIcuC25LNyjP8UQHPYi9Ps04k/IXPckrHON51HgxNSZ8IFwBYGBzyPpia P93gO6HDGoACLQP8dZFb7xEjNcWKtQF7T6DFPjTkkX8uZLDNSH9dFvwGAbXBgzPxPjf+1u9H hc2H5bi9iizp8WuM3GLrtZLdQ5iwLpSLcmelvG7v9Wre2JOMGogF+XQ0fUmfYlklL5SjeDG4 je2XUow9bY1rSSvxdmiApy7VI7SYA== IronPort-HdrOrdr: A9a23:l4asdaEJfmp6Jzo7pLqEIceALOsnbusQ8zAXPo5KKSC9E/bo9f xG88536faZslkssTQb6Km90cq7MBDhHPxOi7X5VI3KNDUO+lHYSr2Ki7GN/9SJIUbDH4VmuZ uIHZIeNPTASXVCyePAzCbQKadE/PC3tI2ln+Xm9FEoZh1rbqwI1XYfNi+rVmB7Xgt+Prx8MJ aH/MJIqwGtdh0sH6CGOkU= X-IronPort-AV: E=Sophos;i="5.82,313,1613451600"; d="scan'208";a="44609525" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nTlk9r4seE+eYt4symQZ80G+KoxqSpLW0PGRI3kXbMvTnTRtrGF+XCpOyXp4yq4qY7b9nb1bSzwcLS7YVXDS6xT9zVFHDe1cBLwz479jv+oV61WNXNu7g4wZOq6/bpPN3B6i2Si817+wJA+BzpShwnqrZWwnwEvrr0EEWp8b+gpvLxIEnOx6dWbjJ4oQMBEv1OnsULB1Gviu2zt0zKrWGoWWVaiZiaH81MX/D2RuvaPUgsBbFRM/sv09umU5U6yL7yaAK1MfvEQMhAeEeFzhRGcvLVE5nlhdVq/FuKTbjtWqtn0ytdVdfns0qwRoUu0KfEmPaGGrpVoUzQEmz3JX1w== 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=sPwA3OmQRR4Le01oTZkBmItUHWI1w1PcWSsZAP5z+lQ=; b=bq5YSQx+CSkSkcswmJFHA91PTNnV/dQp/QVG2BOmayP8UyKXor/I31xb1pCPQecKgLeNt66Bbd+RUWPJ0Fd2iN8hnov0kbCyrUZyvMENmx/uVhGMOVlcH5UjPWwkMBLdOJBdvbaIj1yvTdrB6La786ZVhNCTOFYDpXWUA1n+qbJ2LKo/KM8n6dgjh2o0xhFay79gjgXtxGBAHfee+r52LvB6qAnQUh+EyUxXFCr8wZwIRUIGJl6C5cB6XADS47wgQAn4PUN6P7oqU+fwCAbJPzgL9KuaXM+KiC5iJqNq/+tGwgN/6efsD7oXlS30SMJiiYkwC7PM5QBeGC7MXzdeyQ== 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=sPwA3OmQRR4Le01oTZkBmItUHWI1w1PcWSsZAP5z+lQ=; b=K4crQvpwKBmEFdafEZ0mZLJRrz7BlL0DwYEFHAXuca66Zq/Elkr9FNcgck2dpmuY+X96ORvUa1WvFkz9T5uqkeDaJ/gXw2KL/51vsNBeuY2C5838q130lgJJ2FKmi8t5RB/MnF7a5F+BC6/B1Mkb5s6uYKkfrASSvssc6lrpMYk= From: Roger Pau Monne To: CC: Roger Pau Monne , Ian Jackson , Wei Liu , Andrew Cooper , "George Dunlap" , Jan Beulich , "Julien Grall" , Stefano Stabellini Subject: [PATCH v3 2/2] libelf: improve PVH elfnote parsing Date: Thu, 20 May 2021 14:30:12 +0200 Message-ID: <20210520123012.89855-3-roger.pau@citrix.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210520123012.89855-1-roger.pau@citrix.com> References: <20210520123012.89855-1-roger.pau@citrix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MRXP264CA0029.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:14::17) 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: b333a26a-36aa-4d7b-8ce0-08d91b8b10f3 X-MS-TrafficTypeDiagnostic: DM6PR03MB3738: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IPKZcnKuHIHSCyHzpOcEIkrISU7QSx9q2LTB+7aHBcOJJ+fp/blj5Zj5rZWqP4+1FM7C0S374+hxtAf2TDgVYhzCe+Kbu9o4XABMYuOAQWYmx2sYe5KFyhQxzIrwBhB6GXoQRxaQijIOwqahYohXHgHSBn6J1l1fr8aqvCAG2LEx3/ZvszZICDBbyAZdJFltjTzqN1dQspnxxBn23Kz6t4SDzq5OYhruWDTvbWrar1UqteH3WPefFkvIanGe4ebqUAWvYJKBqAv+AaKj32EckObVJ2KAB4BmHMI0oWDSfjoby9DJiTEyMjR5UJHeMfY4jAefXLwv/sC7kla2Wizyc6uPn6jdKNmw4MWwEU4lPELBMFTw0ZyYg2nVmLl8wl72Rlmv3XOzddcbhiNw2SkSCKtPh39N3AxN4S2QxqYqoV+OTpT1/CT/2DIscCI3ev6BrsGq6HxuDNzlYJCys1fkP809mq87KbF2EiAfT7zBQ9eA3yLGAQW0MVoOKN4oeDrYXcJmOexErnvVax+013y3p0cnRpmIdkLwZstG8zJHkWFENt1k8m2p0TdaN3p6vQ4X17uVvoUe4DPEWMsNn2FotJzXHhUQjkhbIlFtnz3pqU8= 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)(366004)(396003)(136003)(346002)(376002)(39860400002)(1076003)(478600001)(66476007)(86362001)(8936002)(2906002)(36756003)(4326008)(6916009)(6486002)(5660300002)(8676002)(6496006)(66556008)(38100700002)(26005)(83380400001)(316002)(66946007)(2616005)(186003)(16526019)(6666004)(956004)(54906003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?dGJKNm5mNjRWWlgya21TRlR4elJ3RHFFUXBOSjVZckJVRXVEODZva2QvNzVB?= =?utf-8?B?TllYVU1ETloyY1V5UUErZnVxVlVnQVJJbVF3RTd2Z2VFVmlZNVp4aUxUN0lo?= =?utf-8?B?bktmRGtybHNwb1RoUDVIdmJwbHhxM2pVOHdwa0djbjNKWHpsdlAvV3AvV1Nr?= =?utf-8?B?ckNsUzlhdHRmcG8zNVd5T1JjMk9RVDlMa0pRZGo4UjBoK0VzclVCRDV4SlNP?= =?utf-8?B?Q2UzZitnRitUZklpTlBzYitWa2NweHY4NTZyMC9qN3hrYjh1RUhzYlNaQkRl?= =?utf-8?B?ZDFLWlVtU2VZZVhtV3BlYkxZMkxBQ1cxdHFZUnB1TzRiL05EUVFUcTV3VHpv?= =?utf-8?B?b2hnVFpXWTd1anJYNTFxZkJ5MzFjcVJUcEhDYnBPclFhRkVxMHpkOWxnQStV?= =?utf-8?B?ODdTQUFMR2hHUDRXNmlrYUl4OE5kQ0g3WXdDNFpCOVZHeEU0SGtzUGQ1YnZa?= =?utf-8?B?cmIvL2R6OEc4TDEzQThQTVdlVmRhb0pwejF1akZrS0IvLzh5TmxDUURzV1BC?= =?utf-8?B?cEswZ2VVREdEdTRCRVhYandCSmIrV3hFN1pNUjNiRU5PS1phRUxzdWNTbHcv?= =?utf-8?B?bHpWOXRvT0RiaHpMSGwvc1NmaGRqTkh6YTAycWpKQ1NZYnQrYnpBd3ZlaXRM?= =?utf-8?B?MFZydERBeWE2ajE4V1I4aWpkRnFnYXF5MXZGbmF3N0haTUsrQkZDMStpR29S?= =?utf-8?B?YUlzZXRMUzlYK2Zpb0czc2lhTnNrdXUwOUtkQ3MzZk1NdmRMY0JiNnN6SXZ5?= =?utf-8?B?Q0hWTy9IN3hZVXpTdjI3T1ZkK1ZqYmFuUnZ5TmJ0Umc4OUs3a3ZLVTg5MkdB?= =?utf-8?B?UmptSmVFYTF2WUdlOGRqbE5EZFZIclB5M2NWN1J0K0g3Zm1ZbEpNdnd5eWU5?= =?utf-8?B?WWJpUHpkVlB6aldDVUZObS9pT0ZkL3h6bEtFcU9zL2lEZ2xvd2VkWVRzWXZJ?= =?utf-8?B?Y2NjbEhLUWVTdmNJYzFCU0M3YVRhbFZnVFRvVU5vQndYZUdJVlF3amlMeWxE?= =?utf-8?B?cUxEUDlkRktlcHZHUzVtZUNSYjFsZVVSSlJTZmg0WDRTblZMV1ZqRTFCTWlj?= =?utf-8?B?Vi9kL0R2WjZBZGFKTlY0Z3VGaWVSVEZXUldsb1k2WHorcFlvMFpHZ3ZFRk9y?= =?utf-8?B?aGhQZk5VWmNpMkFDWEhxR0daVzlZaWkzeFB2L2JMRHRoMXp2N3dqaWdrTEFS?= =?utf-8?B?empQQzFIYlRzQ2xoZmtXcHJNWnhGdEM1NzVCdzhzazMzWnpjZlZCMHVYYlNT?= =?utf-8?B?Z0VWMDZBNlIyMHRxOExQcFRrc3RFNlg4a2VVNHpqdFhDZk1xamg4QlZGaFpI?= =?utf-8?B?NzdXbHZGMGxXajVGU2MvQVdKYWxGMVJVRjgvQ1hGTStOcExSN1NBRjdkL3lD?= =?utf-8?B?M2sydTkyWFg3YTlYbnRFYWgvZW56S3FFK3NtZk0vSm0rdzBYREpZWjFkT29B?= =?utf-8?B?OEhFRUFncUxlam01aG4rekhYeDZ6eU9mY2M5OEhBN1NTTmRXN2FCeUs0MGpU?= =?utf-8?B?NXhtN1YrTkRBejlNS2s2Z2VDRVVUL3NOT1Q0QXNzU1laaDJicGJXZ3pvN1VQ?= =?utf-8?B?YXlJdWpDT09UWmpoWUgrOXBBYXdxVXVCOXJ1S2NvRlQxWjliZmNoNlhMVzFi?= =?utf-8?B?Z2UvSklHajhHNGdzL2tRUnRKdWRIdmlrRjh5T2grcUlPL0tXL3pkK2ljMWJ1?= =?utf-8?B?ZmpzNWIvcFBuZGVnWVNKR0Rhd1gydWlMT3NGdGZXTnJJaGRRMU1KL0NEdkRB?= =?utf-8?Q?OMQzFcwdn9FWiq9wBWeXvV/cXCFxuQ/MteoeBh/?= X-MS-Exchange-CrossTenant-Network-Message-Id: b333a26a-36aa-4d7b-8ce0-08d91b8b10f3 X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2021 12:30:34.9701 (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: mkN/5OwhO9xxQtvZa59V58rE6CDfuoSVpsXGHLoNJ7rRzEFcAE2EGpMc4nxxN96HN36vsvKLQee6PMdvEa5u4w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB3738 X-OriginatorOrg: citrix.com X-ZohoMail-DKIM: pass (identity @citrix.com) Pass an hvm boolean parameter to the elf note parsing and checking routines, so that better checking can be done in case libelf is dealing with an hvm container. elf_xen_note_check shouldn't return early unless PHYS32_ENTRY is set and the container is of type HVM, or else the loader and version checks would be avoided for kernels intended to be booted as PV but that also have PHYS32_ENTRY set. Adjust elf_xen_addr_calc_check so that the virtual addresses are actually physical ones (by setting virt_base and elf_paddr_offset to zero) when the container is of type HVM, as that container is always started with paging disabled. Signed-off-by: Roger Pau Monn=C3=A9 Reviewed-by: Jan Beulich --- Changes since v2: - Do not print messages about VIRT_BASE/ELF_PADDR_OFFSET unset on HVM. - Make it explicit that elf_paddr_offset will be set to 0 regardless of elf_note_start value for HVM. Changes since v1: - Expand comments. - Do not set virt_entry to phys_entry unless it's an HVM container. --- tools/fuzz/libelf/libelf-fuzzer.c | 3 +- tools/libs/guest/xg_dom_elfloader.c | 6 ++-- tools/libs/guest/xg_dom_hvmloader.c | 2 +- xen/arch/x86/hvm/dom0_build.c | 2 +- xen/arch/x86/pv/dom0_build.c | 2 +- xen/common/libelf/libelf-dominfo.c | 43 ++++++++++++++++++----------- xen/include/xen/libelf.h | 2 +- 7 files changed, 37 insertions(+), 23 deletions(-) diff --git a/tools/fuzz/libelf/libelf-fuzzer.c b/tools/fuzz/libelf/libelf-f= uzzer.c index 1ba85717114..84fb84720fa 100644 --- a/tools/fuzz/libelf/libelf-fuzzer.c +++ b/tools/fuzz/libelf/libelf-fuzzer.c @@ -17,7 +17,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t si= ze) return -1; =20 elf_parse_binary(elf); - elf_xen_parse(elf, &parms); + elf_xen_parse(elf, &parms, false); + elf_xen_parse(elf, &parms, true); =20 return 0; } diff --git a/tools/libs/guest/xg_dom_elfloader.c b/tools/libs/guest/xg_dom_= elfloader.c index 06e713fe111..ad71163dd92 100644 --- a/tools/libs/guest/xg_dom_elfloader.c +++ b/tools/libs/guest/xg_dom_elfloader.c @@ -135,7 +135,8 @@ static elf_negerrnoval xc_dom_probe_elf_kernel(struct x= c_dom_image *dom) * or else we might be trying to load a plain ELF. */ elf_parse_binary(&elf); - rc =3D elf_xen_parse(&elf, dom->parms); + rc =3D elf_xen_parse(&elf, dom->parms, + dom->container_type =3D=3D XC_DOM_HVM_CONTAINER); if ( rc !=3D 0 ) return rc; =20 @@ -166,7 +167,8 @@ static elf_negerrnoval xc_dom_parse_elf_kernel(struct x= c_dom_image *dom) =20 /* parse binary and get xen meta info */ elf_parse_binary(elf); - if ( elf_xen_parse(elf, dom->parms) !=3D 0 ) + if ( elf_xen_parse(elf, dom->parms, + dom->container_type =3D=3D XC_DOM_HVM_CONTAINER) != =3D 0 ) { rc =3D -EINVAL; goto out; diff --git a/tools/libs/guest/xg_dom_hvmloader.c b/tools/libs/guest/xg_dom_= hvmloader.c index ec6ebad7fd5..3a63b23ba39 100644 --- a/tools/libs/guest/xg_dom_hvmloader.c +++ b/tools/libs/guest/xg_dom_hvmloader.c @@ -73,7 +73,7 @@ static elf_negerrnoval xc_dom_probe_hvm_kernel(struct xc_= dom_image *dom) * else we might be trying to load a PV kernel. */ elf_parse_binary(&elf); - rc =3D elf_xen_parse(&elf, dom->parms); + rc =3D elf_xen_parse(&elf, dom->parms, true); if ( rc =3D=3D 0 ) return -EINVAL; =20 diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c index 878dc1d808e..c24b9efdb0a 100644 --- a/xen/arch/x86/hvm/dom0_build.c +++ b/xen/arch/x86/hvm/dom0_build.c @@ -561,7 +561,7 @@ static int __init pvh_load_kernel(struct domain *d, con= st module_t *image, elf_set_verbose(&elf); #endif elf_parse_binary(&elf); - if ( (rc =3D elf_xen_parse(&elf, &parms)) !=3D 0 ) + if ( (rc =3D elf_xen_parse(&elf, &parms, true)) !=3D 0 ) { printk("Unable to parse kernel for ELFNOTES\n"); return rc; diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c index e0801a9e6d1..af47615b226 100644 --- a/xen/arch/x86/pv/dom0_build.c +++ b/xen/arch/x86/pv/dom0_build.c @@ -353,7 +353,7 @@ int __init dom0_construct_pv(struct domain *d, elf_set_verbose(&elf); =20 elf_parse_binary(&elf); - if ( (rc =3D elf_xen_parse(&elf, &parms)) !=3D 0 ) + if ( (rc =3D elf_xen_parse(&elf, &parms, false)) !=3D 0 ) goto out; =20 /* compatibility check */ diff --git a/xen/common/libelf/libelf-dominfo.c b/xen/common/libelf/libelf-= dominfo.c index abea1011c18..24d1371dd7a 100644 --- a/xen/common/libelf/libelf-dominfo.c +++ b/xen/common/libelf/libelf-dominfo.c @@ -360,7 +360,7 @@ elf_errorstatus elf_xen_parse_guest_info(struct elf_bin= ary *elf, /* sanity checks = */ =20 static elf_errorstatus elf_xen_note_check(struct elf_binary *elf, - struct elf_dom_parms *parms) + struct elf_dom_parms *parms, bool hvm) { if ( (ELF_PTRVAL_INVALID(parms->elf_note_start)) && (ELF_PTRVAL_INVALID(parms->guest_info)) ) @@ -382,7 +382,7 @@ static elf_errorstatus elf_xen_note_check(struct elf_bi= nary *elf, } =20 /* PVH only requires one ELF note to be set */ - if ( parms->phys_entry !=3D UNSET_ADDR32 ) + if ( parms->phys_entry !=3D UNSET_ADDR32 && hvm ) { elf_msg(elf, "ELF: Found PVH image\n"); return 0; @@ -414,7 +414,7 @@ static elf_errorstatus elf_xen_note_check(struct elf_bi= nary *elf, } =20 static elf_errorstatus elf_xen_addr_calc_check(struct elf_binary *elf, - struct elf_dom_parms *parms) + struct elf_dom_parms *parms, bool hvm) { uint64_t virt_offset; =20 @@ -425,12 +425,15 @@ static elf_errorstatus elf_xen_addr_calc_check(struct= elf_binary *elf, return -1; } =20 - /* Initial guess for virt_base is 0 if it is not explicitly defined. */ - if ( parms->virt_base =3D=3D UNSET_ADDR ) + /* + * Initial guess for virt_base is 0 if it is not explicitly defined in= the + * PV case. For PVH virt_base is forced to 0 because paging is disable= d. + */ + if ( parms->virt_base =3D=3D UNSET_ADDR || hvm ) { parms->virt_base =3D 0; - elf_msg(elf, "ELF: VIRT_BASE unset, using %#" PRIx64 "\n", - parms->virt_base); + if ( !hvm ) + elf_msg(elf, "ELF: VIRT_BASE unset, using 0\n"); } =20 /* @@ -441,23 +444,31 @@ static elf_errorstatus elf_xen_addr_calc_check(struct= elf_binary *elf, * * If we are using the modern ELF notes interface then the default * is 0. + * + * For PVH this is forced to 0, as it's already a legacy option for PV. */ - if ( parms->elf_paddr_offset =3D=3D UNSET_ADDR ) + if ( parms->elf_paddr_offset =3D=3D UNSET_ADDR || hvm ) { - if ( parms->elf_note_start ) + if ( parms->elf_note_start || hvm ) parms->elf_paddr_offset =3D 0; else parms->elf_paddr_offset =3D parms->virt_base; - elf_msg(elf, "ELF_PADDR_OFFSET unset, using %#" PRIx64 "\n", - parms->elf_paddr_offset); + if ( !hvm ) + elf_msg(elf, "ELF_PADDR_OFFSET unset, using %#" PRIx64 "\n", + parms->elf_paddr_offset); } =20 virt_offset =3D parms->virt_base - parms->elf_paddr_offset; parms->virt_kstart =3D elf->pstart + virt_offset; parms->virt_kend =3D elf->pend + virt_offset; =20 - if ( parms->virt_entry =3D=3D UNSET_ADDR ) - parms->virt_entry =3D elf_uval(elf, elf->ehdr, e_entry); + if ( parms->virt_entry =3D=3D UNSET_ADDR || hvm ) + { + if ( parms->phys_entry !=3D UNSET_ADDR32 && hvm ) + parms->virt_entry =3D parms->phys_entry; + else + parms->virt_entry =3D elf_uval(elf, elf->ehdr, e_entry); + } =20 if ( parms->bsd_symtab ) { @@ -499,7 +510,7 @@ static elf_errorstatus elf_xen_addr_calc_check(struct e= lf_binary *elf, /* glue it all together ... = */ =20 elf_errorstatus elf_xen_parse(struct elf_binary *elf, - struct elf_dom_parms *parms) + struct elf_dom_parms *parms, bool hvm) { ELF_HANDLE_DECL(elf_shdr) shdr; ELF_HANDLE_DECL(elf_phdr) phdr; @@ -592,9 +603,9 @@ elf_errorstatus elf_xen_parse(struct elf_binary *elf, } } =20 - if ( elf_xen_note_check(elf, parms) !=3D 0 ) + if ( elf_xen_note_check(elf, parms, hvm) !=3D 0 ) return -1; - if ( elf_xen_addr_calc_check(elf, parms) !=3D 0 ) + if ( elf_xen_addr_calc_check(elf, parms, hvm) !=3D 0 ) return -1; return 0; } diff --git a/xen/include/xen/libelf.h b/xen/include/xen/libelf.h index b73998150fc..be47b0cc366 100644 --- a/xen/include/xen/libelf.h +++ b/xen/include/xen/libelf.h @@ -454,7 +454,7 @@ int elf_xen_parse_note(struct elf_binary *elf, int elf_xen_parse_guest_info(struct elf_binary *elf, struct elf_dom_parms *parms); int elf_xen_parse(struct elf_binary *elf, - struct elf_dom_parms *parms); + struct elf_dom_parms *parms, bool hvm); =20 static inline void *elf_memcpy_unchecked(void *dest, const void *src, size= _t n) { return memcpy(dest, src, n); } --=20 2.31.1