From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xu, Quan" Subject: [PATCH v14 1/3] IOMMU/x86: use a struct pci_dev* instead of SBDF Date: Mon, 4 Jul 2016 17:11:40 +0800 Message-ID: <1467623502-59531-2-git-send-email-quan.xu@intel.com> References: <1467623502-59531-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: <1467623502-59531-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 , Quan Xu , dario.faggioli@citrix.com, Jan Beulich , quan.xu2@aliyun.com, Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org RnJvbTogUXVhbiBYdSA8cXVhbi54dUBpbnRlbC5jb20+CgpBIHN0cnVjdCBwY2lfZGV2KiBpbnN0 ZWFkIG9mIFNCREYgaXMgc3RvcmVkIGluc2lkZSBzdHJ1Y3QKcGNpX2F0c19kZXYgYW5kIHBhcmFt ZXRlciB0byAqX2F0c19kZXZpY2UoKS4KCkFsc28gdXNlIGF0c19kZXYgZm9yICJzdHJ1Y3QgcGNp X2F0c19kZXYiIHZhcmlhYmxlLCB3aGlsZQpwZGV2IChfcGRldiwgaWYgdGhlcmUgaXMgYWxyZWFk eSBhIHBkZXYpIGZvciAic3RydWN0IHBjaV9kZXYiCmluIHRoZSBzY29wZSBvZiBJT01NVS4KClNp Z25lZC1vZmYtYnk6IFF1YW4gWHUgPHF1YW4ueHVAaW50ZWwuY29tPgpBY2tlZC1ieTogS2V2aW4g VGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CgpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgpDQzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNDOiBGZW5nIFd1 IDxmZW5nLnd1QGludGVsLmNvbT4KQ0M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5z dXRoaWt1bHBhbml0QGFtZC5jb20+CgotLS0KdjE0OiBjaGFuZ2UgJ2F0c19wZGV2JyB0byAnYXRz X2RldicuCi0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2NtZC5jICAgICB8 IDE5ICsrKystLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5j IHwgIDQgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2F0cy5oICAgICAgICAgICAgICAgfCAx MCArKy0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2ludHJlbWFwLmMgICAgICB8ICA4 ICsrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jICAgICAgICAgfCAxNCAr KystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMgICAgICAgfCAyNCAr KysrKysrLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2F0cy5jICAgICAgICAgICB8 IDY3ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDg0IGlu c2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9pb21tdV9jbWQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9p b21tdV9jbWQuYwppbmRleCA3YzlkOWJlLi43ZTAxMGU2IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfY21kLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL2lvbW11X2NtZC5jCkBAIC0yODksMzUgKzI4OSwzNCBAQCB2b2lkIGFtZF9pb21tdV9m bHVzaF9pb3RsYih1OCBkZXZmbiwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAgICAgdW5z aWduZWQgbG9uZyBmbGFnczsKICAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKICAgICB1bnNp Z25lZCBpbnQgcmVxX2lkLCBxdWV1ZWlkLCBtYXhwZW5kOwotICAgIHN0cnVjdCBwY2lfYXRzX2Rl diAqYXRzX3BkZXY7CisgICAgc3RydWN0IHBjaV9hdHNfZGV2ICphdHNfZGV2OwogCiAgICAgaWYg KCAhYXRzX2VuYWJsZWQgKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdHNfcGRldiA9IGdldF9h dHNfZGV2aWNlKHBkZXYtPnNlZywgcGRldi0+YnVzLCBwZGV2LT5kZXZmbik7Ci0gICAgaWYgKCBh dHNfcGRldiA9PSBOVUxMICkKKyAgICBhdHNfZGV2ID0gZ2V0X2F0c19kZXZpY2UocGRldik7Cisg ICAgaWYgKCBhdHNfZGV2ID09IE5VTEwgKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoICFw Y2lfYXRzX2VuYWJsZWQoYXRzX3BkZXYtPnNlZywgYXRzX3BkZXYtPmJ1cywgYXRzX3BkZXYtPmRl dmZuKSApCisgICAgaWYgKCAhcGNpX2F0c19lbmFibGVkKHBkZXYtPnNlZywgcGRldi0+YnVzLCBw ZGV2LT5kZXZmbikgKQogICAgICAgICByZXR1cm47CiAKLSAgICBpb21tdSA9IGZpbmRfaW9tbXVf Zm9yX2RldmljZShhdHNfcGRldi0+c2VnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBDSV9CREYyKGF0c19wZGV2LT5idXMsIGF0c19wZGV2LT5kZXZmbikpOworICAgIGlvbW11 ID0gZmluZF9pb21tdV9mb3JfZGV2aWNlKHBkZXYtPnNlZywgUENJX0JERjIocGRldi0+YnVzLCBw ZGV2LT5kZXZmbikpOwogCiAgICAgaWYgKCAhaW9tbXUgKQogICAgIHsKICAgICAgICAgQU1EX0lP TU1VX0RFQlVHKCIlczogQ2FuJ3QgZmluZCBpb21tdSBmb3IgJTA0eDolMDJ4OiUwMnguJXVcbiIs Ci0gICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgYXRzX3BkZXYtPnNlZywgYXRzX3Bk ZXYtPmJ1cywKLSAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGF0c19wZGV2LT5kZXZm biksIFBDSV9GVU5DKGF0c19wZGV2LT5kZXZmbikpOworICAgICAgICAgICAgICAgICAgICAgICAg X19mdW5jX18sIHBkZXYtPnNlZywgcGRldi0+YnVzLAorICAgICAgICAgICAgICAgICAgICAgICAg UENJX1NMT1QocGRldi0+ZGV2Zm4pLCBQQ0lfRlVOQyhwZGV2LT5kZXZmbikpOwogICAgICAgICBy ZXR1cm47CiAgICAgfQogCiAgICAgaWYgKCAhaW9tbXVfaGFzX2NhcChpb21tdSwgUENJX0NBUF9J T1RMQl9TSElGVCkgKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXFfaWQgPSBnZXRfZG1hX3Jl cXVlc3Rvcl9pZChpb21tdS0+c2VnLCBQQ0lfQkRGMihhdHNfcGRldi0+YnVzLCBkZXZmbikpOwor ICAgIHJlcV9pZCA9IGdldF9kbWFfcmVxdWVzdG9yX2lkKGlvbW11LT5zZWcsIFBDSV9CREYyKHBk ZXYtPmJ1cywgcGRldi0+ZGV2Zm4pKTsKICAgICBxdWV1ZWlkID0gcmVxX2lkOwotICAgIG1heHBl bmQgPSBhdHNfcGRldi0+YXRzX3F1ZXVlX2RlcHRoICYgMHhmZjsKKyAgICBtYXhwZW5kID0gYXRz X2Rldi0+YXRzX3F1ZXVlX2RlcHRoICYgMHhmZjsKIAogICAgIC8qIHNlbmQgSU5WQUxJREFURV9J T1RMQl9QQUdFUyBjb21tYW5kICovCiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5sb2Nr LCBmbGFncyk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2Ft ZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwpp bmRleCA3NzYxMjQxLi5kYWQ0YTcxIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9w Y2lfYW1kX2lvbW11LmMKQEAgLTE2Miw3ICsxNjIsNyBAQCBzdGF0aWMgdm9pZCBhbWRfaW9tbXVf c2V0dXBfZG9tYWluX2RldmljZSgKICAgICAgICAgICFwY2lfYXRzX2VuYWJsZWQoaW9tbXUtPnNl ZywgYnVzLCBwZGV2LT5kZXZmbikgKQogICAgIHsKICAgICAgICAgaWYgKCBkZXZmbiA9PSBwZGV2 LT5kZXZmbiApCi0gICAgICAgICAgICBlbmFibGVfYXRzX2RldmljZShpb21tdS0+c2VnLCBidXMs IGRldmZuLCBpb21tdSk7CisgICAgICAgICAgICBlbmFibGVfYXRzX2RldmljZShpb21tdSwgcGRl dik7CiAKICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2lvdGxiKGRldmZuLCBwZGV2LCBJTlZfSU9N TVVfQUxMX1BBR0VTX0FERFJFU1MsIDApOwogICAgIH0KQEAgLTM1Niw3ICszNTYsNyBAQCB2b2lk IGFtZF9pb21tdV9kaXNhYmxlX2RvbWFpbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZG9tYWluLAog ICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYKICAgICAgICAgIHBjaV9hdHNfZGV2aWNl KGlvbW11LT5zZWcsIGJ1cywgZGV2Zm4pICYmCiAgICAgICAgICBwY2lfYXRzX2VuYWJsZWQoaW9t bXUtPnNlZywgYnVzLCBkZXZmbikgKQotICAgICAgICBkaXNhYmxlX2F0c19kZXZpY2UoaW9tbXUt PnNlZywgYnVzLCBkZXZmbik7CisgICAgICAgIGRpc2FibGVfYXRzX2RldmljZShwZGV2KTsKIH0K IAogc3RhdGljIGludCByZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqc291cmNlLCBzdHJ1 Y3QgZG9tYWluICp0YXJnZXQsCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h dHMuaCBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2F0cy5oCmluZGV4IDVjOTE1NzIuLjQ3ZmYy MmQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2F0cy5oCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2F0cy5oCkBAIC0xOSw5ICsxOSw3IEBACiAKIHN0cnVjdCBwY2lf YXRzX2RldiB7CiAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OwotICAgIHUxNiBzZWc7Ci0gICAg dTggYnVzOwotICAgIHU4IGRldmZuOworICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2OwogICAgIHUx NiBhdHNfcXVldWVfZGVwdGg7ICAgIC8qIEFUUyBkZXZpY2UgaW52YWxpZGF0aW9uIHF1ZXVlIGRl cHRoICovCiAgICAgY29uc3Qgdm9pZCAqaW9tbXU7ICAgICAgLyogTm8gY29tbW9uIElPTU1VIHN0 cnVjdCBzbyB1c2Ugdm9pZCBwb2ludGVyICovCiB9OwpAQCAtMzQsOSArMzIsOSBAQCBzdHJ1Y3Qg cGNpX2F0c19kZXYgewogZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgYXRzX2RldmljZXM7CiBleHRl cm4gYm9vbF90IGF0c19lbmFibGVkOwogCi1pbnQgZW5hYmxlX2F0c19kZXZpY2UoaW50IHNlZywg aW50IGJ1cywgaW50IGRldmZuLCBjb25zdCB2b2lkICppb21tdSk7Ci12b2lkIGRpc2FibGVfYXRz X2RldmljZShpbnQgc2VnLCBpbnQgYnVzLCBpbnQgZGV2Zm4pOwotc3RydWN0IHBjaV9hdHNfZGV2 ICpnZXRfYXRzX2RldmljZShpbnQgc2VnLCBpbnQgYnVzLCBpbnQgZGV2Zm4pOworaW50IGVuYWJs ZV9hdHNfZGV2aWNlKGNvbnN0IHZvaWQgKmlvbW11LCBzdHJ1Y3QgcGNpX2RldiAqcGRldik7Cit2 b2lkIGRpc2FibGVfYXRzX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7CitzdHJ1Y3QgcGNp X2F0c19kZXYgKmdldF9hdHNfZGV2aWNlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKIAog c3RhdGljIGlubGluZSBpbnQgcGNpX2F0c19lbmFibGVkKGludCBzZWcsIGludCBidXMsIGludCBk ZXZmbikKIHsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1h cC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2ludHJlbWFwLmMKaW5kZXggN2MxMTU2 NS4uMjhlM2NmNCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2ludHJl bWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2ludHJlbWFwLmMKQEAgLTk1 Miw3ICs5NTIsNyBAQCBpbnQgcGlfdXBkYXRlX2lydGUoY29uc3Qgc3RydWN0IHZjcHUgKnYsIGNv bnN0IHN0cnVjdCBwaXJxICpwaXJxLAogICAgIGNvbnN0IHN0cnVjdCBtc2lfZGVzYyAqbXNpX2Rl c2M7CiAgICAgaW50IHJlbWFwX2luZGV4OwogICAgIGludCByYyA9IDA7Ci0gICAgY29uc3Qgc3Ry dWN0IHBjaV9kZXYgKnBjaV9kZXY7CisgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXY7CiAg ICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwogICAgIHN0cnVjdCBpb21tdSAq aW9tbXU7CiAgICAgc3RydWN0IGlyX2N0cmwgKmlyX2N0cmw7CkBAIC05NzIsOCArOTcyLDggQEAg aW50IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1Y3QgcGly cSAqcGlycSwKICAgICAgICAgZ290byB1bmxvY2tfb3V0OwogICAgIH0KIAotICAgIHBjaV9kZXYg PSBtc2lfZGVzYy0+ZGV2OwotICAgIGlmICggIXBjaV9kZXYgKQorICAgIHBkZXYgPSBtc2lfZGVz Yy0+ZGV2OworICAgIGlmICggIXBkZXYgKQogICAgIHsKICAgICAgICAgcmMgPSAtRU5PREVWOwog ICAgICAgICBnb3RvIHVubG9ja19vdXQ7CkBAIC05OTAsNyArOTkwLDcgQEAgaW50IHBpX3VwZGF0 ZV9pcnRlKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1Y3QgcGlycSAqcGlycSwKICAg ICAgKiAnc3RydWN0IG1zaV9kZXNjJyBpbiBzb21lIG90aGVyIHBsYWNlLCBzbyB3ZSBkb24ndCBu ZWVkIHRvIHdhc3RlCiAgICAgICogdGltZSBzZWFyY2hpbmcgaXQgaGVyZS4KICAgICAgKi8KLSAg ICBkcmhkID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBjaV9kZXYpOworICAgIGRyaGQg PSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CiAgICAgaWYgKCAhZHJoZCApCiAg ICAgICAgIHJldHVybiAtRU5PREVWOwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC92dGQvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCmlu ZGV4IGYwMTA2MTIuLmNjMzQ0OTcgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBA IC0xNDYxLDggKzE0NjEsOCBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAg cmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoCi0gICAg c3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBkZXZmbiwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBk ZXYpCitzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZG9t YWluLCB1OCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg cGNpX2RldiAqcGRldikKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7CiAgICAg aW50IHJldCA9IDA7CkBAIC0xNDk4LDcgKzE0OTgsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250 ZXh0X21hcHBpbmcoCiAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRv bWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBkZXYpOwogICAgICAgICBpZiAoICFyZXQgJiYgZGV2Zm4gPT0gcGRl di0+ZGV2Zm4gJiYgYXRzX2RldmljZShwZGV2LCBkcmhkKSA+IDAgKQotICAgICAgICAgICAgZW5h YmxlX2F0c19kZXZpY2Uoc2VnLCBidXMsIGRldmZuLCBkcmhkLT5pb21tdSk7CisgICAgICAgICAg ICBlbmFibGVfYXRzX2RldmljZShkcmhkLT5pb21tdSwgcGRldik7CiAKICAgICAgICAgYnJlYWs7 CiAKQEAgLTE2MTEsOCArMTYxMSw4IEBAIGludCBkb21haW5fY29udGV4dF91bm1hcF9vbmUoCiAg ICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwKAotICAg IHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpw ZGV2KQorc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZG9tYWluICpkb21h aW4sIHU4IGRldmZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNp X2RldiAqcGRldikKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7CiAgICAgc3Ry dWN0IGlvbW11ICppb21tdTsKQEAgLTE2NDgsNyArMTY0OCw3IEBAIHN0YXRpYyBpbnQgZG9tYWlu X2NvbnRleHRfdW5tYXAoCiAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lf RlVOQyhkZXZmbikpOwogICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9t YWluLCBpb21tdSwgYnVzLCBkZXZmbik7CiAgICAgICAgIGlmICggIXJldCAmJiBkZXZmbiA9PSBw ZGV2LT5kZXZmbiAmJiBhdHNfZGV2aWNlKHBkZXYsIGRyaGQpID4gMCApCi0gICAgICAgICAgICBk aXNhYmxlX2F0c19kZXZpY2Uoc2VnLCBidXMsIGRldmZuKTsKKyAgICAgICAgICAgIGRpc2FibGVf YXRzX2RldmljZShwZGV2KTsKIAogICAgICAgICBicmVhazsKIApAQCAtMTk5NCw3ICsxOTk0LDcg QEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9lbmFibGVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpw ZGV2KQogICAgIGlmICggcmV0IDw9IDAgKQogICAgICAgICByZXR1cm4gcmV0OwogCi0gICAgcmV0 ID0gZW5hYmxlX2F0c19kZXZpY2UocGRldi0+c2VnLCBwZGV2LT5idXMsIHBkZXYtPmRldmZuLCBk cmhkLT5pb21tdSk7CisgICAgcmV0ID0gZW5hYmxlX2F0c19kZXZpY2UoZHJoZC0+aW9tbXUsIHBk ZXYpOwogCiAgICAgcmV0dXJuIHJldCA+PSAwID8gMCA6IHJldDsKIH0KZGlmZiAtLWdpdCBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC92dGQveDg2L2F0cy5jCmluZGV4IGRmYTRkMzAuLjExZmU5YmIgMTAwNjQ0Ci0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvdnRkL3g4Ni9hdHMuYwpAQCAtNzEsMTIgKzcxLDE0IEBAIGludCBhdHNfZGV2aWNl KGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQg KmRyaGQpCiAgICAgcmV0dXJuIHBvczsKIH0KIAotc3RhdGljIGludCBkZXZpY2VfaW5fZG9tYWlu KHN0cnVjdCBpb21tdSAqaW9tbXUsIHN0cnVjdCBwY2lfYXRzX2RldiAqcGRldiwgdTE2IGRpZCkK K3N0YXRpYyBpbnQgZGV2aWNlX2luX2RvbWFpbihzdHJ1Y3QgaW9tbXUgKmlvbW11LCBzdHJ1Y3Qg cGNpX2F0c19kZXYgKmF0c19kZXYsIHUxNiBkaWQpCiB7CiAgICAgc3RydWN0IHJvb3RfZW50cnkg KnJvb3RfZW50cnkgPSBOVUxMOwogICAgIHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjdHh0X2VudHJ5 ID0gTlVMTDsKICAgICBpbnQgdHQsIGZvdW5kID0gMDsKKyAgICBzdHJ1Y3QgcGNpX2RldiAqcGRl diA9IGF0c19kZXYtPnBkZXY7CiAKKyAgICBBU1NFUlQocGRldik7CiAgICAgcm9vdF9lbnRyeSA9 IChzdHJ1Y3Qgcm9vdF9lbnRyeSAqKSBtYXBfdnRkX2RvbWFpbl9wYWdlKGlvbW11LT5yb290X21h ZGRyKTsKICAgICBpZiAoICFyb290X2VudHJ5IHx8ICFyb290X3ByZXNlbnQocm9vdF9lbnRyeVtw ZGV2LT5idXNdKSApCiAgICAgICAgIGdvdG8gb3V0OwpAQCAtMTA4LDM3ICsxMTAsNDEgQEAgb3V0 OgogaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQs CiAgICAgdTY0IGFkZHIsIHVuc2lnbmVkIGludCBzaXplX29yZGVyLCB1NjQgdHlwZSkKIHsKLSAg ICBzdHJ1Y3QgcGNpX2F0c19kZXYgKnBkZXY7CisgICAgc3RydWN0IHBjaV9hdHNfZGV2ICphdHNf ZGV2OwogICAgIGludCByZXQgPSAwOwogCiAgICAgaWYgKCAhZWNhcF9kZXZfaW90bGIoaW9tbXUt PmVjYXApICkKICAgICAgICAgcmV0dXJuIHJldDsKIAotICAgIGxpc3RfZm9yX2VhY2hfZW50cnko IHBkZXYsICZhdHNfZGV2aWNlcywgbGlzdCApCisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggYXRz X2RldiwgJmF0c19kZXZpY2VzLCBsaXN0ICkKICAgICB7Ci0gICAgICAgIHUxNiBzaWQgPSBQQ0lf QkRGMihwZGV2LT5idXMsIHBkZXYtPmRldmZuKTsKKyAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBk ZXYgPSBhdHNfZGV2LT5wZGV2OworICAgICAgICB1MTYgc2lkOwogICAgICAgICBib29sX3Qgc2Jp dDsKICAgICAgICAgaW50IHJjID0gMDsKIAorICAgICAgICBBU1NFUlQocGRldik7CisgICAgICAg IHNpZCA9IFBDSV9CREYyKHBkZXYtPmJ1cywgcGRldi0+ZGV2Zm4pOworCiAgICAgICAgIC8qIE9u bHkgaW52YWxpZGF0ZSBkZXZpY2VzIHRoYXQgYmVsb25nIHRvIHRoaXMgSU9NTVUgKi8KLSAgICAg ICAgaWYgKCBwZGV2LT5pb21tdSAhPSBpb21tdSApCisgICAgICAgIGlmICggYXRzX2Rldi0+aW9t bXUgIT0gaW9tbXUgKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgc3dpdGNoICgg dHlwZSApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBETUFfVExCX0RTSV9GTFVTSDoKLSAgICAg ICAgICAgIGlmICggIWRldmljZV9pbl9kb21haW4oaW9tbXUsIHBkZXYsIGRpZCkgKQorICAgICAg ICAgICAgaWYgKCAhZGV2aWNlX2luX2RvbWFpbihpb21tdSwgYXRzX2RldiwgZGlkKSApCiAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggaWYgRFNJIGNv bmRpdGlvbiBtZXQgKi8KICAgICAgICAgY2FzZSBETUFfVExCX0dMT0JBTF9GTFVTSDoKICAgICAg ICAgICAgIC8qIGludmFsaWRhdGUgYWxsIHRyYW5zbGF0aW9uczogc2JpdD0xLGJpdF82Mz0wLGJp dFs2MjoxMl09MSAqLwogICAgICAgICAgICAgc2JpdCA9IDE7CiAgICAgICAgICAgICBhZGRyID0g KH4wVUwgPDwgUEFHRV9TSElGVF80SykgJiAweDdGRkZGRkZGRkZGRkZGRkY7Ci0gICAgICAgICAg ICByYyA9IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhpb21tdSwgcGRldi0+YXRzX3F1ZXVlX2Rl cHRoLAorICAgICAgICAgICAgcmMgPSBxaW52YWxfZGV2aWNlX2lvdGxiX3N5bmMoaW9tbXUsIGF0 c19kZXYtPmF0c19xdWV1ZV9kZXB0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpZCwgc2JpdCwgYWRkcik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg Y2FzZSBETUFfVExCX1BTSV9GTFVTSDoKLSAgICAgICAgICAgIGlmICggIWRldmljZV9pbl9kb21h aW4oaW9tbXUsIHBkZXYsIGRpZCkgKQorICAgICAgICAgICAgaWYgKCAhZGV2aWNlX2luX2RvbWFp bihpb21tdSwgYXRzX2RldiwgZGlkKSApCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAg ICAgICAgIC8qIGlmIHNpemUgPD0gNEssIHNldCBzYml0ID0gMCwgZWxzZSBzZXQgc2JpdCA9IDEg Ki8KQEAgLTE1NCw3ICsxNjAsNyBAQCBpbnQgZGV2X2ludmFsaWRhdGVfaW90bGIoc3RydWN0IGlv bW11ICppb21tdSwgdTE2IGRpZCwKICAgICAgICAgICAgICAgICBhZGRyIHw9ICgoKHU2NCkxIDw8 IChzaXplX29yZGVyIC0gMSkpIC0gMSkgPDwgUEFHRV9TSElGVF80SzsKICAgICAgICAgICAgIH0K IAotICAgICAgICAgICAgcmMgPSBxaW52YWxfZGV2aWNlX2lvdGxiX3N5bmMoaW9tbXUsIHBkZXYt PmF0c19xdWV1ZV9kZXB0aCwKKyAgICAgICAgICAgIHJjID0gcWludmFsX2RldmljZV9pb3RsYl9z eW5jKGlvbW11LCBhdHNfZGV2LT5hdHNfcXVldWVfZGVwdGgsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaWQsIHNiaXQsIGFkZHIpOwogICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC94ODYvYXRzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvYXRzLmMKaW5kZXggNDBj OWY0MC4uNjI3YjllMyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2F0 cy5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9hdHMuYwpAQCAtMjIsMTAgKzIy LDEyIEBAIExJU1RfSEVBRChhdHNfZGV2aWNlcyk7CiBib29sX3QgX19yZWFkX21vc3RseSBhdHNf ZW5hYmxlZCA9IDA7CiBib29sZWFuX3BhcmFtKCJhdHMiLCBhdHNfZW5hYmxlZCk7CiAKLWludCBl bmFibGVfYXRzX2RldmljZShpbnQgc2VnLCBpbnQgYnVzLCBpbnQgZGV2Zm4sIGNvbnN0IHZvaWQg KmlvbW11KQoraW50IGVuYWJsZV9hdHNfZGV2aWNlKGNvbnN0IHZvaWQgKmlvbW11LCBzdHJ1Y3Qg cGNpX2RldiAqcGRldikKIHsKLSAgICBzdHJ1Y3QgcGNpX2F0c19kZXYgKnBkZXYgPSBOVUxMOwor ICAgIHN0cnVjdCBwY2lfYXRzX2RldiAqYXRzX2RldiA9IE5VTEw7CiAgICAgdTMyIHZhbHVlOwor ICAgIHUxNiBzZWcgPSBwZGV2LT5zZWc7CisgICAgdTggYnVzID0gcGRldi0+YnVzLCBkZXZmbiA9 IHBkZXYtPmRldmZuOwogICAgIGludCBwb3M7CiAKICAgICBwb3MgPSBwY2lfZmluZF9leHRfY2Fw YWJpbGl0eShzZWcsIGJ1cywgZGV2Zm4sIFBDSV9FWFRfQ0FQX0lEX0FUUyk7CkBAIC0zOSw5ICs0 MSwxNCBAQCBpbnQgZW5hYmxlX2F0c19kZXZpY2UoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZu LCBjb25zdCB2b2lkICppb21tdSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVO QyhkZXZmbiksIHBvcyArIEFUU19SRUdfQ1RMKTsKICAgICBpZiAoIHZhbHVlICYgQVRTX0VOQUJM RSApCiAgICAgewotICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcGRldiwgJmF0c19kZXZp Y2VzLCBsaXN0ICkKKyAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIGF0c19kZXYsICZhdHNf ZGV2aWNlcywgbGlzdCApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICggcGRldi0+c2VnID09 IHNlZyAmJiBwZGV2LT5idXMgPT0gYnVzICYmIHBkZXYtPmRldmZuID09IGRldmZuICkKKyAgICAg ICAgICAgIHN0cnVjdCBwY2lfZGV2ICpfcGRldiA9IGF0c19kZXYtPnBkZXY7CisKKyAgICAgICAg ICAgIEFTU0VSVChfcGRldik7CisgICAgICAgICAgICBpZiAoIF9wZGV2LT5zZWcgPT0gc2VnICYm CisgICAgICAgICAgICAgICAgIF9wZGV2LT5idXMgPT0gYnVzICYmCisgICAgICAgICAgICAgICAg IF9wZGV2LT5kZXZmbiA9PSBkZXZmbiApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg cG9zID0gMDsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTQ5LDggKzU2LDggQEAgaW50IGVu YWJsZV9hdHNfZGV2aWNlKGludCBzZWcsIGludCBidXMsIGludCBkZXZmbiwgY29uc3Qgdm9pZCAq aW9tbXUpCiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKCBwb3MgKQotICAgICAgICBwZGV2ID0g eG1hbGxvYyhzdHJ1Y3QgcGNpX2F0c19kZXYpOwotICAgIGlmICggIXBkZXYgKQorICAgICAgICBh dHNfZGV2ID0geG1hbGxvYyhzdHJ1Y3QgcGNpX2F0c19kZXYpOworICAgIGlmICggIWF0c19kZXYg KQogICAgICAgICByZXR1cm4gLUVOT01FTTsKIAogICAgIGlmICggISh2YWx1ZSAmIEFUU19FTkFC TEUpICkKQEAgLTYyLDE1ICs2OSwxMyBAQCBpbnQgZW5hYmxlX2F0c19kZXZpY2UoaW50IHNlZywg aW50IGJ1cywgaW50IGRldmZuLCBjb25zdCB2b2lkICppb21tdSkKIAogICAgIGlmICggcG9zICkK ICAgICB7Ci0gICAgICAgIHBkZXYtPnNlZyA9IHNlZzsKLSAgICAgICAgcGRldi0+YnVzID0gYnVz OwotICAgICAgICBwZGV2LT5kZXZmbiA9IGRldmZuOwotICAgICAgICBwZGV2LT5pb21tdSA9IGlv bW11OworICAgICAgICBhdHNfZGV2LT5wZGV2ID0gcGRldjsKKyAgICAgICAgYXRzX2Rldi0+aW9t bXUgPSBpb21tdTsKICAgICAgICAgdmFsdWUgPSBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIFBD SV9TTE9UKGRldmZuKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMo ZGV2Zm4pLCBwb3MgKyBBVFNfUkVHX0NBUCk7Ci0gICAgICAgIHBkZXYtPmF0c19xdWV1ZV9kZXB0 aCA9IHZhbHVlICYgQVRTX1FVRVVFX0RFUFRIX01BU0sgPzoKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQVRTX1FVRVVFX0RFUFRIX01BU0sgKyAxOwotICAgICAgICBsaXN0X2FkZCgm cGRldi0+bGlzdCwgJmF0c19kZXZpY2VzKTsKKyAgICAgICAgYXRzX2Rldi0+YXRzX3F1ZXVlX2Rl cHRoID0gdmFsdWUgJiBBVFNfUVVFVUVfREVQVEhfTUFTSyA/OgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBVFNfUVVFVUVfREVQVEhfTUFTSyArIDE7CisgICAgICAgIGxpc3Rf YWRkKCZhdHNfZGV2LT5saXN0LCAmYXRzX2RldmljZXMpOwogICAgIH0KIAogICAgIGlmICggaW9t bXVfdmVyYm9zZSApCkBAIC04MSwxMCArODYsMTIgQEAgaW50IGVuYWJsZV9hdHNfZGV2aWNlKGlu dCBzZWcsIGludCBidXMsIGludCBkZXZmbiwgY29uc3Qgdm9pZCAqaW9tbXUpCiAgICAgcmV0dXJu IHBvczsKIH0KIAotdm9pZCBkaXNhYmxlX2F0c19kZXZpY2UoaW50IHNlZywgaW50IGJ1cywgaW50 IGRldmZuKQordm9pZCBkaXNhYmxlX2F0c19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7 Ci0gICAgc3RydWN0IHBjaV9hdHNfZGV2ICpwZGV2OworICAgIHN0cnVjdCBwY2lfYXRzX2RldiAq YXRzX2RldjsKICAgICB1MzIgdmFsdWU7CisgICAgdTE2IHNlZyA9IHBkZXYtPnNlZzsKKyAgICB1 OCBidXMgPSBwZGV2LT5idXMsIGRldmZuID0gcGRldi0+ZGV2Zm47CiAgICAgaW50IHBvczsKIAog ICAgIHBvcyA9IHBjaV9maW5kX2V4dF9jYXBhYmlsaXR5KHNlZywgYnVzLCBkZXZmbiwgUENJX0VY VF9DQVBfSURfQVRTKTsKQEAgLTk2LDEyICsxMDMsMTcgQEAgdm9pZCBkaXNhYmxlX2F0c19kZXZp Y2UoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuKQogICAgIHBjaV9jb25mX3dyaXRlMTYoc2Vn LCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAogICAgICAgICAgICAgICAg ICAgICAgcG9zICsgQVRTX1JFR19DVEwsIHZhbHVlKTsKIAotICAgIGxpc3RfZm9yX2VhY2hfZW50 cnkgKCBwZGV2LCAmYXRzX2RldmljZXMsIGxpc3QgKQorICAgIGxpc3RfZm9yX2VhY2hfZW50cnkg KCBhdHNfZGV2LCAmYXRzX2RldmljZXMsIGxpc3QgKQogICAgIHsKLSAgICAgICAgaWYgKCBwZGV2 LT5zZWcgPT0gc2VnICYmIHBkZXYtPmJ1cyA9PSBidXMgJiYgcGRldi0+ZGV2Zm4gPT0gZGV2Zm4g KQorICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqX3BkZXYgPSBhdHNfZGV2LT5wZGV2OworCisgICAg ICAgIEFTU0VSVChfcGRldik7CisgICAgICAgIGlmICggX3BkZXYtPnNlZyA9PSBzZWcgJiYKKyAg ICAgICAgICAgICBfcGRldi0+YnVzID09IGJ1cyAmJgorICAgICAgICAgICAgIF9wZGV2LT5kZXZm biA9PSBkZXZmbiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGxpc3RfZGVsKCZwZGV2LT5saXN0 KTsKLSAgICAgICAgICAgIHhmcmVlKHBkZXYpOworICAgICAgICAgICAgbGlzdF9kZWwoJmF0c19k ZXYtPmxpc3QpOworICAgICAgICAgICAgeGZyZWUoYXRzX2Rldik7CiAgICAgICAgICAgICBicmVh azsKICAgICAgICAgfQogICAgIH0KQEAgLTExMSwxNyArMTIzLDI0IEBAIHZvaWQgZGlzYWJsZV9h dHNfZGV2aWNlKGludCBzZWcsIGludCBidXMsIGludCBkZXZmbikKICAgICAgICAgICAgICAgICBz ZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwogfQogCi1zdHJ1Y3Qg cGNpX2F0c19kZXYgKmdldF9hdHNfZGV2aWNlKGludCBzZWcsIGludCBidXMsIGludCBkZXZmbikK K3N0cnVjdCBwY2lfYXRzX2RldiAqZ2V0X2F0c19kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXYg KnBkZXYpCiB7Ci0gICAgc3RydWN0IHBjaV9hdHNfZGV2ICpwZGV2OworICAgIHN0cnVjdCBwY2lf YXRzX2RldiAqYXRzX2RldjsKKyAgICB1MTYgc2VnID0gcGRldi0+c2VnOworICAgIHU4IGJ1cyA9 IHBkZXYtPmJ1cywgZGV2Zm4gPSBwZGV2LT5kZXZmbjsKIAogICAgIGlmICggIXBjaV9hdHNfZGV2 aWNlKHNlZywgYnVzLCBkZXZmbikgKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGxpc3Rf Zm9yX2VhY2hfZW50cnkgKCBwZGV2LCAmYXRzX2RldmljZXMsIGxpc3QgKQorICAgIGxpc3RfZm9y X2VhY2hfZW50cnkgKCBhdHNfZGV2LCAmYXRzX2RldmljZXMsIGxpc3QgKQogICAgIHsKLSAgICAg ICAgaWYgKCBwZGV2LT5zZWcgPT0gc2VnICYmIHBkZXYtPmJ1cyA9PSBidXMgJiYgcGRldi0+ZGV2 Zm4gPT0gZGV2Zm4gKQotICAgICAgICAgICAgcmV0dXJuIHBkZXY7CisgICAgICAgIHN0cnVjdCBw Y2lfZGV2ICpfcGRldiA9IGF0c19kZXYtPnBkZXY7CisKKyAgICAgICAgQVNTRVJUKF9wZGV2KTsK KyAgICAgICAgaWYgKCBfcGRldi0+c2VnID09IHNlZyAmJgorICAgICAgICAgICAgIF9wZGV2LT5i dXMgPT0gYnVzICYmCisgICAgICAgICAgICAgX3BkZXYtPmRldmZuID09IGRldmZuICkKKyAgICAg ICAgICAgIHJldHVybiBhdHNfZGV2OwogICAgIH0KIAogICAgIHJldHVybiBOVUxMOwotLSAKMS45 LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=