From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xu, Quan" Subject: [PATCH v13 1/3] IOMMU/x86: use a struct pci_dev* instead of SBDF Date: Wed, 29 Jun 2016 13:59:32 +0800 Message-ID: <1467179974-57317-2-git-send-email-quan.xu@intel.com> References: <1467179974-57317-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: <1467179974-57317-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+CgpBIHN0cnVjdCBwY2lfZGV2KiBpbnN0 ZWFkIG9mIFNCREYgaXMgc3RvcmVkIGluc2lkZSBzdHJ1Y3QKcGNpX2F0c19kZXYgYW5kIHBhcmFt ZXRlciB0byAqX2F0c19kZXZpY2UoKS4KCkFsc28gdXNlIGF0c19kZXYgZm9yICJzdHJ1Y3QgcGNp X2F0c19kZXYiIHZhcmlhYmxlLCB3aGlsZQpwZGV2IChfcGRldiwgaWYgdGhlcmUgaXMgYWxyZWFk eSBhIHBkZXYpIGZvciAic3RydWN0IHBjaV9kZXYiCmluIHRoZSBzY29wZSBvZiBJT01NVS4KClNp Z25lZC1vZmYtYnk6IFF1YW4gWHUgPHF1YW4ueHVAaW50ZWwuY29tPgoKQ0M6IEphbiBCZXVsaWNo IDxqYmV1bGljaEBzdXNlLmNvbT4KQ0M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29t PgpDQzogRmVuZyBXdSA8ZmVuZy53dUBpbnRlbC5jb20+CkNDOiBTdXJhdmVlIFN1dGhpa3VscGFu aXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgoKLS0tCnYxMzoKICAgMS4gdXNlIGF0 c19kZXYgZm9yICJzdHJ1Y3QgcGNpX2F0c19kZXYiIHZhcmlhYmxlLCB3aGlsZQogICAgICBwZGV2 IChfcGRldiwgaWYgdGhlcmUgaXMgYWxyZWFkeSBhIHBkZXYpIGZvciAic3RydWN0IHBjaV9kZXYi CiAgICAgIGluIHRoZSBzY29wZSBvZiBJT01NVS4KICAgMi4gYWRkIGxvY2FsIHZhcmlhYmxlcyBz ZWcsIGJ1cywgYW5kIGRldmZuLCB3aGljaCB3aWxsCiAgICAgIGdyZWF0bHkgcmVkdWNlIHRoZSBu dW1iZXIgb2YgY2hhbmdlcyBpbiAqX2F0c19kZXZpY2UoKS4KICAgMy4gY29udmVydCBTQkRGIGlu dG8gc3RydWN0IHBjaV9kZXYqIHRvIGRpc2FibGVfYXRzX2RldmljZSgpCiAgICAgIGdldF9hdHNf ZGV2aWNlKCkgYXMgd2VsbC4KICAgICAgKAogICAgICAgZW5hYmxlX2F0c19kZXZpY2UoKSBhbmQg ZGlzYWJsZV9hdHNfZGV2aWNlKCkgY2FuJ3QgaGF2ZQogICAgICAgdGhlIGNvbnN0IGFkZGVkIHRv ICdzdHJ1Y3QgcGNpX2RldiAqcGRldicsIG90aGVyd2lzZSB0aGVuCiAgICAgICBjb21waWxhdGlv biBmYWlscy4gYWxzbyBBZmFpY3QgdGhhdCB3b3VsZCBpbiB0dXJuIGVsaW1pbmF0ZQogICAgICAg dGhlIG5lZWQgZm9yIHNvbWUgb2YgdGhlIGNoYW5nZXMgZnVydGhlciB1cC4gYnV0IGdldF9hdHNf ZGV2aWNlKCkKICAgICAgIGNhbi4KICAgICAgKQotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdV9jbWQuYyAgICAgfCAxMyArKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9wY2lfYW1kX2lvbW11LmMgfCAgNCArLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXRz LmggICAgICAgICAgICAgICB8IDEwICsrLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW50cmVtYXAuYyAgICAgIHwgIDggKystLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMgICAgICAgICB8IDE0ICsrKy0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4 Ni9hdHMuYyAgICAgICB8IDI0ICsrKysrKystLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94 ODYvYXRzLmMgICAgICAgICAgIHwgNjcgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDcg ZmlsZXMgY2hhbmdlZCwgODEgaW5zZXJ0aW9ucygrKSwgNTkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jCmluZGV4IDdjOWQ5YmUuLjkzNDk3N2EgMTAw NjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9jbWQuYworKysgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKQEAgLTI5NCwyOCArMjk0LDI3 IEBAIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2lvdGxiKHU4IGRldmZuLCBjb25zdCBzdHJ1Y3QgcGNp X2RldiAqcGRldiwKICAgICBpZiAoICFhdHNfZW5hYmxlZCApCiAgICAgICAgIHJldHVybjsKIAot ICAgIGF0c19wZGV2ID0gZ2V0X2F0c19kZXZpY2UocGRldi0+c2VnLCBwZGV2LT5idXMsIHBkZXYt PmRldmZuKTsKKyAgICBhdHNfcGRldiA9IGdldF9hdHNfZGV2aWNlKHBkZXYpOwogICAgIGlmICgg YXRzX3BkZXYgPT0gTlVMTCApCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICggIXBjaV9hdHNf ZW5hYmxlZChhdHNfcGRldi0+c2VnLCBhdHNfcGRldi0+YnVzLCBhdHNfcGRldi0+ZGV2Zm4pICkK KyAgICBpZiAoICFwY2lfYXRzX2VuYWJsZWQocGRldi0+c2VnLCBwZGV2LT5idXMsIHBkZXYtPmRl dmZuKSApCiAgICAgICAgIHJldHVybjsKIAotICAgIGlvbW11ID0gZmluZF9pb21tdV9mb3JfZGV2 aWNlKGF0c19wZGV2LT5zZWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJ X0JERjIoYXRzX3BkZXYtPmJ1cywgYXRzX3BkZXYtPmRldmZuKSk7CisgICAgaW9tbXUgPSBmaW5k X2lvbW11X2Zvcl9kZXZpY2UocGRldi0+c2VnLCBQQ0lfQkRGMihwZGV2LT5idXMsIHBkZXYtPmRl dmZuKSk7CiAKICAgICBpZiAoICFpb21tdSApCiAgICAgewogICAgICAgICBBTURfSU9NTVVfREVC VUcoIiVzOiBDYW4ndCBmaW5kIGlvbW11IGZvciAlMDR4OiUwMng6JTAyeC4ldVxuIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBhdHNfcGRldi0+c2VnLCBhdHNfcGRldi0+YnVz LAotICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QoYXRzX3BkZXYtPmRldmZuKSwgUENJ X0ZVTkMoYXRzX3BkZXYtPmRldmZuKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNf XywgcGRldi0+c2VnLCBwZGV2LT5idXMsCisgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xP VChwZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYtPmRldmZuKSk7CiAgICAgICAgIHJldHVybjsK ICAgICB9CiAKICAgICBpZiAoICFpb21tdV9oYXNfY2FwKGlvbW11LCBQQ0lfQ0FQX0lPVExCX1NI SUZUKSApCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlcV9pZCA9IGdldF9kbWFfcmVxdWVzdG9y X2lkKGlvbW11LT5zZWcsIFBDSV9CREYyKGF0c19wZGV2LT5idXMsIGRldmZuKSk7CisgICAgcmVx X2lkID0gZ2V0X2RtYV9yZXF1ZXN0b3JfaWQoaW9tbXUtPnNlZywgUENJX0JERjIocGRldi0+YnVz LCBwZGV2LT5kZXZmbikpOwogICAgIHF1ZXVlaWQgPSByZXFfaWQ7CiAgICAgbWF4cGVuZCA9IGF0 c19wZGV2LT5hdHNfcXVldWVfZGVwdGggJiAweGZmOwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwppbmRleCA3NzYxMjQxLi5kYWQ0YTcxIDEwMDY0NAotLS0g YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTE2Miw3ICsxNjIsNyBA QCBzdGF0aWMgdm9pZCBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSgKICAgICAgICAgICFw Y2lfYXRzX2VuYWJsZWQoaW9tbXUtPnNlZywgYnVzLCBwZGV2LT5kZXZmbikgKQogICAgIHsKICAg ICAgICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiApCi0gICAgICAgICAgICBlbmFibGVfYXRz X2RldmljZShpb21tdS0+c2VnLCBidXMsIGRldmZuLCBpb21tdSk7CisgICAgICAgICAgICBlbmFi bGVfYXRzX2RldmljZShpb21tdSwgcGRldik7CiAKICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2lv dGxiKGRldmZuLCBwZGV2LCBJTlZfSU9NTVVfQUxMX1BBR0VTX0FERFJFU1MsIDApOwogICAgIH0K QEAgLTM1Niw3ICszNTYsNyBAQCB2b2lkIGFtZF9pb21tdV9kaXNhYmxlX2RvbWFpbl9kZXZpY2Uo c3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYK ICAgICAgICAgIHBjaV9hdHNfZGV2aWNlKGlvbW11LT5zZWcsIGJ1cywgZGV2Zm4pICYmCiAgICAg ICAgICBwY2lfYXRzX2VuYWJsZWQoaW9tbXUtPnNlZywgYnVzLCBkZXZmbikgKQotICAgICAgICBk aXNhYmxlX2F0c19kZXZpY2UoaW9tbXUtPnNlZywgYnVzLCBkZXZmbik7CisgICAgICAgIGRpc2Fi bGVfYXRzX2RldmljZShwZGV2KTsKIH0KIAogc3RhdGljIGludCByZWFzc2lnbl9kZXZpY2Uoc3Ry dWN0IGRvbWFpbiAqc291cmNlLCBzdHJ1Y3QgZG9tYWluICp0YXJnZXQsCmRpZmYgLS1naXQgYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hdHMuaCBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2F0 cy5oCmluZGV4IDVjOTE1NzIuLjQ3ZmYyMmQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2F0cy5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2F0cy5oCkBAIC0xOSw5 ICsxOSw3IEBACiAKIHN0cnVjdCBwY2lfYXRzX2RldiB7CiAgICAgc3RydWN0IGxpc3RfaGVhZCBs aXN0OwotICAgIHUxNiBzZWc7Ci0gICAgdTggYnVzOwotICAgIHU4IGRldmZuOworICAgIHN0cnVj dCBwY2lfZGV2ICpwZGV2OwogICAgIHUxNiBhdHNfcXVldWVfZGVwdGg7ICAgIC8qIEFUUyBkZXZp Y2UgaW52YWxpZGF0aW9uIHF1ZXVlIGRlcHRoICovCiAgICAgY29uc3Qgdm9pZCAqaW9tbXU7ICAg ICAgLyogTm8gY29tbW9uIElPTU1VIHN0cnVjdCBzbyB1c2Ugdm9pZCBwb2ludGVyICovCiB9OwpA QCAtMzQsOSArMzIsOSBAQCBzdHJ1Y3QgcGNpX2F0c19kZXYgewogZXh0ZXJuIHN0cnVjdCBsaXN0 X2hlYWQgYXRzX2RldmljZXM7CiBleHRlcm4gYm9vbF90IGF0c19lbmFibGVkOwogCi1pbnQgZW5h YmxlX2F0c19kZXZpY2UoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuLCBjb25zdCB2b2lkICpp b21tdSk7Ci12b2lkIGRpc2FibGVfYXRzX2RldmljZShpbnQgc2VnLCBpbnQgYnVzLCBpbnQgZGV2 Zm4pOwotc3RydWN0IHBjaV9hdHNfZGV2ICpnZXRfYXRzX2RldmljZShpbnQgc2VnLCBpbnQgYnVz LCBpbnQgZGV2Zm4pOworaW50IGVuYWJsZV9hdHNfZGV2aWNlKGNvbnN0IHZvaWQgKmlvbW11LCBz dHJ1Y3QgcGNpX2RldiAqcGRldik7Cit2b2lkIGRpc2FibGVfYXRzX2RldmljZShzdHJ1Y3QgcGNp X2RldiAqcGRldik7CitzdHJ1Y3QgcGNpX2F0c19kZXYgKmdldF9hdHNfZGV2aWNlKGNvbnN0IHN0 cnVjdCBwY2lfZGV2ICpwZGV2KTsKIAogc3RhdGljIGlubGluZSBpbnQgcGNpX2F0c19lbmFibGVk KGludCBzZWcsIGludCBidXMsIGludCBkZXZmbikKIHsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2ludHJlbWFwLmMKaW5kZXggN2MxMTU2NS4uMjhlM2NmNCAxMDA2NDQKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL2ludHJlbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvdnRkL2ludHJlbWFwLmMKQEAgLTk1Miw3ICs5NTIsNyBAQCBpbnQgcGlfdXBkYXRlX2lydGUo Y29uc3Qgc3RydWN0IHZjcHUgKnYsIGNvbnN0IHN0cnVjdCBwaXJxICpwaXJxLAogICAgIGNvbnN0 IHN0cnVjdCBtc2lfZGVzYyAqbXNpX2Rlc2M7CiAgICAgaW50IHJlbWFwX2luZGV4OwogICAgIGlu dCByYyA9IDA7Ci0gICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXY7CisgICAgY29uc3Qg c3RydWN0IHBjaV9kZXYgKnBkZXY7CiAgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpk cmhkOwogICAgIHN0cnVjdCBpb21tdSAqaW9tbXU7CiAgICAgc3RydWN0IGlyX2N0cmwgKmlyX2N0 cmw7CkBAIC05NzIsOCArOTcyLDggQEAgaW50IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCB2 Y3B1ICp2LCBjb25zdCBzdHJ1Y3QgcGlycSAqcGlycSwKICAgICAgICAgZ290byB1bmxvY2tfb3V0 OwogICAgIH0KIAotICAgIHBjaV9kZXYgPSBtc2lfZGVzYy0+ZGV2OwotICAgIGlmICggIXBjaV9k ZXYgKQorICAgIHBkZXYgPSBtc2lfZGVzYy0+ZGV2OworICAgIGlmICggIXBkZXYgKQogICAgIHsK ICAgICAgICAgcmMgPSAtRU5PREVWOwogICAgICAgICBnb3RvIHVubG9ja19vdXQ7CkBAIC05OTAs NyArOTkwLDcgQEAgaW50IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBjb25z dCBzdHJ1Y3QgcGlycSAqcGlycSwKICAgICAgKiAnc3RydWN0IG1zaV9kZXNjJyBpbiBzb21lIG90 aGVyIHBsYWNlLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHdhc3RlCiAgICAgICogdGltZSBzZWFyY2hp bmcgaXQgaGVyZS4KICAgICAgKi8KLSAgICBkcmhkID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91 bml0KHBjaV9kZXYpOworICAgIGRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRl dik7CiAgICAgaWYgKCAhZHJoZCApCiAgICAgICAgIHJldHVybiAtRU5PREVWOwogCmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5jCmluZGV4IGYwMTA2MTIuLmNjMzQ0OTcgMTAwNjQ0Ci0tLSBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xNDYxLDggKzE0NjEsOCBAQCBpbnQgZG9tYWluX2Nv bnRleHRfbWFwcGluZ19vbmUoCiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGRvbWFp bl9jb250ZXh0X21hcHBpbmcoCi0gICAgc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBkZXZmbiwg Y29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCitzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21h cHBpbmcoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBkZXZmbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKICAgICBzdHJ1Y3QgYWNw aV9kcmhkX3VuaXQgKmRyaGQ7CiAgICAgaW50IHJldCA9IDA7CkBAIC0xNDk4LDcgKzE0OTgsNyBA QCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoCiAgICAgICAgIHJldCA9IGRvbWFp bl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYpOwogICAgICAgICBp ZiAoICFyZXQgJiYgZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgYXRzX2RldmljZShwZGV2LCBkcmhk KSA+IDAgKQotICAgICAgICAgICAgZW5hYmxlX2F0c19kZXZpY2Uoc2VnLCBidXMsIGRldmZuLCBk cmhkLT5pb21tdSk7CisgICAgICAgICAgICBlbmFibGVfYXRzX2RldmljZShkcmhkLT5pb21tdSwg cGRldik7CiAKICAgICAgICAgYnJlYWs7CiAKQEAgLTE2MTEsOCArMTYxMSw4IEBAIGludCBkb21h aW5fY29udGV4dF91bm1hcF9vbmUoCiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGRv bWFpbl9jb250ZXh0X3VubWFwKAotICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4s IGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQorc3RhdGljIGludCBkb21haW5fY29udGV4dF91 bm1hcChzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU4IGRldmZuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKICAgICBzdHJ1Y3QgYWNwaV9k cmhkX3VuaXQgKmRyaGQ7CiAgICAgc3RydWN0IGlvbW11ICppb21tdTsKQEAgLTE2NDgsNyArMTY0 OCw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoCiAgICAgICAgICAgICAgICAg ICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwogICAgICAgICByZXQgPSBkb21h aW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVzLCBkZXZmbik7CiAgICAgICAg IGlmICggIXJldCAmJiBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBhdHNfZGV2aWNlKHBkZXYsIGRy aGQpID4gMCApCi0gICAgICAgICAgICBkaXNhYmxlX2F0c19kZXZpY2Uoc2VnLCBidXMsIGRldmZu KTsKKyAgICAgICAgICAgIGRpc2FibGVfYXRzX2RldmljZShwZGV2KTsKIAogICAgICAgICBicmVh azsKIApAQCAtMTk5NCw3ICsxOTk0LDcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9lbmFibGVf ZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAgIGlmICggcmV0IDw9IDAgKQogICAgICAg ICByZXR1cm4gcmV0OwogCi0gICAgcmV0ID0gZW5hYmxlX2F0c19kZXZpY2UocGRldi0+c2VnLCBw ZGV2LT5idXMsIHBkZXYtPmRldmZuLCBkcmhkLT5pb21tdSk7CisgICAgcmV0ID0gZW5hYmxlX2F0 c19kZXZpY2UoZHJoZC0+aW9tbXUsIHBkZXYpOwogCiAgICAgcmV0dXJuIHJldCA+PSAwID8gMCA6 IHJldDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRz LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L2F0cy5jCmluZGV4IGRmYTRkMzAu LjExZmU5YmIgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRz LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYwpAQCAtNzEsMTIg KzcxLDE0IEBAIGludCBhdHNfZGV2aWNlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25z dCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQpCiAgICAgcmV0dXJuIHBvczsKIH0KIAotc3Rh dGljIGludCBkZXZpY2VfaW5fZG9tYWluKHN0cnVjdCBpb21tdSAqaW9tbXUsIHN0cnVjdCBwY2lf YXRzX2RldiAqcGRldiwgdTE2IGRpZCkKK3N0YXRpYyBpbnQgZGV2aWNlX2luX2RvbWFpbihzdHJ1 Y3QgaW9tbXUgKmlvbW11LCBzdHJ1Y3QgcGNpX2F0c19kZXYgKmF0c19kZXYsIHUxNiBkaWQpCiB7 CiAgICAgc3RydWN0IHJvb3RfZW50cnkgKnJvb3RfZW50cnkgPSBOVUxMOwogICAgIHN0cnVjdCBj b250ZXh0X2VudHJ5ICpjdHh0X2VudHJ5ID0gTlVMTDsKICAgICBpbnQgdHQsIGZvdW5kID0gMDsK KyAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGF0c19kZXYtPnBkZXY7CiAKKyAgICBBU1NFUlQo cGRldik7CiAgICAgcm9vdF9lbnRyeSA9IChzdHJ1Y3Qgcm9vdF9lbnRyeSAqKSBtYXBfdnRkX2Rv bWFpbl9wYWdlKGlvbW11LT5yb290X21hZGRyKTsKICAgICBpZiAoICFyb290X2VudHJ5IHx8ICFy b290X3ByZXNlbnQocm9vdF9lbnRyeVtwZGV2LT5idXNdKSApCiAgICAgICAgIGdvdG8gb3V0OwpA QCAtMTA4LDM3ICsxMTAsNDEgQEAgb3V0OgogaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0cnVj dCBpb21tdSAqaW9tbXUsIHUxNiBkaWQsCiAgICAgdTY0IGFkZHIsIHVuc2lnbmVkIGludCBzaXpl X29yZGVyLCB1NjQgdHlwZSkKIHsKLSAgICBzdHJ1Y3QgcGNpX2F0c19kZXYgKnBkZXY7CisgICAg c3RydWN0IHBjaV9hdHNfZGV2ICphdHNfZGV2OwogICAgIGludCByZXQgPSAwOwogCiAgICAgaWYg KCAhZWNhcF9kZXZfaW90bGIoaW9tbXUtPmVjYXApICkKICAgICAgICAgcmV0dXJuIHJldDsKIAot ICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIHBkZXYsICZhdHNfZGV2aWNlcywgbGlzdCApCisgICAg bGlzdF9mb3JfZWFjaF9lbnRyeSggYXRzX2RldiwgJmF0c19kZXZpY2VzLCBsaXN0ICkKICAgICB7 Ci0gICAgICAgIHUxNiBzaWQgPSBQQ0lfQkRGMihwZGV2LT5idXMsIHBkZXYtPmRldmZuKTsKKyAg ICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBhdHNfZGV2LT5wZGV2OworICAgICAgICB1MTYg c2lkOwogICAgICAgICBib29sX3Qgc2JpdDsKICAgICAgICAgaW50IHJjID0gMDsKIAorICAgICAg ICBBU1NFUlQocGRldik7CisgICAgICAgIHNpZCA9IFBDSV9CREYyKHBkZXYtPmJ1cywgcGRldi0+ ZGV2Zm4pOworCiAgICAgICAgIC8qIE9ubHkgaW52YWxpZGF0ZSBkZXZpY2VzIHRoYXQgYmVsb25n IHRvIHRoaXMgSU9NTVUgKi8KLSAgICAgICAgaWYgKCBwZGV2LT5pb21tdSAhPSBpb21tdSApCisg ICAgICAgIGlmICggYXRzX2Rldi0+aW9tbXUgIT0gaW9tbXUgKQogICAgICAgICAgICAgY29udGlu dWU7CiAKICAgICAgICAgc3dpdGNoICggdHlwZSApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBE TUFfVExCX0RTSV9GTFVTSDoKLSAgICAgICAgICAgIGlmICggIWRldmljZV9pbl9kb21haW4oaW9t bXUsIHBkZXYsIGRpZCkgKQorICAgICAgICAgICAgaWYgKCAhZGV2aWNlX2luX2RvbWFpbihpb21t dSwgYXRzX2RldiwgZGlkKSApCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAv KiBmYWxsIHRocm91Z2ggaWYgRFNJIGNvbmRpdGlvbiBtZXQgKi8KICAgICAgICAgY2FzZSBETUFf VExCX0dMT0JBTF9GTFVTSDoKICAgICAgICAgICAgIC8qIGludmFsaWRhdGUgYWxsIHRyYW5zbGF0 aW9uczogc2JpdD0xLGJpdF82Mz0wLGJpdFs2MjoxMl09MSAqLwogICAgICAgICAgICAgc2JpdCA9 IDE7CiAgICAgICAgICAgICBhZGRyID0gKH4wVUwgPDwgUEFHRV9TSElGVF80SykgJiAweDdGRkZG RkZGRkZGRkZGRkY7Ci0gICAgICAgICAgICByYyA9IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhp b21tdSwgcGRldi0+YXRzX3F1ZXVlX2RlcHRoLAorICAgICAgICAgICAgcmMgPSBxaW52YWxfZGV2 aWNlX2lvdGxiX3N5bmMoaW9tbXUsIGF0c19kZXYtPmF0c19xdWV1ZV9kZXB0aCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZCwgc2JpdCwgYWRkcik7CiAgICAg ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBETUFfVExCX1BTSV9GTFVTSDoKLSAgICAgICAg ICAgIGlmICggIWRldmljZV9pbl9kb21haW4oaW9tbXUsIHBkZXYsIGRpZCkgKQorICAgICAgICAg ICAgaWYgKCAhZGV2aWNlX2luX2RvbWFpbihpb21tdSwgYXRzX2RldiwgZGlkKSApCiAgICAgICAg ICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIC8qIGlmIHNpemUgPD0gNEssIHNldCBzYml0 ID0gMCwgZWxzZSBzZXQgc2JpdCA9IDEgKi8KQEAgLTE1NCw3ICsxNjAsNyBAQCBpbnQgZGV2X2lu dmFsaWRhdGVfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwgdTE2IGRpZCwKICAgICAgICAgICAg ICAgICBhZGRyIHw9ICgoKHU2NCkxIDw8IChzaXplX29yZGVyIC0gMSkpIC0gMSkgPDwgUEFHRV9T SElGVF80SzsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcmMgPSBxaW52YWxfZGV2aWNl X2lvdGxiX3N5bmMoaW9tbXUsIHBkZXYtPmF0c19xdWV1ZV9kZXB0aCwKKyAgICAgICAgICAgIHJj ID0gcWludmFsX2RldmljZV9pb3RsYl9zeW5jKGlvbW11LCBhdHNfZGV2LT5hdHNfcXVldWVfZGVw dGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWQsIHNiaXQs IGFkZHIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQg YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvYXRzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC94ODYvYXRzLmMKaW5kZXggNDBjOWY0MC4uNjI3YjllMyAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gveDg2L2F0cy5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3g4Ni9hdHMuYwpAQCAtMjIsMTAgKzIyLDEyIEBAIExJU1RfSEVBRChhdHNfZGV2aWNlcyk7CiBi b29sX3QgX19yZWFkX21vc3RseSBhdHNfZW5hYmxlZCA9IDA7CiBib29sZWFuX3BhcmFtKCJhdHMi LCBhdHNfZW5hYmxlZCk7CiAKLWludCBlbmFibGVfYXRzX2RldmljZShpbnQgc2VnLCBpbnQgYnVz LCBpbnQgZGV2Zm4sIGNvbnN0IHZvaWQgKmlvbW11KQoraW50IGVuYWJsZV9hdHNfZGV2aWNlKGNv bnN0IHZvaWQgKmlvbW11LCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLSAgICBzdHJ1Y3QgcGNp X2F0c19kZXYgKnBkZXYgPSBOVUxMOworICAgIHN0cnVjdCBwY2lfYXRzX2RldiAqYXRzX2RldiA9 IE5VTEw7CiAgICAgdTMyIHZhbHVlOworICAgIHUxNiBzZWcgPSBwZGV2LT5zZWc7CisgICAgdTgg YnVzID0gcGRldi0+YnVzLCBkZXZmbiA9IHBkZXYtPmRldmZuOwogICAgIGludCBwb3M7CiAKICAg ICBwb3MgPSBwY2lfZmluZF9leHRfY2FwYWJpbGl0eShzZWcsIGJ1cywgZGV2Zm4sIFBDSV9FWFRf Q0FQX0lEX0FUUyk7CkBAIC0zOSw5ICs0MSwxNCBAQCBpbnQgZW5hYmxlX2F0c19kZXZpY2UoaW50 IHNlZywgaW50IGJ1cywgaW50IGRldmZuLCBjb25zdCB2b2lkICppb21tdSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQQ0lfRlVOQyhkZXZmbiksIHBvcyArIEFUU19SRUdfQ1RMKTsKICAg ICBpZiAoIHZhbHVlICYgQVRTX0VOQUJMRSApCiAgICAgewotICAgICAgICBsaXN0X2Zvcl9lYWNo X2VudHJ5ICggcGRldiwgJmF0c19kZXZpY2VzLCBsaXN0ICkKKyAgICAgICAgbGlzdF9mb3JfZWFj aF9lbnRyeSAoIGF0c19kZXYsICZhdHNfZGV2aWNlcywgbGlzdCApCiAgICAgICAgIHsKLSAgICAg ICAgICAgIGlmICggcGRldi0+c2VnID09IHNlZyAmJiBwZGV2LT5idXMgPT0gYnVzICYmIHBkZXYt PmRldmZuID09IGRldmZuICkKKyAgICAgICAgICAgIHN0cnVjdCBwY2lfZGV2ICpfcGRldiA9IGF0 c19kZXYtPnBkZXY7CisKKyAgICAgICAgICAgIEFTU0VSVChfcGRldik7CisgICAgICAgICAgICBp ZiAoIF9wZGV2LT5zZWcgPT0gc2VnICYmCisgICAgICAgICAgICAgICAgIF9wZGV2LT5idXMgPT0g YnVzICYmCisgICAgICAgICAgICAgICAgIF9wZGV2LT5kZXZmbiA9PSBkZXZmbiApCiAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgcG9zID0gMDsKICAgICAgICAgICAgICAgICBicmVhazsK QEAgLTQ5LDggKzU2LDggQEAgaW50IGVuYWJsZV9hdHNfZGV2aWNlKGludCBzZWcsIGludCBidXMs IGludCBkZXZmbiwgY29uc3Qgdm9pZCAqaW9tbXUpCiAgICAgICAgIH0KICAgICB9CiAgICAgaWYg KCBwb3MgKQotICAgICAgICBwZGV2ID0geG1hbGxvYyhzdHJ1Y3QgcGNpX2F0c19kZXYpOwotICAg IGlmICggIXBkZXYgKQorICAgICAgICBhdHNfZGV2ID0geG1hbGxvYyhzdHJ1Y3QgcGNpX2F0c19k ZXYpOworICAgIGlmICggIWF0c19kZXYgKQogICAgICAgICByZXR1cm4gLUVOT01FTTsKIAogICAg IGlmICggISh2YWx1ZSAmIEFUU19FTkFCTEUpICkKQEAgLTYyLDE1ICs2OSwxMyBAQCBpbnQgZW5h YmxlX2F0c19kZXZpY2UoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuLCBjb25zdCB2b2lkICpp b21tdSkKIAogICAgIGlmICggcG9zICkKICAgICB7Ci0gICAgICAgIHBkZXYtPnNlZyA9IHNlZzsK LSAgICAgICAgcGRldi0+YnVzID0gYnVzOwotICAgICAgICBwZGV2LT5kZXZmbiA9IGRldmZuOwot ICAgICAgICBwZGV2LT5pb21tdSA9IGlvbW11OworICAgICAgICBhdHNfZGV2LT5wZGV2ID0gcGRl djsKKyAgICAgICAgYXRzX2Rldi0+aW9tbXUgPSBpb21tdTsKICAgICAgICAgdmFsdWUgPSBwY2lf Y29uZl9yZWFkMTYoc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUENJX0ZVTkMoZGV2Zm4pLCBwb3MgKyBBVFNfUkVHX0NBUCk7Ci0gICAg ICAgIHBkZXYtPmF0c19xdWV1ZV9kZXB0aCA9IHZhbHVlICYgQVRTX1FVRVVFX0RFUFRIX01BU0sg PzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVRTX1FVRVVFX0RFUFRIX01BU0sg KyAxOwotICAgICAgICBsaXN0X2FkZCgmcGRldi0+bGlzdCwgJmF0c19kZXZpY2VzKTsKKyAgICAg ICAgYXRzX2Rldi0+YXRzX3F1ZXVlX2RlcHRoID0gdmFsdWUgJiBBVFNfUVVFVUVfREVQVEhfTUFT SyA/OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVFNfUVVFVUVfREVQVEhf TUFTSyArIDE7CisgICAgICAgIGxpc3RfYWRkKCZhdHNfZGV2LT5saXN0LCAmYXRzX2RldmljZXMp OwogICAgIH0KIAogICAgIGlmICggaW9tbXVfdmVyYm9zZSApCkBAIC04MSwxMCArODYsMTIgQEAg aW50IGVuYWJsZV9hdHNfZGV2aWNlKGludCBzZWcsIGludCBidXMsIGludCBkZXZmbiwgY29uc3Qg dm9pZCAqaW9tbXUpCiAgICAgcmV0dXJuIHBvczsKIH0KIAotdm9pZCBkaXNhYmxlX2F0c19kZXZp Y2UoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuKQordm9pZCBkaXNhYmxlX2F0c19kZXZpY2Uo c3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7Ci0gICAgc3RydWN0IHBjaV9hdHNfZGV2ICpwZGV2Owor ICAgIHN0cnVjdCBwY2lfYXRzX2RldiAqYXRzX2RldjsKICAgICB1MzIgdmFsdWU7CisgICAgdTE2 IHNlZyA9IHBkZXYtPnNlZzsKKyAgICB1OCBidXMgPSBwZGV2LT5idXMsIGRldmZuID0gcGRldi0+ ZGV2Zm47CiAgICAgaW50IHBvczsKIAogICAgIHBvcyA9IHBjaV9maW5kX2V4dF9jYXBhYmlsaXR5 KHNlZywgYnVzLCBkZXZmbiwgUENJX0VYVF9DQVBfSURfQVRTKTsKQEAgLTk2LDEyICsxMDMsMTcg QEAgdm9pZCBkaXNhYmxlX2F0c19kZXZpY2UoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuKQog ICAgIHBjaV9jb25mX3dyaXRlMTYoc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMo ZGV2Zm4pLAogICAgICAgICAgICAgICAgICAgICAgcG9zICsgQVRTX1JFR19DVEwsIHZhbHVlKTsK IAotICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBwZGV2LCAmYXRzX2RldmljZXMsIGxpc3QgKQor ICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBhdHNfZGV2LCAmYXRzX2RldmljZXMsIGxpc3QgKQog ICAgIHsKLSAgICAgICAgaWYgKCBwZGV2LT5zZWcgPT0gc2VnICYmIHBkZXYtPmJ1cyA9PSBidXMg JiYgcGRldi0+ZGV2Zm4gPT0gZGV2Zm4gKQorICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqX3BkZXYg PSBhdHNfZGV2LT5wZGV2OworCisgICAgICAgIEFTU0VSVChfcGRldik7CisgICAgICAgIGlmICgg X3BkZXYtPnNlZyA9PSBzZWcgJiYKKyAgICAgICAgICAgICBfcGRldi0+YnVzID09IGJ1cyAmJgor ICAgICAgICAgICAgIF9wZGV2LT5kZXZmbiA9PSBkZXZmbiApCiAgICAgICAgIHsKLSAgICAgICAg ICAgIGxpc3RfZGVsKCZwZGV2LT5saXN0KTsKLSAgICAgICAgICAgIHhmcmVlKHBkZXYpOworICAg ICAgICAgICAgbGlzdF9kZWwoJmF0c19kZXYtPmxpc3QpOworICAgICAgICAgICAgeGZyZWUoYXRz X2Rldik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTExMSwxNyAr MTIzLDI0IEBAIHZvaWQgZGlzYWJsZV9hdHNfZGV2aWNlKGludCBzZWcsIGludCBidXMsIGludCBk ZXZmbikKICAgICAgICAgICAgICAgICBzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVO QyhkZXZmbikpOwogfQogCi1zdHJ1Y3QgcGNpX2F0c19kZXYgKmdldF9hdHNfZGV2aWNlKGludCBz ZWcsIGludCBidXMsIGludCBkZXZmbikKK3N0cnVjdCBwY2lfYXRzX2RldiAqZ2V0X2F0c19kZXZp Y2UoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7Ci0gICAgc3RydWN0IHBjaV9hdHNfZGV2 ICpwZGV2OworICAgIHN0cnVjdCBwY2lfYXRzX2RldiAqYXRzX2RldjsKKyAgICB1MTYgc2VnID0g cGRldi0+c2VnOworICAgIHU4IGJ1cyA9IHBkZXYtPmJ1cywgZGV2Zm4gPSBwZGV2LT5kZXZmbjsK IAogICAgIGlmICggIXBjaV9hdHNfZGV2aWNlKHNlZywgYnVzLCBkZXZmbikgKQogICAgICAgICBy ZXR1cm4gTlVMTDsKIAotICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBwZGV2LCAmYXRzX2Rldmlj ZXMsIGxpc3QgKQorICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBhdHNfZGV2LCAmYXRzX2Rldmlj ZXMsIGxpc3QgKQogICAgIHsKLSAgICAgICAgaWYgKCBwZGV2LT5zZWcgPT0gc2VnICYmIHBkZXYt PmJ1cyA9PSBidXMgJiYgcGRldi0+ZGV2Zm4gPT0gZGV2Zm4gKQotICAgICAgICAgICAgcmV0dXJu IHBkZXY7CisgICAgICAgIHN0cnVjdCBwY2lfZGV2ICpfcGRldiA9IGF0c19kZXYtPnBkZXY7CisK KyAgICAgICAgQVNTRVJUKF9wZGV2KTsKKyAgICAgICAgaWYgKCBfcGRldi0+c2VnID09IHNlZyAm JgorICAgICAgICAgICAgIF9wZGV2LT5idXMgPT0gYnVzICYmCisgICAgICAgICAgICAgX3BkZXYt PmRldmZuID09IGRldmZuICkKKyAgICAgICAgICAgIHJldHVybiBhdHNfZGV2OwogICAgIH0KIAog ICAgIHJldHVybiBOVUxMOwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=