From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 04/13] xen/pvcalls: implement connect command Date: Tue, 25 Jul 2017 14:22:01 -0700 Message-ID: <1501017730-12797-4-git-send-email-sstabellini@kernel.org> References: <1501017730-12797-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1501017730-12797-1-git-send-email-sstabellini@kernel.org> 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: jgross@suse.com, Stefano Stabellini , boris.ostrovsky@oracle.com, sstabellini@kernel.org, linux-kernel@vger.kernel.org List-Id: xen-devel@lists.xenproject.org U2VuZCBQVkNBTExTX0NPTk5FQ1QgdG8gdGhlIGJhY2tlbmQuIEFsbG9jYXRlIGEgbmV3IHJpbmcg YW5kIGV2dGNobiBmb3IKdGhlIGFjdGl2ZSBzb2NrZXQuCgpJbnRyb2R1Y2UgYSBkYXRhIHN0cnVj dHVyZSB0byBrZWVwIHRyYWNrIG9mIHNvY2tldHMuIEludHJvZHVjZSBhCndhaXRxdWV1ZSB0byBh bGxvdyB0aGUgZnJvbnRlbmQgdG8gd2FpdCBvbiBkYXRhIGNvbWluZyBmcm9tIHRoZSBiYWNrZW5k Cm9uIHRoZSBhY3RpdmUgc29ja2V0IChyZWN2bXNnIGNvbW1hbmQpLgoKVHdvIG11dGV4ZXMgKG9u ZSBvZiByZWFkcyBhbmQgb25lIGZvciB3cml0ZXMpIHdpbGwgYmUgdXNlZCB0byBwcm90ZWN0CnRo ZSBhY3RpdmUgc29ja2V0IGluIGFuZCBvdXQgcmluZ3MgZnJvbSBjb25jdXJyZW50IGFjY2Vzc2Vz LgoKc29jay0+c2stPnNrX3NlbmRfaGVhZCBpcyBub3QgdXNlZCBmb3IgaXAgc29ja2V0czogcmV1 c2UgdGhlIGZpZWxkIHRvCnN0b3JlIGEgcG9pbnRlciB0byB0aGUgc3RydWN0IHNvY2tfbWFwcGlu ZyBjb3JyZXNwb25kaW5nIHRvIHRoZSBzb2NrZXQuClRoaXMgd2F5LCB3ZSBjYW4gZWFzaWx5IGdl dCB0aGUgc3RydWN0IHNvY2tfbWFwcGluZyBmcm9tIHRoZSBzdHJ1Y3QKc29ja2V0LgoKQ29udmVy dCB0aGUgc3RydWN0IHNvY2tldCBwb2ludGVyIGludG8gYW4gdWludDY0X3QgYW5kIHVzZSBpdCBh cyBpZCBmb3IKdGhlIG5ldyBzb2NrZXQgdG8gcGFzcyB0byB0aGUgYmFja2VuZC4KClNpZ25lZC1v ZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFub0BhcG9yZXRvLmNvbT4KQ0M6IGJvcmlz Lm9zdHJvdnNreUBvcmFjbGUuY29tCkNDOiBqZ3Jvc3NAc3VzZS5jb20KLS0tCiBkcml2ZXJzL3hl bi9wdmNhbGxzLWZyb250LmMgfCAxNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0KIGRyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuaCB8ICAgMiArCiAyIGZpbGVz IGNoYW5nZWQsIDE2OCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmMgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250 LmMKaW5kZXggZDFkYmNmMS4uZDBmNWY0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vcHZjYWxs cy1mcm9udC5jCisrKyBiL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJvbnQuYwpAQCAtMTMsNiArMTMs MTAgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgv bmV0Lmg+CisjaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+CisKKyNpbmNsdWRlIDxuZXQvc29jay5o PgogCiAjaW5jbHVkZSA8eGVuL2V2ZW50cy5oPgogI2luY2x1ZGUgPHhlbi9ncmFudF90YWJsZS5o PgpAQCAtNDAsNiArNDQsMjQgQEAgc3RydWN0IHB2Y2FsbHNfYmVkYXRhIHsKIH07CiBzdHJ1Y3Qg eGVuYnVzX2RldmljZSAqcHZjYWxsc19mcm9udF9kZXY7CiAKK3N0cnVjdCBzb2NrX21hcHBpbmcg eworCWJvb2wgYWN0aXZlX3NvY2tldDsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisJc3RydWN0 IHNvY2tldCAqc29jazsKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQlpbnQgaXJxOworCQkJZ3Jh bnRfcmVmX3QgcmVmOworCQkJc3RydWN0IHB2Y2FsbHNfZGF0YV9pbnRmICpyaW5nOworCQkJc3Ry dWN0IHB2Y2FsbHNfZGF0YSBkYXRhOworCQkJc3RydWN0IG11dGV4IGluX211dGV4OworCQkJc3Ry dWN0IG11dGV4IG91dF9tdXRleDsKKworCQkJd2FpdF9xdWV1ZV9oZWFkX3QgaW5mbGlnaHRfY29u bl9yZXE7CisJCX0gYWN0aXZlOworCX07Cit9OworCiBzdGF0aWMgaXJxcmV0dXJuX3QgcHZjYWxs c19mcm9udF9ldmVudF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKIAlzdHJ1Y3Qg eGVuYnVzX2RldmljZSAqZGV2ID0gZGV2X2lkOwpAQCAtODQsNiArMTA2LDE4IEBAIHN0YXRpYyBp cnFyZXR1cm5fdCBwdmNhbGxzX2Zyb250X2V2ZW50X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2 X2lkKQogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIAorc3RhdGljIGlycXJldHVybl90IHB2Y2Fs bHNfZnJvbnRfY29ubl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKnNvY2tfbWFwKQoreworCXN0cnVj dCBzb2NrX21hcHBpbmcgKm1hcCA9IHNvY2tfbWFwOworCisJaWYgKG1hcCA9PSBOVUxMKQorCQly ZXR1cm4gSVJRX0hBTkRMRUQ7CisKKwl3YWtlX3VwX2ludGVycnVwdGlibGUoJm1hcC0+YWN0aXZl LmluZmxpZ2h0X2Nvbm5fcmVxKTsKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKwogaW50IHB2 Y2FsbHNfZnJvbnRfc29ja2V0KHN0cnVjdCBzb2NrZXQgKnNvY2spCiB7CiAJc3RydWN0IHB2Y2Fs bHNfYmVkYXRhICpiZWRhdGE7CkBAIC0xMzcsNiArMTcxLDEyNyBAQCBpbnQgcHZjYWxsc19mcm9u dF9zb2NrZXQoc3RydWN0IHNvY2tldCAqc29jaykKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMg c3RydWN0IHNvY2tfbWFwcGluZyAqY3JlYXRlX2FjdGl2ZShpbnQgKmV2dGNobikKK3sKKwlzdHJ1 Y3Qgc29ja19tYXBwaW5nICptYXAgPSBOVUxMOworCXZvaWQgKmJ5dGVzOworCWludCByZXQsIGly cSA9IC0xLCBpOworCisJbWFwID0ga3phbGxvYyhzaXplb2YoKm1hcCksIEdGUF9LRVJORUwpOwor CWlmIChtYXAgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwlpbml0X3dhaXRxdWV1ZV9oZWFk KCZtYXAtPmFjdGl2ZS5pbmZsaWdodF9jb25uX3JlcSk7CisKKwltYXAtPmFjdGl2ZS5yaW5nID0g KHN0cnVjdCBwdmNhbGxzX2RhdGFfaW50ZiAqKQorCQlfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5F TCB8IF9fR0ZQX1pFUk8pOworCWlmIChtYXAtPmFjdGl2ZS5yaW5nID09IE5VTEwpCisJCWdvdG8g b3V0X2Vycm9yOworCW1lbXNldChtYXAtPmFjdGl2ZS5yaW5nLCAwLCBYRU5fUEFHRV9TSVpFKTsK KwltYXAtPmFjdGl2ZS5yaW5nLT5yaW5nX29yZGVyID0gUklOR19PUkRFUjsKKwlieXRlcyA9ICh2 b2lkICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMIHwgX19HRlBfWkVSTywKKwkJCQkJbWFw LT5hY3RpdmUucmluZy0+cmluZ19vcmRlcik7CisJaWYgKGJ5dGVzID09IE5VTEwpCisJCWdvdG8g b3V0X2Vycm9yOworCWZvciAoaSA9IDA7IGkgPCAoMSA8PCBtYXAtPmFjdGl2ZS5yaW5nLT5yaW5n X29yZGVyKTsgaSsrKQorCQltYXAtPmFjdGl2ZS5yaW5nLT5yZWZbaV0gPSBnbnR0YWJfZ3JhbnRf Zm9yZWlnbl9hY2Nlc3MoCisJCQlwdmNhbGxzX2Zyb250X2Rldi0+b3RoZXJlbmRfaWQsCisJCQlw Zm5fdG9fZ2ZuKHZpcnRfdG9fcGZuKGJ5dGVzKSArIGkpLCAwKTsKKworCW1hcC0+YWN0aXZlLnJl ZiA9IGdudHRhYl9ncmFudF9mb3JlaWduX2FjY2VzcygKKwkJcHZjYWxsc19mcm9udF9kZXYtPm90 aGVyZW5kX2lkLAorCQlwZm5fdG9fZ2ZuKHZpcnRfdG9fcGZuKCh2b2lkICopbWFwLT5hY3RpdmUu cmluZykpLCAwKTsKKworCW1hcC0+YWN0aXZlLmRhdGEuaW4gPSBieXRlczsKKwltYXAtPmFjdGl2 ZS5kYXRhLm91dCA9IGJ5dGVzICsKKwkJWEVOX0ZMRVhfUklOR19TSVpFKG1hcC0+YWN0aXZlLnJp bmctPnJpbmdfb3JkZXIpOworCisJcmV0ID0geGVuYnVzX2FsbG9jX2V2dGNobihwdmNhbGxzX2Zy b250X2RldiwgZXZ0Y2huKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9lcnJvcjsKKwlpcnEgPSBi aW5kX2V2dGNobl90b19pcnFoYW5kbGVyKCpldnRjaG4sIHB2Y2FsbHNfZnJvbnRfY29ubl9oYW5k bGVyLAorCQkJCQkwLCAicHZjYWxscy1mcm9udGVuZCIsIG1hcCk7CisJaWYgKGlycSA8IDApCisJ CWdvdG8gb3V0X2Vycm9yOworCisJbWFwLT5hY3RpdmUuaXJxID0gaXJxOworCW1hcC0+YWN0aXZl X3NvY2tldCA9IHRydWU7CisJbXV0ZXhfaW5pdCgmbWFwLT5hY3RpdmUuaW5fbXV0ZXgpOworCW11 dGV4X2luaXQoJm1hcC0+YWN0aXZlLm91dF9tdXRleCk7CisKKwlyZXR1cm4gbWFwOworCitvdXRf ZXJyb3I6CisJaWYgKGlycSA+PSAwKQorCQl1bmJpbmRfZnJvbV9pcnFoYW5kbGVyKGlycSwgbWFw KTsKKwllbHNlIGlmICgqZXZ0Y2huID49IDApCisJCXhlbmJ1c19mcmVlX2V2dGNobihwdmNhbGxz X2Zyb250X2RldiwgKmV2dGNobik7CisJa2ZyZWUobWFwLT5hY3RpdmUuZGF0YS5pbik7CisJa2Zy ZWUobWFwLT5hY3RpdmUucmluZyk7CisJa2ZyZWUobWFwKTsKKwlyZXR1cm4gTlVMTDsKK30KKwor aW50IHB2Y2FsbHNfZnJvbnRfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29j a2FkZHIgKmFkZHIsCisJCQkJaW50IGFkZHJfbGVuLCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IHB2 Y2FsbHNfYmVkYXRhICpiZWRhdGE7CisJc3RydWN0IHNvY2tfbWFwcGluZyAqbWFwID0gTlVMTDsK KwlzdHJ1Y3QgeGVuX3B2Y2FsbHNfcmVxdWVzdCAqcmVxOworCWludCBub3RpZnksIHJlcV9pZCwg cmV0LCBldnRjaG47CisKKwlpZiAoIXB2Y2FsbHNfZnJvbnRfZGV2KQorCQlyZXR1cm4gLUVORVRV TlJFQUNIOworCWlmIChhZGRyLT5zYV9mYW1pbHkgIT0gQUZfSU5FVCB8fCBzb2NrLT50eXBlICE9 IFNPQ0tfU1RSRUFNKQorCQlyZXR1cm4gLUVOT1RTVVBQOworCisJYmVkYXRhID0gZGV2X2dldF9k cnZkYXRhKCZwdmNhbGxzX2Zyb250X2Rldi0+ZGV2KTsKKworCXNwaW5fbG9jaygmYmVkYXRhLT5w dmNhbGxzc19sb2NrKTsKKwlyZXFfaWQgPSBiZWRhdGEtPnJpbmcucmVxX3Byb2RfcHZ0ICYgKFJJ TkdfU0laRSgmYmVkYXRhLT5yaW5nKSAtIDEpOworCWlmIChSSU5HX0ZVTEwoJmJlZGF0YS0+cmlu ZykgfHwKKwkgICAgUkVBRF9PTkNFKGJlZGF0YS0+cnNwW3JlcV9pZF0ucmVxX2lkKSAhPSBQVkNB TExTX0lOVkFMSURfSUQpIHsKKwkJc3Bpbl91bmxvY2soJmJlZGF0YS0+cHZjYWxsc3NfbG9jayk7 CisJCXJldHVybiAtRUFHQUlOOworCX0KKworCW1hcCA9IGNyZWF0ZV9hY3RpdmUoJmV2dGNobik7 CisJaWYgKCFtYXApIHsKKwkJc3Bpbl91bmxvY2soJmJlZGF0YS0+cHZjYWxsc3NfbG9jayk7CisJ CXJldHVybiAtRU5PTUVNOworCX0KKworCXJlcSA9IFJJTkdfR0VUX1JFUVVFU1QoJmJlZGF0YS0+ cmluZywgcmVxX2lkKTsKKwlyZXEtPnJlcV9pZCA9IHJlcV9pZDsKKwlyZXEtPmNtZCA9IFBWQ0FM TFNfQ09OTkVDVDsKKwlyZXEtPnUuY29ubmVjdC5pZCA9ICh1aW50NjRfdClzb2NrOworCW1lbWNw eShyZXEtPnUuY29ubmVjdC5hZGRyLCBhZGRyLCBzaXplb2YoKmFkZHIpKTsKKwlyZXEtPnUuY29u bmVjdC5sZW4gPSBhZGRyX2xlbjsKKwlyZXEtPnUuY29ubmVjdC5mbGFncyA9IGZsYWdzOworCXJl cS0+dS5jb25uZWN0LnJlZiA9IG1hcC0+YWN0aXZlLnJlZjsKKwlyZXEtPnUuY29ubmVjdC5ldnRj aG4gPSBldnRjaG47CisJCisJbGlzdF9hZGRfdGFpbCgmbWFwLT5saXN0LCAmYmVkYXRhLT5zb2Nr ZXRfbWFwcGluZ3MpOworCW1hcC0+c29jayA9IHNvY2s7CisJV1JJVEVfT05DRShzb2NrLT5zay0+ c2tfc2VuZF9oZWFkLCAodm9pZCAqKW1hcCk7CisKKwliZWRhdGEtPnJpbmcucmVxX3Byb2RfcHZ0 Kys7CisJUklOR19QVVNIX1JFUVVFU1RTX0FORF9DSEVDS19OT1RJRlkoJmJlZGF0YS0+cmluZywg bm90aWZ5KTsKKwlzcGluX3VubG9jaygmYmVkYXRhLT5wdmNhbGxzc19sb2NrKTsKKworCWlmIChu b3RpZnkpCisJCW5vdGlmeV9yZW1vdGVfdmlhX2lycShiZWRhdGEtPmlycSk7CisKKwl3YWl0X2V2 ZW50KGJlZGF0YS0+aW5mbGlnaHRfcmVxLAorCQkgICBSRUFEX09OQ0UoYmVkYXRhLT5yc3BbcmVx X2lkXS5yZXFfaWQpID09IHJlcV9pZCk7CisKKwlyZXQgPSBiZWRhdGEtPnJzcFtyZXFfaWRdLnJl dDsKKwkvKiByZWFkIHJldCwgdGhlbiBzZXQgdGhpcyByc3Agc2xvdCB0byBiZSByZXVzZWQgKi8K KwlzbXBfbWIoKTsKKwlXUklURV9PTkNFKGJlZGF0YS0+cnNwW3JlcV9pZF0ucmVxX2lkLCBQVkNB TExTX0lOVkFMSURfSUQpOworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg eGVuYnVzX2RldmljZV9pZCBwdmNhbGxzX2Zyb250X2lkc1tdID0gewogCXsgInB2Y2FsbHMiIH0s CiAJeyAiIiB9CkBAIC0xNTAsNyArMzA1LDcgQEAgc3RhdGljIGludCBwdmNhbGxzX2Zyb250X3Jl bW92ZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2KQogc3RhdGljIGludCBwdmNhbGxzX2Zyb250 X3Byb2JlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAJCQkgIGNvbnN0IHN0cnVjdCB4ZW5i dXNfZGV2aWNlX2lkICppZCkKIHsKLQlpbnQgcmV0ID0gLUVGQVVMVCwgZXZ0Y2huLCByZWYgPSAt MSwgaTsKKwlpbnQgcmV0ID0gLUVOT01FTSwgZXZ0Y2huLCByZWYgPSAtMSwgaTsKIAl1bnNpZ25l ZCBpbnQgbWF4X3BhZ2Vfb3JkZXIsIGZ1bmN0aW9uX2NhbGxzLCBsZW47CiAJY2hhciAqdmVyc2lv bnM7CiAJZ3JhbnRfcmVmX3QgZ3JlZl9oZWFkID0gMDsKQEAgLTE3MSwxNSArMzI2LDEzIEBAIHN0 YXRpYyBpbnQgcHZjYWxsc19mcm9udF9wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAog CQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJa2ZyZWUodmVyc2lvbnMpOwotCXJldCA9IHhlbmJ1c19z Y2FuZihYQlRfTklMLCBkZXYtPm90aGVyZW5kLAotCQkJICAgIm1heC1wYWdlLW9yZGVyIiwgIiV1 IiwgJm1heF9wYWdlX29yZGVyKTsKLQlpZiAocmV0IDw9IDApCi0JCXJldHVybiAtRU5PREVWOwor CW1heF9wYWdlX29yZGVyID0geGVuYnVzX3JlYWRfdW5zaWduZWQoZGV2LT5vdGhlcmVuZCwKKwkJ CSAgICJtYXgtcGFnZS1vcmRlciIsIDApOwogCWlmIChtYXhfcGFnZV9vcmRlciA8IFJJTkdfT1JE RVIpCiAJCXJldHVybiAtRU5PREVWOwotCXJldCA9IHhlbmJ1c19zY2FuZihYQlRfTklMLCBkZXYt Pm90aGVyZW5kLAotCQkJICAgImZ1bmN0aW9uLWNhbGxzIiwgIiV1IiwgJmZ1bmN0aW9uX2NhbGxz KTsKLQlpZiAocmV0IDw9IDAgfHwgZnVuY3Rpb25fY2FsbHMgIT0gMSkKKwlmdW5jdGlvbl9jYWxs cyA9IHhlbmJ1c19yZWFkX3Vuc2lnbmVkKGRldi0+b3RoZXJlbmQsCisJCQkgICAiZnVuY3Rpb24t Y2FsbHMiLCAwKTsKKwlpZiAoZnVuY3Rpb25fY2FsbHMgIT0gMSkKIAkJcmV0dXJuIC1FTk9ERVY7 CiAJcHJfaW5mbygiJXMgbWF4LXBhZ2Utb3JkZXIgaXMgJXVcbiIsIF9fZnVuY19fLCBtYXhfcGFn ZV9vcmRlcik7CiAKQEAgLTE4Nyw2ICszNDAsOCBAQCBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRf cHJvYmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAlpZiAoIWJlZGF0YSkKIAkJcmV0dXJu IC1FTk9NRU07CiAKKwlkZXZfc2V0X2RydmRhdGEoJmRldi0+ZGV2LCBiZWRhdGEpOworCXB2Y2Fs bHNfZnJvbnRfZGV2ID0gZGV2OwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmJlZGF0YS0+aW5mbGln aHRfcmVxKTsKIAlmb3IgKGkgPSAwOyBpIDwgUFZDQUxMU19OUl9SRVFfUEVSX1JJTkc7IGkrKykK IAkJYmVkYXRhLT5yc3BbaV0ucmVxX2lkID0gUFZDQUxMU19JTlZBTElEX0lEOwpAQCAtMjE0LDgg KzM2OSwxMCBAQCBzdGF0aWMgaW50IHB2Y2FsbHNfZnJvbnRfcHJvYmUoc3RydWN0IHhlbmJ1c19k ZXZpY2UgKmRldiwKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJvcjsKIAliZWRhdGEtPnJlZiA9 IHJlZiA9IGdudHRhYl9jbGFpbV9ncmFudF9yZWZlcmVuY2UoJmdyZWZfaGVhZCk7Ci0JaWYgKHJl ZiA8IDApCisJaWYgKHJlZiA8IDApIHsKKwkJcmV0ID0gcmVmOwogCQlnb3RvIGVycm9yOworCX0K IAlnbnR0YWJfZ3JhbnRfZm9yZWlnbl9hY2Nlc3NfcmVmKHJlZiwgZGV2LT5vdGhlcmVuZF9pZCwK IAkJCQkJdmlydF90b19nZm4oKHZvaWQgKilzcmluZyksIDApOwogCkBAIC0yNDYsOCArNDAzLDYg QEAgc3RhdGljIGludCBwdmNhbGxzX2Zyb250X3Byb2JlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpk ZXYsCiAJSU5JVF9MSVNUX0hFQUQoJmJlZGF0YS0+c29ja2V0X21hcHBpbmdzKTsKIAlJTklUX0xJ U1RfSEVBRCgmYmVkYXRhLT5zb2NrZXRwYXNzX21hcHBpbmdzKTsKIAlzcGluX2xvY2tfaW5pdCgm YmVkYXRhLT5wdmNhbGxzc19sb2NrKTsKLQlkZXZfc2V0X2RydmRhdGEoJmRldi0+ZGV2LCBiZWRh dGEpOwotCXB2Y2FsbHNfZnJvbnRfZGV2ID0gZGV2OwogCXhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2 LCBYZW5idXNTdGF0ZUluaXRpYWxpc2VkKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy94ZW4vcHZjYWxscy1mcm9udC5oIGIvZHJpdmVycy94ZW4vcHZjYWxscy1mcm9udC5oCmlu ZGV4IGI3ZGFiZWQuLjYzYjA0MTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3B2Y2FsbHMtZnJv bnQuaAorKysgYi9kcml2ZXJzL3hlbi9wdmNhbGxzLWZyb250LmgKQEAgLTQsNSArNCw3IEBACiAj aW5jbHVkZSA8bGludXgvbmV0Lmg+CiAKIGludCBwdmNhbGxzX2Zyb250X3NvY2tldChzdHJ1Y3Qg c29ja2V0ICpzb2NrKTsKK2ludCBwdmNhbGxzX2Zyb250X2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAq c29jaywgc3RydWN0IHNvY2thZGRyICphZGRyLAorCQkJICBpbnQgYWRkcl9sZW4sIGludCBmbGFn cyk7CiAKICNlbmRpZgotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK