From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F052246BBA; Thu, 18 Dec 2025 09:11:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.4 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766049103; cv=none; b=PnyPrW9imp3Yy/6nhNFloFl1TeCo2HFTDzYS59BKJlhwTYJzcYNljpYnZXy0FawOi15koT9kTy1qMmmc+bhl8pD2TfXJle4jE3N8PK+ckgMAnf2PprjnkvpDwj1bwtMtLrEqV1kLLKJRsVGqtAwX7EOD9s+PFcQJDrIrKKVURUY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766049103; c=relaxed/simple; bh=lv3UoBpnlR9AqWi4VjxWnaSptOu2/3cUQdPN0Mu+6y4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jV3wiRHfyY2s37iMkkg3L2c3jrgSk76sidoBsZgRYPEPGw/VO9iyA7MLx1wouNbjniAH9I+FYrEPdQdlB4SkgVOkR8H+Osz0YlOp+YIRmknPwJIeuTQZMZ2uZNt5NpWX6SEg1jZGEhmZIMTbKaS62MXpwRckKiUSbLJjBLhEnOg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=SNtX8/v2; arc=none smtp.client-ip=220.197.31.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="SNtX8/v2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=lv 3UoBpnlR9AqWi4VjxWnaSptOu2/3cUQdPN0Mu+6y4=; b=SNtX8/v2TBogUUPS1x MA8c750jhl0coXUMa2dOn00B5ogI+weU1Vhed7LgsYThBUOFuTxktd+W3y0aDgpw mmtLWGULczlfAP888hY76bltGWYfXQAGUgw6woEO4Rg186tZQ335wmMRTpxfeBqX CwAC6orlukR92BrOVyDHJLUuU= Received: from xwm-TianYi510Pro-14IMB.. (unknown []) by gzga-smtp-mtada-g0-4 (Coremail) with SMTP id _____wC3U84cxUNpI7dcBA--.210S4; Thu, 18 Dec 2025 17:10:56 +0800 (CST) From: Xiong Weimin <15927021679@163.com> To: "Michael S . Tsirkin" , David Hildenbrand , Jason Wang , Stefano Garzarella , Thomas Monjalon , David Marchand , Luca Boccassi , Kevin Traynor , Christian Ehrhardt , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Xueming Li , Maxime Coquelin , Chenbo Xia , Bruce Richardson Cc: kvm@vger.kernel.org, virtualization@lists.linux.dev, netdev@vger.kernel.org, xiongweimin Subject: [PATCH 02/10] drivers/infiniband/hw/virtio: add vrdma_exec_verbs_cmd to construct verbs sgs using virtio Date: Thu, 18 Dec 2025 17:09:42 +0800 Message-ID: <20251218091050.55047-3-15927021679@163.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251218091050.55047-1-15927021679@163.com> References: <20251218091050.55047-1-15927021679@163.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-CM-TRANSID:_____wC3U84cxUNpI7dcBA--.210S4 X-Coremail-Antispam: 1Uf129KBjvAXoW3KFW8Cw4DCr18WF4kZF4kCrg_yoW8XrWxJo WfJwnrX3WrtryxCrsrtrs5JrWfZw4qgFn5Ar4Fv398ta9rX3W5KFy2gwsxXr4S9F1YkF4D Ary5G340gFs5XFWrn29KB7ZKAUJUUUU8529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxUsvPfDUUUU X-CM-SenderInfo: jprvmjixqsilmxzbiqqrwthudrp/xtbC0QCkLWlDxSAAjAAA3b RnJvbTogeGlvbmd3ZWltaW4gPHhpb25nd2VpbWluQGt5bGlub3MuY24+CgpUaGUgaW1wbGVtZW50 YXRpb24gb2YgdnJkbWFfZXhlY192ZXJic19jbWQgdXNlZCBhIGJ1c3ktd2FpdCBsb29wCndpdGgg Y3B1X3JlbGF4KCkgZm9yIGNvbW1hbmQgY29tcGxldGlvbiwgd2hpY2ggd2FzdGVzIENQVSBjeWNs ZXMgZXNwZWNpYWxseQppbiBwcm9jZXNzIGNvbnRleHQuIFRoaXMgY29tbWl0IGludHJvZHVjZXMg YSBtb3JlIGVmZmljaWVudCBhcHByb2FjaCBieToKCjEuIEFkZGluZyBhIHdhaXQgcXVldWUgKGN0 cmxfd2FpdHEpIGFuZCBjb21wbGV0aW9uIGZsYWcgKGN0cmxfY29tcGxldGVkKQogICB0byB0aGUg dnJkbWFfZGV2IHN0cnVjdHVyZQoyLiBVc2luZyB3YWl0X2V2ZW50X3RpbWVvdXQgZm9yIHNsZWVw aW5nIGluc3RlYWQgb2Ygc3Bpbm5pbmcgaW4gbm9uLWF0b21pYwogICBjb250ZXh0cwozLiBNYWlu dGFpbmluZyB0aGUgb3JpZ2luYWwgYnVzeS13YWl0IGJlaGF2aW9yIGZvciBhdG9taWMgY29udGV4 dHMKNC4gQWRkaW5nIHByb3BlciBsb2NraW5nIGFyb3VuZCB0aGUgd2FpdCBtZWNoYW5pc20KNS4g SW1wbGVtZW50aW5nIHdha2V1cCBpbiB0aGUgSVJRIGhhbmRsZXIKClRoaXMgY2hhbmdlIHNpZ25p ZmljYW50bHkgcmVkdWNlcyBDUFUgdXNhZ2Ugd2hlbiBleGVjdXRpbmcgY29tbWFuZHMgZnJvbQpw cm9jZXNzIGNvbnRleHQgd2hpbGUgbWFpbnRhaW5pbmcgY29tcGF0aWJpbGl0eSB3aXRoIGF0b21p YyBjb250ZXh0cyBsaWtlCk5BUEkgYW5kIHdvcmtxdWV1ZXMuCgpTaWduZWQtb2ZmLWJ5OiBYaW9u ZyBXZWltaW4gPHhpb25nd2VpbWluQGt5bGlub3MuY24+Ci0tLQogLi4uL2RyaXZlcnMvaW5maW5p YmFuZC9ody92aXJ0aW8vdnJkbWEuaCAgICAgIHwgICAzICstCiAuLi4vZHJpdmVycy9pbmZpbmli YW5kL2h3L3ZpcnRpby92cmRtYV9kZXYuYyAgfCAgIDEgKwogLi4uL2luZmluaWJhbmQvaHcvdmly dGlvL3ZyZG1hX2Rldl9hcGkuaCAgICAgIHwgMjIyICsrKysrKysrKysrKysrKysrKwogLi4uL2Ry aXZlcnMvaW5maW5pYmFuZC9ody92aXJ0aW8vdnJkbWFfaWIuYyAgIHwgMTEyICsrKysrKysrKwog Li4uL2RyaXZlcnMvaW5maW5pYmFuZC9ody92aXJ0aW8vdnJkbWFfaWIuaCAgIHwgICAyICsKIDUg ZmlsZXMgY2hhbmdlZCwgMzM5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9saW51eC02LjE2LjgvZHJpdmVycy9pbmZpbmliYW5kL2h3L3ZpcnRpby92cmRtYS5oIGIv bGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9ody92aXJ0aW8vdnJkbWEuaAppbmRleCBi YzcyZDljNWUuLmE2NDY3OTRlZiAxMDA2NDQKLS0tIGEvbGludXgtNi4xNi44L2RyaXZlcnMvaW5m aW5pYmFuZC9ody92aXJ0aW8vdnJkbWEuaAorKysgYi9saW51eC02LjE2LjgvZHJpdmVycy9pbmZp bmliYW5kL2h3L3ZpcnRpby92cmRtYS5oCkBAIC0xMiw5ICsxMiwxMCBAQAogI2luY2x1ZGUgPGxp bnV4L25ldGRldmljZS5oPgogI2luY2x1ZGUgPHJkbWEvaWJfdmVyYnMuaD4KICNpbmNsdWRlIDxs aW51eC9zcGlubG9jay5oPgotI2luY2x1ZGUgPGxpbnV4L2F0b21pYy5oPgorI2luY2x1ZGUgPGxp bnV4L2F2ZXJhZ2UuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4 L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCiAvKioKICAqIHN0cnVjdCB2cmRt YV9kZXYgLSBWaXJ0dWFsIFJETUEgZGV2aWNlIHN0cnVjdHVyZQpkaWZmIC0tZ2l0IGEvbGludXgt Ni4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9ody92aXJ0aW8vdnJkbWFfZGV2LmMgYi9saW51eC02 LjE2LjgvZHJpdmVycy9pbmZpbmliYW5kL2h3L3ZpcnRpby92cmRtYV9kZXYuYwppbmRleCAwYTA5 YjNiZDQuLjk2MTUyOWI1OCAxMDA2NDQKLS0tIGEvbGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5p YmFuZC9ody92aXJ0aW8vdnJkbWFfZGV2LmMKKysrIGIvbGludXgtNi4xNi44L2RyaXZlcnMvaW5m aW5pYmFuZC9ody92aXJ0aW8vdnJkbWFfZGV2LmMKQEAgLTYsNiArNiw3IEBACiAjaW5jbHVkZSA8 bGludXgvdmlydGlvX2NvbmZpZy5oPgogCiAjaW5jbHVkZSAidnJkbWEuaCIKKyNpbmNsdWRlICJ2 cmRtYV9kZXYuaCIKICNpbmNsdWRlICJ2cmRtYV9kZXZfYXBpLmgiCiAjaW5jbHVkZSAidnJkbWFf cXVldWUuaCIKIApkaWZmIC0tZ2l0IGEvbGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9o dy92aXJ0aW8vdnJkbWFfZGV2X2FwaS5oIGIvbGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFu ZC9ody92aXJ0aW8vdnJkbWFfZGV2X2FwaS5oCmluZGV4IDQwM2Q1ZTgyMC4uM2IxZjdkMmI2IDEw MDY0NAotLS0gYS9saW51eC02LjE2LjgvZHJpdmVycy9pbmZpbmliYW5kL2h3L3ZpcnRpby92cmRt YV9kZXZfYXBpLmgKKysrIGIvbGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9ody92aXJ0 aW8vdnJkbWFfZGV2X2FwaS5oCkBAIC04LDYgKzgsOCBAQAogCiAjaW5jbHVkZSA8bGludXgva2Vy bmVsLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC91NjRfc3Rh dHNfc3luYy5oPgorI2luY2x1ZGUgPG5ldC94ZHAuaD4KICNpbmNsdWRlIDxyZG1hL2liX3ZlcmJz Lmg+CiAKICNpbmNsdWRlIDxyZG1hL3ZyZG1hX2FiaS5oPgpAQCAtMTEyLDUgKzExNCwyMjUgQEAg ZW51bSB2cmRtYV92ZXJic19jbWQgewogCVZJUlRJT19SRE1BX0NNRF9SRVFfTk9USUZZX0NRLAog fTsKIAorI2RlZmluZSBWUkRNQV9DVFJMX09LCTAKKyNkZWZpbmUgVlJETUFfQ1RSTF9FUlIJMQor CisvKioKKyAqIHN0cnVjdCB2ZXJic19jdHJsX2J1ZiAtIENvbnRyb2wgYnVmZmVyIGNvbW1hbmQv c3RhdHVzIHN0cnVjdHVyZQorICogQGNtZDogQ29tbWFuZCBjb2RlIGZyb20gZHJpdmVyIHRvIGhv c3QgKFZSRE1BX1ZRX0NUUkxfKikuCisgKiBAc3RhdHVzOiBTdGF0dXMgcmV0dXJuZWQgYnkgaG9z dCAoMCA9IHN1Y2Nlc3MsIG5vbi16ZXJvID0gZXJyb3IpLgorICoKKyAqIFVzZWQgaW4gY29udHJv bCB2aXJ0cXVldWUgZm9yIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9ucy4KKyAqLworc3RydWN0IHZl cmJzX2N0cmxfYnVmIHsKKwl1OCBjbWQ7CisJdTggc3RhdHVzOworfSBfX3BhY2tlZDsKKworLyoq CisgKiBzdHJ1Y3QgdnJkbWFfc3Ffc3RhdHMgLSBTdGF0aXN0aWNzIGZvciBhIHNlbmQgcXVldWUg KHRyYW5zbWl0IHBhdGgpCisgKiBAc3luY3A6IFN5bmNocm9uaXphdGlvbiBwb2ludCBmb3IgNjQt Yml0IHN0YXRzIG9uIDMyLWJpdCBDUFVzLgorICogQHBhY2tldHM6IE51bWJlciBvZiBwYWNrZXRz IHRyYW5zbWl0dGVkLgorICogQGJ5dGVzOiBUb3RhbCBudW1iZXIgb2YgYnl0ZXMgdHJhbnNtaXR0 ZWQuCisgKiBAeGRwX3R4OiBOdW1iZXIgb2YgWERQIGZyYW1lcyBzZW50IHZpYSBYRFBfVFggYWN0 aW9uLgorICogQHhkcF90eF9kcm9wczogRHJvcHBlZCBkdWUgdG8gcmluZyBmdWxsIG9yIG1hcHBp bmcgZmFpbHVyZS4KKyAqIEBraWNrczogTnVtYmVyIG9mIHRpbWVzIHRoZSBUWCB2aXJ0cXVldWUg d2FzIGtpY2tlZC4KKyAqIEB0eF90aW1lb3V0czogTnVtYmVyIG9mIHRyYW5zbWl0IHRpbWVvdXRz IGRldGVjdGVkLgorICovCitzdHJ1Y3QgdnJkbWFfc3Ffc3RhdHMgeworCXN0cnVjdCB1NjRfc3Rh dHNfc3luYyBzeW5jcDsKKwl1NjQgcGFja2V0czsKKwl1NjQgYnl0ZXM7CisJdTY0IHhkcF90eDsK Kwl1NjQgeGRwX3R4X2Ryb3BzOworCXU2NCBraWNrczsKKwl1NjQgdHhfdGltZW91dHM7Cit9Owor CisvKioKKyAqIHN0cnVjdCB2cmRtYV9ycV9zdGF0cyAtIFN0YXRpc3RpY3MgZm9yIGEgcmVjZWl2 ZSBxdWV1ZSAocmVjZWl2ZSBwYXRoKQorICogQHN5bmNwOiBTeW5jaHJvbml6YXRpb24gcG9pbnQg Zm9yIDY0LWJpdCBzdGF0cyBvbiAzMi1iaXQgQ1BVcy4KKyAqIEBwYWNrZXRzOiBOdW1iZXIgb2Yg cGFja2V0cyByZWNlaXZlZC4KKyAqIEBieXRlczogVG90YWwgbnVtYmVyIG9mIGJ5dGVzIHJlY2Vp dmVkLgorICogQGRyb3BzOiBQYWNrZXQgZHJvcHMgZHVlIHRvIG5vIGF2YWlsYWJsZSBidWZmZXJz LgorICogQHhkcF9wYWNrZXRzOiBOdW1iZXIgb2YgcGFja2V0cyBwcm9jZXNzZWQgYnkgWERQLgor ICogQHhkcF90eDogUGFja2V0cyBzZW50IGJhY2sgdmlhIFhEUF9UWC4KKyAqIEB4ZHBfcmVkaXJl Y3RzOiBQYWNrZXRzIHJlZGlyZWN0ZWQgdmlhIFhEUF9SRURJUkVDVC4KKyAqIEB4ZHBfZHJvcHM6 IFBhY2tldHMgZHJvcHBlZCB2aWEgWERQX0RST1Agb3IgbWFwcGluZyBmYWlsdXJlLgorICogQGtp Y2tzOiBOdW1iZXIgb2YgdGltZXMgUlEgd2FzIGtpY2tlZCBhZnRlciByZWZpbGwuCisgKi8KK3N0 cnVjdCB2cmRtYV9ycV9zdGF0cyB7CisJc3RydWN0IHU2NF9zdGF0c19zeW5jIHN5bmNwOworCXU2 NCBwYWNrZXRzOworCXU2NCBieXRlczsKKwl1NjQgZHJvcHM7CisJdTY0IHhkcF9wYWNrZXRzOwor CXU2NCB4ZHBfdHg7CisJdTY0IHhkcF9yZWRpcmVjdHM7CisJdTY0IHhkcF9kcm9wczsKKwl1NjQg a2lja3M7Cit9OworCisvKiBFV01BOiBFeHBvbmVudGlhbGx5IFdlaWdodGVkIE1vdmluZyBBdmVy YWdlIGZvciBSWCBwYWNrZXQgbGVuZ3RoICovCitERUNMQVJFX0VXTUEocGt0X2xlbiwgMCwgNjQp IC8qIHdlaWdodD0wLCBmYWN0b3I9NjQgKi8KKworLyoqCisgKiBzdHJ1Y3QgdnJkbWFfc2VuZF9x dWV1ZSAtIEludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIGEgVFggdmlydHF1ZXVlCisgKiBAdnE6 IFRoZSBhc3NvY2lhdGVkIHZpcnRxdWV1ZSBmb3Igc2VuZGluZyBwYWNrZXRzLgorICogQHNnOiBT Y2F0dGVybGlzdCB1c2VkIHBlciB0cmFuc21pc3Npb24gKGhlYWRlciArIGxpbmVhciBkYXRhICsg ZnJhZ3MpLgorICogQG5hbWU6IEh1bWFuLXJlYWRhYmxlIG5hbWUgKGUuZy4sICJvdXRwdXQuMCIp LgorICogQHN0YXRzOiBUcmFuc21pdCBzdGF0aXN0aWNzIHVuZGVyIE5BUEkgcHJvdGVjdGlvbi4K KyAqIEBuYXBpOiBOQVBJIGNvbnRleHQgZm9yIGludGVycnVwdCBtb2RlcmF0aW9uIGFuZCBwb2xs aW5nLgorICogQHJlc2V0OiBUcnVlIGlmIFNRIGlzIHVuZGVyZ29pbmcgcmVzZXQvcmVjb3Zlcnku CisgKgorICogT25lIHBlciB0cmFuc21pdCBxdWV1ZSBwYWlyLiBSdW5zIGluIE5BUEkgcG9sbCBj b250ZXh0IGR1cmluZyBjb25nZXN0aW9uLgorICovCitzdHJ1Y3QgdnJkbWFfc2VuZF9xdWV1ZSB7 CisJc3RydWN0IHZpcnRxdWV1ZSAqdnE7CisJc3RydWN0IHNjYXR0ZXJsaXN0IHNnW01BWF9TS0Jf RlJBR1MgKyAyXTsKKwljaGFyIG5hbWVbMTZdOworCisJc3RydWN0IHZyZG1hX3NxX3N0YXRzIHN0 YXRzOworCXN0cnVjdCBuYXBpX3N0cnVjdCBuYXBpOworCisJYm9vbCByZXNldDsKK30gX19hbGln bmVkKDY0KTsKKworLyoqCisgKiBzdHJ1Y3QgdnJkbWFfcmVjZWl2ZV9xdWV1ZSAtIEludGVybmFs IHJlcHJlc2VudGF0aW9uIG9mIGFuIFJYIHZpcnRxdWV1ZQorICogQHZxOiBUaGUgYXNzb2NpYXRl ZCB2aXJ0cXVldWUgZm9yIHJlY2VpdmluZyBwYWNrZXRzLgorICogQG5hcGk6IE5BUEkgaW5zdGFu Y2UgZm9yIGJhdGNoZWQgcHJvY2Vzc2luZyBvZiBpbmNvbWluZyBwYWNrZXRzLgorICogQHhkcF9w cm9nOiBDdXJyZW50IFhEUCBCUEYgcHJvZ3JhbSAocHJvdGVjdGVkIGJ5IFJDVSkuCisgKiBAc3Rh dHM6IFJlY2VpdmUtc2lkZSBzdGF0aXN0aWNzLgorICogQHBhZ2VzOiBMaW5rZWQgbGlzdCBvZiBw YWdlcyB1c2VkIGFzIHBhY2tldCBidWZmZXJzICh2aWEgcGFnZS0+cHJpdmF0ZSkuCisgKiBAbXJn X2F2Z19wa3RfbGVuOiBFV01BIG9mIHBhY2tldCBsZW5ndGggZm9yIG1lcmdlYWJsZSBidWZmZXIg c2l6aW5nLgorICogQGFsbG9jX2ZyYWc6IFBhZ2UgZnJhZ21lbnQgYWxsb2NhdG9yIGZvciBub24t bWVyZ2VhYmxlIGNhc2UuCisgKiBAc2c6IFNjYXR0ZXJsaXN0IHVzZWQgZHVyaW5nIFJYIHN1Ym1p c3Npb24uCisgKiBAbWluX2J1Zl9sZW46IE1pbmltdW0gYnVmZmVyIHNpemUgd2hlbiB1c2luZyBt ZXJnZWFibGUgUlguCisgKiBAbmFtZTogSHVtYW4tcmVhZGFibGUgbmFtZSAoZS5nLiwgImlucHV0 LjAiKS4KKyAqIEB4ZHBfcnhxOiBNZXRhZGF0YSBmb3IgWERQIGZyYW1lIHJlY2VwdGlvbiAodXNl ZCB3aXRoIHhkcF9kb19mbHVzaF9tYXAoKSkuCisgKgorICogTWFpbnRhaW5zIHN0YXRlIGZvciBy ZWNlaXZpbmcgcGFja2V0cyBmcm9tIHRoZSBob3N0LgorICovCitzdHJ1Y3QgdnJkbWFfcmVjZWl2 ZV9xdWV1ZSB7CisJc3RydWN0IHZpcnRxdWV1ZSAqdnE7CisJc3RydWN0IG5hcGlfc3RydWN0IG5h cGk7CisJc3RydWN0IGJwZl9wcm9nIF9fcmN1ICp4ZHBfcHJvZzsKKwlzdHJ1Y3QgdnJkbWFfcnFf c3RhdHMgc3RhdHM7CisKKwlzdHJ1Y3QgcGFnZSAqcGFnZXM7CisJc3RydWN0IGV3bWFfcGt0X2xl biBtcmdfYXZnX3BrdF9sZW47CisJc3RydWN0IHBhZ2VfZnJhZyBhbGxvY19mcmFnOworCisJc3Ry dWN0IHNjYXR0ZXJsaXN0IHNnW01BWF9TS0JfRlJBR1MgKyAyXTsKKwl1bnNpZ25lZCBpbnQgbWlu X2J1Zl9sZW47CisJY2hhciBuYW1lWzE2XTsKKworCXN0cnVjdCB4ZHBfcnhxX2luZm8geGRwX3J4 cTsKK30gX19hbGlnbmVkKDY0KTsKKworLyoqCisgKiBzdHJ1Y3QgdnJkbWFfaW5mbyAtIE1haW4g ZGV2aWNlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUKKyAqIEB2ZGV2OiBWaXJ0aW8gZGV2aWNlIGJh Y2tpbmcgdGhpcyBpbnRlcmZhY2UuCisgKiBAY3ZxOiBDb250cm9sIHZpcnRxdWV1ZSAob3B0aW9u YWwsIGlmIGZlYXR1cmUgYml0IHNldCkuCisgKiBAZGV2OiBOZXQgZGV2aWNlIHJlZ2lzdGVyZWQg dG8ga2VybmVsIG5ldHdvcmtpbmcgc3RhY2suCisgKiBAc3E6IEFycmF5IG9mIHNlbmQgcXVldWVz IChzaXplID0gY3Vycl9xdWV1ZV9wYWlycykuCisgKiBAcnE6IEFycmF5IG9mIHJlY2VpdmUgcXVl dWVzIChzaXplID0gY3Vycl9xdWV1ZV9wYWlycykuCisgKiBAc3RhdHVzOiBDdXJyZW50IGRldmlj ZSBzdGF0dXMgKGZyb20gY29uZmlnIHNwYWNlKS4KKyAqIEBtYXhfcXVldWVfcGFpcnM6IE1heGlt dW0gbnVtYmVyIG9mIHF1ZXVlIHBhaXJzIHN1cHBvcnRlZCBieSBob3N0LgorICogQGN1cnJfcXVl dWVfcGFpcnM6IEN1cnJlbnRseSBhY3RpdmUgcXVldWUgcGFpcnMuCisgKiBAeGRwX3F1ZXVlX3Bh aXJzOiBOdW1iZXIgb2YgcXVldWUgcGFpcnMgZGVkaWNhdGVkIHRvIFhEUCBwcm9jZXNzaW5nLgor ICogQHhkcF9lbmFibGVkOiBXaGV0aGVyIFhEUCBpcyBjdXJyZW50bHkgYWN0aXZlLgorICogQGJp Z19wYWNrZXRzOiBIb3N0IHN1cHBvcnRzIGp1bWJvIGZyYW1lcyAvIGxhcmdlIE1UVS4KKyAqIEBi aWdfcGFja2V0c19udW1fc2tiZnJhZ3M6IE1heCBTRyBlbnRyaWVzIGFsbG9jYXRlZCBmb3IgYmln IHBhY2tldHMuCisgKiBAbWVyZ2VhYmxlX3J4X2J1ZnM6IEhvc3QgY2FuIG1lcmdlIG11bHRpcGxl IFJYIGJ1ZmZlcnMgaW50byBvbmUgU0tCLgorICogQGhhc19yc3M6IEhvc3Qgc3VwcG9ydHMgUlNT IChSZWNlaXZlIFNpZGUgU2NhbGluZykuCisgKiBAaGFzX3Jzc19oYXNoX3JlcG9ydDogSG9zdCBw cm92aWRlcyBoYXNoIHZhbHVlIGFuZCB0eXBlIGluIFJYIGhlYWRlci4KKyAqIEByc3Nfa2V5X3Np emU6IFNpemUgb2YgUlNTIGtleSBpbiBieXRlcy4KKyAqIEByc3NfaW5kaXJfdGFibGVfc2l6ZTog U2l6ZSBvZiBpbmRpcmVjdGlvbiB0YWJsZS4KKyAqIEByc3NfaGFzaF90eXBlc19zdXBwb3J0ZWQ6 IEJpdG1hcCBvZiBzdXBwb3J0ZWQgaGFzaCB0eXBlcyAoVENQVjQsIFVEUDYsIGV0YykuCisgKiBA cnNzX2hhc2hfdHlwZXNfc2F2ZWQ6IFVzZXItY29uZmlndXJlZCBoYXNoIHR5cGVzIGVuYWJsZWQu CisgKiBAaGFzX2N2cTogVHJ1ZSBpZiBjb250cm9sIHZpcnRxdWV1ZSBpcyBwcmVzZW50LgorICog QGFueV9oZWFkZXJfc2c6IEhvc3QgYWxsb3dzIHNwbGl0dGluZyBoZWFkZXJzIGFjcm9zcyBTRyBl bGVtZW50cy4KKyAqIEBoZHJfbGVuOiBTaXplIG9mIHRoZSB0cmFuc3BvcnQgaGVhZGVyICh2aXJ0 aW9fbmV0X2hkciArIG9wdGlvbmFsIG1ldGFkYXRhKS4KKyAqIEByZWZpbGw6IFdvcmsgaXRlbSBm b3IgZGVsYXllZCBSWCByaW5nIHJlZmlsbCB1bmRlciBtZW1vcnkgcHJlc3N1cmUuCisgKiBAcmVm aWxsX2VuYWJsZWQ6IFdoZXRoZXIgZGVsYXllZCByZWZpbGwgbWVjaGFuaXNtIGlzIGFjdGl2ZS4K KyAqIEByZWZpbGxfbG9jazogU3BpbmxvY2sgcHJvdGVjdGluZyBhY2Nlc3MgdG8gcmVmaWxsX2Vu YWJsZWQuCisgKiBAY29uZmlnX3dvcms6IFdvcmsgaXRlbSBmb3IgaGFuZGxpbmcgY29uZmlnIHNw YWNlIGNoYW5nZXMgKGUuZy4sIGxpbmsgdXAvZG93bikuCisgKiBAYWZmaW5pdHlfaGludF9zZXQ6 IFdoZXRoZXIgYWZmaW5pdHkgaGludHMgYXJlIGFwcGxpZWQgdG8gVlEgaW50ZXJydXB0cy4KKyAq IEBub2RlOiBDUFUgaG90cGx1ZyBub3RpZmllciBub2RlIGZvciBvbmxpbmUgZXZlbnRzLgorICog QG5vZGVfZGVhZDogQ1BVIGhvdHBsdWcgbm90aWZpZXIgbm9kZSBmb3IgZGVhZCBldmVudHMuCisg KiBAY3RybDogUHJlLWFsbG9jYXRlZCBjb250cm9sIGJ1ZmZlciBmb3Igc3luY2hyb25vdXMgQ1ZR IGNvbW1hbmRzLgorICogQGR1cGxleDogQ3VycmVudCBkdXBsZXggc2V0dGluZyAoZnJvbSBldGh0 b29sKS4KKyAqIEBzcGVlZDogQ3VycmVudCBsaW5rIHNwZWVkIChmcm9tIGV0aHRvb2wpLgorICog QHR4X3VzZWNzOiBJbnRlcnJ1cHQgY29hbGVzY2luZzogVFggdGltZXIgaW4gbWljcm9zZWNvbmRz LgorICogQHJ4X3VzZWNzOiBJbnRlcnJ1cHQgY29hbGVzY2luZzogUlggdGltZXIgaW4gbWljcm9z ZWNvbmRzLgorICogQHR4X21heF9wYWNrZXRzOiBJbnRlcnJ1cHQgY29hbGVzY2luZzogbWF4IHBh Y2tldHMgYmVmb3JlIElSUS4KKyAqIEByeF9tYXhfcGFja2V0czogSW50ZXJydXB0IGNvYWxlc2Np bmc6IG1heCBwYWNrZXRzIGJlZm9yZSBJUlEuCisgKiBAZ3Vlc3Rfb2ZmbG9hZHM6IEN1cnJlbnRs eSBuZWdvdGlhdGVkIG9mZmxvYWQgZmVhdHVyZXMuCisgKiBAZ3Vlc3Rfb2ZmbG9hZHNfY2FwYWJs ZTogT2ZmbG9hZCBjYXBhYmlsaXRpZXMgcmVwb3J0ZWQgYnkgaG9zdC4KKyAqIEBmYWlsb3Zlcjog RmFpbG92ZXIgaGFuZGxlIGlmIFNUQU5EQlkgZmVhdHVyZSBpcyBlbmFibGVkLgorICoKKyAqIFRo aXMgc3RydWN0dXJlIGhvbGRzIGFsbCBwZXItZGV2aWNlIHN0YXRlIGZvciB0aGUgdnJkbWEgZHJp dmVyLgorICovCitzdHJ1Y3QgdnJkbWFfaW5mbyB7CisJc3RydWN0IHZpcnRpb19kZXZpY2UgKnZk ZXY7CisJc3RydWN0IHZpcnRxdWV1ZSAqY3ZxOworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CisJ c3RydWN0IHZyZG1hX3NlbmRfcXVldWUgKnNxOworCXN0cnVjdCB2cmRtYV9yZWNlaXZlX3F1ZXVl ICpycTsKKworCXVuc2lnbmVkIGludCBzdGF0dXM7CisKKwl1MTYgbWF4X3F1ZXVlX3BhaXJzOwor CXUxNiBjdXJyX3F1ZXVlX3BhaXJzOworCXUxNiB4ZHBfcXVldWVfcGFpcnM7CisJYm9vbCB4ZHBf ZW5hYmxlZDsKKworCWJvb2wgYmlnX3BhY2tldHM7CisJdW5zaWduZWQgaW50IGJpZ19wYWNrZXRz X251bV9za2JmcmFnczsKKwlib29sIG1lcmdlYWJsZV9yeF9idWZzOworCisJYm9vbCBoYXNfcnNz OworCWJvb2wgaGFzX3Jzc19oYXNoX3JlcG9ydDsKKwl1OCByc3Nfa2V5X3NpemU7CisJdTE2IHJz c19pbmRpcl90YWJsZV9zaXplOworCXUzMiByc3NfaGFzaF90eXBlc19zdXBwb3J0ZWQ7CisJdTMy IHJzc19oYXNoX3R5cGVzX3NhdmVkOworCisJYm9vbCBoYXNfY3ZxOworCWJvb2wgYW55X2hlYWRl cl9zZzsKKwl1OCBoZHJfbGVuOworCisJc3RydWN0IGRlbGF5ZWRfd29yayByZWZpbGw7CisJYm9v bCByZWZpbGxfZW5hYmxlZDsKKwlzcGlubG9ja190IHJlZmlsbF9sb2NrOworCisJc3RydWN0IHdv cmtfc3RydWN0IGNvbmZpZ193b3JrOworCWJvb2wgYWZmaW5pdHlfaGludF9zZXQ7CisKKwlzdHJ1 Y3QgaGxpc3Rfbm9kZSBub2RlOworCXN0cnVjdCBobGlzdF9ub2RlIG5vZGVfZGVhZDsKKworCXZv aWQgKmN0cmw7IC8qIHVzZSBmbGV4aWJsZSBhcnJheSBsYXRlciBpZiBuZWVkZWQgKi8KKworCS8q IEV0aHRvb2wgc2V0dGluZ3MgKi8KKwl1OCBkdXBsZXg7CisJdTMyIHNwZWVkOworCisJLyogSW50 ZXJydXB0IGNvYWxlc2NpbmcgKi8KKwl1MzIgdHhfdXNlY3M7CisJdTMyIHJ4X3VzZWNzOworCXUz MiB0eF9tYXhfcGFja2V0czsKKwl1MzIgcnhfbWF4X3BhY2tldHM7CisKKwl1bnNpZ25lZCBsb25n IGd1ZXN0X29mZmxvYWRzOworCXVuc2lnbmVkIGxvbmcgZ3Vlc3Rfb2ZmbG9hZHNfY2FwYWJsZTsK KworI2lmZGVmIENPTkZJR19ORVRfRkFJTE9WRVIKKwlzdHJ1Y3QgZmFpbG92ZXIgKmZhaWxvdmVy OworI2VuZGlmCit9IF9fYWxpZ25lZCg2NCk7CisKIAogI2VuZGlmClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9o dy92aXJ0aW8vdnJkbWFfaWIuYyBiL2xpbnV4LTYuMTYuOC9kcml2ZXJzL2luZmluaWJhbmQvaHcv dmlydGlvL3ZyZG1hX2liLmMKaW5kZXggMzc5YmQyM2QzLi44MjVlYzU4YmQgMTAwNjQ0Ci0tLSBh L2xpbnV4LTYuMTYuOC9kcml2ZXJzL2luZmluaWJhbmQvaHcvdmlydGlvL3ZyZG1hX2liLmMKKysr IGIvbGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9ody92aXJ0aW8vdnJkbWFfaWIuYwpA QCAtNDksNiArNDksMTE4IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgY21kX3N0cltdID0g ewogCVtWSVJUSU9fUkRNQV9DTURfUkVRX05PVElGWV9DUV0JPSAiUkVRX05PVElGWV9DUSIsCiB9 OwogCisvKioKKyAqIHZyZG1hX2V4ZWNfdmVyYnNfY21kIC0gRXhlY3V0ZSBhIHZlcmJzIGNvbW1h bmQgdmlhIGNvbnRyb2wgdmlydHF1ZXVlCisgKiBAdnJkZXY6IFZSRE1BIGRldmljZQorICogQHZl cmJzX2NtZDogQ29tbWFuZCBvcGNvZGUgKFZSRE1BX0NNRF8qKQorICogQHZlcmJzX2luOiBJbnB1 dCBkYXRhIFNHIGxpc3QgKG9wdGlvbmFsKQorICogQHZlcmJzX291dDogT3V0cHV0IGRhdGEgU0cg bGlzdCAob3B0aW9uYWwpCisgKgorICogQ29udGV4dDogQ2FuIGJlIGNhbGxlZCBmcm9tIHByb2Nl c3Mgb3IgYXRvbWljIGNvbnRleHQgKGUuZy4sIE5BUEksIHdvcmtxdWV1ZSkuCisgKiBMb2NraW5n OiBFeHBlY3RzIGNhbGxlciB0byBoYW5kbGUgc2VyaWFsaXphdGlvbiBpZiBuZWVkZWQuCisgKiBS ZXR1cm46IDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KKyAqLworc3Rh dGljIGludCB2cmRtYV9leGVjX3ZlcmJzX2NtZChzdHJ1Y3QgdnJkbWFfZGV2ICp2cmRldiwgaW50 IHZlcmJzX2NtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjYXR0 ZXJsaXN0ICp2ZXJic19pbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHNjYXR0ZXJsaXN0ICp2ZXJic19vdXQpCit7CisgICAgc3RydWN0IHZyZG1hX2luZm8gKnZyZG1h X2luZm8gPSBuZXRkZXZfcHJpdih2cmRldi0+bmV0ZGV2KTsKKyAgICBzdHJ1Y3QgdmlydHF1ZXVl ICp2cSA9IHZyZGV2LT5jdHJsX3ZxOworICAgIHN0cnVjdCB2ZXJic19jdHJsX2J1ZiAqY3RybF9i dWY7CisgICAgc3RydWN0IHNjYXR0ZXJsaXN0IGhkcl9zZywgc3RhdHVzX3NnOworICAgIHN0cnVj dCBzY2F0dGVybGlzdCAqc2dzWzRdOworICAgIHVuc2lnbmVkIGludCBvdXRfbnVtID0gMSwgaW5f bnVtID0gMTsKKyAgICB1bnNpZ25lZCBpbnQgbGVuOworICAgIGludCByZXQsIHRpbWVvdXRfbG9v cHMgPSBWUkRNQV9DT01NX1RJTUVPVVQ7CisgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKKworICAg IGlmICh1bmxpa2VseSghdnEpKSB7CisgICAgICAgIG5ldGRldl9lcnIodnJkbWFfaW5mby0+ZGV2 LCAiTWlzc2luZyBjb250cm9sIHZpcnRxdWV1ZVxuIik7CisgICAgICAgIHJldHVybiAtRUlOVkFM OworICAgIH0KKworICAgIGN0cmxfYnVmID0ga21hbGxvYyhzaXplb2YoKmN0cmxfYnVmKSwgR0ZQ X0FUT01JQyk7CisgICAgaWYgKCFjdHJsX2J1ZikgeworICAgICAgICBnb3RvIHVubG9jazsKKyAg ICB9CisgICAgY3RybF9idWYtPmNtZCA9IHZlcmJzX2NtZDsKKyAgICBjdHJsX2J1Zi0+c3RhdHVz ID0gfjBVOworCisgICAgLyogUHJlcGFyZSBzY2F0dGVybGlzdHMgZm9yIHNlbmRpbmcgY29tbWFu ZCBhbmQgcmVjZWl2aW5nIHN0YXR1cyAqLworICAgIHNnX2luaXRfb25lKCZoZHJfc2csICZjdHJs X2J1Zi0+Y21kLCBzaXplb2YoY3RybF9idWYtPmNtZCkpOworICAgIHNnc1swXSA9ICZoZHJfc2c7 CisKKyAgICBpZiAodmVyYnNfaW4pIHsKKyAgICAgICAgc2dzWzFdID0gdmVyYnNfaW47CisJCWlu X251bSsrOworICAgIH0KKworICAgIHNnX2luaXRfb25lKCZzdGF0dXNfc2csICZjdHJsX2J1Zi0+ c3RhdHVzLCBzaXplb2YoY3RybF9idWYtPnN0YXR1cykpOworICAgIHNnc1tpbl9udW1dID0gJnN0 YXR1c19zZzsKKworICAgIGlmICh2ZXJic19vdXQpIHsKKyAgICAgICAgc2dzW2luX251bSArIDFd ID0gdmVyYnNfb3V0OworCQlvdXRfbnVtKys7CisgICAgfQorCisgICAgc3Bpbl9sb2NrX2lycXNh dmUoJnZyZGV2LT5jdHJsX2xvY2ssIGZsYWdzKTsKKworICAgIHJldCA9IHZpcnRxdWV1ZV9hZGRf c2dzKHZxLCBzZ3MsIGluX251bSwgb3V0X251bSwgdnJkZXYsIEdGUF9BVE9NSUMpOworICAgIGlm IChyZXQpIHsKKyAgICAgICAgbmV0ZGV2X2Vycih2cmRtYV9pbmZvLT5kZXYsICJGYWlsZWQgdG8g YWRkIGNtZCAlZCB0byBDVlE6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgIHZlcmJzX2NtZCwg cmV0KTsKKyAgICAgICAgZ290byB1bmxvY2s7CisgICAgfQorCisgICAgaWYgKHVubGlrZWx5KCF2 aXJ0cXVldWVfa2ljayh2cSkpKSB7CisgICAgICAgIG5ldGRldl9lcnIodnJkbWFfaW5mby0+ZGV2 LCAiRmFpbGVkIHRvIGtpY2sgQ1ZRIGZvciBjbWQgJWRcbiIsIHZlcmJzX2NtZCk7CisgICAgICAg IHJldCA9IC1FSU87CisgICAgICAgIGdvdG8gdW5sb2NrOworICAgIH0KKworICAgIC8qIFdhaXQg Zm9yIHJlc3BvbnNlOiBsb29wIHdpdGggdGltZW91dCB0byBhdm9pZCBpbmZpbml0ZSBibG9ja2lu ZyAqLworICAgIHJldCA9IC1FVElNRURPVVQ7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYg KHZpcnRxdWV1ZV9nZXRfYnVmKHZxLCAmbGVuKSkgeworICAgICAgICAgICAgcmV0ID0gMDsKKyAg ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmICh1bmxpa2VseSh2aXJ0cXVl dWVfaXNfYnJva2VuKHZxKSkpIHsKKyAgICAgICAgICAgIG5ldGRldl9lcnIodnJkbWFfaW5mby0+ ZGV2LCAiQ1ZRIGlzIGJyb2tlblxuIik7CisgICAgICAgICAgICByZXQgPSAtRUlPOworICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY3B1X3JlbGF4KCk7CisgICAgICAgIC8q CisgICAgICAgICAqIFByZXZlbnQgaW5maW5pdGUgd2FpdC4gSW4gbm9uLWF0b21pYyBjb250ZXh0 LCBjb25zaWRlciB1c2luZyBzY2hlZHVsZV90aW1lb3V0KCkKKyAgICAgICAgICogZm9yIGJldHRl ciBDUFUgdXRpbGl6YXRpb24uCisgICAgICAgICAqLworICAgICAgICBpZiAoIS0tdGltZW91dF9s b29wcykgeworICAgICAgICAgICAgbmV0ZGV2X2Vycih2cmRtYV9pbmZvLT5kZXYsICJUaW1lb3V0 IHdhaXRpbmcgZm9yIGNtZCAlZCByZXNwb25zZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg dmVyYnNfY21kKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCit1bmxv Y2s6CisgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdnJkZXYtPmN0cmxfbG9jaywgZmxhZ3Mp OworCisgICAgLyogTG9nIGZpbmFsIHJlc3VsdCAqLworICAgIGlmIChyZXQgPT0gMCAmJiBjdHJs X2J1Zi0+c3RhdHVzICE9IFZSRE1BX0NUUkxfT0spIHsKKyAgICAgICAgbmV0ZGV2X2Vycih2cmRt YV9pbmZvLT5kZXYsICJFWEVDIGNtZCAlcyBmYWlsZWQ6IHN0YXR1cz0lZFxuIiwKKyAgICAgICAg ICAgICAgICAgICBjbWRfc3RyW3ZlcmJzX2NtZF0sIGN0cmxfYnVmLT5zdGF0dXMpOworICAgICAg ICByZXQgPSAtRUlPOyAvKiBIb3N0IHJldHVybmVkIGFuIGVycm9yIHN0YXR1cyAqLworICAgIH0g ZWxzZSBpZiAocmV0ID09IDApIHsKKyAgICAgICAgbmV0ZGV2X2RiZyh2cmRtYV9pbmZvLT5kZXYs ICJFWEVDIGNtZCAlcyBPS1xuIiwgY21kX3N0clt2ZXJic19jbWRdKTsKKyAgICB9IGVsc2Ugewor ICAgICAgICBuZXRkZXZfZXJyKHZyZG1hX2luZm8tPmRldiwgIkVYRUMgY21kICVzIGZhaWxlZDog cmV0PSVkXG4iLAorICAgICAgICAgICAgICAgICAgIGNtZF9zdHJbdmVyYnNfY21kXSwgcmV0KTsK KyAgICB9CisKKyAgICBrZnJlZShjdHJsX2J1Zik7CisgICAgcmV0dXJuIHJldDsKK30KKwogc3Rh dGljIGNvbnN0IHN0cnVjdCBpYl9kZXZpY2Vfb3BzIHZpcnRpb19yZG1hX2Rldl9vcHMgPSB7CiAJ Lm93bmVyID0gVEhJU19NT0RVTEUsCiAJLnV2ZXJic19hYmlfdmVyID0gVklSVElPX1JETUFfQUJJ X1ZFUlNJT04sCmRpZmYgLS1naXQgYS9saW51eC02LjE2LjgvZHJpdmVycy9pbmZpbmliYW5kL2h3 L3ZpcnRpby92cmRtYV9pYi5oIGIvbGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9ody92 aXJ0aW8vdnJkbWFfaWIuaAppbmRleCA5YTdhMGExNjguLmJkYmE1YTlkZSAxMDA2NDQKLS0tIGEv bGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9ody92aXJ0aW8vdnJkbWFfaWIuaAorKysg Yi9saW51eC02LjE2LjgvZHJpdmVycy9pbmZpbmliYW5kL2h3L3ZpcnRpby92cmRtYV9pYi5oCkBA IC0xMSw2ICsxMSw4IEBACiAjaW5jbHVkZSA8cmRtYS9pYl92ZXJicy5oPgogI2luY2x1ZGUgPHJk bWEvdnJkbWFfYWJpLmg+CiAKKyNkZWZpbmUgVlJETUFfQ09NTV9USU1FT1VUIDEwMDAwMDAKKwog ZW51bSB7CiAJVklSVElPX1JETUFfQVRPTUlDX05PTkUsCiAJVklSVElPX1JETUFfQVRPTUlDX0hD QSwKLS0gCjIuNDMuMAoK