From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.3026.1655952410815212961 for ; Wed, 22 Jun 2022 19:46:51 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=jgba3BdM; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: hao.a.wu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1655952410; x=1687488410; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=i+enm+cvSEK+JEOK80MUSJ1ILhy4n43nHc9bZFFpUrE=; b=jgba3BdMQuf+Y8FLjJQ/Wd7IZUQn2Aism2/GTZGeQNcua3P0SkSXmEQZ m3ze1TlW8vT0rvGDW/odp3+8rQzNAVqR7nd+Bqq0d8DSTj0TVwRtt7vIU japP4SOJmUmzSJNIcSe3MKZX6i7LZRVEIHUPTttCch6apuiGhssTb34VJ hIoXv0sO7CWubsIa2K/QlZCc8RuXPUBeLW/tPzuJ2DDU038TeyD8FA+P9 7CFthXZWFccnPNOiuHBBCdUD8NtHpOnrAY6mW1a0WRY2AY6osXOn8i3/+ C9FFxje5WGn2Yhnq4bKNNPygwAq1sMHF8Y4vMNrSCb/C9tYcPmGB/x6cU g==; X-IronPort-AV: E=McAfee;i="6400,9594,10386"; a="366926375" X-IronPort-AV: E=Sophos;i="5.92,215,1650956400"; d="scan'208";a="366926375" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jun 2022 19:46:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,215,1650956400"; d="scan'208";a="677860920" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by FMSMGA003.fm.intel.com with ESMTP; 22 Jun 2022 19:46:50 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 22 Jun 2022 19:46:50 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 22 Jun 2022 19:46:49 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 22 Jun 2022 19:46:49 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.104) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 22 Jun 2022 19:46:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gb4hPpRiNjxUTAThfiXfTa6uaFdQMQslpRg/X8/mWnx6JcJ4j0P62EhXe62Xg8CjHhyN2qKjLc1AaSCXwfosvncFht6YE+X9PDajArrsD/WOW3DJCUT1rTvh0CR3L8O60yrAWByJSH3CKqBgTc11ml4ENRhnlXgHZWgDhgCbIfx3IgnJndQAJdy5MpMelik5gCF/yzWNsJfGhdHcVItPYJ/OR5dctQdWh4Q4hKmIjM8A07F37aDCAfGxciCyYMhqfFYiSqQDz3qpiiUzZRBsjiO+M0+EVNdqejWftt2uqQ/J6pxJe3UeHF5MZ0ZTE1QDbdCCghoL9mfhUfJ5Kpf3Zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=o2m4zK9KQSh66llSt+9EwBm0rsMrUWUJvlGYPRVBsaY=; b=AzSoVA2ikcrRXMYYsdNVlOIQdunv44jYOdFR+j2+GEbQl/AaSdTXp+5wjdIjEFE63eqwantzlwtUTf2b3vPJ+5/A6VxlWxPk3hwc1bWiploxx6qV44AnUAAzQI9afetN7uzzvtdaoqudDRz055OXdqpq7awmnZm37a1Ua9JSrqjLWjJauvz2TfGcZks8JbKoEJUumr9vn465yuvztTt+i9nq654Kd9ucc9DENOs/LXi0BLKcyMT1NNHfu8EGA+mTO8xgp3HVkvNatMmwFwakUQf519KBdevlsoLedlsPDh2AEgrT48gn7MZnIEOptMnfdNa+VBRdIJSBZ5zHRao+Ug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by SN6PR11MB3454.namprd11.prod.outlook.com (2603:10b6:805:c1::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.20; Thu, 23 Jun 2022 02:46:47 +0000 Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::c473:f30f:6b1f:c5ec]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::c473:f30f:6b1f:c5ec%5]) with mapi id 15.20.5353.022; Thu, 23 Jun 2022 02:46:47 +0000 From: "Wu, Hao A" To: "devel@edk2.groups.io" , "jbrasen@nvidia.com" CC: "Ni, Ray" , "Kinney, Michael D" , "Gao, Liming" , "Zeng, Star" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/ScsiDisk: Change TPL to NOTIFY Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg/ScsiDisk: Change TPL to NOTIFY Thread-Index: AQHX8RRhP+NC435QqEyMgowdUQbl8Kwy2ghggAAhxYCBIeJPAIAIjGCA Date: Thu, 23 Jun 2022 02:46:47 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 77bce771-48ec-469e-23bb-08da54c29da4 x-ms-traffictypediagnostic: SN6PR11MB3454:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dZkQOAdR7MPoGyIfwdBtutIH3PmO+8HtGjTTCg3OSAXWi+k6goiTgp05r2X+g3bxentKlvjZPORX1lSH/lGjgy+mjuykjtziK+s4KQxpuyNEUFeKydzAi+HvGDAJ6+qsrA6QjmWFQPLgreZf8gTA3xsS1Mwfq0/LTgHvCzQPbrX0KeF7CRwzVO7jqxNr/pAkIneGQFlu2KCZhRyfw2o68V3EZz+TAKp9iC0zuyvgnDFgJtr4e3pnydR9XEKSKuyk9lALC+4LVNeiN5TtNfyrG2aX+T3XaTCVok3Ls/8xu/+ELSHVI8VKZPc2b0XCwtfm229PHMUiwYpjWYEvHejlL1pJk1ACL56BiG3rztEmDPHIyHiqvOXQ8Sc3qYmSTqDjKHJ7ztBnGJhSgWuTFgU5cHvPOEf9lcCrbXdOha/sxlP8doOz+w05QZQFeEE1+eqnF+C6KtI7pgcVGTlGcYMh1b2v5ZPqXVKXWrquzskBRgL6mBJ/lyi2PtWNIzdoI69gR2zUzNiictsv5rbRQd0Dwfd9uf/UQnKtJEwxwUaWtiPqvviQHILeVMqIoacyMeYrQTQDYKqtUnCGOgTp1tP8K20VZQO3Tw4iZoaYXMQIGhMKU6CDBvTYjBapvIfFLtD7Iw1D+yFeDAIa+KhOX2D6h5hlEv2AAvOv2+TU++OnQvQsahj7fBj/Cycj3W6wMLYfk01JZU1M0Dkqa/9a2Wlp6xxjimdxZ0dt1BexMXONaHlBXQSXBGa3DPLQeTxcyIJXhzNwmV/RsGKXTzx6iPHIi3kVmVFEyGpJ9uPk5dViCOj3tVX6Fc/sPCHqtgN0Jq0T+hBvx5DuSdefpZNKCx7bXw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4025.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(39860400002)(136003)(376002)(366004)(396003)(346002)(4326008)(66946007)(66446008)(966005)(41300700001)(66476007)(8676002)(83380400001)(33656002)(122000001)(66556008)(82960400001)(107886003)(55016003)(64756008)(186003)(38070700005)(53546011)(76116006)(9686003)(26005)(6506007)(38100700002)(5660300002)(8936002)(86362001)(71200400001)(7696005)(54906003)(110136005)(316002)(2906002)(478600001)(52536014);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?/On5TfvgOQK5n5ZOOefL2mnJrwf0HMTS2GZX4BuR6hde1cGwHIxM9HcfPccg?= =?us-ascii?Q?HNKDbXSQN1vL57Xq9oKSXogjR8crA4Kt6vyHFXbxAVAGm4zRVnD/SEpVfATf?= =?us-ascii?Q?PQpzLIhYxTdz22YOPVfec9EgqJDrHAFnMqxt7B9a4EaKwoP6rtXFKhnc62Et?= =?us-ascii?Q?URRnwEsw46//UerAo49H3iDXXai3ljwvcVEWd/WO7rF/l3+Jl+iXGPznyOkV?= =?us-ascii?Q?/P4fHE/lO0FFMA1Hs1Pgt8IlXvfec9lSKWIMB6mgxbFLQo9oBj96K8YfJEuE?= =?us-ascii?Q?NvmTW+OME70vxQs1QiStNqmAR9qYTWXfkieb+UHqBzqmhJf7xcJPbS3gywFn?= =?us-ascii?Q?b38hhJfZteOLAEkV6bWBY3Yu8w5PB8LbbmNtmG+FcH6+1dYAiGcTeJnYFOPn?= =?us-ascii?Q?TAqpjeMuw8A92dVr8BiSRO2Ic+7xYgOWe2RB5XoYQAfmfCW9O+FAjLnF8fJx?= =?us-ascii?Q?2NqGU5/JTHEBXptUMBw28YTd4nF0wP9lIeCjBbEeaeWl9crbyg/0nnZhvHGk?= =?us-ascii?Q?3gB1h8bXZjgsdyJ2W3Af5i/+2pre/wmMISD/qA51w1avil0r/H5p4IhmN+lh?= =?us-ascii?Q?e1VTv+6Q4UDkCXZwjtJSlbOxbZ6g+cjEqMwnNe9mCMepsRerJQVE/31F02dD?= =?us-ascii?Q?zUyGXlt5enqMk9XUeklU1TuHDX328mbZ3eylICX1DsyxrweIyywswho6/qzG?= =?us-ascii?Q?HZX07S6KAJdUtNBXEO5DsmXb78+28KfNOfUt5dJkiLLSkHztNlrhnxrpeK6Q?= =?us-ascii?Q?9d8QAI2dK7SFoXD49zx3c1oTPLBYkfA/PymFPmDWbUlUHbKE+T526kXCALln?= =?us-ascii?Q?mMUEj0ZdwGNzvhpsfjchr0xGskEXqxeJqZ5BGXLJt3RLplaPs3Kqm+KCnZ1x?= =?us-ascii?Q?vW1fkB1U0tGGE1cUTwCDzXtVLj+BGS0Vu5tiMSgt3BYgNQmk2YfMMBGHHnnR?= =?us-ascii?Q?YCVNbCtf47FTd1l90+/e52ZbGAZapRg9rHY084IVP0aIzvMRWiKp1ilfhkE2?= =?us-ascii?Q?3Do9EmRVnkOkZgqW7iunv8baNg2sQw18Omy0iPbDPtTQmcJhyQ8Olz2W9MPg?= =?us-ascii?Q?G+Guu6Lv3i+BfJW4FN8PspA2A7AyHJ78PxlGr544WZZgNCQnOi8soFXHXXzI?= =?us-ascii?Q?F9a/8YgH1bz+vKMCYIT8yyyp6KhMb+0nN9epE0/9ejemDSUoLHLGSimnJ3J8?= =?us-ascii?Q?yfyZ1XIDvKBC14o5WtpO+JPufwYQKxQdbNTXAUu2cQlyHYyHA/c4Uead28tB?= =?us-ascii?Q?UEuCFriBCaIx5K5FClJq/9LXbPbKsNcLZ3zyBCqUEqEwOsIBguAGw3qOLCab?= =?us-ascii?Q?dEXLVIkrVljloXDheIccvR4wMcTjsBDBL5u9vGC8pcCUcrxl9OYyxOsjBwZ8?= =?us-ascii?Q?cbnLRhC0bPlDlGOxPPz1CI9O7LK6ODYkpS7Jj/uI9+rB/7luB32KiwIi2PE+?= =?us-ascii?Q?sL32TlhkZiN77anDDIypxa5/OP37wWOZNWxikoX7PIMShJUDoDefAQnVk9nY?= =?us-ascii?Q?vowrynwyXpWYweklsG2PxJXg1pUVHQaAk1kWs5FeKGz9pz5boWl7CnAj+iS9?= =?us-ascii?Q?Pm2w9PttTeBzhKpUlopG3QZXw99B++nQsEum8vT5?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77bce771-48ec-469e-23bb-08da54c29da4 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jun 2022 02:46:47.1358 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: eDuUNu8XE7Ro6jbbxuthQ7pPbmPbPDFBzvnquLMAwXnFWKVhOxGIBGfs1I/N2eLn6gGtaKXvAxsFyuJ90HP4Rg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3454 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello, Several concerns: 1. Raising the TPL to NOTIFY level for blocking/synchronous BlockIO service= will break the using case when the co-existence of synchronous and non-blo= cking/asynchronous IO tasks As far as I know, in DiskIoDxe, blocking I/O request will wait for all the = synchronous I/O requests to complete first before sending down the synchron= ous request. Please consider the scenario where a previous asynchronous IO task, it will= take a long time to complete due to big data transfer size. When a subsequent synchronous IO task is submitted before the asynchronous = task completes, it will wait for the previous asynchronous task to complete= . However, if the TPL level for this synchronous task is NOTIFY, it will get = stuck since the completion callback for the asynchronous task is also at NO= TIFY TPL level, which will never be called. More details can be referred to commit: SHA-1: a717086c5f973821b9b49646a4ec725f6b898bdb * MdeModulePkg ScsiDiskDxe: Raise the Tpl of async IO callback to TPL_NOTIF= Y 2. My personal take is that BlockIO is not a proper base service for variab= le service=20 To my knowledge, the variable service will still exist during runtime, but = the BlockIO services (as far as I know) do not. My understanding is that the main purpose of the BlockIO services are to pr= ovide BIOS boot codes with the ability to locate partitions and file system= s on media storage devices and search boot options on them. I would recommend to implement a dedicated platform driver to produce the F= VB services for variable driver consumption. If you think using the BlockIO service as the base for variable service is = the right direction, I have added people in the CC list that might help. Could you please reach out to them for feedbacks on the TPL restriction on = BlockIO services and Variable service? Best Regards, Hao Wu > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Jeff > Brasen via groups.io > Sent: Friday, June 17, 2022 11:37 PM > To: Wu, Hao A ; devel@edk2.groups.io > Cc: Ni, Ray > Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/ScsiDisk: Change TPL to > NOTIFY >=20 > Resending this as I replying via edk2.groups.io doesn't seem to copy > maintainers. >=20 > Resuming this patch to see if there are any additional thoughts on this. >=20 > In response to the query about DXE/BDS services we have some internal > connection logic that runs in DXE to connect the devices that are needed = for > arch services that have to be connected prior the end of dxe. >=20 > Thanks, > Jeff >=20 > > -----Original Message----- > > From: Jeff Brasen > > Sent: Tuesday, December 14, 2021 9:48 PM > > To: Wu, Hao A ; devel@edk2.groups.io > > Cc: Ni, Ray > > Subject: RE: [PATCH] MdeModulePkg/ScsiDisk: Change TPL to NOTIFY > > > > > > > > > -----Original Message----- > > > From: Wu, Hao A > > > Sent: Tuesday, December 14, 2021 8:00 PM > > > To: Jeff Brasen ; devel@edk2.groups.io > > > Cc: Ni, Ray > > > Subject: RE: [PATCH] MdeModulePkg/ScsiDisk: Change TPL to NOTIFY > > > > > > External email: Use caution opening links or attachments > > > > > > > > > > -----Original Message----- > > > > From: Jeff Brasen > > > > Sent: Wednesday, December 15, 2021 1:59 AM > > > > To: devel@edk2.groups.io > > > > Cc: Wu, Hao A ; Ni, Ray ; > > > > Jeff Brasen > > > > Subject: [PATCH] MdeModulePkg/ScsiDisk: Change TPL to NOTIFY > > > > > > > > Increase TPL to TPL_NOTIFY to allow for use if caller is > TPL_CALL= BACK. > > > > This allows services like variable services that run at TPL_NOTIFY > > > > to be hosted on ScsiDisks (i.e. UFS) > > > > > > > > Aligns with the eMMC driver that also uses a higher TPL. > > > > This change was made in > 3b1d8241d0dac25c5e678c364fa2754ac1731060 > > > > > > > > > Sorry, my take is that this change is not equivalent to the one made > > > in the SD/MMC stack. > > > > > > For the SD/MMC change you mentioned (commit > > > 3b1d8241d0dac25c5e678c364fa2754ac1731060), the TPL is raised to > > > TPL_NOTIFY only when: > > > a) Operation to the linked lists that manage the asynchronous IO ta= sks > > > b) Callback functions that process the asynchronous IO tasks The > > > TPL remains TPL_CALLBACK during the BlockIO services and the > > > majority of the > > > BlockIO2 services (operations to asynchronous tasks linked list are > > > the exceptions). > > > > > > But the proposed change in ScsiDisk modifies the TPL level of the > > > entire > > > BlockIO/BlockIO2 (and other protocols) services to TPL_NOTIFY. > > > For me, this is not aligned with the "TPL Restrictions" documented > > > in the UEFI specification. > > > > > > Best Regards, > > > Hao Wu > > > > > > > > > > I had sent out a query on this before and didn't see any response. The > > core of the issue I am trying to solve it support variable services on = a UFS > device. > > When the UFS blockIO is invoked from variable services it is not > > allowed (which does align from the UEFI spec perspective but does not > > allow me to implement variables services on UFS) > > > > The other way that worked was lowering the lock TPL level in the PCD > > driver and Variable down to callback. The PCD one seems like it should > > be done as variable services is supposed to only be called from <=3D > TPL_CALLBACK. > > However, I was worried about that having a larger system impact on > > that change. > > > > > > > > > > Signed-off-by: Jeff Brasen > > > > --- > > > > MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c | 22 > > > > ++++++++++---------- > > > > 1 file changed, 11 insertions(+), 11 deletions(-) > > > > > > > > diff --git a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c > > > > b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c > > > > index 98e84b4ea8..b6e5848e77 100644 > > > > --- a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c > > > > +++ b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c > > > > @@ -514,7 +514,7 @@ ScsiDiskReset ( > > > > SCSI_DISK_DEV *ScsiDiskDevice; > > > > EFI_STATUS Status; > > > > > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_BLKIO (This); > > > > > > > > @@ -581,7 +581,7 @@ ScsiDiskReadBlocks ( > > > > EFI_TPL OldTpl; > > > > > > > > MediaChange =3D FALSE; > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_BLKIO (This); > > > > Media =3D ScsiDiskDevice->BlkIo.Media; > > > > > > > > @@ -733,7 +733,7 @@ ScsiDiskWriteBlocks ( > > > > EFI_TPL OldTpl; > > > > > > > > MediaChange =3D FALSE; > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_BLKIO (This); > > > > Media =3D ScsiDiskDevice->BlkIo.Media; > > > > > > > > @@ -898,7 +898,7 @@ ScsiDiskResetEx ( > > > > SCSI_DISK_DEV *ScsiDiskDevice; > > > > EFI_STATUS Status; > > > > > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_BLKIO2 (This); > > > > > > > > @@ -975,7 +975,7 @@ ScsiDiskReadBlocksEx ( > > > > EFI_TPL OldTpl; > > > > > > > > MediaChange =3D FALSE; > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_BLKIO2 (This); > > > > Media =3D ScsiDiskDevice->BlkIo.Media; > > > > > > > > @@ -1154,7 +1154,7 @@ ScsiDiskWriteBlocksEx ( > > > > EFI_TPL OldTpl; > > > > > > > > MediaChange =3D FALSE; > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_BLKIO2 (This); > > > > Media =3D ScsiDiskDevice->BlkIo.Media; > > > > > > > > @@ -1323,7 +1323,7 @@ ScsiDiskFlushBlocksEx ( > > > > EFI_TPL OldTpl; > > > > > > > > MediaChange =3D FALSE; > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_BLKIO2 (This); > > > > Media =3D ScsiDiskDevice->BlkIo.Media; > > > > > > > > @@ -1717,7 +1717,7 @@ ScsiDiskEraseBlocks ( > > > > EFI_TPL OldTpl; > > > > > > > > MediaChange =3D FALSE; > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_ERASEBLK (This); > > > > > > > > if (!IS_DEVICE_FIXED (ScsiDiskDevice)) { @@ -1907,7 +1907,7 @@ > > > > ScsiDiskReceiveData ( > > > > AlignedBuffer =3D NULL; > > > > MediaChange =3D FALSE; > > > > AlignedBufferAllocated =3D FALSE; > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_STORSEC (This); > > > > Media =3D ScsiDiskDevice->BlkIo.Media; > > > > > > > > @@ -2122,7 +2122,7 @@ ScsiDiskSendData ( > > > > AlignedBuffer =3D NULL; > > > > MediaChange =3D FALSE; > > > > AlignedBufferAllocated =3D FALSE; > > > > - OldTpl =3D gBS->RaiseTPL (TPL_CALLBACK); > > > > + OldTpl =3D gBS->RaiseTPL (TPL_NOTIFY); > > > > ScsiDiskDevice =3D SCSI_DISK_DEV_FROM_STORSEC (This); > > > > Media =3D ScsiDiskDevice->BlkIo.Media; > > > > > > > > @@ -2294,7 +2294,7 @@ ScsiDiskDetectMedia ( > > > > > > > > Status =3D gBS->CreateEvent ( > > > > EVT_TIMER, > > > > - TPL_CALLBACK, > > > > + TPL_NOTIFY, > > > > NULL, > > > > NULL, > > > > &TimeoutEvt > > > > -- > > > > 2.17.1 >=20 >=20 >=20 >=20 >=20