From nobody Mon Apr 29 11:56:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1504125925484319.22017707967996; Wed, 30 Aug 2017 13:45:25 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 4AA8F21E70D55; Wed, 30 Aug 2017 13:45:19 -0700 (PDT) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0070.outbound.protection.outlook.com [104.47.36.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E254E2095BB85 for ; Wed, 30 Aug 2017 13:45:15 -0700 (PDT) Received: from brijesh-build-machine.amd.com (165.204.77.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Wed, 30 Aug 2017 20:45:17 +0000 X-Original-To: edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=8TPLJy9hunbfVjG8Dln5pVSIVO4TxqJb1NwqWSMnVYM=; b=s3DcHE/hC7TE4gZSkJbHV4IZt/JqN5O6L2nYAMcOgRtso/arB1vkE5hNU27eGZzQP2ZItuos9d5QsYPEI30aZVXHnbwiZZXTwgDB0JFfRiZHuPRbINrEUmDaNIShOQrfvfT8hCIIAsJFdYOVEgCid6SHtbBFV4lJiwu0WRgz/CQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: edk2-devel@lists.01.org Date: Wed, 30 Aug 2017 16:45:00 -0400 Message-Id: <1504125903-29816-2-git-send-email-brijesh.singh@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504125903-29816-1-git-send-email-brijesh.singh@amd.com> References: <1504125903-29816-1-git-send-email-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0040.namprd22.prod.outlook.com (2603:10b6:301:16::14) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: aeb34b5c-28cd-4453-3107-08d4efe80623 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:ipHRrOynyXl487Ka+RpR1y2IuuxTLezDGcO7IWx8joXD/SjG6B3bHeLscpwLxnMAkm38OS63rcONpNB8rUPk5gQc8yVQjhjoUaiTl6GQ3WQovB7/R0AyElgbG22/msiLR1FpsR9jgppEMWY1RGvbctpcLjbBERxAVRtMd8TCSyuTuhY2Wx4spdbgUIRF+kjcHdn+hs3t/vy6V1vrzkMqAvbaMGvzxu4JZlMXTEP9+cyyTV/B3BhrQe9oqcb0twwZ; 25:Jfk+RDArfyDg1tuLrWQHVWXEKjNzmpdZ4lzI3DasB4rjaezpO5CWBO/qc9Q5hOkHYUHCg+7cJhuhmWAa4mLcDbfjgnsi4HFKkDiJOupsP62Qxxu6GDWq6KZpuR6qD/xSIp7yci8cU/RUa9upQ++lIGXbCed6Npci0IuJDq5BnOt6yHDUe8Yp73mmE7larK3tt4j1eq5l9C3xsrNVFZ+p3/CoxhE5tLYLDRuBPKxL96gEyVjnfeeMWBL1vP8NtiUrHAS9xASigG8WG+3gJUW0CNzbupFC7pINd+EZigX3S9wg3WYWFKFpJHL0LZ+/1rRRk06JeOVQ8k5CwhbQvD/+Ow==; 31:mdpHXBQAZAaAty4vonmJa6yh5QJ9crqqZX5iw9NtIlDwTvCD3fdewIVCVuj74QHRn97imSIjTxBX4skQjjzPWQCPVf+jbih/+oIRliuK5v7Dn1uN938/SdTGlCkCKy8u934rTEjb8rO23rHKPelW/Nxf6ytGn6FqhSxm1jJiO0e7JoXeuC97wbm0YYepIx3jtbYK3zHAIgUeuI9+Qgi/8/5mgBzaiLupFB+aNo3W844= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:5mO+F7z2WxiNpL6WFlG93o1xmyTEFMgcuiJ3jyXwrPbewjGigXD9oMWJfkuDrPhfhyS9r00A4mzmx0S+7KPKk2CGaaRgQysMusW99a984gn16L6On/3rRhtyPe8S2lwpgjGUPUSNZ4BYe+NWBoI3WNue9uygOG1lnCzZ/ZrytBIVD+NKEIosYDzyH57dFFE4cLd11gVAlGsM4couYdE2Os8TAhLTFDDOpsVREncBIUyAl2vaoUA2zCUn/PAcSgeP5sJt0dsMH0RpXEhd6CRjIRVK8Q+MnSVYu3CcUIfUVGJbu1pXvKS62yAKNf7Uyt1cpIGBaJ+yZgr2BJebuHrutBK82nDoP12HKWgkKPIba1CCMoWSlyhmESYVkrwVlaMK72S4l8W8NfjWJyQNg43kIl7h99zPAs/yHirAuXni8lluGoP7zlBGZKRjrZR+GSTImwN4V9Rt5X54igmuaeUYZq3aXBcwWzNrhApMj/SKZ5Gb3kbzj9siFNQV4B4ikwmV; 4:nw3TjOwXo7SgtPFPgw4y0bQEiNnvc5DAf9rHfNa3WRDcWEmjO5KaX5I8Zm4nZPhv7gURmPD2e5dVvaq2R4bNwH3YDcoHyANqWbK+iYZ646w0wFiHG5boNHEd2DzLcG8i2y+PXlePPK1iTswttwi6NuMa/V2hM2CiP/GjjvsD4j5AlKZ7KtlKR3rSPgvGknyZXdskSkVO297OURCv6scn3YlNmGbMjnUW4zcRLo6tlPmIfM3bVYJvpyQ7zbR6RPudRHfO0MhwrNqodxguJIExh9ggQ3boAFtoLUfS2nVIadJmanht4Zj01WLXh4JLpFmuKqHVsn6ObjIjB3ctLqpekg== X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR12MB0154; X-Forefront-PRVS: 041517DFAB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(199003)(189002)(51234002)(50466002)(86362001)(53936002)(3846002)(6916009)(54906002)(2950100002)(6116002)(478600001)(7736002)(33646002)(68736007)(189998001)(2906002)(48376002)(66066001)(47776003)(4326008)(8676002)(81166006)(97736004)(2351001)(50986999)(25786009)(2361001)(8936002)(101416001)(106356001)(5003940100001)(50226002)(105586002)(6666003)(110136004)(81156014)(36756003)(305945005)(53416004)(6486002)(42186005)(5660300001)(76176999); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:brijesh-build-machine.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:8tEKv04stusARSQWwYzUr8TPeSalfGOutBJQ5N4No?= =?us-ascii?Q?IR7MUfaDBY1ZbNzGIVM3r+sppJlj5Q/mnZS3PwviKqQvVXg6eh7Nbn270tpA?= =?us-ascii?Q?YdvbB3HF4DP1Xqzqff+Rj68qL0K5S2WpaPmMROA4k9mrwovRmo/SiGlwy6hi?= =?us-ascii?Q?yj6JZ6hc3wiuShYKoW7AityZ8Rh8/+/sFOoHum4CJC5tXh6XEqU+otHRULsI?= =?us-ascii?Q?bsJ84UqyWAQ5gdFPBfr0REYWfu6pRCIjzRka4dvHr1ycjFQlC9zpRbeu6LcP?= =?us-ascii?Q?F2jJlYXKoulSQyZ/ddhgz3tdTsgV536sdVQCpbKhLx5yXzQNTymvTIy3lRD4?= =?us-ascii?Q?MAl2Qgc5I0QslbB0AsgUZ0JMDQPhx2NMv0Wuvyw/wfjWKI0YeH/n4VTUl0n+?= =?us-ascii?Q?JGm6IH3/f3Ioj81Csoeer0EKE3Uw5Vvwjv4zdWfPEqUV6lEx3D33izB4p7t5?= =?us-ascii?Q?lpN9wEjmgsp8yy3IOFZh9cn1tkALd9C7oBBdXclrT7RH7G02yis3Z08yAlJt?= =?us-ascii?Q?PjzuDdfUhjUtqLNnnvTThc1yWrkJe55rxKsNROkU2FfhDxoR2miccHlk4K1Z?= =?us-ascii?Q?bpcoPbo1Fym/nuWdODHpTk73Mgz9Dep6cM6Yp9J403aCJDKeljEEoPXNzgev?= =?us-ascii?Q?NFCIXduFCHtQmY4h24Ki3mytsep8bUKmIP9DmZjRdEE8vXtfWZf0E/+gG8Oi?= =?us-ascii?Q?5gADw5Fn+DdPRR9OleghLRlcUfuEQUOJ/0wuMuE6S09fWgCAwDrdkr7ic2n4?= =?us-ascii?Q?f9UNsX4qVerkje4jD/ajkt2zG11IdcjYHM171HTGAgdpGAV9pBloFRkupcIL?= =?us-ascii?Q?cPjMTgepBIygzy4rhBG437pd5YuBUvu209FcsMljPcm0hthTwik4mv9f/6cq?= =?us-ascii?Q?GH3Mo6PJpLK6qhoZiSEI8YHuRe+gbtSimB6LaZ61gk9LDaxuOZgfRnlaYs/v?= =?us-ascii?Q?NR+/8qHe04w/1FJRv/Jfd+N1VxOovrcEreIeJiWYKO79EBoZSdvceEy66w1t?= =?us-ascii?Q?uKIDaGbHzxA5AwQ+tF3too0KsKsl3BaxdhYDAnhWoWNMbZsPaeJGDnk7/dQ7?= =?us-ascii?Q?s/8shnEBdlzIFumemL7TlXTRw1FryiWroVUEv2Lh5ZiXUbdYA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:Zb9Pm7WJlmvw//OlkxPJYDGLskePk+v1n8E3tSaNx3tqgGtqVxTypswXDztPn7cftg+H0IDGsVyr4Fmghwn+6RiJa4Tl3zP0H5qbJfxy8McYwuIeKECNfPed25/qx8zBCq5ttMBwC7F1bu2VxXKm9nlc1ouh988rA8gEfLynvqVtDB1bDGh4Qw/7gEk7fbhYj7lUthzcp6H2aH/bCBDmq/Pkb1ooKBDN0LzKbIwSpvQBC+IO9IpOdrSjAvM1KNtYBqch8xk9gUwX7JZx+6tcTkYO5Q4AnVL3c3NKWE1F84f+m3a4L4VT+VyhSFMK9DMxIkiSChjczqNEGYYauLHzzg==; 5:nWaxlF6QNyS/NEbCGI3bZjRFKOJIAFbrzc3NWBxq8Rm9CkuqB7s/LMwby0m2FI18PcCVFlujuudS3jyBD4kyU/eKW2jvSbfCoQVV6j0jddkIAh9K2s022KDVOUITWy+ne+a2yUyvTj2J0Dtq/cbAyw==; 24:VHp+yBFOk4DPhsR+0ZGkysPoo9U/xXMfiDsBftKVK8bfUFDuVrwJ50imLlG5F3t24gszDDsyJOYVEWRC9lIrEbyuoR3eySbjIVZKfqW7agg=; 7:S3jtmQVkuA1/gTpWERepl7FyHCjvulPIM6H6iLceo3st5XCjiZ/2Jq7WHnHAWBsAwuduzzEs+U7kdJkGC4RAKMKacox1YToRRo3YlkF/fyjvtC1QUiIqkjVJ6fxY1qia4QcuWcWUHQxq0f6oxcCRisv8v+bAx0LY+XhPO1g+OrpLvZmBuLWvt0DiHBNQKeXSYbvExPTw9j08cUrDTpCF0U0WSXhA1M36K5F+Nc+o/pI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:5NZI5AShK2wfqtMVZM2nOamhFdAKUmQtKJEBOyANNlWIMU8wY3Cx5ajAN+2eOhUJNcjhWfr6k+q57sbkS50yO+5KRxxXtK8OHinmty4VsE2XzmGGbW61IYAQv1ziEPjGUiKOVztr8P64bCoxBGjzUTPVV2doO67cMOVSBhAjU139vRLrvbRSeYn1K1m6lPgbA+YpxT021sE7nvYL+qx6M6xKeuoXERu2NG140Y8HR4QHaJoLz6Q6VlC3axfVKWed X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Aug 2017 20:45:17.3315 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 Subject: [edk2] [PATCH v2 1/4] OvmfPkg/VirtioScsiDxe: map VRING using VirtioRingMap() X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jordan Justen , Tom Lendacky , Laszlo Ersek , Ard Biesheuvel Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" When device is behind the IOMMU then driver need to pass the device address when programing the bus master. The patch uses VirtioRingMap() to map the VRING system physical address to device address. Cc: Ard Biesheuvel Cc: Jordan Justen Cc: Tom Lendacky Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Reviewed-by: Laszlo Ersek Signed-off-by: Brijesh Singh --- OvmfPkg/VirtioScsiDxe/VirtioScsi.h | 1 + OvmfPkg/VirtioScsiDxe/VirtioScsi.c | 47 +++++++++++++++----- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.h b/OvmfPkg/VirtioScsiDxe/Vir= tioScsi.h index 6d00567e8cb8..05a6bf567263 100644 --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.h +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.h @@ -60,6 +60,7 @@ typedef struct { VRING Ring; // VirtioRingInit 2 EFI_EXT_SCSI_PASS_THRU_PROTOCOL PassThru; // VirtioScsiInit 1 EFI_EXT_SCSI_PASS_THRU_MODE PassThruMode; // VirtioScsiInit 1 + VOID *RingMap; // VirtioRingMap 2 } VSCSI_DEV; =20 #define VIRTIO_SCSI_FROM_PASS_THRU(PassThruPointer) \ diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c b/OvmfPkg/VirtioScsiDxe/Vir= tioScsi.c index a983b3df7b9c..5e72b1a24b59 100644 --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c @@ -707,7 +707,7 @@ VirtioScsiInit ( { UINT8 NextDevStat; EFI_STATUS Status; - + UINT64 RingBaseShift; UINT64 Features; UINT16 MaxChannel; // for validation only UINT32 NumQueues; // for validation only @@ -839,25 +839,42 @@ VirtioScsiInit ( } =20 // + // If anything fails from here on, we must release the ring resources + // + Status =3D VirtioRingMap ( + Dev->VirtIo, + &Dev->Ring, + &RingBaseShift, + &Dev->RingMap + ); + if (EFI_ERROR (Status)) { + goto ReleaseQueue; + } + + // // Additional steps for MMIO: align the queue appropriately, and set the - // size. If anything fails from here on, we must release the ring resour= ces. + // size. If anything fails from here on, we must unmap the ring resource= s. // Status =3D Dev->VirtIo->SetQueueNum (Dev->VirtIo, QueueSize); if (EFI_ERROR (Status)) { - goto ReleaseQueue; + goto UnmapQueue; } =20 Status =3D Dev->VirtIo->SetQueueAlign (Dev->VirtIo, EFI_PAGE_SIZE); if (EFI_ERROR (Status)) { - goto ReleaseQueue; + goto UnmapQueue; } =20 // // step 4c -- Report GPFN (guest-physical frame number) of queue. // - Status =3D Dev->VirtIo->SetQueueAddress (Dev->VirtIo, &Dev->Ring, 0); + Status =3D Dev->VirtIo->SetQueueAddress ( + Dev->VirtIo, + &Dev->Ring, + RingBaseShift + ); if (EFI_ERROR (Status)) { - goto ReleaseQueue; + goto UnmapQueue; } =20 // @@ -867,7 +884,7 @@ VirtioScsiInit ( Features &=3D ~(UINT64)VIRTIO_F_VERSION_1; Status =3D Dev->VirtIo->SetGuestFeatures (Dev->VirtIo, Features); if (EFI_ERROR (Status)) { - goto ReleaseQueue; + goto UnmapQueue; } } =20 @@ -877,11 +894,11 @@ VirtioScsiInit ( // Status =3D VIRTIO_CFG_WRITE (Dev, CdbSize, VIRTIO_SCSI_CDB_SIZE); if (EFI_ERROR (Status)) { - goto ReleaseQueue; + goto UnmapQueue; } Status =3D VIRTIO_CFG_WRITE (Dev, SenseSize, VIRTIO_SCSI_SENSE_SIZE); if (EFI_ERROR (Status)) { - goto ReleaseQueue; + goto UnmapQueue; } =20 // @@ -890,7 +907,7 @@ VirtioScsiInit ( NextDevStat |=3D VSTAT_DRIVER_OK; Status =3D Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, NextDevStat); if (EFI_ERROR (Status)) { - goto ReleaseQueue; + goto UnmapQueue; } =20 // @@ -926,6 +943,9 @@ VirtioScsiInit ( =20 return EFI_SUCCESS; =20 +UnmapQueue: + Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, Dev->RingMap); + ReleaseQueue: VirtioRingUninit (Dev->VirtIo, &Dev->Ring); =20 @@ -965,6 +985,7 @@ VirtioScsiUninit ( Dev->MaxLun =3D 0; Dev->MaxSectors =3D 0; =20 + Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, Dev->RingMap); VirtioRingUninit (Dev->VirtIo, &Dev->Ring); =20 SetMem (&Dev->PassThru, sizeof Dev->PassThru, 0x00); @@ -995,6 +1016,12 @@ VirtioScsiExitBoot ( // Dev =3D Context; Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0); + + // + // Unmap the ring buffer so that hypervisor will not be able to get + // readable data after device reset. + // + Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, Dev->RingMap); } =20 =20 --=20 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Mon Apr 29 11:56:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1504125928194485.5193977430149; Wed, 30 Aug 2017 13:45:28 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 88CAC21E70D44; Wed, 30 Aug 2017 13:45:19 -0700 (PDT) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0079.outbound.protection.outlook.com [104.47.36.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D3B202095BB85 for ; Wed, 30 Aug 2017 13:45:16 -0700 (PDT) Received: from brijesh-build-machine.amd.com (165.204.77.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Wed, 30 Aug 2017 20:45:18 +0000 X-Original-To: edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=D3lSF6GNRRFKQWqVdWxmX7YhoTnwRoS2/OoFPj01VC8=; b=L81g/IFfHIYbcTL86S+I9HVbIJNTp2jhPEf+H671mke1og2TkJBMTqXexfkxMlStkWMmu1gqAT3gZVTCRZIHJen8ftnEvEcrobBXpPv7mklPRXb80PfU9qvKAoBhdVBklzT0c3BWf8MjozZ0a660q+su2bIDTsUv2mljYYQGZ1g= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: edk2-devel@lists.01.org Date: Wed, 30 Aug 2017 16:45:01 -0400 Message-Id: <1504125903-29816-3-git-send-email-brijesh.singh@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504125903-29816-1-git-send-email-brijesh.singh@amd.com> References: <1504125903-29816-1-git-send-email-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0040.namprd22.prod.outlook.com (2603:10b6:301:16::14) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 56a3733a-43d9-4feb-1621-08d4efe806ca X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:K3klfkeYeLHMj9B2s+pNpWantNe1h6VxIWeugbhpf5N3LHUx50bI2nZwE7eOyCxBkjnnsCIOrJ3eYxgjOnL7wi+fpccrJTCUq9G+LMiH7j+mkYqfmYgfQ6usmCxIHYqOAqmKCvuoDDn6kg6aJQGtohWRrCtchc9L5l2MYs3fSV9s5Q+dRcpZwOjY3XB1Z5HUVSlVnhmFpnMH+uf7V+MfqijoyfzWZzugBcbGD8KLQ6V6bnQeguWeP1+ca0Gjhf4q; 25:O7l3C6Exb3+qBjGzPmFbnrEO/V+j12J90xgBl8TK1oa8gqqJ9ntd77AwghoFojjflnWHTLdOxtJX6UBpub+I1fhjGOirUcSIoUQvwh5K+euzBxR+TikqFKRKwPxQJdKuW0nWf7/Nc4YTsc2S4Sebi1meAky66Gl2UKSrTvwc8AbJhQJJapurBfh8WYRxCyVvus31+j7pYbqIRQZp0mm/Zr0E9c04UTvb/mxiKcRj2edrSfpxxDUQSIzyIMWYpqiR/kU/9VSdUsrVTBzMyPKSGMaEPx9TVtAPgf2UX56uA+3EwSQWLyLzNjmsvWlVVh+B0OMfxAyXyDjjxDot+zrrlQ==; 31:Gz/2dyIAtbbL02u0zbXdfWgqdDw1WizaQnfH6dQB+dDofeZbFEyz1RYftmMuRK2XI4X1TQKYBGlpJEe5TsGTNmw+oLy265eT26CX95zK3/SOOA5IiFcx1N41N5wHNo2CNHxRQVVIgOR7y8UNQK1nuF5Nejd7u2fqeIiobUz6PIC0JddsZ0QgsT0jXyvv0i9Y8a/k+YhjMxvsPYjQDbX24HWDLFv6KwtYivY6t5fnhYY= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:K3zLrppX2NfSDMcd9GpJ/dq79UO0VkxA4/qZUwQEPPJezkQvxDcAY1T2DcmXZhHLQ9dQcP2NEUmPkzuftdambj0yrFp0z2PlRjzqHgimmfFRG/JOuHRgTq57bR8XCsL9WHuGEkp2QFYFFErukp6nFVFXWg90/QSke29q2PCogOb5IyHWuM9hLzfvqnhPt9wdQaqsgMsXwayVT1cfTJY9vvqHSjuF/uxTwHZmH1T2CM2J79MNMt0IefJXN0oefVh4jl6PcZ1vmaWL78iFBy/k5SNkj6Vz3kNLDCgVWDJL84cDBaaE9bc/4hu81qQIgFV7sfHc1gHkaZBxAZyXVhyxCgQfgmzhwX9T5uMwRSzWgv14r2yX8063kbj4EvYVBQTud5W5HLtzaejTlRExewVSsExS4VzvQnbUxmvMjNQrCgMJMUSBgRtwq8JfzSR0UtfFOsX+vG0Xf5Oe3upe5eHY9EzTNJUSECQWgUK2lJwxlIL38qA7gSEQRvlEl3Mt/54+; 4:/bL9f7QiGYC3WjAXtbFzjuZISEFwtfJg9Ha+cAhgE7+Lk7EvYMRcGSy3o9aRyj4JpLDL4Bq5wd6u91BbpTH6CjLjhfWs+69KrctupDymbZ0ft2/2X8YVwQnAl4AqqzoT2yZ6ETvG1SsdMhRMab1yBVOxxLCRpyjH3IJOPsTgoWSh/LmhVQaCMZiDhozVyb5YgdumfbIKn2lYyaeQ5aX82ryjN0XFzQtGjMVsFh+PPpjkz19WZ19c36HiCZdxZE7qDhmSqRnQV7GqkRyJwp66uE/E7I32U7epOV+VA1tHJI6tCH0wTNe9CGtyCt+2Pl+wJVcMZS4yInO0rZk0jJlReQ== X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR12MB0154; X-Forefront-PRVS: 041517DFAB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(6009001)(199003)(189002)(50466002)(86362001)(53936002)(3846002)(6916009)(54906002)(2950100002)(6116002)(478600001)(7736002)(33646002)(68736007)(189998001)(2906002)(48376002)(66066001)(47776003)(4326008)(8676002)(81166006)(97736004)(2351001)(50986999)(25786009)(2361001)(8936002)(101416001)(106356001)(5003940100001)(50226002)(105586002)(6666003)(110136004)(81156014)(36756003)(305945005)(53416004)(6486002)(42186005)(5660300001)(76176999)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:brijesh-build-machine.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:ExqwFax7RcudmfkPNKbjgkmAuKpZB+bYonS/WxSLK?= =?us-ascii?Q?LgyTZ8UOqXlf4EnT7jOKLJNR2vKcewsNJTF+SIlRRNWuSU+sA7SE2HXa0yYP?= =?us-ascii?Q?NJsF+dHVKBomKqUPi+6PQaQNyVGoiILBHSGjsA6zrO0+njsdGiY+8DNuNSAu?= =?us-ascii?Q?h9fY+iXQhlmOz5kuVo+3OwVvc07l60suY2J348Nk9EhGj/fM8bV0cb9mGYDC?= =?us-ascii?Q?3LRkT3C/k5W9MfExpSt2xK0EXPMcutX2e35xy8Xgoe4I1f+i5RKMeS5fft62?= =?us-ascii?Q?zsFrJHZS3iKpAEY08YMbRptWjcU2tLAcOxoaOb9O5Q0E8x+NBUpmwrg8oDVT?= =?us-ascii?Q?5cMa+9Z+i9uF7XemQ7wN0i3NnzvP6qGNIhIPozhqtedBWskcuPNd1oTpHHSZ?= =?us-ascii?Q?WcTkbf6UQjr2b8fGix5Qi59H7b/iux9UVezIuHCMc0oHtiTFD2lCc9KzLyJ6?= =?us-ascii?Q?XnJOm6KeY/f/g6PEqB6dlu5cdGDUm8QPk6DcAET4yFNdXZmK0V1JYNEeJodD?= =?us-ascii?Q?deqTUuJZnurzSkGQGQS96tEIdDx/HnXN4raneOWFBsbqIs5Gs03DHniwkW4G?= =?us-ascii?Q?mcLHXYmnvIOnrwT/ms9qHOt5vS+oxuHCqfrLXSrhydew4R0Sv836b2Q4ZOJ6?= =?us-ascii?Q?FXhgyC+pb6VsGwzlb/WnwkCPVjQf3FLReVsFSIPbdHf+dZYv36kMOA/mULY2?= =?us-ascii?Q?m+TOBSbaH6ytaz/PXoZp16IzV7HSsJo1Oa8d8JJlAKJiGoy3JhhYaec1keep?= =?us-ascii?Q?ON2F0qGaSSsEG3Hu2kwSqMBuuBG5qocT7l3hfHoTZ7MWqJ2oVXvpWxvPSxPc?= =?us-ascii?Q?G2RkFNspRVXGiYax303o/S5yiOgIxaeVhjK2YpI8/oaTSrboSdtUYp7NM1px?= =?us-ascii?Q?I0QoNSKW9ztJphmn0QRSVuM3+2p6R77yw1ij4ccUJpmzAp5d5CTGBwY5JpSv?= =?us-ascii?Q?WMTPqje6slMiIBSXnfWN6XHeDr5JD1jXKEEOZj1XTwKuH7CEzhtb26gDuIcL?= =?us-ascii?Q?GtwC1IHQcjLn/nvxKKM8D+lHLMzGObDooqdnzj+is+NVEVqrf9y41c22uwYQ?= =?us-ascii?Q?42IR8BPmlyuag38z0GnoRPvhVMW6Lf5/FlsLAFDau/HBZPORk3C0ZysTuWDE?= =?us-ascii?Q?59ZIKZLK9DLHxRmCwlY9ZXf3iuMyIhCwBfy8C1CZkwo/O//rCQs+g=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:Ro2Rh3sQtPlm4Rp9b4xGuD0YSY5gB4C3EPLVbwhi7n4UfcwJPfVhBdHfoZyWdhjli1qFFA3cOiZnheJcZJBBlpAUyL0pTS8DTThgIDY9Js8nnoYjZcQ+4ZC5IXgW+/E8xn1W8b+YgwbD3K7sk7eP1nW9UUoEIzxCiZYp7dGHqk0qBN0Gfq0WteJ5swn1ZYPlIsvzoqsFJ7eOADDzw8yLOYUt/N5k2XwvdTAnDMWsi1rIZ0yUDarkP+aD/CjmMAbYpL9aoSNBoehdMQka4u9hdGDeGrU8qOZ/SFWU3W69vUjyHQTxEWC2wxj++WwF9RHqGRqho+XMGatVJrgoashbRQ==; 5:pGSj454rbf7tI0b4nYNpaTHHw7hSujPWZlMqTt43Nk2+7EZuHMpEGmcIVM36RbmOxWrhMBglfjVPyFS0dD3iI2bFIAMP62SlLqBZkhM1LPrQ5zxK0gnFLnkpXbwxYKbbzYtALf2clw/N1xz5xVSmRw==; 24:avv8DZ2z7iMnoURtEkWI7RxJRLk8P3JxO+cEyOmw/C24ashN9usbdrP3jzrX3LgfDa5Y+XNBsH5QlpYHBl63AwRL9I9FlYMUYa9k+QgB3v8=; 7:Tpbe3ycC4J2qh8UyoFZAZkWW5d8L3D5P8II2L4FYkT7YY3pM0t8kQHI149NLayDWmUru8IpEuexs7h/UOCZWqlwTCV9hiauYnZXh73URWcKNwQIvvM3J8c0wLEkj2op8NCb6HGzx/6+/pyYi2Sw2Ov9fcNFddF58y0YX38jgQEnelk9aYMqDKL44Ww2ZYt/tQ+pDiknYZMdhMPvR4doKaJRF6khtfhL26P/ouGxbajM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:5ft2dpIq2vKkJULGt5xgDEV+/5X34eZ0lhk6BJOVXrFxGvckSe6S92RFUMyY1y9OlGEu6eAd63vXXGyKV9PQx4M85PCZ6QxiO4fzqiJrtqu+DoUH78Bwyahaoo7M0ZPK8LN3YHKdgOJMLwpt5zNriQ0xniauc+n3iJOIvuZAW1+wkis1BWs+L2ZOMAcRAI+r5mnV5Y8O2grPz81MkBYQ9RnqMmWQJJeKxgDapccoYKIq+gMrLDz1Db2dusRf1ylr X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Aug 2017 20:45:18.4253 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 Subject: [edk2] [PATCH v2 2/4] OvmfPkg/VirtioScsiDxe: add helper to create a fake host adapter error X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jordan Justen , Tom Lendacky , Laszlo Ersek , Ard Biesheuvel Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" When virtio request fails we return EFI_DEVICE_ERROR, as per the spec EFI_EXT_SCSI_PASS_THRU_PROTOCOL.PassThru() member function is required to implement elaborated error reporting. The patch refactors out entire block of the code that creates the host adapter error into a separate helper function (ReportHostAdapterError). Suggested-by: Laszlo Ersek Cc: Ard Biesheuvel Cc: Jordan Justen Cc: Tom Lendacky Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Brijesh Singh Reviewed-by: Laszlo Ersek --- OvmfPkg/VirtioScsiDxe/VirtioScsi.c | 27 +++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c b/OvmfPkg/VirtioScsiDxe/Vir= tioScsi.c index 5e72b1a24b59..cac213129409 100644 --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c @@ -387,6 +387,26 @@ ParseResponse ( return EFI_DEVICE_ERROR; } =20 +/** + * The function can be used to create a fake host adapter error. + * When VirtioScsiPassThru is failed due to some reasons then this function + * can be called to contstruct a host adapter error. + * + */ +STATIC +EFI_STATUS +ReportHostAdapterError ( + OUT EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet + ) +{ + Packet->InTransferLength =3D 0; + Packet->OutTransferLength =3D 0; + Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_OTHER; + Packet->TargetStatus =3D EFI_EXT_SCSI_STATUS_TARGET_GOOD; + Packet->SenseDataLength =3D 0; + return EFI_DEVICE_ERROR; +} + =20 // // The next seven functions implement EFI_EXT_SCSI_PASS_THRU_PROTOCOL @@ -472,12 +492,7 @@ VirtioScsiPassThru ( // if (VirtioFlush (Dev->VirtIo, VIRTIO_SCSI_REQUEST_QUEUE, &Dev->Ring, &Indices, NULL) !=3D EFI_SUCCESS) { - Packet->InTransferLength =3D 0; - Packet->OutTransferLength =3D 0; - Packet->HostAdapterStatus =3D EFI_EXT_SCSI_STATUS_HOST_ADAPTER_OTHER; - Packet->TargetStatus =3D EFI_EXT_SCSI_STATUS_TARGET_GOOD; - Packet->SenseDataLength =3D 0; - return EFI_DEVICE_ERROR; + return ReportHostAdapterError (Packet); } =20 return ParseResponse (Packet, &Response); --=20 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Mon Apr 29 11:56:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1504125930973514.8143099969319; Wed, 30 Aug 2017 13:45:30 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id D58C421E70D5B; Wed, 30 Aug 2017 13:45:19 -0700 (PDT) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0056.outbound.protection.outlook.com [104.47.36.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0F2742095DCB3 for ; Wed, 30 Aug 2017 13:45:18 -0700 (PDT) Received: from brijesh-build-machine.amd.com (165.204.77.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Wed, 30 Aug 2017 20:45:19 +0000 X-Original-To: edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=lNBK0TPklP0Yu+9D0uhfRF4ippyl8DleiSs/emi8KsI=; b=4ujGcP+ZTKQh4tx+BuZ/fcLfqGS9f6zwxaNlkoH2ftGvd1hs4d3dP+AA7vJ/RV81tKX4aKoklRigRz17uF5jpahwRmElq58CZcFKgw0C0e23ke+lNWFMlUaPavDw+/BDv0yOkpenhuqxLnLuRczp1C9W+tTN4FtuZE8K9d3abH4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: edk2-devel@lists.01.org Date: Wed, 30 Aug 2017 16:45:02 -0400 Message-Id: <1504125903-29816-4-git-send-email-brijesh.singh@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504125903-29816-1-git-send-email-brijesh.singh@amd.com> References: <1504125903-29816-1-git-send-email-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0040.namprd22.prod.outlook.com (2603:10b6:301:16::14) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 589014eb-4867-4524-3688-08d4efe8076c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:bEGiEDdSOmxRbKSaSW/+pEGE10FNaTE/6gAP66vYLbPgOjjvIPuxd2eQJgQ/b19cEgm+ZH4xg8T5gy2SXWGqvKcgGE01P3pfqtXYo6sFHA09Ky+YDr3LjNDc6N3FyOyVEpeODx53E/N0pah1tJjNwXYbrtKeDw46zRS5pyLf0sLtGUir9Tak9jGST4rsrkOfdA4Q9/GEZV2vF6g9nm9/QfeKS56DOFWBaoWdCI60lvZXpdGWFiLP2WqxOKBeuyIK; 25:lFT4CJKyuBFYngA/aIbu5gwSKI+2owGjF5MYBT9m6GkjJLKo3IyP3a/O1sXxiYZbT2z1FHTLAdRnZqlJi2bWU0xNOPHQYEsf43mo4K1brKZDiLajwhsdgxtNSPupVqsQwTsBY0qhiwKyOkRi18Pl9BJqYrR9NNurPWKPdASgmIfzrjDqcCT6iME9qKKWwvWR33EYC7kYaItJDAsOtCkYs6dIO89obz42cJRBbZ8ql/sevjGfJGyoGvW6EuW806rfuDW9zM/mwGc95JoBCMs4ljVhZPMSTwvUsJ4Xznz4bkdA0mFvBmYaaMPxEjKiv4zBpLOcgAS1e/uQx5moUd6MIA==; 31:BwjKs2iP5f4TIHbag+PyjJpNkVPjDyJoliKZdfczktBsHr9VfXBIwoRw1JYr2VzkKaQW1rFlqGcw0I8jvTbKRtN4iqpvBEDiZraH6ToOq6in0/mbmEzAVAapjB7gG4X94VAt6ErTEq2+fi06UeDsgYH4LMlH0FU1cVxcmadPSyKYCGow0kxZtyjqQk9fB1Vy283X3Y0aRR8dxJxbRzwufAv4yJnrmkTz661tMy4o0Ck= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:vlaODmVuXBW9AxVO1DNuicVuUBLPPvfrh4uyxZ9UU8vOgTIpeDuOQCFy70mOo8xdCVLxChV6R/Od84wlMlLQe4tKGK23cUDBsA1B/zCHaZsztBZvQhq0/dnggFEcEoxrK1Xe8lImNGb+AF9A+7N5yfCy8rDVmKF2h8R5OvAc71Zxkk0ZcKedoyJAdXrqMihP5ZafeQH2sSahjQvNYb6MUoPEzXQCVc0ly/DGRwRncdQ9H9t0qm5mGzyw/9bNKizzn79yXjzfS0LHNazgHfJCXE3IyFfj3qfPLM+KMeHQXP2I+b97ladZpwFti7oPRe4DjLb08jdZI6w4IKwYqTllDkPR2qlXaXmSZp4b7aSIhKEi9HjMElmdnyLKnZYbanM7xoczG1t4LMMPVTkWI3oJwoZIkzh/TRROwSC9G0YGOg9W+ZidX2yMMHsHGTSw1r5WMlQRyfG5nb2pK2xUFy7vugoGcPAWPZMySAJH/+SOybbeFRF/Yhqu0x6kAiGyu8vP; 4:OznjY5MfpHGBOaBqVCuZ71AfHRON7s5PO71b5L2ZYisYefh3WpvXBKoHq7J5GVWezRuZlwUkFXzZNbSb2/9WnF49GL0MGlCOD2L7Gqfgt1vBcqQEau6+fJwhlFB7oI/37c2xW0M70RQJ5LhXhhvqyVsysdwco6sh96wQrkR14A/6Te8/nXigndOmcW9NdQcs4e/wRxsBaf2q9h/bf7kfUJHoiXSBQyXwkuzxdDx2o6dWZCe/gZK5v140Okrm5lYaBXUQi7SyOcQxBAZyA5YDsN4L0/V9d7ww7J9D3k+f0A2enlMzdX39Vak4JkxXVyEMpoC6/lXW6CggoVUSyNuA2w== X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR12MB0154; X-Forefront-PRVS: 041517DFAB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(199003)(189002)(50466002)(86362001)(53936002)(3846002)(6916009)(54906002)(2950100002)(6116002)(478600001)(7736002)(33646002)(68736007)(189998001)(2906002)(48376002)(66066001)(47776003)(4326008)(8676002)(81166006)(97736004)(2351001)(50986999)(25786009)(2361001)(8936002)(101416001)(106356001)(5003940100001)(50226002)(105586002)(6666003)(110136004)(81156014)(36756003)(305945005)(53416004)(6486002)(42186005)(5660300001)(76176999)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:brijesh-build-machine.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:Nw+yMVwgxUfdrJ+xweZnFbaPmUCUMJvyM47/gLoGe?= =?us-ascii?Q?mTa2VlDY9z2kCsoheR8ImW0gGOfRa0XxZIPwhccPRHIKByvmacT/q0HM7L5N?= =?us-ascii?Q?1cYKl2d4S58HK8cqDNmWY+d/e7MzgNntljfOE0UFRbUNaw6jxAPs66odSSTw?= =?us-ascii?Q?tkR0HhHXUfXDOhr64eyuYv+dTyOClWV0viiJcfMRhxjEDRerMvXECqy0xZL1?= =?us-ascii?Q?azTkTZaLkNm/Cw3+SvMviQ56V9vwm7UGC+7llTDEzM0OgUUn2yZ8VOF5Z84f?= =?us-ascii?Q?GGdAVpV6QuGrrawHIZnPID14boDL2DobwxwewcRuCCGCadQU49QQeKV2i23D?= =?us-ascii?Q?EJprEO5GyjF++OQoGRsHnwCze5rlwE0YRaLMf4UEL+Kh9B7itkTtgHw1Eoe7?= =?us-ascii?Q?j80t25VnHkyPmGtcSXNH2H3sh0RA7HAt0ave6WvH4KTdtz3NRfFlgCK9+n/w?= =?us-ascii?Q?V1+bCYkxygh56a+3tlY7KI/Z28ZfJHSvycfu2lQZ8xDLathllxmCHe+MLpnk?= =?us-ascii?Q?Yuxb1EOC97mWd90FfguKsdyZKWIlAh62UcQ98UOwowLVAW8u75ZNCAPCdZFX?= =?us-ascii?Q?sDuU3Hx7eQteMbnF4YI1++VaMrJFEX/GIS/LsPk3upH4hBkYtlG89fOGdOcj?= =?us-ascii?Q?Yg1BQ+OyD2rW8Z8BVRC8grUDmA+KzIE7tMhESIt7l+h3j5sWeGMlnYCG7biu?= =?us-ascii?Q?m6mX8HIRPMp79pEsu33e9LP4mdo23Qx4eCeaVQ5t2H+S3aauh4ToHai+HJ1t?= =?us-ascii?Q?MzR/5eg7TykefVFDOnxXVGfMe8Ullfpq6tAchVaBVV8DaevaPf/AGjGPFLLy?= =?us-ascii?Q?ppM0dkIrby81owcFt4zfZ8f1BPYio3Y8iLDnNWQdMYietH6COkM+zAw/yh+F?= =?us-ascii?Q?eBhfN5mjLbuXeQg/DmgN4xu6K7M/F/zCeUQnagqSnH6hEu5h+4Ycs6UoLaep?= =?us-ascii?Q?4oT1VsJshNkfikUiDtgigFCkeDl5qt3EhwasfG206kwZtO9fcw6OXEmihqfR?= =?us-ascii?Q?cJikEPXh8iPoc0Z0NA9foGxug4ARmEJKlDspOZlFApDWy8v0UIzoOsv/wP38?= =?us-ascii?Q?gu6/qlXXW4U2aeHpFw3dHnv8yia?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:LxLRdDbZOF2j6o/svIhPu/82n8hhQ9K4x4+KEw3mSrIM6ZzW7dStEb737Oq7n/3AIIkcQE9VCUMVIIDmYPKF4NkLK3KzeE5r08iSzChTo0cYGOYk2htSqmhs+DM70iqhVkxic01DTf8bB/jMM7sgWabwfsaJtB6yPSfK+eFAzjqUliIfM/THxhqoayCoOscbhntuK4LoMW7TPTT85D9IJUsG9QGZDWUkpCjEEwcw4ttAld+ANtw9lnmtEDS0DyWbxSkedoU5L7lU8fEexe/mIfryLjgd2XO0BOLGqQk9pcWxKwdqr8dnP6Z0LB+gQgl+uSc4g7nZtsb9hk+AG3bQsg==; 5:m0ANvZ79ArqFM/QDaq+H3ZnTwqYXsk5kbsiVytyZsAh0D3qr535PH01rD0l0aOgApj4rWkhPm17QjX+uFczfXIWCzri9/m3TlakJBqzLU4g/Oi+EX0iNcFW617YswxK1eyzhzVFyRDEw4tOLBWJCnw==; 24:0Uw9ustf5NztHPexoRYiz8mKBKB5HS9PjZIyGeEbkutXX+dIdmwnngTKH8MoetwPrGxPq91DNCfMVtXWEKABXYjK0xFvM+gYu+thEo+h6uE=; 7:nenFj9afLZCmzCgbiObecvRt7kIp0ZxJwtqpBmU5uYSNjUOmY8mrNBLBb7s1my180ETLARnA0+k0IHEPRtoux4dE8orqaowenSKPvfY2XWOeAVC5YBVrij+bvPP9+iCHpuqYg8qal4ykbc7ujKADQ0xMJdxBfXA4AsWmXWoChL9/2BIQMvIPqLek9mo8JO3zmrQtYwmFu5U4c78DEySl3SwpavV2+NcETR/s9DgZQ7Q= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:rLeu2yO5mlIbgGgBy2PZSIgT3wWXUY9FlOa8ih1bc/4svRA/nxUmqUyt8u7pecGymvof50OJeT2CyV4ZamBWFVl/9xKzQETxwz9Hw/QF54ELUM3CSLOVU7nslLr9JJ0G6mbA0r1kUxN2r7ksy2BnjZiMXqzlbl2ZlOygcy9AfKtM/BELLR9kwbRPqbkNrvCOC8tCZuMrnVPMJXteHydKnIFEjLgcO2xKdnzSjD4/9YqQiMQGOYYIk+oP9FPzF36W X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Aug 2017 20:45:19.4878 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 Subject: [edk2] [PATCH v2 3/4] Ovmfpkg/VirtioScsiDxe: map virtio-scsi request and response buffers X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jordan Justen , Tom Lendacky , Laszlo Ersek , Ard Biesheuvel Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" When device is behind the IOMMU, driver is require to pass the device address of virtio request, response and any memory referenced by those request/response to the bus master. The patch uses IOMMU-like member functions from VIRTIO_DEVICE_PROTOCOL to map request and response buffers system physical address to the device address. - If the buffer need to be accessed by both the processor and a bus master then map with BusMasterCommonBuffer. - If the buffer need to be accessed for a write operation by a bus master then map with BusMasterWrite. - If the buffer need to be accessed for a read operation by a bus master then map with BusMasterRead. Cc: Ard Biesheuvel Cc: Jordan Justen Cc: Tom Lendacky Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Brijesh Singh --- OvmfPkg/VirtioScsiDxe/VirtioScsi.c | 225 ++++++++++++++++++-- 1 file changed, 209 insertions(+), 16 deletions(-) diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c b/OvmfPkg/VirtioScsiDxe/Vir= tioScsi.c index cac213129409..3e04097ddd11 100644 --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c @@ -429,26 +429,161 @@ VirtioScsiPassThru ( UINT16 TargetValue; EFI_STATUS Status; volatile VIRTIO_SCSI_REQ Request; - volatile VIRTIO_SCSI_RESP Response; + volatile VIRTIO_SCSI_RESP *Response; + VOID *ResponseBuffer; DESC_INDICES Indices; + VOID *RequestMapping; + VOID *ResponseMapping; + VOID *InDataMapping; + VOID *OutDataMapping; + EFI_PHYSICAL_ADDRESS RequestDeviceAddress; + EFI_PHYSICAL_ADDRESS ResponseDeviceAddress; + EFI_PHYSICAL_ADDRESS InDataDeviceAddress; + EFI_PHYSICAL_ADDRESS OutDataDeviceAddress; + VOID *InDataBuffer; + UINTN InDataNumPages; + BOOLEAN InDataBufferIsMapped; + BOOLEAN OutDataBufferIsMapped; =20 ZeroMem ((VOID*) &Request, sizeof (Request)); - ZeroMem ((VOID*) &Response, sizeof (Response)); =20 Dev =3D VIRTIO_SCSI_FROM_PASS_THRU (This); CopyMem (&TargetValue, Target, sizeof TargetValue); =20 + InDataBuffer =3D NULL; + InDataBufferIsMapped =3D FALSE; + OutDataBufferIsMapped =3D FALSE; + InDataNumPages =3D 0; + Status =3D PopulateRequest (Dev, TargetValue, Lun, Packet, &Request); if (EFI_ERROR (Status)) { return Status; } =20 - VirtioPrepare (&Dev->Ring, &Indices); + // + // Map the virtio-scsi Request header buffer + // + Status =3D VirtioMapAllBytesInSharedBuffer ( + Dev->VirtIo, + VirtioOperationBusMasterRead, + (VOID *) &Request, + sizeof Request, + &RequestDeviceAddress, + &RequestMapping); + if (EFI_ERROR (Status)) { + return ReportHostAdapterError (Packet); + } + + // + // Map the input buffer + // + if (Packet->InTransferLength > 0) { + // + // Allocate a intermediate input buffer. This is mainly to handle the + // following case: + // * caller submits a bi-directional request + // * we perform the request fine + // * but we fail to unmap the "InDataMapping" + // + // In that case simply returing the EFI_DEVICE_ERROR is not sufficien= t. + // In addition to the error code we also need to update Packet-xxx fi= elds + // accordingly so that we report the full loss of the incoming transf= er. + // + // We allocate a temporary buffer and map it with BusMasterCommon. If= the + // Virtio request is successful then we copy the data from temporary + // buffer into Packet->InDataBuffer. + // + InDataNumPages =3D EFI_SIZE_TO_PAGES (Packet->InTransferLength); + Status =3D Dev->VirtIo->AllocateSharedPages ( + Dev->VirtIo, + InDataNumPages, + &InDataBuffer + ); + if (EFI_ERROR (Status)) { + Status =3D ReportHostAdapterError (Packet); + goto UnmapRequestBuffer; + } + + ZeroMem (InDataBuffer, Packet->InTransferLength); + + Status =3D VirtioMapAllBytesInSharedBuffer ( + Dev->VirtIo, + VirtioOperationBusMasterCommonBuffer, + InDataBuffer, + Packet->InTransferLength, + &InDataDeviceAddress, + &InDataMapping + ); + if (EFI_ERROR (Status)) { + Status =3D ReportHostAdapterError (Packet); + goto FreeInDataBuffer; + } + + InDataBufferIsMapped =3D TRUE; + } + + // + // Map the output buffer + // + if (Packet->OutTransferLength > 0) { + Status =3D VirtioMapAllBytesInSharedBuffer ( + Dev->VirtIo, + VirtioOperationBusMasterRead, + Packet->OutDataBuffer, + Packet->OutTransferLength, + &OutDataDeviceAddress, + &OutDataMapping + ); + if (EFI_ERROR (Status)) { + Status =3D ReportHostAdapterError (Packet); + goto UnmapInDataBuffer; + } + + OutDataBufferIsMapped =3D TRUE; + } + + // + // Response header is bi-direction (we preset with host status and expect + // the device to update it). Allocate a response buffer which can be map= ped + // to access equally by both processor and device. + // + Status =3D Dev->VirtIo->AllocateSharedPages ( + Dev->VirtIo, + EFI_SIZE_TO_PAGES (sizeof *Response), + &ResponseBuffer + ); + if (EFI_ERROR (Status)) { + Status =3D ReportHostAdapterError (Packet); + goto UnmapOutDataBuffer; + } + + Response =3D ResponseBuffer; + + ZeroMem ((VOID *)Response, sizeof (*Response)); =20 // // preset a host status for ourselves that we do not accept as success // - Response.Response =3D VIRTIO_SCSI_S_FAILURE; + Response->Response =3D VIRTIO_SCSI_S_FAILURE; + + // + // Map the response buffer with BusMasterCommonBuffer so that response + // buffer can be accessed by both host and device. + // + Status =3D VirtioMapAllBytesInSharedBuffer ( + Dev->VirtIo, + VirtioOperationBusMasterCommonBuffer, + ResponseBuffer, + sizeof (*Response), + &ResponseDeviceAddress, + &ResponseMapping + ); + if (EFI_ERROR (Status)) { + Status =3D ReportHostAdapterError (Packet); + goto FreeResponseBuffer; + } + + VirtioPrepare (&Dev->Ring, &Indices); =20 // // ensured by VirtioScsiInit() -- this predicate, in combination with the @@ -459,31 +594,49 @@ VirtioScsiPassThru ( // // enqueue Request // - VirtioAppendDesc (&Dev->Ring, (UINTN) &Request, sizeof Request, - VRING_DESC_F_NEXT, &Indices); + VirtioAppendDesc ( + &Dev->Ring, + RequestDeviceAddress, + sizeof Request, + VRING_DESC_F_NEXT, + &Indices + ); =20 // // enqueue "dataout" if any // if (Packet->OutTransferLength > 0) { - VirtioAppendDesc (&Dev->Ring, (UINTN) Packet->OutDataBuffer, - Packet->OutTransferLength, VRING_DESC_F_NEXT, &Indices); + VirtioAppendDesc ( + &Dev->Ring, + OutDataDeviceAddress, + Packet->OutTransferLength, + VRING_DESC_F_NEXT, + &Indices + ); } =20 // // enqueue Response, to be written by the host // - VirtioAppendDesc (&Dev->Ring, (UINTN) &Response, sizeof Response, - VRING_DESC_F_WRITE | (Packet->InTransferLength > 0 ? - VRING_DESC_F_NEXT : 0), - &Indices); + VirtioAppendDesc ( + &Dev->Ring, + ResponseDeviceAddress, + sizeof *Response, + VRING_DESC_F_WRITE | (Packet->InTransferLength > 0 ? VRING_DESC_F_NEXT= : 0), + &Indices + ); =20 // // enqueue "datain" if any, to be written by the host // if (Packet->InTransferLength > 0) { - VirtioAppendDesc (&Dev->Ring, (UINTN) Packet->InDataBuffer, - Packet->InTransferLength, VRING_DESC_F_WRITE, &Indices); + VirtioAppendDesc ( + &Dev->Ring, + InDataDeviceAddress, + Packet->InTransferLength, + VRING_DESC_F_WRITE, + &Indices + ); } =20 // If kicking the host fails, we must fake a host adapter error. @@ -492,10 +645,50 @@ VirtioScsiPassThru ( // if (VirtioFlush (Dev->VirtIo, VIRTIO_SCSI_REQUEST_QUEUE, &Dev->Ring, &Indices, NULL) !=3D EFI_SUCCESS) { - return ReportHostAdapterError (Packet); + Status =3D ReportHostAdapterError (Packet); + goto UnmapResponseBuffer; } =20 - return ParseResponse (Packet, &Response); + Status =3D ParseResponse (Packet, Response); + + // + // If virtio request was successful and it was a CPU read request then we + // have used an intermediate buffer. Copy the data from intermediate buf= fer + // to the final buffer. + // + if (!EFI_ERROR (Status) && (Packet->InTransferLength > 0)) { + CopyMem (Packet->InDataBuffer, InDataBuffer, Packet->InTransferLength); + } + +UnmapResponseBuffer: + Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, ResponseMapping); + +FreeResponseBuffer: + Dev->VirtIo->FreeSharedPages ( + Dev->VirtIo, + EFI_SIZE_TO_PAGES (sizeof *Response), + ResponseBuffer + ); + +UnmapOutDataBuffer: + if (OutDataBufferIsMapped =3D=3D TRUE) { + Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, OutDataMapping); + } + +UnmapInDataBuffer: + if (InDataBufferIsMapped =3D=3D TRUE) { + Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, InDataMapping); + } + +FreeInDataBuffer: + if (InDataBuffer !=3D NULL) { + Dev->VirtIo->FreeSharedPages (Dev->VirtIo, InDataNumPages, InDataBuffe= r); + } + +UnmapRequestBuffer: + Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, RequestMapping); + + return Status; } =20 =20 --=20 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Mon Apr 29 11:56:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1504125934291312.64487687678513; Wed, 30 Aug 2017 13:45:34 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 1847321E95DE6; Wed, 30 Aug 2017 13:45:20 -0700 (PDT) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0056.outbound.protection.outlook.com [104.47.36.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6B61121E70D50 for ; Wed, 30 Aug 2017 13:45:18 -0700 (PDT) Received: from brijesh-build-machine.amd.com (165.204.77.1) by DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Wed, 30 Aug 2017 20:45:20 +0000 X-Original-To: edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=WXrz4+M8kGolhxPPhHrvomBfyFhBcVMG/50K6y+jg+8=; b=L8WkqtacDFqgXrbOZKDOiStal8FEwMTxZBJdOA+L4Fq3Okjmk/7Jlr1xdB93KvFVIePa8TxcVLOA5QydtPOAZYasmDcJjr53Hk5pgf0yCWVMCS4CdJ5XaSFIll1jCFc1kJJiltjt+xW3Q3dCDTshThjlo3W9FZpl7qWTY68c1RY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: edk2-devel@lists.01.org Date: Wed, 30 Aug 2017 16:45:03 -0400 Message-Id: <1504125903-29816-5-git-send-email-brijesh.singh@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1504125903-29816-1-git-send-email-brijesh.singh@amd.com> References: <1504125903-29816-1-git-send-email-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0040.namprd22.prod.outlook.com (2603:10b6:301:16::14) To DM2PR12MB0154.namprd12.prod.outlook.com (2a01:111:e400:50ce::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cb87fa50-0e1d-4cce-9237-08d4efe80809 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM2PR12MB0154; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 3:htBqt8V44TbtFseIL/lLaZRkrOMcta7j7jrBgRH2tOY5G8RKROu3hKTBYzpsdbWhGV0qzdryJUN7PzbM+ABANV0ELtiJYH97krTx4fTvZXvJlbz/aINJqDeDGHmxoVpDnqnYlCwdFzH8z5b7fn5m0DFdmPy+h4GbMrp4Ey6Z07oasbTjrwmy+eCfZ3qFIE2jBqB/wFH+ompDmfugPHwYhHqbOrfGU49cH1y5/0rMAf7AKj2WAaGBfh7bANDlXVMA; 25:BSBnA3kN2NolPUv22gLlzUigyEBrmDPOJL6PKtxM+hKNEIC/bNuztUjvHRZQoLrNZ72vP9t/TkrE7ENQN5u+Gs5lJKnv7EG1db9mgMPAajpL9/HgZD/fE0ULbOd6Pe4p6VwcQyVtnrtyheGh2Xz5ws/S+ig0OZxPFr98r7JVPRqY9e68EK6Zng/GyXnC5hGKVePkZBLtzCcGeV6ySvehyhT1zPoqv+gknmlPo1YGCgSADuO4DUPeLX6cqLZoteyReQOK47MOkFFlwP8zOMDBFPT6Eh98Zgxpf0mTc73wL6Hlb/Cq3dmJY3Ih3vlunm6RczqYcjRc3HV+gem2X9ewaA==; 31:6cTCk1RVndxDAic1+AbapZS1Q2ChqMvVhNb1n0K0htSvgZZyJu7MpfCxZDVowlaYzX/C9Cqs21OkYgOVMWiVHn8qLKC3t6BkFWzS2Mxk4L8qxyB6h4pmGcCrT4/LBxOqwNeAqiKs/MD8NWx1hVD9ag7Svn/CYGxFNpSuLs9iHoo1RlEgUpTvmWHv8qcFDkSpD7Y6NDZl9sUJ+EFjYhIyvljILp43Q2E+BCyuMjEhc0Y= X-MS-TrafficTypeDiagnostic: DM2PR12MB0154: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:5+Jb/uetcGs2JUBXf56y3zvFfpP35pbe/Y7kSp8o6D3ZsXYHR46wvcVD/dZ+ZcFa4OqEpbKur5TS7Z2dI2OZDDqoH+4nKwq4lmCFJ5jKM6TlI8tfRPNHZdBCUCiOzKRdCOCv876r4be/B0a2mhNzEZb6HDTrAXrAUXTkyyjXiwalJ8763ipekx6Ei0fM1+uOJbcHEHxGT6rjTctCkjLiM9ntkwOt0kVKegEylr2Z8Ks1bnWTcWICulH0S9c/MZj68eni/6ymTJ+Oh4AQTdmC7e3CkAL8m3JUxKfju0QY5915Aw6q2wpmLhKL72Qxfg0do5MLm4QxfUU6NhJ+t00lDWGRk0o0TjyCvwbIEcLvRuekGv5p+XmzwZUZyZ0J+zoi6V+IdR5mQ0sNwvpGmBx184vY0y9D8ycD3dRqQcUB0TMuJFCwLn6/qL/4nm8iZ1oCwoA8CLjwepdebt4k6FIByQ6U6BcbaIncvU+WN2YZMMyXk07PpuP+2GxS3X5Sj4BF; 4:oZ/Ph91PkCbwVQgIfp7sA1AfZLY+8d6dDbp6fbvDfkf2F4IsgYT+qWeUdNDH/dZlSMrdsq5leN0DFDivX7ESldSaphS/xUjwzAF+53P8w0KA92ym4UnpjFDVmI2Fh1chPaKb3Z6NVU1ieLcoH7GzrBupWOvw8oVqCZ2zRe2ZP3LacFo6SLyY3JwnQbCGqhHi2J70CbsS2rMAjhmStGx4ho6N9LvcRO78BfqX4EcYczBMi3RYyjJjfyrXY+TkmuZXKjdghjliMNvaikg298qwbTYzanudfe3VjQGJ5uDRv3CAYOhUqoL7Io4lflrX6I9oJn4JnFIP4br4EtvygMlINg== X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR12MB0154; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR12MB0154; X-Forefront-PRVS: 041517DFAB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(199003)(189002)(50466002)(86362001)(53936002)(3846002)(6916009)(54906002)(2950100002)(6116002)(478600001)(7736002)(33646002)(68736007)(189998001)(2906002)(48376002)(66066001)(47776003)(4326008)(8676002)(81166006)(97736004)(2351001)(50986999)(25786009)(2361001)(8936002)(101416001)(106356001)(5003940100001)(50226002)(105586002)(6666003)(110136004)(81156014)(36756003)(305945005)(53416004)(6486002)(42186005)(5660300001)(76176999)(344415003); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0154; H:brijesh-build-machine.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0154; 23:WtVtRJS/WQVrwEIvbY0hkPV71Niexk8SH9crFoWxm?= =?us-ascii?Q?huJU+UlKUFJp4/I/6a8FnxkGADkC0ohAz2v5cXpaqfzjuY7epRAT8TEjkYko?= =?us-ascii?Q?NJSRD12Umq8xeqirGh5q9Jl2q3O6gfJRzlJ4/yCuQ1014bJCRiIA/hBzRLYL?= =?us-ascii?Q?lLXqpEqmNrqGL/QID//gNwIk4G8RJoGNPabpCj+ZNBcyaWTX/dZbU5+eP/Jp?= =?us-ascii?Q?dUKe92FYooGjIKki0kfQU1AVyaP0/CxqEufL4b1m6XSdssgDICb/TjvhgaM2?= =?us-ascii?Q?G+/Kdm84IR83gznvLEbKr7oDgB3FxhIglRYHBk5uhl1ijMTmd6Ftm8mTFRAo?= =?us-ascii?Q?KPJt3y/1fjXNb5PDOj5I/2SdtB5zGlgeMG+HZ0uEppu4QMEWfv44OqqK4F5/?= =?us-ascii?Q?e/Z86LL0+evSh2XVcQulc1Zg8AvLf0mnKUDdEJUMbUhsevc7EtuJAmB34ttO?= =?us-ascii?Q?dFSVC9YaA01b3YufDFh/Mb0yZ9QWYtcJBV+4JQGAs10zVFnpXSdZFXT3IE/b?= =?us-ascii?Q?ZQbAZHjwiEENbeGHV7bbkYQMcaVWoiMKqcAW0zCqTfQ5l57sNn4yRitpcIb/?= =?us-ascii?Q?6QyS4BdpixRH7NOXrk2vv9Vq5/F5AqljjkE72nRt+EhuGE8laZ1hJQGu4+R/?= =?us-ascii?Q?6LpqYrVwNyxV6SxN0S/7AvfKJfIQttL5kslNyhGU/7IdkxzT5FVB3hBRoGX1?= =?us-ascii?Q?v2afVWLDIB+0H+DqXqPHnoxcHiKZZ60XZPBDMe4H1FHNvUxoIm5Or7NBZVEs?= =?us-ascii?Q?3O3gAuIg75s+DQcFdaVnkuu/r5oznR5XW7YMDzNxyYCYifGsex/pGHvfEOnW?= =?us-ascii?Q?s1VUbeg5NFrIri+ldKTBDu7tCQwXTCTXwgpnmUPMtMSNxiTqixsDPe8Hh17f?= =?us-ascii?Q?IlngdNAz3tMD+uU0ILT/gl4U+Yfdy5oskVwjZh2t/bVC+naQKiCrlukGvxKI?= =?us-ascii?Q?Z/5diHl71sTAam5cVjsfkIeiFtjG5PbngF+xWjxATAbu+rOZ75BbnC+ZYAMP?= =?us-ascii?Q?q+oHQClbTXsnl0LXBjlspWGg2x8nOswrlFT6qil65Ypz/cpYiFx9cVtDRFMR?= =?us-ascii?Q?n6+kHMheg+/chwtt7z0TQvutECLjOjifgGRowf+z8ATOf0Ghw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 6:ARDUVpBxSjHJ2cvVwwo+sIl8whlcgLquz06cSkALRJOPLn0yTXwmEBaLkbD3oxAHUSOaDKEnmwj0Eo+k+lnHNqF4vtW96+Bxm6D5Gyt2PC9J7qNywLadO8OqdzZWGNZDJqI/aOPTeT5RQzotU41LCn1WjkrHBpBS+tHBsMwKu5OqOj7aJUW8N+IJ7Qa/PUaM8V/zflKbU6AlLMalU/T/tAKdbzK61lHls8CmAiLPlpZpcygsAuzDQ7pF7apN7QBWkuYTXlwIwpZMfzLUAq3NXjmb0m9Ug9HF1McHQVWjFahCpz8yeGp+7HlPDhZArXBmeTKmCLE2b71im60gM4576A==; 5:yT86yuQB1+Fp8Blll3oosimWP05Ezasod/ekvjsNf+0GazpvQdGTR/2EfAINcMuNBP8ts3SpvHg7wG1m3Chrk+7b4+wYOGp9a60lanVRMdw72t3VWisMczSTokG/xUP96d+ljmSCBRG1xnjGAG0RYQ==; 24:p4OqIym0sCuJ7ZyDnDCZMqzA5Jfev/yW/Q3dzH2fozF6pjvBV3okxbAeuXibgqVmJqRIRFuugeIUNtslzZrjY1b2pcM/GNZR+35P4vhXiZc=; 7:l3Yey29/bmR0g5KayFI3fD2TlfaW5NN1AbIUPrMMO80fr06csyna8+cz/9nlo8O3NMatFrHm1Np8ggcwSoufRCC8MLjPnnpDWOcAybMCvon7E8nM7TCLN285nPlTj6YjK3UUfNboygBodgWbr+6YoM4RjU7Lcf7ldDXxgZZzLpZe9tbi4fGHBobQ3FjM3pX1BB8zr1qptFFIE2b2dXlOxxSk5E+Ig69QFuNHi0zadGI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0154; 20:rE3IP4u5YCqbzTLw3trfPTnYOcC2DYI5ldyNOSQ6WyYshWKAt9fP9wh1nAG9cDTMXCof0xjXCHPxMaC7cLdnoQshf3whjG8f6/nc0SLRCCznn0YLZftJs1rpQBd05eSzECL2m1TGsNzfBj2KgICRN7vvLY9qQHf99iVu6ohvZtAj6uud7LUlDW8S+Xd2MLpOqJUs20yr1PpfdFNuyVB7+71lTgixWH9D2D3qLAGwDZzAq+h60l+5k+jOnGCDIhOQ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Aug 2017 20:45:20.5191 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0154 Subject: [edk2] [PATCH v2 4/4] OvmfPkg/VirtioScsiDxe: negotiate VIRTIO_F_IOMMU_PLATFORM X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jordan Justen , Tom Lendacky , Laszlo Ersek , Ard Biesheuvel Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" VirtioScsiDxe driver has been updated to use IOMMU-like member functions from VIRTIO_DEVICE_PROTOCOL to translate the system physical address to device address. We do not need to do anything special when VIRTIO_F_IOMMU_PLATFORM bit is present hence treat it in parallel with VIRTIO_F_VERSION_1. Cc: Ard Biesheuvel Cc: Jordan Justen Cc: Tom Lendacky Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Reviewed-by: Laszlo Ersek Signed-off-by: Brijesh Singh --- OvmfPkg/VirtioScsiDxe/VirtioScsi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c b/OvmfPkg/VirtioScsiDxe/Vir= tioScsi.c index 3e04097ddd11..4ec22ccd1abe 100644 --- a/OvmfPkg/VirtioScsiDxe/VirtioScsi.c +++ b/OvmfPkg/VirtioScsiDxe/VirtioScsi.c @@ -1009,7 +1009,8 @@ VirtioScsiInit ( goto Failed; } =20 - Features &=3D VIRTIO_SCSI_F_INOUT | VIRTIO_F_VERSION_1; + Features &=3D VIRTIO_SCSI_F_INOUT | VIRTIO_F_VERSION_1 | + VIRTIO_F_IOMMU_PLATFORM; =20 // // In virtio-1.0, feature negotiation is expected to complete before que= ue @@ -1089,7 +1090,7 @@ VirtioScsiInit ( // step 5 -- Report understood features and guest-tuneables. // if (Dev->VirtIo->Revision < VIRTIO_SPEC_REVISION (1, 0, 0)) { - Features &=3D ~(UINT64)VIRTIO_F_VERSION_1; + Features &=3D ~(UINT64)(VIRTIO_F_VERSION_1 | VIRTIO_F_IOMMU_PLATFORM); Status =3D Dev->VirtIo->SetGuestFeatures (Dev->VirtIo, Features); if (EFI_ERROR (Status)) { goto UnmapQueue; --=20 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel