Date: Sat, 17 Sep 2016 13:31:43 +0000 From: "jceel (Jakub Klama)" <phabric-noreply@FreeBSD.org> To: freebsd-virtualization@freebsd.org Subject: [Differential] D7185: Add virtio-console support to bhyve Message-ID: <ea5a0acf9106a50c75a405537bb56328@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-h346qsj6dfo524z3qnfy-req@FreeBSD.org> References: <differential-rev-PHID-DREV-h346qsj6dfo524z3qnfy-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--b1_ea5a0acf9106a50c75a405537bb56328 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 amNlZWwgdXBkYXRlZCB0aGlzIHJldmlzaW9uIHRvIERpZmYgMjA0MDEuCmpjZWVsIGFkZGVkIGEg Y29tbWVudC4KCgogIENhc3QgYmFzZW5hbWUoKSBhcmd1bWVudCB0byBjaGFyICouCgpSRVBPU0lU T1JZCiAgclMgRnJlZUJTRCBzcmMgcmVwb3NpdG9yeQoKQ0hBTkdFUyBTSU5DRSBMQVNUIFVQREFU RQogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9ENzE4NT92cz0xODI4NCZpZD0yMDQwMQoK UkVWSVNJT04gREVUQUlMCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL0Q3MTg1CgpBRkZF Q1RFRCBGSUxFUwogIHVzci5zYmluL2JoeXZlL01ha2VmaWxlCiAgdXNyLnNiaW4vYmh5dmUvcGNp X3ZpcnRpb19jb25zb2xlLmMKICB1c3Iuc2Jpbi9iaHl2ZS92aXJ0aW8uaAoKRU1BSUwgUFJFRkVS RU5DRVMKICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvc2V0dGluZ3MvcGFuZWwvZW1haWxw cmVmZXJlbmNlcy8KClRvOiBqY2VlbCwgZ3JlaGFuLCB0cmFzegpDYzogaW1wLCBmcmVlYnNkLXZp cnR1YWxpemF0aW9uLWxpc3QK --b1_ea5a0acf9106a50c75a405537bb56328 Content-Type: text/x-patch; charset=utf-8; name="D7185.20401.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D7185.20401.patch" ZGlmZiAtLWdpdCBhL3Vzci5zYmluL2JoeXZlL3BjaV92aXJ0aW9fY29uc29sZS5jIGIvdXNyLnNi aW4vYmh5dmUvcGNpX3ZpcnRpb19jb25zb2xlLmMKLS0tIGEvdXNyLnNiaW4vYmh5dmUvcGNpX3Zp cnRpb19jb25zb2xlLmMKKysrIGIvdXNyLnNiaW4vYmh5dmUvcGNpX3ZpcnRpb19jb25zb2xlLmMK QEAgLTAsMCArMSw2MzEgQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDE2IGlYc3lzdGVtcyBJ bmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgc29mdHdhcmUgd2FzIGRl dmVsb3BlZCBieSBKYWt1YiBLbGFtYSA8amNlZWxARnJlZUJTRC5vcmc+CisgKiB1bmRlciBzcG9u c29yc2hpcCBmcm9tIGlYc3lzdGVtcyBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGlzIHBv c2l0aW9uIGFuZCB1bmNoYW5nZWQuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI RSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBP UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI QUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJF Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF TlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FV U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg U1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERB TUFHRS4KKyAqLworCisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CitfX0ZCU0RJRCgiJEZyZWVCU0Qk Iik7CisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvbGlua2VyX3NldC5o PgorI2luY2x1ZGUgPHN5cy91aW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRl IDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3VuLmg+CisKKyNpbmNsdWRlIDxlcnJuby5o PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRs aWIuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVk ZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgor I2luY2x1ZGUgPGxpYmdlbi5oPgorCisjaW5jbHVkZSAiYmh5dmVydW4uaCIKKyNpbmNsdWRlICJw Y2lfZW11bC5oIgorI2luY2x1ZGUgInZpcnRpby5oIgorI2luY2x1ZGUgIm1ldmVudC5oIgorCisj ZGVmaW5lCVZUQ09OX1JJTkdTWgk2NAorI2RlZmluZQlWVENPTl9NQVhQT1JUUwkxNgorI2RlZmlu ZQlWVENPTl9NQVhRCShWVENPTl9NQVhQT1JUUyAqIDIgKyAyKQorCisjZGVmaW5lCVZUQ09OX0RF VklDRV9SRUFEWQkwCisjZGVmaW5lCVZUQ09OX0RFVklDRV9BREQJMQorI2RlZmluZQlWVENPTl9E RVZJQ0VfUkVNT1ZFCTIKKyNkZWZpbmUJVlRDT05fUE9SVF9SRUFEWQkzCisjZGVmaW5lCVZUQ09O X0NPTlNPTEVfUE9SVAk0CisjZGVmaW5lCVZUQ09OX0NPTlNPTEVfUkVTSVpFCTUKKyNkZWZpbmUJ VlRDT05fUE9SVF9PUEVOCQk2CisjZGVmaW5lCVZUQ09OX1BPUlRfTkFNRQkJNworCisjZGVmaW5l CVZUQ09OX0ZfU0laRQkJMAorI2RlZmluZQlWVENPTl9GX01VTFRJUE9SVAkxCisjZGVmaW5lCVZU Q09OX0ZfRU1FUkdfV1JJVEUJMgorI2RlZmluZQlWVENPTl9TX0hPU1RDQVBTCVwKKyAgICAoVlRD T05fRl9TSVpFIHwgVlRDT05fRl9NVUxUSVBPUlQgfCBWVENPTl9GX0VNRVJHX1dSSVRFKQorCitz dGF0aWMgaW50IHBjaV92dGNvbl9kZWJ1ZzsKKyNkZWZpbmUgRFBSSU5URihwYXJhbXMpIGlmIChw Y2lfdnRjb25fZGVidWcpIHByaW50ZiBwYXJhbXMKKyNkZWZpbmUgV1BSSU5URihwYXJhbXMpIHBy aW50ZiBwYXJhbXMKKworc3RydWN0IHBjaV92dGNvbl9zb2Z0YzsKK3N0cnVjdCBwY2lfdnRjb25f cG9ydDsKK3N0cnVjdCBwY2lfdnRjb25fY29uZmlnOwordHlwZWRlZiB2b2lkIChwY2lfdnRjb25f Y2JfdCkoc3RydWN0IHBjaV92dGNvbl9wb3J0ICosIHZvaWQgKiwgc3RydWN0IGlvdmVjICosCisg ICAgaW50KTsKKworc3RydWN0IHBjaV92dGNvbl9wb3J0IHsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3Nv ZnRjICogdnNwX3NjOworCWludCAgICAgICAgICAgICAgICAgICAgICB2c3BfaWQ7CisJY29uc3Qg Y2hhciAqICAgICAgICAgICAgIHZzcF9uYW1lOworCWJvb2wgICAgICAgICAgICAgICAgICAgICB2 c3BfZW5hYmxlZDsKKwlib29sICAgICAgICAgICAgICAgICAgICAgdnNwX2NvbnNvbGU7CisJYm9v bCAgICAgICAgICAgICAgICAgICAgIHZzcF9yeF9yZWFkeTsKKwlpbnQgICAgICAgICAgICAgICAg ICAgICAgdnNwX3J4cTsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNwX3R4cTsKKwl2b2lk ICogICAgICAgICAgICAgICAgICAgdnNwX2FyZzsKKwlwY2lfdnRjb25fY2JfdCAqICAgICAgICAg dnNwX2NiOworfTsKKworc3RydWN0IHBjaV92dGNvbl9zb2NrCit7CisJc3RydWN0IHBjaV92dGNv bl9wb3J0ICogIHZzc19wb3J0OworCWNvbnN0IGNoYXIgKiAgICAgICAgICAgICB2c3NfcGF0aDsK KwlzdHJ1Y3QgbWV2ZW50ICogICAgICAgICAgdnNzX3NlcnZlcl9ldnA7CisJc3RydWN0IG1ldmVu dCAqICAgICAgICAgIHZzc19jb25uX2V2cDsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNz X3NlcnZlcl9mZDsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNzX2Nvbm5fZmQ7CisJYm9v bCAgICAgICAgICAgICAgICAgICAgIHZzc19vcGVuOworfTsKKworc3RydWN0IHBjaV92dGNvbl9z b2Z0YyB7CisJc3RydWN0IHZpcnRpb19zb2Z0YyAgICAgIHZzY192czsKKwlzdHJ1Y3QgdnF1ZXVl X2luZm8gICAgICAgdnNjX3F1ZXVlc1tWVENPTl9NQVhRXTsKKwlwdGhyZWFkX211dGV4X3QgICAg ICAgICAgdnNjX210eDsKKwl1aW50NjRfdCAgICAgICAgICAgICAgICAgdnNjX2NmZzsKKwl1aW50 NjRfdCAgICAgICAgICAgICAgICAgdnNjX2ZlYXR1cmVzOworCWNoYXIgKiAgICAgICAgICAgICAg ICAgICB2c2Nfcm9vdGRpcjsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNjX2txOworCWlu dCAgICAgICAgICAgICAgICAgICAgICB2c2NfbnBvcnRzOworCXN0cnVjdCBwY2lfdnRjb25fcG9y dCAgICB2c2NfY29udHJvbF9wb3J0OworIAlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgICAgdnNjX3Bv cnRzW1ZUQ09OX01BWFBPUlRTXTsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX2NvbmZpZyAqdnNjX2NvbmZp ZzsKK307CisKK3N0cnVjdCBwY2lfdnRjb25fY29uZmlnIHsKKwl1aW50MTZfdCBjb2xzOworCXVp bnQxNl90IHJvd3M7CisJdWludDMyX3QgbWF4X25yX3BvcnRzOworCXVpbnQzMl90IGVtZXJnX3dy OworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IHBjaV92dGNvbl9jb250cm9s IHsKKwl1aW50MzJfdCBpZDsKKwl1aW50MTZfdCBldmVudDsKKwl1aW50MTZfdCB2YWx1ZTsKK30g X19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0cnVjdCBwY2lfdnRjb25fY29uc29sZV9yZXNp emUgeworCXVpbnQxNl90IGNvbHM7CisJdWludDE2X3Qgcm93czsKK30gX19hdHRyaWJ1dGVfXygo cGFja2VkKSk7CisKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9yZXNldCh2b2lkICopOworc3RhdGlj IHZvaWQgcGNpX3Z0Y29uX25vdGlmeV9yeCh2b2lkICosIHN0cnVjdCB2cXVldWVfaW5mbyAqKTsK K3N0YXRpYyB2b2lkIHBjaV92dGNvbl9ub3RpZnlfdHgodm9pZCAqLCBzdHJ1Y3QgdnF1ZXVlX2lu Zm8gKik7CitzdGF0aWMgaW50IHBjaV92dGNvbl9jZmdyZWFkKHZvaWQgKiwgaW50LCBpbnQsIHVp bnQzMl90ICopOworc3RhdGljIGludCBwY2lfdnRjb25fY2Znd3JpdGUodm9pZCAqLCBpbnQsIGlu dCwgdWludDMyX3QpOworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX25lZ19mZWF0dXJlcyh2b2lkICos IHVpbnQ2NF90KTsKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9zb2NrX2FjY2VwdChpbnQsIGVudW0g ZXZfdHlwZSwgIHZvaWQgKik7CitzdGF0aWMgdm9pZCBwY2lfdnRjb25fc29ja19yeChpbnQsIGVu dW0gZXZfdHlwZSwgdm9pZCAqKTsKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9zb2NrX3R4KHN0cnVj dCBwY2lfdnRjb25fcG9ydCAqLCB2b2lkICosIHN0cnVjdCBpb3ZlYyAqLAorICAgIGludCk7Citz dGF0aWMgdm9pZCBwY2lfdnRjb25fY29udHJvbF9zZW5kKHN0cnVjdCBwY2lfdnRjb25fc29mdGMg KiwKKyAgICBzdHJ1Y3QgcGNpX3Z0Y29uX2NvbnRyb2wgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3Qp Oworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX2Fubm91bmNlX3BvcnQoc3RydWN0IHBjaV92dGNvbl9w b3J0ICopOworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX29wZW5fcG9ydChzdHJ1Y3QgcGNpX3Z0Y29u X3BvcnQgKiwgYm9vbCk7CisKK3N0YXRpYyBzdHJ1Y3QgdmlydGlvX2NvbnN0cyB2dGNvbl92aV9j b25zdHMgPSB7CisJInZ0Y29uIiwJCS8qIG91ciBuYW1lICovCisJVlRDT05fTUFYUSwJCS8qIHdl IHN1cHBvcnQgVlRDT05fTUFYUSB2aXJ0cXVldWVzICovCisJc2l6ZW9mKHN0cnVjdCBwY2lfdnRj b25fY29uZmlnKSwgLyogY29uZmlnIHJlZyBzaXplICovCisJcGNpX3Z0Y29uX3Jlc2V0LAkvKiBy ZXNldCAqLworCU5VTEwsCQkJLyogZGV2aWNlLXdpZGUgcW5vdGlmeSAqLworCXBjaV92dGNvbl9j ZmdyZWFkLAkvKiByZWFkIHZpcnRpbyBjb25maWcgKi8KKwlwY2lfdnRjb25fY2Znd3JpdGUsCS8q IHdyaXRlIHZpcnRpbyBjb25maWcgKi8KKwlwY2lfdnRjb25fbmVnX2ZlYXR1cmVzLAkvKiBhcHBs eSBuZWdvdGlhdGVkIGZlYXR1cmVzICovCisJVlRDT05fU19IT1NUQ0FQUywJLyogb3VyIGNhcGFi aWxpdGllcyAqLworfTsKKworCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX3Jlc2V0KHZvaWQgKnZz YykKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYzsKKworCXNjID0gdnNjOworCisJRFBS SU5URigoInZ0Y29uOiBkZXZpY2UgcmVzZXQgcmVxdWVzdGVkIVxuIikpOworCXZpX3Jlc2V0X2Rl digmc2MtPnZzY192cyk7Cit9CisKK3N0YXRpYyB2b2lkCitwY2lfdnRjb25fbmVnX2ZlYXR1cmVz KHZvaWQgKnZzYywgdWludDY0X3QgbmVnb3RpYXRlZF9mZWF0dXJlcykKK3sKKwlzdHJ1Y3QgcGNp X3Z0Y29uX3NvZnRjICpzYyA9IHZzYzsKKworCXNjLT52c2NfZmVhdHVyZXMgPSBuZWdvdGlhdGVk X2ZlYXR1cmVzOworfQorCitzdGF0aWMgaW50CitwY2lfdnRjb25fY2ZncmVhZCh2b2lkICp2c2Ms IGludCBvZmZzZXQsIGludCBzaXplLCB1aW50MzJfdCAqcmV0dmFsKQoreworCXN0cnVjdCBwY2lf dnRjb25fc29mdGMgKnNjID0gdnNjOworCXZvaWQgKnB0cjsKKworCXB0ciA9ICh1aW50OF90ICop c2MtPnZzY19jb25maWcgKyBvZmZzZXQ7CisJbWVtY3B5KHJldHZhbCwgcHRyLCBzaXplKTsKKwly ZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50CitwY2lfdnRjb25fY2Znd3JpdGUodm9pZCAqdnNj LCBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdWludDMyX3QgdmFsKQoreworCisJcmV0dXJuICgwKTsK K30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKgorcGNpX3Z0Y29uX3Zx X3RvX3BvcnQoc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2MsIHN0cnVjdCB2cXVldWVfaW5mbyAq dnEpCit7CisJdWludDE2X3QgbnVtID0gdnEtPnZxX251bTsKKworCWlmIChudW0gPT0gMCB8fCBu dW0gPT0gMSkKKwkJcmV0dXJuICgmc2MtPnZzY19wb3J0c1swXSk7CisKKwlpZiAobnVtID09IDIg fHwgbnVtID09IDMpCisJCXJldHVybiAoJnNjLT52c2NfY29udHJvbF9wb3J0KTsKKworCXJldHVy biAoJnNjLT52c2NfcG9ydHNbKG51bSAvIDIpIC0gMV0pOworfQorCitzdGF0aWMgaW5saW5lIHN0 cnVjdCB2cXVldWVfaW5mbyAqCitwY2lfdnRjb25fcG9ydF90b192cShzdHJ1Y3QgcGNpX3Z0Y29u X3BvcnQgKnBvcnQsIGJvb2wgdHhfcXVldWUpCit7CisJaW50IHFudW07CisKKwlxbnVtID0gdHhf cXVldWUgPyBwb3J0LT52c3BfdHhxIDogcG9ydC0+dnNwX3J4cTsKKwlyZXR1cm4gKCZwb3J0LT52 c3Bfc2MtPnZzY19xdWV1ZXNbcW51bV0pOworfQorCitzdGF0aWMgc3RydWN0IHBjaV92dGNvbl9w b3J0ICoKK3BjaV92dGNvbl9wb3J0X2FkZChzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYywgY29u c3QgY2hhciAqbmFtZSwKKyAgICBwY2lfdnRjb25fY2JfdCAqY2IsIHZvaWQgKmFyZykKK3sKKwlz dHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQ7CisKKwlpZiAoc2MtPnZzY19ucG9ydHMgPT0gVlRD T05fTUFYUE9SVFMpIHsKKwkJZXJybm8gPSBFQlVTWTsKKwkJcmV0dXJuIChOVUxMKTsKKwl9CisK Kwlwb3J0ID0gJnNjLT52c2NfcG9ydHNbc2MtPnZzY19ucG9ydHMrK107CisJcG9ydC0+dnNwX2lk ID0gc2MtPnZzY19ucG9ydHMgLSAxOworCXBvcnQtPnZzcF9zYyA9IHNjOworCXBvcnQtPnZzcF9u YW1lID0gbmFtZTsKKwlwb3J0LT52c3BfY2IgPSBjYjsKKwlwb3J0LT52c3BfYXJnID0gYXJnOwor CisJaWYgKHBvcnQtPnZzcF9pZCA9PSAwKSB7CisJCS8qIHBvcnQwICovCisJCXBvcnQtPnZzcF90 eHEgPSAwOworCQlwb3J0LT52c3BfcnhxID0gMTsKKwl9IGVsc2UgeworCQlwb3J0LT52c3BfdHhx ID0gc2MtPnZzY19ucG9ydHMgKiAyOworCQlwb3J0LT52c3BfcnhxID0gcG9ydC0+dnNwX3R4cSAr IDE7CisJfQorCisJcG9ydC0+dnNwX2VuYWJsZWQgPSB0cnVlOworCXJldHVybiAocG9ydCk7Cit9 CisKK3N0YXRpYyBpbnQKK3BjaV92dGNvbl9zb2NrX2FkZChzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRj ICpzYywgY29uc3QgY2hhciAqbmFtZSwKKyAgICBjb25zdCBjaGFyICpwYXRoKQoreworCXN0cnVj dCBwY2lfdnRjb25fc29jayAqc29jazsKKwlzdHJ1Y3Qgc29ja2FkZHJfdW4gc3VuOworCWludCBz ID0gLTEsIGZkID0gLTEsIGVycm9yID0gMDsKKworCXNvY2sgPSBjYWxsb2MoMSwgc2l6ZW9mKHN0 cnVjdCBwY2lfdnRjb25fc29jaykpOworCWlmIChzb2NrID09IE5VTEwpIHsKKwkJZXJyb3IgPSAt MTsKKwkJZ290byBvdXQ7CisJfQorCisJcyA9IHNvY2tldChBRl9VTklYLCBTT0NLX1NUUkVBTSwg MCk7CisJaWYgKHMgPCAwKSB7CisJCWVycm9yID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworCWZk ID0gb3BlbihkaXJuYW1lKHBhdGgpLCBPX1JET05MWSB8IE9fRElSRUNUT1JZKTsKKwlpZiAoZmQg PCAwKSB7CisJCWVycm9yID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworCXN1bi5zdW5fZmFtaWx5 ID0gQUZfVU5JWDsKKwlzdW4uc3VuX2xlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfdW4pOwor CXN0cm5jcHkoc3VuLnN1bl9wYXRoLCBiYXNlbmFtZSgoY2hhciAqKXBhdGgpLCBzaXplb2Yoc3Vu LnN1bl9wYXRoKSk7CisKKwlpZiAoYmluZGF0KGZkLCBzLCAoc3RydWN0IHNvY2thZGRyICopJnN1 biwgc3VuLnN1bl9sZW4pIDwgMCkgeworCQllcnJvciA9IC0xOworCQlnb3RvIG91dDsKKwl9CisK KwlpZiAoZmNudGwocywgRl9TRVRGTCwgT19OT05CTE9DSykgPCAwKSB7CisJCWVycm9yID0gLTE7 CisJCWdvdG8gb3V0OworCX0KKworCWlmIChsaXN0ZW4ocywgMSkgPCAwKSB7CisJCWVycm9yID0g LTE7CisJCWdvdG8gb3V0OworCX0KKworCisJc29jay0+dnNzX3BvcnQgPSBwY2lfdnRjb25fcG9y dF9hZGQoc2MsIG5hbWUsIHBjaV92dGNvbl9zb2NrX3R4LCBzb2NrKTsKKwlpZiAoc29jay0+dnNz X3BvcnQgPT0gTlVMTCkgeworCQllcnJvciA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKwlzb2Nr LT52c3Nfb3BlbiA9IGZhbHNlOworCXNvY2stPnZzc19jb25uX2ZkID0gLTE7CisJc29jay0+dnNz X3NlcnZlcl9mZCA9IHM7CisJc29jay0+dnNzX3NlcnZlcl9ldnAgPSBtZXZlbnRfYWRkKHMsIEVW Rl9SRUFELCBwY2lfdnRjb25fc29ja19hY2NlcHQsCisJICAgIHNvY2spOworCisJaWYgKHNvY2st PnZzc19zZXJ2ZXJfZXZwID09IE5VTEwpIHsKKwkJZXJyb3IgPSAtMTsKKwkJZ290byBvdXQ7CisJ fQorCitvdXQ6CisJaWYgKGZkICE9IC0xKQorCQljbG9zZShmZCk7CisKKwlpZiAoZXJyb3IgIT0g MCAmJiBzICE9IC0xKQorCQljbG9zZShzKTsKKworCXJldHVybiAoZXJyb3IpOworfQorCitzdGF0 aWMgdm9pZAorcGNpX3Z0Y29uX3NvY2tfYWNjZXB0KGludCBmZCBfX3VudXNlZCwgZW51bSBldl90 eXBlIHQgX191bnVzZWQsIHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvY2sgKnNv Y2sgPSAoc3RydWN0IHBjaV92dGNvbl9zb2NrICopYXJnOworCWludCBzOworCisJcyA9IGFjY2Vw dChzb2NrLT52c3Nfc2VydmVyX2ZkLCBOVUxMLCBOVUxMKTsKKwlpZiAocyA8IDApCisJCXJldHVy bjsKKworCWlmIChzb2NrLT52c3Nfb3BlbikgeworCQljbG9zZShzKTsKKwkJcmV0dXJuOworCX0K KworCXNvY2stPnZzc19vcGVuID0gdHJ1ZTsKKwlzb2NrLT52c3NfY29ubl9mZCA9IHM7CisJc29j ay0+dnNzX2Nvbm5fZXZwID0gbWV2ZW50X2FkZChzLCBFVkZfUkVBRCwgcGNpX3Z0Y29uX3NvY2tf cngsIHNvY2spOworCXBjaV92dGNvbl9vcGVuX3BvcnQoc29jay0+dnNzX3BvcnQsIHRydWUpOwor fQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX3NvY2tfcngoaW50IGZkIF9fdW51c2VkLCBlbnVt IGV2X3R5cGUgdCBfX3VudXNlZCwgdm9pZCAqYXJnKQoreworCXN0cnVjdCBwY2lfdnRjb25fcG9y dCAqcG9ydDsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvY2sgKnNvY2sgPSAoc3RydWN0IHBjaV92dGNv bl9zb2NrICopYXJnOworCXN0cnVjdCB2cXVldWVfaW5mbyAqdnE7CisJc3RydWN0IGlvdmVjIGlv djsKKwlzdGF0aWMgY2hhciBkdW1teWJ1ZlsyMDQ4XTsKKwlpbnQgbGVuLCBuOworCXVpbnQxNl90 IGlkeDsKKworCXBvcnQgPSBzb2NrLT52c3NfcG9ydDsKKwl2cSA9IHBjaV92dGNvbl9wb3J0X3Rv X3ZxKHBvcnQsIHRydWUpOworCisJaWYgKCFzb2NrLT52c3Nfb3BlbiB8fCAhcG9ydC0+dnNwX3J4 X3JlYWR5KSB7CisJCWxlbiA9IHJlYWQoc29jay0+dnNzX2Nvbm5fZmQsIGR1bW15YnVmLCBzaXpl b2YoZHVtbXlidWYpKTsKKwkJaWYgKGxlbiA9PSAwKQorCQkJZ290byBjbG9zZTsKKworCQlyZXR1 cm47CisJfQorCisJaWYgKCF2cV9oYXNfZGVzY3ModnEpKSB7CisJCWxlbiA9IHJlYWQoc29jay0+ dnNzX2Nvbm5fZmQsIGR1bW15YnVmLCBzaXplb2YoZHVtbXlidWYpKTsKKwkJdnFfZW5kY2hhaW5z KHZxLCAxKTsKKwkJaWYgKGxlbiA9PSAwKQorCQkJZ290byBjbG9zZTsKKworCQlyZXR1cm47CisJ fQorCisJZG8geworCQluID0gdnFfZ2V0Y2hhaW4odnEsICZpZHgsICZpb3YsIDEsIE5VTEwpOwor CQlsZW4gPSByZWFkdihzb2NrLT52c3NfY29ubl9mZCwgJmlvdiwgbik7CisKKwkJaWYgKGxlbiA9 PSAwIHx8IChsZW4gPCAwICYmIGVycm5vID09IEVXT1VMREJMT0NLKSkgeworCQkJdnFfcmV0Y2hh aW4odnEpOworCQkJdnFfZW5kY2hhaW5zKHZxLCAwKTsKKwkJCWlmIChsZW4gPT0gMCkKKwkJCQln b3RvIGNsb3NlOworCisJCQlyZXR1cm47CisJCX0KKworCQl2cV9yZWxjaGFpbih2cSwgaWR4LCBs ZW4pOworCX0gd2hpbGUgKHZxX2hhc19kZXNjcyh2cSkpOworCisJdnFfZW5kY2hhaW5zKHZxLCAx KTsKKworY2xvc2U6CisJbWV2ZW50X2RlbGV0ZV9jbG9zZShzb2NrLT52c3NfY29ubl9ldnApOwor CXNvY2stPnZzc19jb25uX2ZkID0gLTE7CisJc29jay0+dnNzX29wZW4gPSBmYWxzZTsKK30KKwor c3RhdGljIHZvaWQKK3BjaV92dGNvbl9zb2NrX3R4KHN0cnVjdCBwY2lfdnRjb25fcG9ydCAqcG9y dCwgdm9pZCAqYXJnLCBzdHJ1Y3QgaW92ZWMgKmlvdiwKKyAgICBpbnQgbmlvdikKK3sKKwlzdHJ1 Y3QgcGNpX3Z0Y29uX3NvY2sgKnNvY2s7CisJaW50IHJldDsKKworCXNvY2sgPSAoc3RydWN0IHBj aV92dGNvbl9zb2NrICopYXJnOworCisJaWYgKHNvY2stPnZzc19jb25uX2ZkID09IC0xKQorCQly ZXR1cm47CisKKwlyZXQgPSB3cml0ZXYoc29jay0+dnNzX2Nvbm5fZmQsIGlvdiwgbmlvdik7CisK KwlpZiAocmV0IDwgMCAmJiBlcnJubyAhPSBFV09VTERCTE9DSykgeworCQltZXZlbnRfZGVsZXRl X2Nsb3NlKHNvY2stPnZzc19jb25uX2V2cCk7CisJCXNvY2stPnZzc19jb25uX2ZkID0gLTE7CisJ CXNvY2stPnZzc19vcGVuID0gZmFsc2U7CisJfQorfQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29u X2NvbnRyb2xfdHgoc3RydWN0IHBjaV92dGNvbl9wb3J0ICpwb3J0LCB2b2lkICphcmcsIHN0cnVj dCBpb3ZlYyAqaW92LAorICAgIGludCBuaW92KQoreworCXN0cnVjdCBwY2lfdnRjb25fc29mdGMg KnNjOworCXN0cnVjdCBwY2lfdnRjb25fcG9ydCAqdG1wOworCXN0cnVjdCBwY2lfdnRjb25fY29u dHJvbCByZXNwLCAqY3RybDsKKwlpbnQgaTsKKworCWFzc2VydChuaW92ID09IDEpOworCisJc2Mg PSBwb3J0LT52c3Bfc2M7CisJY3RybCA9IChzdHJ1Y3QgcGNpX3Z0Y29uX2NvbnRyb2wgKilpb3Yt Pmlvdl9iYXNlOworCisJc3dpdGNoIChjdHJsLT5ldmVudCkgeworCWNhc2UgVlRDT05fREVWSUNF X1JFQURZOgorCQkvKiBzZXQgcG9ydCByZWFkeSBldmVudHMgZm9yIHJlZ2lzdGVyZWQgcG9ydHMg Ki8KKwkJZm9yIChpID0gMDsgaSA8IFZUQ09OX01BWFBPUlRTOyBpKyspIHsKKwkJCXRtcCA9ICZz Yy0+dnNjX3BvcnRzW2ldOworCQkJaWYgKHRtcC0+dnNwX2VuYWJsZWQpCisJCQkJcGNpX3Z0Y29u X2Fubm91bmNlX3BvcnQodG1wKTsKKwkJfQorCQlicmVhazsKKworCWNhc2UgVlRDT05fUE9SVF9S RUFEWToKKwkJaWYgKGN0cmwtPmlkID49IHNjLT52c2NfbnBvcnRzKSB7CisJCQlXUFJJTlRGKCgi VlRDT05fUE9SVF9SRUFEWSBldmVudCBmb3IgdW5rbm93biBwb3J0ICVkXG4iLAorCQkJICAgIGN0 cmwtPmlkKSk7CisJCQlyZXR1cm47CisJCX0KKworCQl0bXAgPSAmc2MtPnZzY19wb3J0c1tjdHJs LT5pZF07CisJCWlmICh0bXAtPnZzcF9jb25zb2xlKSB7CisJCQlyZXNwLmV2ZW50ID0gVlRDT05f Q09OU09MRV9QT1JUOworCQkJcmVzcC5pZCA9IGN0cmwtPmlkOworCQkJcmVzcC52YWx1ZSA9IDE7 CisJCQlwY2lfdnRjb25fY29udHJvbF9zZW5kKHNjLCAmcmVzcCwgTlVMTCwgMCk7CisJCX0KKwkJ YnJlYWs7CisJfQorfQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX2Fubm91bmNlX3BvcnQoc3Ry dWN0IHBjaV92dGNvbl9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBwY2lfdnRjb25fY29udHJvbCBl dmVudDsKKworCWV2ZW50LmlkID0gcG9ydC0+dnNwX2lkOworCWV2ZW50LmV2ZW50ID0gVlRDT05f REVWSUNFX0FERDsKKwlldmVudC52YWx1ZSA9IDE7CisJcGNpX3Z0Y29uX2NvbnRyb2xfc2VuZChw b3J0LT52c3Bfc2MsICZldmVudCwgTlVMTCwgMCk7CisKKwlldmVudC5ldmVudCA9IFZUQ09OX1BP UlRfTkFNRTsKKwlwY2lfdnRjb25fY29udHJvbF9zZW5kKHBvcnQtPnZzcF9zYywgJmV2ZW50LCBw b3J0LT52c3BfbmFtZSwKKwkgICAgc3RybGVuKHBvcnQtPnZzcF9uYW1lKSk7Cit9CisKK3N0YXRp YyB2b2lkCitwY2lfdnRjb25fb3Blbl9wb3J0KHN0cnVjdCBwY2lfdnRjb25fcG9ydCAqcG9ydCwg Ym9vbCBvcGVuKQoreworCXN0cnVjdCBwY2lfdnRjb25fY29udHJvbCBldmVudDsKKworCWV2ZW50 LmlkID0gcG9ydC0+dnNwX2lkOworCWV2ZW50LmV2ZW50ID0gVlRDT05fUE9SVF9PUEVOOworCWV2 ZW50LnZhbHVlID0gKGludClvcGVuOworCXBjaV92dGNvbl9jb250cm9sX3NlbmQocG9ydC0+dnNw X3NjLCAmZXZlbnQsIE5VTEwsIDApOworfQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX2NvbnRy b2xfc2VuZChzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYywKKyAgICBzdHJ1Y3QgcGNpX3Z0Y29u X2NvbnRyb2wgKmN0cmwsIGNvbnN0IHZvaWQgKnBheWxvYWQsIHNpemVfdCBsZW4pCit7CisJc3Ry dWN0IHZxdWV1ZV9pbmZvICp2cTsKKwlzdHJ1Y3QgaW92ZWMgaW92OworCXVpbnQxNl90IGlkeDsK KwlpbnQgbjsKKworCXZxID0gcGNpX3Z0Y29uX3BvcnRfdG9fdnEoJnNjLT52c2NfY29udHJvbF9w b3J0LCB0cnVlKTsKKworCWlmICghdnFfaGFzX2Rlc2NzKHZxKSkKKwkJcmV0dXJuOworCisJbiA9 IHZxX2dldGNoYWluKHZxLCAmaWR4LCAmaW92LCAxLCBOVUxMKTsKKworCWFzc2VydChuID09IDEp OworCisJbWVtY3B5KGlvdi5pb3ZfYmFzZSwgY3RybCwgc2l6ZW9mKHN0cnVjdCBwY2lfdnRjb25f Y29udHJvbCkpOworCWlmIChwYXlsb2FkICE9IE5VTEwgJiYgbGVuID4gMCkKKwkJbWVtY3B5KGlv di5pb3ZfYmFzZSArIHNpemVvZihzdHJ1Y3QgcGNpX3Z0Y29uX2NvbnRyb2wpLAorCQkgICAgIHBh eWxvYWQsIGxlbik7CisKKwl2cV9yZWxjaGFpbih2cSwgaWR4LCBzaXplb2Yoc3RydWN0IHBjaV92 dGNvbl9jb250cm9sKSArIGxlbik7CisJdnFfZW5kY2hhaW5zKHZxLCAxKTsKK30KKyAgICAKKwor c3RhdGljIHZvaWQKK3BjaV92dGNvbl9ub3RpZnlfdHgodm9pZCAqdnNjLCBzdHJ1Y3QgdnF1ZXVl X2luZm8gKnZxKQoreworCXN0cnVjdCBwY2lfdnRjb25fc29mdGMgKnNjOworCXN0cnVjdCBwY2lf dnRjb25fcG9ydCAqcG9ydDsKKwlzdHJ1Y3QgaW92ZWMgaW92WzFdOworCXVpbnQxNl90IGlkeCwg bjsKKwl1aW50MTZfdCBmbGFnc1s4XTsKKworCXNjID0gdnNjOworCXBvcnQgPSBwY2lfdnRjb25f dnFfdG9fcG9ydChzYywgdnEpOworCisJd2hpbGUgKHZxX2hhc19kZXNjcyh2cSkpIHsKKwkJbiA9 IHZxX2dldGNoYWluKHZxLCAmaWR4LCBpb3YsIDEsIGZsYWdzKTsKKwkJaWYgKHBvcnQgIT0gTlVM TCkKKwkJCXBvcnQtPnZzcF9jYihwb3J0LCBwb3J0LT52c3BfYXJnLCBpb3YsIDEpOworCisJCS8q CisJCSAqIFJlbGVhc2UgdGhpcyBjaGFpbiBhbmQgaGFuZGxlIG1vcmUKKwkJICovCisJCXZxX3Jl bGNoYWluKHZxLCBpZHgsIDApOworCX0KKwl2cV9lbmRjaGFpbnModnEsIDEpOwkvKiBHZW5lcmF0 ZSBpbnRlcnJ1cHQgaWYgYXBwcm9wcmlhdGUuICovCit9CisKK3N0YXRpYyB2b2lkCitwY2lfdnRj b25fbm90aWZ5X3J4KHZvaWQgKnZzYywgc3RydWN0IHZxdWV1ZV9pbmZvICp2cSkKK3sKKwlzdHJ1 Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYzsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQ7CisK KwlzYyA9IHZzYzsKKwlwb3J0ID0gcGNpX3Z0Y29uX3ZxX3RvX3BvcnQoc2MsIHZxKTsKKworCWlm ICghcG9ydC0+dnNwX3J4X3JlYWR5KSB7CisJCXBvcnQtPnZzcF9yeF9yZWFkeSA9IDE7CisJCXZx LT52cV91c2VkLT52dV9mbGFncyB8PSBWUklOR19VU0VEX0ZfTk9fTk9USUZZOworCX0KK30KKwor c3RhdGljIGludAorcGNpX3Z0Y29uX2luaXQoc3RydWN0IHZtY3R4ICpjdHgsIHN0cnVjdCBwY2lf ZGV2aW5zdCAqcGksIGNoYXIgKm9wdHMpCit7CisJc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2M7 CisJY2hhciAqcG9ydG5hbWUgPSBOVUxMOworCWNoYXIgKnBvcnRwYXRoID0gTlVMTDsKKwljaGFy ICpvcHQ7CisJaW50IGk7CQorCisJc2MgPSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBwY2lfdnRj b25fc29mdGMpKTsKKwlzYy0+dnNjX2NvbmZpZyA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IHBj aV92dGNvbl9jb25maWcpKTsKKwlzYy0+dnNjX2NvbmZpZy0+bWF4X25yX3BvcnRzID0gVlRDT05f TUFYUE9SVFM7CisJc2MtPnZzY19jb25maWctPmNvbHMgPSA4MDsKKwlzYy0+dnNjX2NvbmZpZy0+ cm93cyA9IDI1OyAKKworCXZpX3NvZnRjX2xpbmt1cCgmc2MtPnZzY192cywgJnZ0Y29uX3ZpX2Nv bnN0cywgc2MsIHBpLCBzYy0+dnNjX3F1ZXVlcyk7CisJc2MtPnZzY192cy52c19tdHggPSAmc2Mt PnZzY19tdHg7CisKKwlmb3IgKGkgPSAwOyBpIDwgVlRDT05fTUFYUTsgaSsrKSB7CisJCXNjLT52 c2NfcXVldWVzW2ldLnZxX3FzaXplID0gVlRDT05fUklOR1NaOworCQlzYy0+dnNjX3F1ZXVlc1tp XS52cV9ub3RpZnkgPSBpICUgMiA9PSAwCisJCSAgICA/IHBjaV92dGNvbl9ub3RpZnlfcngKKwkJ ICAgIDogcGNpX3Z0Y29uX25vdGlmeV90eDsKKwl9CisKKwkvKiBpbml0aWFsaXplIGNvbmZpZyBz cGFjZSAqLworCXBjaV9zZXRfY2ZnZGF0YTE2KHBpLCBQQ0lSX0RFVklDRSwgVklSVElPX0RFVl9D T05TT0xFKTsKKwlwY2lfc2V0X2NmZ2RhdGExNihwaSwgUENJUl9WRU5ET1IsIFZJUlRJT19WRU5E T1IpOworCXBjaV9zZXRfY2ZnZGF0YTgocGksIFBDSVJfQ0xBU1MsIFBDSUNfU0lNUExFQ09NTSk7 CisJcGNpX3NldF9jZmdkYXRhMTYocGksIFBDSVJfU1VCREVWXzAsIFZJUlRJT19UWVBFX0NPTlNP TEUpOworCXBjaV9zZXRfY2ZnZGF0YTE2KHBpLCBQQ0lSX1NVQlZFTkRfMCwgVklSVElPX1ZFTkRP Uik7CisKKwlpZiAodmlfaW50cl9pbml0KCZzYy0+dnNjX3ZzLCAxLCBmYnNkcnVuX3ZpcnRpb19t c2l4KCkpKQorCQlyZXR1cm4gKDEpOworCXZpX3NldF9pb19iYXIoJnNjLT52c2NfdnMsIDApOwor CisJLyogY3JlYXRlIGNvbnRyb2wgcG9ydCAqLworCXNjLT52c2NfY29udHJvbF9wb3J0LnZzcF9z YyA9IHNjOworCXNjLT52c2NfY29udHJvbF9wb3J0LnZzcF90eHEgPSAyOworCXNjLT52c2NfY29u dHJvbF9wb3J0LnZzcF9yeHEgPSAzOworCXNjLT52c2NfY29udHJvbF9wb3J0LnZzcF9jYiA9IHBj aV92dGNvbl9jb250cm9sX3R4OworCXNjLT52c2NfY29udHJvbF9wb3J0LnZzcF9lbmFibGVkID0g dHJ1ZTsKKworCXdoaWxlICgob3B0ID0gc3Ryc2VwKCZvcHRzLCAiLCIpKSAhPSBOVUxMKSB7CisJ CXBvcnRuYW1lID0gc3Ryc2VwKCZvcHQsICI9Iik7CisJCXBvcnRwYXRoID0gc3RyZHVwKG9wdCk7 CisKKwkJLyogY3JlYXRlIHBvcnQgKi8KKwkJaWYgKHBjaV92dGNvbl9zb2NrX2FkZChzYywgcG9y dG5hbWUsIHBvcnRwYXRoKSA8IDApIHsKKwkJCWZwcmludGYoc3RkZXJyLCAiY2Fubm90IGNyZWF0 ZSBwb3J0ICVzOiAlc1xuIiwKKwkJCSAgICBwb3J0bmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJ CXJldHVybiAoMSk7CisJCX0KKwl9CisKKwlyZXR1cm4gKDApOworfQorCitzdHJ1Y3QgcGNpX2Rl dmVtdSBwY2lfZGVfdmNvbiA9IHsKKwkucGVfZW11ID0JInZpcnRpby1jb25zb2xlIiwKKwkucGVf aW5pdCA9CXBjaV92dGNvbl9pbml0LAorCS5wZV9iYXJ3cml0ZSA9CXZpX3BjaV93cml0ZSwKKwku cGVfYmFycmVhZCA9CXZpX3BjaV9yZWFkCit9OworUENJX0VNVUxfU0VUKHBjaV9kZV92Y29uKTsK ZGlmZiAtLWdpdCBhL3Vzci5zYmluL2JoeXZlL3ZpcnRpby5oIGIvdXNyLnNiaW4vYmh5dmUvdmly dGlvLmgKLS0tIGEvdXNyLnNiaW4vYmh5dmUvdmlydGlvLmgKKysrIGIvdXNyLnNiaW4vYmh5dmUv dmlydGlvLmgKQEAgLTIxMCw2ICsyMTAsNyBAQAogI2RlZmluZQlWSVJUSU9fREVWX05FVAkJMHgx MDAwCiAjZGVmaW5lCVZJUlRJT19ERVZfQkxPQ0sJMHgxMDAxCiAjZGVmaW5lCVZJUlRJT19ERVZf UkFORE9NCTB4MTAwMgorI2RlZmluZQlWSVJUSU9fREVWX0NPTlNPTEUJMHgxMDAzCiAKIC8qCiAg KiBQQ0kgY29uZmlnIHNwYWNlIGNvbnN0YW50cy4KZGlmZiAtLWdpdCBhL3Vzci5zYmluL2JoeXZl L01ha2VmaWxlIGIvdXNyLnNiaW4vYmh5dmUvTWFrZWZpbGUKLS0tIGEvdXNyLnNiaW4vYmh5dmUv TWFrZWZpbGUKKysrIGIvdXNyLnNiaW4vYmh5dmUvTWFrZWZpbGUKQEAgLTM2LDYgKzM2LDcgQEAK IAlwY2lfbHBjLmMJCVwKIAlwY2lfcGFzc3RocnUuYwkJXAogCXBjaV92aXJ0aW9fYmxvY2suYwlc CisJcGNpX3ZpcnRpb19jb25zb2xlLmMJXAogCXBjaV92aXJ0aW9fbmV0LmMJXAogCXBjaV92aXJ0 aW9fcm5kLmMJXAogCXBjaV91YXJ0LmMJCVwKCg== --b1_ea5a0acf9106a50c75a405537bb56328--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ea5a0acf9106a50c75a405537bb56328>