From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xu, Quan" Subject: [PATCH v12 4/6] IOMMU/x86: using a struct pci_dev* instead of SBDF Date: Fri, 24 Jun 2016 13:51:56 +0800 Message-ID: <1466747518-54402-5-git-send-email-quan.xu@intel.com> References: <1466747518-54402-1-git-send-email-quan.xu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1466747518-54402-1-git-send-email-quan.xu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , Feng Wu , Jan Beulich , dario.faggioli@citrix.com, Suravee Suthikulpanit , Quan Xu List-Id: xen-devel@lists.xenproject.org RnJvbTogUXVhbiBYdSA8cXVhbi54dUBpbnRlbC5jb20+CgphIHN0cnVjdCBwY2lfZGV2KiBpbnN0 ZWFkIG9mIFNCREYgaXMgc3RvcmVkIGluc2lkZSBzdHJ1Y3QKcGNpX2F0c19kZXYgYW5kIHBhcmFt ZXRlciB0byBlbmFibGVfYXRzX2RldmljZSgpLgoKU2lnbmVkLW9mZi1ieTogUXVhbiBYdSA8cXVh bi54dUBpbnRlbC5jb20+CgpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzog S2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNDOiBGZW5nIFd1IDxmZW5nLnd1QGlu dGVsLmNvbT4KQ0M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0 QGFtZC5jb20+Ci0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jICAg ICB8IDExICsrKy0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUu YyB8ICAyICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hdHMuaCAgICAgICAgICAgICAgIHwg IDYgKystLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgICAgICAgICB8ICA4 ICsrLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L2F0cy5jICAgICAgIHwgMjAg KysrKysrKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9hdHMuYyAgICAgICAgICAg fCA1MiArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCA2MiBp bnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv aW9tbXVfY21kLmMKaW5kZXggN2M5ZDliZS4uYjMwOTRmMyAxMDA2NDQKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FtZC9pb21tdV9jbWQuYwpAQCAtMjk4LDI0ICsyOTgsMjMgQEAgdm9pZCBhbWRfaW9tbXVf Zmx1c2hfaW90bGIodTggZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogICAgIGlm ICggYXRzX3BkZXYgPT0gTlVMTCApCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICggIXBjaV9h dHNfZW5hYmxlZChhdHNfcGRldi0+c2VnLCBhdHNfcGRldi0+YnVzLCBhdHNfcGRldi0+ZGV2Zm4p ICkKKyAgICBpZiAoICFwY2lfYXRzX2VuYWJsZWQocGRldi0+c2VnLCBwZGV2LT5idXMsIHBkZXYt PmRldmZuKSApCiAgICAgICAgIHJldHVybjsKIAotICAgIGlvbW11ID0gZmluZF9pb21tdV9mb3Jf ZGV2aWNlKGF0c19wZGV2LT5zZWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UENJX0JERjIoYXRzX3BkZXYtPmJ1cywgYXRzX3BkZXYtPmRldmZuKSk7CisgICAgaW9tbXUgPSBm aW5kX2lvbW11X2Zvcl9kZXZpY2UocGRldi0+c2VnLCBQQ0lfQkRGMihwZGV2LT5idXMsIHBkZXYt PmRldmZuKSk7CiAKICAgICBpZiAoICFpb21tdSApCiAgICAgewogICAgICAgICBBTURfSU9NTVVf REVCVUcoIiVzOiBDYW4ndCBmaW5kIGlvbW11IGZvciAlMDR4OiUwMng6JTAyeC4ldVxuIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBhdHNfcGRldi0+c2VnLCBhdHNfcGRldi0+ YnVzLAotICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QoYXRzX3BkZXYtPmRldmZuKSwg UENJX0ZVTkMoYXRzX3BkZXYtPmRldmZuKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1 bmNfXywgcGRldi0+c2VnLCBwZGV2LT5idXMsCisgICAgICAgICAgICAgICAgICAgICAgICBQQ0lf U0xPVChwZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYtPmRldmZuKSk7CiAgICAgICAgIHJldHVy bjsKICAgICB9CiAKICAgICBpZiAoICFpb21tdV9oYXNfY2FwKGlvbW11LCBQQ0lfQ0FQX0lPVExC X1NISUZUKSApCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlcV9pZCA9IGdldF9kbWFfcmVxdWVz dG9yX2lkKGlvbW11LT5zZWcsIFBDSV9CREYyKGF0c19wZGV2LT5idXMsIGRldmZuKSk7CisgICAg cmVxX2lkID0gZ2V0X2RtYV9yZXF1ZXN0b3JfaWQoaW9tbXUtPnNlZywgUENJX0JERjIocGRldi0+ YnVzLCBkZXZmbikpOwogICAgIHF1ZXVlaWQgPSByZXFfaWQ7CiAgICAgbWF4cGVuZCA9IGF0c19w ZGV2LT5hdHNfcXVldWVfZGVwdGggJiAweGZmOwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL3BjaV9hbWRfaW9tbXUuYwppbmRleCA3NzYxMjQxLi42NGNhNzhlIDEwMDY0NAotLS0gYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTE2Miw3ICsxNjIsNyBAQCBz dGF0aWMgdm9pZCBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSgKICAgICAgICAgICFwY2lf YXRzX2VuYWJsZWQoaW9tbXUtPnNlZywgYnVzLCBwZGV2LT5kZXZmbikgKQogICAgIHsKICAgICAg ICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiApCi0gICAgICAgICAgICBlbmFibGVfYXRzX2Rl dmljZShpb21tdS0+c2VnLCBidXMsIGRldmZuLCBpb21tdSk7CisgICAgICAgICAgICBlbmFibGVf YXRzX2RldmljZShpb21tdSwgcGRldik7CiAKICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2lvdGxi KGRldmZuLCBwZGV2LCBJTlZfSU9NTVVfQUxMX1BBR0VTX0FERFJFU1MsIDApOwogICAgIH0KZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2F0cy5oIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYXRzLmgKaW5kZXggNWM5MTU3Mi4uMTM1OTg0MSAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYXRzLmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXRz LmgKQEAgLTE5LDkgKzE5LDcgQEAKIAogc3RydWN0IHBjaV9hdHNfZGV2IHsKICAgICBzdHJ1Y3Qg bGlzdF9oZWFkIGxpc3Q7Ci0gICAgdTE2IHNlZzsKLSAgICB1OCBidXM7Ci0gICAgdTggZGV2Zm47 CisgICAgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXY7CiAgICAgdTE2IGF0c19xdWV1ZV9kZXB0aDsg ICAgLyogQVRTIGRldmljZSBpbnZhbGlkYXRpb24gcXVldWUgZGVwdGggKi8KICAgICBjb25zdCB2 b2lkICppb21tdTsgICAgICAvKiBObyBjb21tb24gSU9NTVUgc3RydWN0IHNvIHVzZSB2b2lkIHBv aW50ZXIgKi8KIH07CkBAIC0zNCw3ICszMiw3IEBAIHN0cnVjdCBwY2lfYXRzX2RldiB7CiBleHRl cm4gc3RydWN0IGxpc3RfaGVhZCBhdHNfZGV2aWNlczsKIGV4dGVybiBib29sX3QgYXRzX2VuYWJs ZWQ7CiAKLWludCBlbmFibGVfYXRzX2RldmljZShpbnQgc2VnLCBpbnQgYnVzLCBpbnQgZGV2Zm4s IGNvbnN0IHZvaWQgKmlvbW11KTsKK2ludCBlbmFibGVfYXRzX2RldmljZShjb25zdCB2b2lkICpp b21tdSwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYpOwogdm9pZCBkaXNhYmxlX2F0c19kZXZpY2Uo aW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuKTsKIHN0cnVjdCBwY2lfYXRzX2RldiAqZ2V0X2F0 c19kZXZpY2UoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuKTsKIApkaWZmIC0tZ2l0IGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvaW9tbXUuYwppbmRleCBmMDEwNjEyLi4xYjBhMGYwIDEwMDY0NAotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvaW9tbXUuYwpAQCAtMTQ2MSw4ICsxNDYxLDggQEAgaW50IGRvbWFpbl9jb250ZXh0X21h cHBpbmdfb25lKAogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBkb21haW5fY29udGV4 dF9tYXBwaW5nKAotICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4sIGNvbnN0IHN0 cnVjdCBwY2lfZGV2ICpwZGV2KQorc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0 cnVjdCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91 bml0ICpkcmhkOwogICAgIGludCByZXQgPSAwOwpAQCAtMTQ5OCw3ICsxNDk4LDcgQEAgc3RhdGlj IGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKAogICAgICAgICByZXQgPSBkb21haW5fY29udGV4 dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2KTsKICAgICAgICAgaWYgKCAhcmV0 ICYmIGRldmZuID09IHBkZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRldiwgZHJoZCkgPiAwICkK LSAgICAgICAgICAgIGVuYWJsZV9hdHNfZGV2aWNlKHNlZywgYnVzLCBkZXZmbiwgZHJoZC0+aW9t bXUpOworICAgICAgICAgICAgZW5hYmxlX2F0c19kZXZpY2UoZHJoZC0+aW9tbXUsIHBkZXYpOwog CiAgICAgICAgIGJyZWFrOwogCkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0aWMgaW50IGludGVs X2lvbW11X2VuYWJsZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgaWYgKCByZXQg PD0gMCApCiAgICAgICAgIHJldHVybiByZXQ7CiAKLSAgICByZXQgPSBlbmFibGVfYXRzX2Rldmlj ZShwZGV2LT5zZWcsIHBkZXYtPmJ1cywgcGRldi0+ZGV2Zm4sIGRyaGQtPmlvbW11KTsKKyAgICBy ZXQgPSBlbmFibGVfYXRzX2RldmljZShkcmhkLT5pb21tdSwgcGRldik7CiAKICAgICByZXR1cm4g cmV0ID49IDAgPyAwIDogcmV0OwogfQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvdnRkL3g4Ni9hdHMuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMK aW5kZXggZGZhNGQzMC4uYTZjNTNlYSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvdnRkL3g4Ni9hdHMuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L2F0 cy5jCkBAIC03NiwyMSArNzYsMjUgQEAgc3RhdGljIGludCBkZXZpY2VfaW5fZG9tYWluKHN0cnVj dCBpb21tdSAqaW9tbXUsIHN0cnVjdCBwY2lfYXRzX2RldiAqcGRldiwgdTE2IGQKICAgICBzdHJ1 Y3Qgcm9vdF9lbnRyeSAqcm9vdF9lbnRyeSA9IE5VTEw7CiAgICAgc3RydWN0IGNvbnRleHRfZW50 cnkgKmN0eHRfZW50cnkgPSBOVUxMOwogICAgIGludCB0dCwgZm91bmQgPSAwOworICAgIHN0cnVj dCBwY2lfZGV2ICpwY2lfZGV2ID0gcGRldi0+cGNpX2RldjsKKworICAgIGlmICggIXBjaV9kZXYg KQorICAgICAgICByZXR1cm4gLUVOT0RFVjsKIAogICAgIHJvb3RfZW50cnkgPSAoc3RydWN0IHJv b3RfZW50cnkgKikgbWFwX3Z0ZF9kb21haW5fcGFnZShpb21tdS0+cm9vdF9tYWRkcik7Ci0gICAg aWYgKCAhcm9vdF9lbnRyeSB8fCAhcm9vdF9wcmVzZW50KHJvb3RfZW50cnlbcGRldi0+YnVzXSkg KQorICAgIGlmICggIXJvb3RfZW50cnkgfHwgIXJvb3RfcHJlc2VudChyb290X2VudHJ5W3BjaV9k ZXYtPmJ1c10pICkKICAgICAgICAgZ290byBvdXQ7CiAKICAgICBjdHh0X2VudHJ5ID0gKHN0cnVj dCBjb250ZXh0X2VudHJ5ICopCi0gICAgICAgICAgICAgICAgIG1hcF92dGRfZG9tYWluX3BhZ2Uo cm9vdF9lbnRyeVtwZGV2LT5idXNdLnZhbCk7CisgICAgICAgICAgICAgICAgIG1hcF92dGRfZG9t YWluX3BhZ2Uocm9vdF9lbnRyeVtwY2lfZGV2LT5idXNdLnZhbCk7CiAKICAgICBpZiAoIGN0eHRf ZW50cnkgPT0gTlVMTCApCiAgICAgICAgIGdvdG8gb3V0OwogCi0gICAgaWYgKCBjb250ZXh0X2Rv bWFpbl9pZChjdHh0X2VudHJ5W3BkZXYtPmRldmZuXSkgIT0gZGlkICkKKyAgICBpZiAoIGNvbnRl eHRfZG9tYWluX2lkKGN0eHRfZW50cnlbcGNpX2Rldi0+ZGV2Zm5dKSAhPSBkaWQgKQogICAgICAg ICBnb3RvIG91dDsKIAotICAgIHR0ID0gY29udGV4dF90cmFuc2xhdGlvbl90eXBlKGN0eHRfZW50 cnlbcGRldi0+ZGV2Zm5dKTsKKyAgICB0dCA9IGNvbnRleHRfdHJhbnNsYXRpb25fdHlwZShjdHh0 X2VudHJ5W3BjaV9kZXYtPmRldmZuXSk7CiAgICAgaWYgKCB0dCAhPSBDT05URVhUX1RUX0RFVl9J T1RMQiApCiAgICAgICAgIGdvdG8gb3V0OwogCkBAIC0xMTYsMTAgKzEyMCwxNiBAQCBpbnQgZGV2 X2ludmFsaWRhdGVfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwgdTE2IGRpZCwKIAogICAgIGxp c3RfZm9yX2VhY2hfZW50cnkoIHBkZXYsICZhdHNfZGV2aWNlcywgbGlzdCApCiAgICAgewotICAg ICAgICB1MTYgc2lkID0gUENJX0JERjIocGRldi0+YnVzLCBwZGV2LT5kZXZmbik7CisgICAgICAg IHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2ID0gcGRldi0+cGNpX2RldjsKKyAgICAgICAgdTE2IHNp ZDsKICAgICAgICAgYm9vbF90IHNiaXQ7CiAgICAgICAgIGludCByYyA9IDA7CiAKKyAgICAgICAg aWYgKCAhcGNpX2RldiApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBzaWQgPSBQ Q0lfQkRGMihwY2lfZGV2LT5idXMsIHBjaV9kZXYtPmRldmZuKTsKKwogICAgICAgICAvKiBPbmx5 IGludmFsaWRhdGUgZGV2aWNlcyB0aGF0IGJlbG9uZyB0byB0aGlzIElPTU1VICovCiAgICAgICAg IGlmICggcGRldi0+aW9tbXUgIT0gaW9tbXUgKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYg LS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvYXRzLmMgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC94ODYvYXRzLmMKaW5kZXggNDBjOWY0MC4uOGNlNzU5ZiAxMDA2NDQKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2F0cy5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3g4Ni9hdHMuYwpAQCAtMjIsMjYgKzIyLDM0IEBAIExJU1RfSEVBRChhdHNfZGV2aWNl cyk7CiBib29sX3QgX19yZWFkX21vc3RseSBhdHNfZW5hYmxlZCA9IDA7CiBib29sZWFuX3BhcmFt KCJhdHMiLCBhdHNfZW5hYmxlZCk7CiAKLWludCBlbmFibGVfYXRzX2RldmljZShpbnQgc2VnLCBp bnQgYnVzLCBpbnQgZGV2Zm4sIGNvbnN0IHZvaWQgKmlvbW11KQoraW50IGVuYWJsZV9hdHNfZGV2 aWNlKGNvbnN0IHZvaWQgKmlvbW11LCBzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldikKIHsKICAgICBz dHJ1Y3QgcGNpX2F0c19kZXYgKnBkZXYgPSBOVUxMOwogICAgIHUzMiB2YWx1ZTsKICAgICBpbnQg cG9zOwogCi0gICAgcG9zID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkoc2VnLCBidXMsIGRldmZu LCBQQ0lfRVhUX0NBUF9JRF9BVFMpOworICAgIHBvcyA9IHBjaV9maW5kX2V4dF9jYXBhYmlsaXR5 KHBjaV9kZXYtPnNlZywgcGNpX2Rldi0+YnVzLCBwY2lfZGV2LT5kZXZmbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRVhUX0NBUF9JRF9BVFMpOwogICAgIEJVR19PTigh cG9zKTsKIAogICAgIGlmICggaW9tbXVfdmVyYm9zZSApCiAgICAgICAgIGRwcmludGsoWEVOTE9H X0lORk8sICIlMDR4OiUwMng6JTAyeC4ldTogQVRTIGNhcGFiaWxpdHkgZm91bmRcbiIsCi0gICAg ICAgICAgICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsK KyAgICAgICAgICAgICAgICBwY2lfZGV2LT5zZWcsIHBjaV9kZXYtPmJ1cywgUENJX1NMT1QocGNp X2Rldi0+ZGV2Zm4pLAorICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7 CiAKLSAgICB2YWx1ZSA9IHBjaV9jb25mX3JlYWQxNihzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4p LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKGRldmZuKSwgcG9zICsgQVRT X1JFR19DVEwpOworICAgIHZhbHVlID0gcGNpX2NvbmZfcmVhZDE2KHBjaV9kZXYtPnNlZywgcGNp X2Rldi0+YnVzLCBQQ0lfU0xPVChwY2lfZGV2LT5kZXZmbiksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUENJX0ZVTkMocGNpX2Rldi0+ZGV2Zm4pLCBwb3MgKyBBVFNfUkVHX0NUTCk7CiAg ICAgaWYgKCB2YWx1ZSAmIEFUU19FTkFCTEUgKQogICAgIHsKICAgICAgICAgbGlzdF9mb3JfZWFj aF9lbnRyeSAoIHBkZXYsICZhdHNfZGV2aWNlcywgbGlzdCApCiAgICAgICAgIHsKLSAgICAgICAg ICAgIGlmICggcGRldi0+c2VnID09IHNlZyAmJiBwZGV2LT5idXMgPT0gYnVzICYmIHBkZXYtPmRl dmZuID09IGRldmZuICkKKyAgICAgICAgICAgIHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2ID0gcGRl di0+cGNpX2RldjsKKworICAgICAgICAgICAgaWYgKCAhcGNpX2RldiApCisgICAgICAgICAgICAg ICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoIHBjaV9kZXYtPnNlZyA9PSBwY2lfZGV2LT5z ZWcgJiYKKyAgICAgICAgICAgICAgICAgcGNpX2Rldi0+YnVzID09IHBjaV9kZXYtPmJ1cyAmJgor ICAgICAgICAgICAgICAgICBwY2lfZGV2LT5kZXZmbiA9PSBwY2lfZGV2LT5kZXZmbiApCiAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgcG9zID0gMDsKICAgICAgICAgICAgICAgICBicmVh azsKQEAgLTU2LDE4ICs2NCwxNiBAQCBpbnQgZW5hYmxlX2F0c19kZXZpY2UoaW50IHNlZywgaW50 IGJ1cywgaW50IGRldmZuLCBjb25zdCB2b2lkICppb21tdSkKICAgICBpZiAoICEodmFsdWUgJiBB VFNfRU5BQkxFKSApCiAgICAgewogICAgICAgICB2YWx1ZSB8PSBBVFNfRU5BQkxFOwotICAgICAg ICBwY2lfY29uZl93cml0ZTE2KHNlZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRl dmZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKyBBVFNfUkVHX0NUTCwgdmFsdWUp OworICAgICAgICBwY2lfY29uZl93cml0ZTE2KHBjaV9kZXYtPnNlZywgcGNpX2Rldi0+YnVzLCBQ Q0lfU0xPVChwY2lfZGV2LT5kZXZmbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZV TkMocGNpX2Rldi0+ZGV2Zm4pLCBwb3MgKyBBVFNfUkVHX0NUTCwgdmFsdWUpOwogICAgIH0KIAog ICAgIGlmICggcG9zICkKICAgICB7Ci0gICAgICAgIHBkZXYtPnNlZyA9IHNlZzsKLSAgICAgICAg cGRldi0+YnVzID0gYnVzOwotICAgICAgICBwZGV2LT5kZXZmbiA9IGRldmZuOworICAgICAgICBw ZGV2LT5wY2lfZGV2ID0gcGNpX2RldjsKICAgICAgICAgcGRldi0+aW9tbXUgPSBpb21tdTsKLSAg ICAgICAgdmFsdWUgPSBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMoZGV2Zm4pLCBwb3MgKyBB VFNfUkVHX0NBUCk7CisgICAgICAgIHZhbHVlID0gcGNpX2NvbmZfcmVhZDE2KHBjaV9kZXYtPnNl ZywgcGNpX2Rldi0+YnVzLCBQQ0lfU0xPVChwY2lfZGV2LT5kZXZmbiksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSwgcG9zICsgQVRTX1JF R19DQVApOwogICAgICAgICBwZGV2LT5hdHNfcXVldWVfZGVwdGggPSB2YWx1ZSAmIEFUU19RVUVV RV9ERVBUSF9NQVNLID86CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUU19RVUVV RV9ERVBUSF9NQVNLICsgMTsKICAgICAgICAgbGlzdF9hZGQoJnBkZXYtPmxpc3QsICZhdHNfZGV2 aWNlcyk7CkBAIC03NSw4ICs4MSw4IEBAIGludCBlbmFibGVfYXRzX2RldmljZShpbnQgc2VnLCBp bnQgYnVzLCBpbnQgZGV2Zm4sIGNvbnN0IHZvaWQgKmlvbW11KQogCiAgICAgaWYgKCBpb21tdV92 ZXJib3NlICkKICAgICAgICAgZHByaW50ayhYRU5MT0dfSU5GTywgIiUwNHg6JTAyeDolMDJ4LiV1 OiBBVFMgJXMgZW5hYmxlZFxuIiwKLSAgICAgICAgICAgICAgICBzZWcsIGJ1cywgUENJX1NMT1Qo ZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksCi0gICAgICAgICAgICAgICAgcG9zID8gImlzIiA6ICJ3 YXMiKTsKKyAgICAgICAgICAgICAgICBwY2lfZGV2LT5zZWcsIHBjaV9kZXYtPmJ1cywgUENJX1NM T1QocGNpX2Rldi0+ZGV2Zm4pLAorICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBjaV9kZXYtPmRl dmZuKSwgcG9zID8gImlzIiA6ICJ3YXMiKTsKIAogICAgIHJldHVybiBwb3M7CiB9CkBAIC05OCw3 ICsxMDQsMTMgQEAgdm9pZCBkaXNhYmxlX2F0c19kZXZpY2UoaW50IHNlZywgaW50IGJ1cywgaW50 IGRldmZuKQogCiAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIHBkZXYsICZhdHNfZGV2aWNlcywg bGlzdCApCiAgICAgewotICAgICAgICBpZiAoIHBkZXYtPnNlZyA9PSBzZWcgJiYgcGRldi0+YnVz ID09IGJ1cyAmJiBwZGV2LT5kZXZmbiA9PSBkZXZmbiApCisgICAgICAgIHN0cnVjdCBwY2lfZGV2 ICpwY2lfZGV2ID0gcGRldi0+cGNpX2RldjsKKworICAgICAgICBpZiAoICFwY2lfZGV2ICkKKyAg ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIHBjaV9kZXYtPnNlZyA9PSBzZWcgJiYK KyAgICAgICAgICAgICBwY2lfZGV2LT5idXMgPT0gYnVzICYmCisgICAgICAgICAgICAgcGNpX2Rl di0+ZGV2Zm4gPT0gZGV2Zm4gKQogICAgICAgICB7CiAgICAgICAgICAgICBsaXN0X2RlbCgmcGRl di0+bGlzdCk7CiAgICAgICAgICAgICB4ZnJlZShwZGV2KTsKQEAgLTEyMCw3ICsxMzIsMTMgQEAg c3RydWN0IHBjaV9hdHNfZGV2ICpnZXRfYXRzX2RldmljZShpbnQgc2VnLCBpbnQgYnVzLCBpbnQg ZGV2Zm4pCiAKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcGRldiwgJmF0c19kZXZpY2VzLCBs aXN0ICkKICAgICB7Ci0gICAgICAgIGlmICggcGRldi0+c2VnID09IHNlZyAmJiBwZGV2LT5idXMg PT0gYnVzICYmIHBkZXYtPmRldmZuID09IGRldmZuICkKKyAgICAgICAgc3RydWN0IHBjaV9kZXYg KnBjaV9kZXYgPSBwZGV2LT5wY2lfZGV2OworCisgICAgICAgIGlmICggIXBjaV9kZXYgKQorICAg ICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICggcGNpX2Rldi0+c2VnID09IHNlZyAmJgor ICAgICAgICAgICAgIHBjaV9kZXYtPmJ1cyA9PSBidXMgJiYKKyAgICAgICAgICAgICBwY2lfZGV2 LT5kZXZmbiA9PSBkZXZmbiApCiAgICAgICAgICAgICByZXR1cm4gcGRldjsKICAgICB9CiAKLS0g CjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK