From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from azure-sdnproxy-1.icoremail.net (azure-sdnproxy-1.icoremail.net [52.187.6.220]) by mx.groups.io with SMTP id smtpd.web08.7060.1646278513589946898 for ; Wed, 02 Mar 2022 19:35:15 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: phytium.com.cn, ip: 52.187.6.220, mailfrom: zhoucheng@phytium.com.cn) Received: from prodtpl.icoremail.net (unknown [10.12.1.20]) by hzbj-icmmx-1 (Coremail) with SMTP id AQAAfwC373QlNyBiczUgAQ--.52221S2; Thu, 03 Mar 2022 11:33:57 +0800 (CST) Received: from ubuntu.localdomain (unknown [113.218.43.118]) by mail (Coremail) with SMTP id AQAAfwDntzFrNyBiXRIAAA--.744S3; Thu, 03 Mar 2022 11:35:09 +0800 (CST) From: "zhoucheng" To: devel@edk2.groups.io Cc: Ray Ni , Liming Gao , Wang Jian J Subject: [PATCH v1 1/1] MdeModulePkg:Avoid Xhc cross 64K boundary Date: Thu, 3 Mar 2022 11:35:05 +0800 Message-Id: <20220303033505.26773-2-zhoucheng@phytium.com.cn> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220303033505.26773-1-zhoucheng@phytium.com.cn> References: <20220303033505.26773-1-zhoucheng@phytium.com.cn> X-CM-TRANSID: AQAAfwDntzFrNyBiXRIAAA--.744S3 X-CM-SenderInfo: 52kr3upkhqwqxsk13x1xpou0fpof0/ Authentication-Results: hzbj-icmmx-1; spf=neutral smtp.mail=zhoucheng@ phytium.com.cn; X-Coremail-Antispam: 1Uk129KBjvJXoWrtF1DCrW7ZF15Jr15Kw4fuFg_yoW8JrWfpF 12vr1UXF18A3ZIkr48XF109Fy8KaykK342grZYqwnxZFZxX3Z5XwsakryYg3s3Ca4kA3s5 ZF1avFy3Wr1DJFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUj1kv1TuYvTs0mT0YCTnIWj DUYxn0WfASr-VFAU7a7-sFnT9fnUUIcSsGvfJ3UbIYCTnIWIevJa73UjIFyTuYvj4RJUUU UUUUU The current xhc implementation may exceed the 64K boundary, so must restrictions need to be added. Cc: Ray Ni Cc: Liming Gao Cc: Wang Jian J Reviewed-by: Wu Hao A Signed-off-by: Cheng Zhou --- MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c index c2906e06fd84..0fedc8cfced5 100644 --- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c +++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c @@ -891,8 +891,14 @@ CreateTransferRing ( VOID *Buf; LINK_TRB *EndTrb; EFI_PHYSICAL_ADDRESS PhyAddr; + VOID *NewBuf; Buf = UsbHcAllocateMem (Xhc->MemPool, sizeof (TRB_TEMPLATE) * TrbNum); + if((((UINTN)Buf & ((1<<16)-1)) + sizeof (TRB_TEMPLATE) * TrbNum) & (1<<16)) { + NewBuf = UsbHcAllocateMem (Xhc->MemPool,sizeof(TRB_TEMPLATE) * TrbNum); + UsbHcFreeMem(Xhc->MemPool,Buf,sizeof(TRB_TEMPLATE)*TrbNum); + Buf = NewBuf; + } ASSERT (Buf != NULL); ASSERT (((UINTN)Buf & 0x3F) == 0); ZeroMem (Buf, sizeof (TRB_TEMPLATE) * TrbNum); -- 2.17.1