Re: PATCH: Arla 0.90 on Linux 2.6.24-2.6.32
Bo Brantén <[email protected]> Sat, 5 Jun 2010 11:31:34 +0200 (CEST)
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---2098261369-1391241848-1275730294=:1097872 Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable A small correction to the patch. Bo Brant=E9n ---2098261369-1391241848-1275730294=:1097872 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-0.90-Linux2 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-arla-0.90-Linux2 ZGlmZiAtdXByTiBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tz LmMgYXJsYS0wLjkwLW5ldy9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0K LS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3 LTAxLTA4IDE0OjI0OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45 MC1uZXcvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMJMjAxMC0wNi0wMyAy MzozMTowNi4zOTI2MTIwMDYgKzAyMDANCkBAIC0zNCw3ICszNCw3IEBADQog ICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog JElkOiBubnBmc19ibG9ja3MuYyx2IDEuMyAyMDA3LzAxLzA4IDEzOjI0OjI0 IHRvbCBFeHAgJCAqLw0KKy8qICRJZDogbm5wZnNfYmxvY2tzLmMsdiAxLjQg MjAwOC8wMy8wOCAyMTozODoxNiB0b2wgRXhwICQgKi8NCiANCiAjaW5jbHVk ZSA8bm5wZnMvbm5wZnNfbG9jbC5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBm c19mcy5oPg0KQEAgLTMwMiw2ICszMDIsMjQgQEAgbm5wZnNfYmxvY2tfZXh0 ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICByZXR1cm4gcmV0Ow0K IH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMiwgNiwgMjMpDQorLyoNCisgKiBIZWxwZXIgdG8gZW11bGF0ZSB2ZnNf cGF0aF9sb29rdXAoKSBvbiBsaW51eCA8IDIuNi4yMw0KKyAqLw0KK3N0YXRp YyBpbnQNCit2ZnNfcGF0aF9sb29rdXAoc3RydWN0IGRlbnRyeSAqZGVudHJ5 LCBzdHJ1Y3QgdmZzbW91bnQgKm1udCwNCisJCWNvbnN0IGNoYXIgKmNhY2hl bmFtZSwgdW5zaWduZWQgaW50IGZsYWdzLA0KKwkJc3RydWN0IG5hbWVpZGF0 YSAqbmQpDQorew0KKyAgICBuZC0+ZGVudHJ5ID0gZGdldChkZW50cnkpOw0K KyAgICBuZC0+bW50ID0gbW50Z2V0KG1udCk7DQorICAgIG5kLT5sYXN0X3R5 cGUgPSBMQVNUX1JPT1Q7DQorICAgIG5kLT5kZXB0aCA9IDA7DQorICAgIG5k LT5mbGFncyA9IGZsYWdzOw0KKyAgICByZXR1cm4gcGF0aF93YWxrKGNhY2hl bmFtZSwgbmQpOw0KK30NCisjZW5kaWYgLyogTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiwgNiwgMjMpICovDQorDQogLyoNCiAgKiBv cGVuIGluZGljYXRlZCBjYWNoZSBibG9jayBmaWxlLiBuZWVkcyB0byBiZSBj bG9zZWQgYnkgY2FsbGVyLg0KICAqDQpAQCAtMzIyLDYgKzM0MCwxMCBAQCBu bnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAg IHVpZF90IHNhdmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQogICAgIGlu dCByZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigyLDYsMjkpDQorICAgIGNvbnN0IHN0cnVjdCBjcmVkICpvbGRfY3Jl ZDsNCisgICAgc3RydWN0IGNyZWQgKm92ZXJyaWRlX2NyZWQ7DQorI2VuZGlm DQogDQogICAgIEJVR19PTighbm5wZnNwKTsNCiAgICAgQlVHX09OKGZsYWdz ICYgT19DUkVBVCAmJiBmaWxlICE9IE5VTEwpOw0KQEAgLTM0NiwyMSArMzY4 LDI2IEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5v ZGUNCiAgICAgQlVHX09OKCFubnBmc3AtPmNhY2hlZGlyIHx8ICFubnBmc3At PmNhY2hlcm9vdCk7DQogICAgIA0KICAgICAvKiB1c2UgdGhlIG5mc2QgdHJp Y2sgdG8gZ2l2ZSB1cyBhY2Nlc3MgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgc2F2ZXVpZCA9 IGN1cnJlbnQtPmZzdWlkOw0KICAgICBzYXZlZ2lkID0gY3VycmVudC0+ZnNn aWQ7DQogICAgIGN1cnJlbnQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQogICAg IGN1cnJlbnQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQotDQotICAgIG5kLmRl bnRyeSA9IGRnZXQobm5wZnNwLT5jYWNoZWRpcik7DQotICAgIG5kLm1udCA9 IG1udGdldChubnBmc3AtPmNhY2hlcm9vdCk7DQotICAgIG5kLmxhc3RfdHlw ZSA9IExBU1RfTk9STTsNCi0gICAgbmQuZGVwdGggPSAwOw0KLSAgICBuZC5m bGFncyA9IDA7DQotICAgIA0KLSAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKQ0K LQluZC5mbGFncyA9IExPT0tVUF9QQVJFTlQ7DQotICAgIA0KLSAgICByZXQg PSBwYXRoX3dhbGsoY2FjaGVuYW1lLCAmbmQpOw0KKyNlbHNlDQorICAgIHNh dmV1aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQorICAgIHNhdmVnaWQgPSBjdXJy ZW50X2ZzZ2lkKCk7DQorICAgIG92ZXJyaWRlX2NyZWQgPSBwcmVwYXJlX2Ny ZWRzKCk7DQorICAgIGlmICghb3ZlcnJpZGVfY3JlZCkNCisgICAgICAgIHJl dHVybiAtRU5PTUVNOw0KKyAgICBvdmVycmlkZV9jcmVkLT5mc3VpZCA9IG5u cGZzcC0+dWlkOw0KKyAgICBvdmVycmlkZV9jcmVkLT5mc2dpZCA9IG5ucGZz cC0+Z2lkOw0KKyAgICBvbGRfY3JlZCA9IG92ZXJyaWRlX2NyZWRzKG92ZXJy aWRlX2NyZWQpOw0KKyNlbmRpZg0KKw0KKyAgICByZXQgPSB2ZnNfcGF0aF9s b29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQor CQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09L VVBfUEFSRU5UIDogMCwNCisJCQkgICZuZCk7DQogICAgIGlmIChyZXQpIHsN CiAJdWludDMyX3Qgbm1hc2tzID0gbm9kZS0+ZGF0YS5ubWFza3M7DQogCXVp bnQzMl90IG1hc2s7DQpAQCAtMzkxLDEyICs0MTgsMjEgQEAgbm5wZnNfYmxv Y2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIAlpZiAoSVNfRVJS KGRlbnRyeSkpIHsNCiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJ fSBlbHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDI1KQ0KIAkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5kZW50 cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0K KyNlbHNlDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5 LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisj ZW5kaWYNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQogCW11 dGV4X3VubG9jaygmbmQuZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCiAJ cGF0aF9yZWxlYXNlKCZuZCk7DQorI2Vsc2UNCisJbXV0ZXhfdW5sb2NrKCZu ZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBhdGhfcHV0 KCZuZC5wYXRoKTsNCisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkgICAg cHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVkOiAl ZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCkBAIC00MTAsMTIgKzQ0NiwyMiBA QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog CSAgICByZXQgPSBubnBmc19ibG9ja19leHRlbmQobm9kZSwgb2Zmc2V0KTsN CiAJfQ0KICAgICB9IGVsc2Ugew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQogCXN0cnVjdCBmaWxlICpmID0g ZGVudHJ5X29wZW4obmQuZGVudHJ5LCBuZC5tbnQsIGZsYWdzKTsNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkp DQorCXN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50 cnksIG5kLnBhdGgubW50LCBmbGFncyk7DQorI2Vsc2UNCisgICAgICAgIHN0 cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5k LnBhdGgubW50LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbmRpZg0K IAlpZiAoSVNfRVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0K IAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxl ZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1 Z19vb3BzKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwyNSkNCiAJICAgIHBhdGhfcmVsZWFzZSgmbmQpOw0KKyNl bHNlDQorCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQorI2VuZGlmDQogCX0g ZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBAIC00MjQsOCArNDcw LDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5v ZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5kbGVk IG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgY3VycmVudC0+ ZnN1aWQgPSBzYXZldWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IHNhdmVn aWQ7DQorI2Vsc2UNCisgICAgcmV2ZXJ0X2NyZWRzKG9sZF9jcmVkKTsNCisg ICAgcHV0X2NyZWQob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQogDQogICAg IHJldHVybiByZXQ7DQogfQ0KZGlmZiAtdXByTiBhcmxhLTAuOTAvbm5wZnMv bGludXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhLTAuOTAtbmV3L25ucGZzL2xp bnV4L25ucGZzX2lub2Rlb3BzLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGlu dXgvbm5wZnNfaW5vZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1OjI2LjAwMDAw MDAwMCArMDEwMA0KKysrIGFybGEtMC45MC1uZXcvbm5wZnMvbGludXgvbm5w ZnNfaW5vZGVvcHMuYwkyMDEwLTA2LTA1IDExOjE1OjU3LjYzMTc2NzQ1NyAr MDIwMA0KQEAgLTQ4LDcgKzQ4LDcgQEANCiAjaW5jbHVkZSA8YXNtL2ZjbnRs Lmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfaW5v ZGVvcHMuYyx2IDEuMjIzIDIwMDYvMTIvMTEgMTY6MzU6MjYgdG9sIEV4cCAk Iik7DQorUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI0IDIw MDgvMDMvMDggMjE6NDA6MTAgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQog c3RhdGljIGludA0KQEAgLTEwNSw3ICsxMDUsMTEgQEAgbm5wZnNfdm1hX2Ns b3NlIChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKg0KIH0NCiANCiBzdGF0aWMg c3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IG5ucGZzX2ZpbGVfdm1fb3Bz ID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigyLCA2LCAyMykNCiAgICAgLm5vcGFnZQk9IGZpbGVtYXBfbm9wYWdlLA0K KyNlbHNlDQorICAgIC5mYXVsdCAgICAgID0gZmlsZW1hcF9mYXVsdCwNCisj ZW5kaWYNCiAgICAgLmNsb3NlCT0gbm5wZnNfdm1hX2Nsb3NlLA0KIH07DQog DQpAQCAtMTM0LDEyICsxMzgsMTQgQEAgbm5wZnNfcHJpbnRfcGF0aChzdHJ1 Y3QgZGVudHJ5ICpkZW50cnkpDQogICoNCiAgKi8NCiANCisjaWYgMA0KIHZv aWQNCiBubnBmc19wcmludF9sb2NrKGNoYXIgKnMsIHN0cnVjdCBzZW1hcGhv cmUgKnNlbSkNCiB7DQogICAgIE5OUEZTREVCKFhERUJMT0NLLCAoImxvY2s6 ICVzIHNlbTogJXAgY291bnQ6ICVkXG4iLA0KIAkJICAgICAgcywgc2VtLCAo aW50KWF0b21pY19yZWFkKCZzZW0tPmNvdW50KSkpOw0KIH0NCisjZW5kaWYN CiANCiAvKg0KICAqDQpAQCAtMjQwLDcgKzI0NiwxMSBAQCBubnBmc19sb29r dXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgDQogDQogCW1zZy5oZWFk ZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVE5PREU7DQogICAgICAgICANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy OCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQor ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp Zg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCW1zZy5w YXJlbnRfaGFuZGxlID0gZC0+aGFuZGxlOw0KICAgICAgICAgDQpAQCAtMzEw LDcgKzMyMCwxMSBAQCBubnBmc19vcGVuX3ZhbGlkKHN0cnVjdCBpbm9kZSAq dnAsIHVfaW50DQogICAgICAgew0KIAlzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9v cGVuIG1zZzsNCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfT1BF TjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNl bHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K KyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQog CW1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAltc2cudG9rZW5zID0gdG9r Ow0KQEAgLTQyNSw3ICs0MzksMTEgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVj dCBmaWxlICpmaWxlLCB1X2ludA0KIA0KIAltc2cuaGVhZGVyLm9wY29kZSA9 IE5OUEZTX01TR19QVVREQVRBOw0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19n ZXRfcGFnKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf VkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91 aWQoKTsNCisjZW5kaWYNCiAJbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQog CW1zZy5mbGFnICAgPSBmbGFnOw0KIAltc2cub2Zmc2V0ID0gb2ZmOw0KQEAg LTUxMSw3ICs1MjksMTEgQEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1Y3QgaW5v ZGUgKiB2cCwgdV9pbg0KICAgICAgICAgICAgIHN0cnVjdCBubnBmc19tZXNz YWdlX2dldGF0dHIgbXNnOw0KIA0KICAgICAgICAgICAgIG1zZy5oZWFkZXIu b3Bjb2RlID0gTk5QRlNfTVNHX0dFVEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgICAgICAg ICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg ICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5k aWYNCiAgICAgICAgICAgICBtc2cuY3JlZC5wYWcgPSBwYWc7DQogICAgICAg ICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICAgICAg ZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVy LCBzaXplb2YobXNnKSk7DQpAQCAtNTUxLDcgKzU3MywxMSBAQCBubnBmc19y aWdodHNfdmFsaWQoc3RydWN0IGlub2RlICogdnAsIG5uDQogICAgICAgICAg ICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAg ICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRU UjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O KDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50 LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBj dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVk LnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhh bmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBj KG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01OTIs OCArNjE4LDEzIEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0 cywgaW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwyNykNCiBzdGF0aWMgaW50DQogbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQp DQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfcGVybWlzc2lvbihzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSkNCisjZW5kaWYNCiB7DQogICAg IGludCBlcnJvciA9IDA7DQogICAgIG5ucGZzX3BhZ190IHBhZyA9IG5ucGZz X2dldF9wYWcoKTsNCkBAIC02MzYsNyArNjY3LDExIEBAIG5ucGZzX2RvX2dl dGRhdGEoc3RydWN0IG5ucGZzX25vZGUgKnhuLCANCiAgICAgaW50IGVycm9y Ow0KIA0KICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVRE QVRBOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ T04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7 DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsN CisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygp Ow0KICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgbXNnLnRv a2VucyA9IHRvazsNCkBAIC05MDMsOSArOTM4LDE3IEBAIG5ucGZzX2NyZWF0 ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGQNCiAgICAgWEFfQ0xFQVIo Jm1zZy5hdHRyKTsNCiAgICAgWEFfU0VUX01PREUoJm1zZy5hdHRyLCBtb2Rl KTsNCiAgICAgWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX1JF Ryk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP TigyLDYsMjgpDQogICAgIFhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50 LT5mc2dpZCk7DQorI2Vsc2UNCisgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIs IGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQogICAgIG1zZy5tb2RlID0g MDsJCS8qIFhYWCAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS TkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJy ZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVu dF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNf Z2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5u cGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVy cm9yID09IDApDQpAQCAtOTQ2LDcgKzk4OSwxMSBAQCBubnBmc191bmxpbmsg KHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0DQogICAgIGlmIChzdHJsY3B5 KG1zZy5uYW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5h bWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xP Tkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS U0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp ZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgp Ow0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFn KCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAm bXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0g MCkNCkBAIC05OTEsNyArMTAzOCwxMSBAQCBubnBmc19yZW5hbWUgKHN0cnVj dCBpbm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5u ZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cu bmV3X25hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFN RVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS TkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJy ZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVu dF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNf Z2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5u cGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVy cm9yID09IDApDQpAQCAtMTA0MCw5ICsxMDkxLDE3IEBAIG5ucGZzX21rZGly KHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAJWEFfQ0xFQVIoJm1z Zy5hdHRyKTsNCiAJWEFfU0VUX01PREUoJm1zZy5hdHRyLCBtb2RlKTsNCiAJ WEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX0RJUik7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp DQogCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQor I2Vsc2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50 X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQg PSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVp ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9 IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3Jw YyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogCWlmIChl cnJvciA9PSAwKQ0KQEAgLTEwODMsNyArMTE0MiwxMSBAQCBubnBmc19ybWRp cihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogICAgIG1zZy5wYXJl bnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgaWYgKHN0cmxjcHkobXNn Lm5hbWUsIGRlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmFtZSkp ID49IE5OUEZTX01BWF9OQU1FKQ0KIAkgICAgcmV0dXJuIC1FTkFNRVRPT0xP Tkc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP TigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsN CisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K KyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7 DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNn LmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkN CkBAIC0xMTI4LDcgKzExOTEsMTEgQEAgc3RhdGljIGludCBubnBmc19saW5r KHN0cnVjdCBkZW50cnkgKm9sZA0KIAlpZiAoc3RybGNweShtc2cubmFtZSwg bmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQog CSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNy ZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cu Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3Jl ZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5wZnNfbWVz c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K IAlpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMTU3LDI5ICsxMjI0LDQ3IEBAIHN0 YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAgICAg eG4gPSBWTk9ERV9UT19YTk9ERShkaXIpOw0KIA0KICAgICB7DQotCXN0cnVj dCBubnBmc19tZXNzYWdlX3N5bWxpbmsgbXNnOw0KKwlzdHJ1Y3Qgbm5wZnNf bWVzc2FnZV9zeW1saW5rICptc2cgPSBOVUxMOw0KIA0KLQltc2cuaGVhZGVy Lm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KLQltc2cucGFyZW50X2hh bmRsZSA9IHhuLT5oYW5kbGU7DQotCWlmIChzdHJsY3B5KG1zZy5uYW1lLCBu YW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCi0J ICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KLQlpZiAoc3RybGNweShtc2cu Y29udGVudHMsIHN5bW5hbWUsIHNpemVvZihtc2cuY29udGVudHMpKSA+PSBO TlBGU19NQVhfU1lNTElOS19DT05URU5UKQ0KLQkgICAgcmV0dXJuIC1FTkFN RVRPT0xPTkc7DQotCVhBX0NMRUFSKCZtc2cuYXR0cik7DQotCVhBX1NFVF9N T0RFKCZtc2cuYXR0ciwgMDc3Nyk7DQotCVhBX1NFVF9UWVBFKCZtc2cuYXR0 ciwgTk5QRlNfRklMRV9MTkspOw0KLQlYQV9TRVRfR0lEKCZtc2cuYXR0ciwg Y3VycmVudC0+ZnNnaWQpOw0KKwltc2cgPSBrbWFsbG9jKHNpemVvZihzdHJ1 Y3Qgbm5wZnNfbWVzc2FnZV9zeW1saW5rKSwgR0ZQX0tFUk5FTCk7DQogDQot CW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCi0JbXNnLmNyZWQucGFn ID0gbm5wZnNfZ2V0X3BhZygpOw0KLQllcnJvciA9IG5ucGZzX21lc3NhZ2Vf cnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCisJaWYg KCFtc2cpDQorCSAgcmV0dXJuIC1FTk9NRU07DQorDQorCW1zZy0+aGVhZGVy Lm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KKwltc2ctPnBhcmVudF9o YW5kbGUgPSB4bi0+aGFuZGxlOw0KKwlpZiAoc3RybGNweShtc2ctPm5hbWUs IG5hbWUsIHNpemVvZihtc2ctPm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkg ew0KKwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7 DQorCX0NCisJaWYgKHN0cmxjcHkobXNnLT5jb250ZW50cywgc3ltbmFtZSwg c2l6ZW9mKG1zZy0+Y29udGVudHMpKSA+PSBOTlBGU19NQVhfU1lNTElOS19D T05URU5UKSB7DQorCSAga2ZyZWUobXNnKTsNCisJICByZXR1cm4gLUVOQU1F VE9PTE9ORzsNCisJfQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRyKTsNCisJWEFf U0VUX01PREUoJm1zZy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NFVF9UWVBFKCZt c2ctPmF0dHIsIE5OUEZTX0ZJTEVfTE5LKTsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJWEFfU0VUX0dJ RCgmbXNnLT5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisgICAg ICAgIFhBX1NFVF9HSUQoJm1zZy0+YXR0ciwgY3VycmVudF9mc2dpZCgpKTsN CisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F TF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQt PnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJl bnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19n ZXRfcGFnKCk7DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw LCAmbXNnLT5oZWFkZXIsIHNpemVvZihzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9z eW1saW5rKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KLQkgICAgZXJyb3IgPSBO TlBGU19NU0dfV0FLRVVQX0VSUk9SKCZtc2cpOw0KKwkgICAgZXJyb3IgPSBO TlBGU19NU0dfV0FLRVVQX0VSUk9SKG1zZyk7DQogDQogCS8qIFhYWCBzaG91 bGQgdGhpcyByZWFsbHkgYmUgaGVyZSAqLw0KIAlpZiAoREVOVFJZX1RPX1hE RU5UUlkoZGVudHJ5KS0+eGRfZmxhZ3MgPT0gMCkgew0KIAkgICAgcHJpbnRr KEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBubnBmc19zeW1saW5rOiBkZW50 cnkgbm90IHZhbGlkXG4iKTsNCiAJfQ0KKwlrZnJlZShtc2cpOw0KICAgICB9 DQogDQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0xMzk4LDcgKzE0ODMsMTEg QEAgbm5wZnNfc2V0YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdA0K ICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcHV0YXR0ciBtc2c7DQog DQogICAgICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QVVRB VFRSOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ T04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQor I2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7 DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsN CiAgICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICAgICAg bm5wZnNfaWF0dHIyYXR0cih4biwgYXR0ciwgJm1zZy5hdHRyKTsNCkBAIC0x NTQ1LDYgKzE2MzQsOCBAQCBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5 ICpkZW50cnkpDQogICAgIHJldHVybiAwOw0KIH0NCiANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiwgNiwgMjMpDQorDQog c3RhdGljIHNzaXplX3QNCiBubnBmc19zZW5kZmlsZShzdHJ1Y3QgZmlsZSAq ZmlsZSwgbG9mZl90ICpwcG9zLCBzaXplX3QgY291bnQsDQogCSAgICAgICBy ZWFkX2FjdG9yX3QgYWN0b3IsIHZvaWQgKnRhcmdldCkNCkBAIC0xNTY4LDYg KzE2NTksMzMgQEAgbm5wZnNfc2VuZGZpbGUoc3RydWN0IGZpbGUgKmZpbGUs IGxvZmZfdA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KIA0KKyNlbHNlDQor DQorc3RhdGljIHNzaXplX3QNCitubnBmc19zcGxpY2VfcmVhZChzdHJ1Y3Qg ZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLA0KKwkJICBzdHJ1Y3QgcGlwZV9p bm9kZV9pbmZvICpwaXBlLCBzaXplX3QgY291bnQsDQorCQkgIHVuc2lnbmVk IGludCBmbGFncykNCit7DQorICAgIGludCBlcnJvciA9IDA7DQorICAgIHN0 cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsN CisgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUo aW5vZGUpOw0KKyAgICANCisgICAgaWYgKHhuICE9IE5VTEwpDQorCU5OUEZT REVCKFhERUJWTk9QUywgKCJubnBmc19zZW5kZmlsZTogdG9rZW5zOiAweCV4 XG4iLCB4bi0+dG9rZW5zKSk7DQorDQorICAgIGVycm9yID0gbm5wZnNfZGF0 YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCAqcHBvcywgKnBwb3MgKyBj b3VudCk7DQorICAgIGlmIChlcnJvcikgew0KKwlOTlBGU0RFQihYREVCVk5P UFMsICgibm5wZnNfc2VuZGZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBl cnJvcikpOw0KKwlyZXR1cm4gZXJyb3I7DQorICAgIH0NCisgICAgZXJyb3Ig PSBmaWxlLT5mX29wLT5zcGxpY2VfcmVhZChmaWxlLCBwcG9zLCBwaXBlLCBj b3VudCwgZmxhZ3MpOw0KKw0KKyAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi bm5wZnNfc2VuZGZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9yKSk7DQorICAg IHJldHVybiBlcnJvcjsNCit9DQorDQorI2VuZGlmIC8qIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDIzKSAqLw0KKw0KIC8q DQogICoNCiAgKg0KQEAgLTE2MzksMTEgKzE3NTcsMTUgQEAgbm5wZnNfd3Jp dGVfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIA0KIAlzdHJ1Y3QgYWRk cmVzc19zcGFjZSAqbWFwcGluZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQog CXVuc2lnbmVkIGxlbiA9IFBBR0VfQ0FDSEVfU0laRTsNCiAJc3RydWN0IHBh Z2UgKmJhY2twYWdlOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS TkVMX1ZFUlNJT04oMiw2LDI0KQ0KKwl2b2lkICpmc2RhdGE7DQorI2VuZGlm DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KIAlpbnQgZXJyb3I7DQog CQ0KIAlkbyB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwyNCkNCiAJCWJhY2twYWdlID0gZ3JhYl9jYWNoZV9wYWdl KG1hcHBpbmcsIG5ucGZzX2dldF9iYWNraW5kZXgocGFnZSkpOw0KIAkJaWYg KCFiYWNrcGFnZSkgew0KIAkJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3Bh Z2U6IG5vIHBhZ2VcbiIpOw0KQEAgLTE2NTIsMjEgKzE3NzQsMzYgQEAgbm5w ZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIA0KIA0KIAkJ ZXJyb3IgPSBtYXBwaW5nLT5hX29wcy0+cHJlcGFyZV93cml0ZShiYWNrZmls ZSwgYmFja3BhZ2UsDQogCQkJCQkJICAgICAgMCwgbGVuKTsNCisjZWxzZQ0K KwkJZXJyb3IgPSBwYWdlY2FjaGVfd3JpdGVfYmVnaW4oYmFja2ZpbGUsIG1h cHBpbmcsIDAsIGxlbiwNCisJCQkJQU9QX0ZMQUdfVU5JTlRFUlJVUFRJQkxF LCAmYmFja3BhZ2UsICZmc2RhdGEpOw0KKyNlbmRpZg0KIAkJaWYgKCFlcnJv cikgew0KIAkJCWNvcHlfaGlnaHBhZ2UoYmFja3BhZ2UsIHBhZ2UpOw0KIAkJ CWZsdXNoX2RjYWNoZV9wYWdlKGJhY2twYWdlKTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI0KQ0KIAkJCWVycm9y ID0gbWFwcGluZy0+YV9vcHMtPmNvbW1pdF93cml0ZShiYWNrZmlsZSwgYmFj a3BhZ2UsDQogCQkJCQkJCSAgICAgMCwgbGVuKTsNCisjZWxzZQ0KKwkJCWVy cm9yID0gcGFnZWNhY2hlX3dyaXRlX2VuZChiYWNrZmlsZSwgbWFwcGluZywg MCwgbGVuLA0KKwkJCQkJbGVuLCBiYWNrcGFnZSwgZnNkYXRhKTsNCisJCQlp ZiAoZXJyb3IgPiAwKQ0KKwkJCQllcnJvciA9IDA7DQorI2VuZGlmDQogCQl9 DQogCQlpZiAoZXJyb3IgPT0gQU9QX1RSVU5DQVRFRF9QQUdFKSB7DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNCkN CiAJCQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFja3BhZ2UpOw0KKyNlbmRpZg0K IAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9IHdoaWxlICgwKTsNCiANCiAJb2Zm c2V0ID0gcGFnZV9vZmZzZXQoYmFja3BhZ2UpOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjQpDQogCXVubG9ja19w YWdlKGJhY2twYWdlKTsNCiAJcGFnZV9jYWNoZV9yZWxlYXNlKGJhY2twYWdl KTsNCisjZW5kaWYNCiANCiAJaWYgKGVycm9yKQ0KIAkJcHJpbnRrKCJubnBm c193cml0ZV9iYWNrcGFnZTogRUlPXG4iKTsNCkBAIC0xODcyLDYgKzIwMDks MzQgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwg cw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50 DQorbm5wZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2ln bmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAs IHZvaWQgKipmc2RhdGEpDQorew0KKwlzdHJ1Y3QgcGFnZSAqcGFnZTsNCisJ cGdvZmZfdCBpbmRleDsNCisJdW5zaWduZWQgZnJvbTsNCisNCisJaW5kZXgg PSBwb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsNCisJZnJvbSA9IHBvcyAmIChQ QUdFX0NBQ0hFX1NJWkUgLSAxKTsNCisNCisjaWZuZGVmIEFPUF9GTEFHX05P RlMNCisJcGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4 KTsNCisjZWxzZQ0KKwlwYWdlID0gZ3JhYl9jYWNoZV9wYWdlX3dyaXRlX2Jl Z2luKG1hcHBpbmcsIGluZGV4LCBmbGFncyk7DQorI2VuZGlmDQorCWlmICgh cGFnZSkNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwkqcGFnZXAgPSBwYWdl Ow0KKw0KKwlyZXR1cm4gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdl LCBmcm9tLCBmcm9tK2xlbik7DQorfQ0KKw0KKyNlbmRpZg0KKw0KIHN0YXRp YyBpbnQNCiBubnBmc19jb21taXRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUs IHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0 bykNCiB7DQpAQCAtMTkwMiwxNCArMjA2Nyw0NSBAQCBubnBmc19jb21taXRf d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0DQogICAgIHJldHVybiAwOw0K IH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50DQorbm5wZnNfd3JpdGVfZW5k KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywgbG9mZl90IHBvcywNCit1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNv cGllZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkNCit7DQor CXVuc2lnbmVkIGZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7 DQorDQorCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYg d2UgZGlkIGEgc2hvcnQgY29weSAqLw0KKwlpZiAoY29waWVkIDwgbGVuKSB7 DQorCQl2b2lkICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UsIEtNX1VTRVIw KTsNCisJCW1lbXNldChrYWRkciArIGZyb20gKyBjb3BpZWQsIDAsIGxlbiAt IGNvcGllZCk7DQorCQlmbHVzaF9kY2FjaGVfcGFnZShwYWdlKTsNCisJCWt1 bm1hcF9hdG9taWMoa2FkZHIsIEtNX1VTRVIwKTsNCisJfQ0KKw0KKwlubnBm c19jb21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbStjb3BpZWQp Ow0KKw0KKwl1bmxvY2tfcGFnZShwYWdlKTsNCisJcGFnZV9jYWNoZV9yZWxl YXNlKHBhZ2UpOw0KKw0KKwlyZXR1cm4gY29waWVkOw0KK30NCisNCisjZW5k aWYNCisNCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDIsNiwxOCkNCiBjb25zdA0KICNlbmRpZg0KIHN0cnVjdCBhZGRyZXNz X3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW9wcyA9IHsNCiAJLnJlYWRwYWdl ID0gbm5wZnNfcmVhZHBhZ2UsDQogCS53cml0ZXBhZ2UgPSBubnBmc193cml0 ZXBhZ2UsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDIsNiwyOCkNCiAJLnByZXBhcmVfd3JpdGUgPSBubnBmc19wcmVwYXJl X3dyaXRlLA0KIAkuY29tbWl0X3dyaXRlID0gbm5wZnNfY29tbWl0X3dyaXRl LA0KKyNlbHNlDQorCS53cml0ZV9iZWdpbiA9IG5ucGZzX3dyaXRlX2JlZ2lu LA0KKwkud3JpdGVfZW5kID0gbm5wZnNfd3JpdGVfZW5kLA0KKyNlbmRpZg0K IH07DQogDQogLyoNCkBAIC0xOTI0LDcgKzIxMjAsMTEgQEAgc3RydWN0IGZp bGVfb3BlcmF0aW9ucyBubnBmc19maWxlX29wZXJhdA0KICAgICAuZmx1c2gJ PSBubnBmc19mbHVzaCwNCiAgICAgLnJlbGVhc2UJPSBubnBmc19yZWxlYXNl X2ZpbGUsDQogICAgIC5mc3luYwk9IG5ucGZzX2ZzeW5jLA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLCA2LCAyMykNCiAg ICAgLnNlbmRmaWxlCT0gbm5wZnNfc2VuZGZpbGUsDQorI2Vsc2UNCisgICAg LnNwbGljZV9yZWFkID0gbm5wZnNfc3BsaWNlX3JlYWQsDQorI2VuZGlmDQog fTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2RlYWRfb3Bl cmF0aW9ucyA9IHsNCmRpZmYgLXVwck4gYXJsYS0wLjkwL25ucGZzL2xpbnV4 L25ucGZzX21lc3NhZ2UuYyBhcmxhLTAuOTAtbmV3L25ucGZzL2xpbnV4L25u cGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm c19tZXNzYWdlLmMJMjAwNy0wMS0wOSAxNzozMzozMS4wMDAwMDAwMDAgKzAx MDANCisrKyBhcmxhLTAuOTAtbmV3L25ucGZzL2xpbnV4L25ucGZzX21lc3Nh Z2UuYwkyMDEwLTA2LTAzIDIzOjMxOjA2LjM5MjYxMjAwNiArMDIwMA0KQEAg LTQ1LDcgKzQ1LDcgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAN CiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc19tZXNzYWdlLmMs diAxLjE0My4yLjEgMjAwNy8wMS8wOSAxNjozMzozMSB0b2wgRXhwICQiKTsN CitSQ1NJRCgiJElkOiBubnBmc19tZXNzYWdlLmMsdiAxLjE0MyAyMDA2LzEy LzExIDE2OjQwOjI0IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRp YyB2b2lkDQpAQCAtNjA1LDEyICs2MDUsMTAgQEAgZ2NfYmxvY2soc3RydWN0 IG5ucGZzICpubnBmc3AsDQogICAgIH0NCiANCiAgICAgaWYgKCFubnBmc19i bG9ja19oYXZlX3AoeG4sIG9mZnNldCkpIHsNCi0jaWYgMCAgIC8qIGhhcHBl bnMgd2hlbiBkYWVtb24gc2VuZHMgc2V2ZXJhbCBtZXNzYWdlcyBmb3Igc2Ft ZSBibG9jayAqLw0KIAlwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMvZ2NfYmxv Y2s6ICINCiAJICAgICAgICJFTk9FTlQgKCVkLCVkLCVkLCVkKSAweCVsbHhc biIsIA0KIAkgICAgICAgeG4tPmhhbmRsZS5hLCB4bi0+aGFuZGxlLmIsIHhu LT5oYW5kbGUuYywgeG4tPmhhbmRsZS5kLCANCiAJICAgICAgICh1bnNpZ25l ZCBsb25nIGxvbmcpb2Zmc2V0KTsNCi0jZW5kaWYNCiAJcmV0dXJuIC1FTk9F TlQ7DQogICAgIH0NCiANCkBAIC03MzcsMTIgKzczNSwyMyBAQCBubnBmc19t ZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogCQkgICAibm5w ZnNfbWVzc2FnZV92ZXJzaW9uIGZhaWxlZCBwYXRoX2xvb2t1cCwgIg0KIAkJ ICAgImVycm5vOiAlZFxuIiwgZXJyb3IpOw0KIAl9IGVsc2Ugew0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQog CSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChuZC5tbnQpOw0KIAkg ICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQuZGVudHJ5KTsNCiAJICAg IHBhdGhfcmVsZWFzZSgmbmQpOw0KKyNlbHNlDQorCSAgICBubnBmc3AtPmNh Y2hlcm9vdCA9IG1udGdldChuZC5wYXRoLm1udCk7DQorCSAgICBubnBmc3At PmNhY2hlZGlyID0gZGdldChuZC5wYXRoLmRlbnRyeSk7DQorCSAgICBwYXRo X3B1dCgmbmQucGF0aCk7DQorI2VuZGlmDQogCSAgICANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJICAg IG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQogCSAgICBubnBmc3At PmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KKyNlbHNlDQorICAgICAgICAgICAg bm5wZnNwLT51aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQorICAgICAgICAgICAg bm5wZnNwLT5naWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQorI2VuZGlmDQogDQog CSAgICAvKiBYWFggd2Ugc2hvdWxkIHZhbGlkYXRlIHRoZXNlIHZhbHVlcyAq Lw0KIAkgICAgbm5wZnNfYmxvY2tzaXplID0gYmxvY2tzaXplOw0KZGlmZiAt dXByTiBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYyBh cmxhLTAuOTAtbmV3L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMNCi0t LSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDA3 LTAxLTAzIDE1OjI2OjI3LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45 MC1uZXcvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDEwLTA2LTA0 IDAxOjE5OjIyLjgzMjYwOTQzNyArMDIwMA0KQEAgLTE0NywxMCArMTQ3LDE2 IEBAIHN0YXRpYyBpbnQgbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAwOw0KICNk ZWZpbmUgU0VDMlBBRyhzKSAobm5wZnNfcGFnX3QpKHVuc2lnbmVkIGxvbmcp KHMpDQogI2RlZmluZSBQQUcyU0VDKHApICh2b2lkICopKHVuc2lnbmVkIGxv bmcpKHApDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwyNCkNCisNCiBzdGF0aWMgaW50DQogbm5wZnNfc2VjX3Rh c2tfYWxsb2Moc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KIHsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg ICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50LT5zZWN1cml0 eSk7DQorI2Vsc2UNCisgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhj dXJyZW50X3NlY3VyaXR5KCkpOw0KKyNlbmRpZg0KICAgICBpZiAocGFnKQ0K IAlwLT5zZWN1cml0eSA9IFBBRzJTRUMocGFnKTsNCiAgICAgcmV0dXJuIDA7 DQpAQCAtMTY0LDM1ICsxNzAsNTUgQEAgbm5wZnNfc2VjX3Rhc2tfZnJlZShz dHJ1Y3QgdGFza19zdHJ1Y3QgKg0KIAlwLT5zZWN1cml0eSA9IE5VTEw7DQog fQ0KIA0KKyNlbmRpZg0KKw0KIHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZz X2dldF9wYWdfc2VjKHZvaWQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBubnBmc19wYWdf dCBwYWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCisjZWxzZQ0K KyAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnRfc2VjdXJp dHkoKSk7DQorI2VuZGlmDQogICAgIGlmIChwYWcpDQogCXJldHVybiBwYWc7 DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP TigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2Vsc2UN CisgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogfQ0KIA0K IHN0YXRpYyBpbnQNCiBubnBmc19zZXRfcGFnX3NlYyh2b2lkKQ0KIHsNCiAg ICAgc3RhdGljIG5ucGZzX3BhZ190IHBhZ251bSA9IE5OUEZTX1BBR19MTElN Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o Miw2LDI5KQ0KKyAgICBzdHJ1Y3QgY3JlZCAqY3JlZDsNCisjZW5kaWYNCiAN CiAgICAgaWYgKHBhZ251bSA9PSBOTlBGU19QQUdfVUxJTSkNCiAJcmV0dXJu IC1FTk9NRU07DQogICAgIC8qIHBhZ251bSA9IE5OUEZTX1BBR19MTElNOyAq Lw0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W RVJTSU9OKDIsNiwyOCkNCiAgICAgY3VycmVudC0+c2VjdXJpdHkgPSBQQUcy U0VDKHBhZ251bSk7DQorI2Vsc2UNCisgICAgY3JlZCA9IChzdHJ1Y3QgY3Jl ZCAqKSBjdXJyZW50LT5jcmVkOw0KKyAgICBjcmVkLT5zZWN1cml0eSA9IFBB RzJTRUMocGFnbnVtKTsNCisjZW5kaWYNCiAgICAgcGFnbnVtKys7DQogICAg IHJldHVybiAwOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDI0KQ0KIHN0YXRpYyBzdHJ1Y3Qgc2VjdXJp dHlfb3BlcmF0aW9ucyBubnBmc19zZWNfb3BzID0gew0KICAgICAudGFza19h bGxvY19zZWN1cml0eSA9IG5ucGZzX3NlY190YXNrX2FsbG9jLA0KICAgICAu dGFza19mcmVlX3NlY3VyaXR5ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCiAv LyAgICAudGFza19yZXBhcmVudF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFy ZW50X3RvX2luaXQsDQogfTsNCisjZW5kaWYNCiANCiAjZW5kaWYgLyogQ09O RklHX1NFQ1VSSVRZICovDQogDQpAQCAtMjIyLDggKzI0OCwxMyBAQCBmaW5k X3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpDQogc3RhdGljIG5ucGZzX3Bh Z190DQogbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIHsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg ICAgc3RydWN0IGdyb3VwX2luZm8gKmdpID0gY3VycmVudC0+Z3JvdXBfaW5m bzsNCiAgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+dWlkOw0KKyNl bHNlDQorICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGdldF9jdXJyZW50 X2dyb3VwcygpOw0KKyAgICBubnBmc19wYWdfdCByZXQgPSBjdXJyZW50X3Vp ZCgpOw0KKyNlbmRpZg0KICAgICBpbnQgaTsNCiANCiAgICAgZ2V0X2dyb3Vw X2luZm8oZ2kpOw0KQEAgLTI0Miw5ICsyNzMsMTcgQEAgbm5wZnNfZ2V0X3Bh Z19ncm91cCh2b2lkKQ0KIHN0YXRpYyBpbnQNCiBzdG9yZV9wYWcobm5wZnNf cGFnX3QgcGFnbnVtKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9 IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgc3RydWN0IGdyb3VwX2lu Zm8gKm9sZF9naSA9IGN1cnJlbnQtPmdyb3VwX2luZm87DQorI2Vsc2UNCisg ICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqb2xkX2dpID0gZ2V0X2N1cnJlbnRfZ3Jv dXBzKCk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpuZXdf Z2k7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwyNSkNCiAgICAgaW50IG5ibG9ja3MsIGNvdW50Ow0KKyNlbHNlDQor ICAgIHVuc2lnbmVkIGludCBuYmxvY2tzLCBjb3VudDsNCisjZW5kaWYNCiAg ICAgaW50IGZvdW5kID0gMDsNCiAgICAgaW50IGksIGs7DQogICAgIA0KQEAg LTMxNyw3ICszNTYsMTEgQEAgbm5wZnNfZ2V0X3BhZygpDQogICAgIHJldHVy biBubnBmc19nZXRfcGFnX2dyb3VwKCk7DQogI2VuZGlmIC8qIEdST1VQUEFH UyAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF UlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0KKyNl bHNlDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIH0N CiANCiBzdGF0aWMgaW5saW5lIGludA0KQEAgLTUyOCw3ICs1NzEsMTEgQEAg dXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0YSAqbmQsIA0KICAg ICBwdXRuYW1lKGtuYW1lKTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4g RVJSX1BUUihlcnJvcik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwyNSkNCiAgICAgcmV0dXJuIG5kLT5kZW50cnk7 DQorI2Vsc2UNCisgICAgcmV0dXJuIG5kLT5wYXRoLmRlbnRyeTsNCisjZW5k aWYNCiB9DQogDQogYXNtbGlua2FnZSBsb25nDQpAQCAtNTQwLDExICs1ODcs MTYgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogew0KICAgICBs b25nIGVycm9yID0gMDsNCiAgICAgc3RydWN0IGFybGFWaWNlSW9jdGwgdmlj ZV9pb2N0bDsgDQotICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3Bpb2N0bCBt c2c7DQorICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3Bpb2N0bCAqbXNnID0g TlVMTDsNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2FrZXVwICptc2cy Ow0KICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBOVUxMOw0KICAgICBz dHJ1Y3QgbmFtZWlkYXRhIG5kOw0KLSAgICANCisNCisgICAgbXNnID0ga21h bGxvYyhzaXplb2Yoc3RydWN0IG5ucGZzX21lc3NhZ2VfcGlvY3RsKSwgR0ZQ X0tFUk5FTCk7DQorDQorICAgIGlmICghbXNnKQ0KKyAgICAgIHJldHVybiAt RU5PTUVNOw0KKw0KICAgICBsb2NrX2tlcm5lbCgpOw0KIA0KICAgICBOTlBG U0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0K QEAgLTU3NSw3ICs2MjcsNyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlv biwNCiAJICAgIGdvdG8gdW5sb2NrOw0KIAl9DQogCWlmICh2aWNlX2lvY3Rs LmluX3NpemUgIT0gMCkgew0KLQkgICAgaWYoY29weV9mcm9tX3VzZXIoJm1z Zy5tc2csDQorCSAgICBpZihjb3B5X2Zyb21fdXNlcigmbXNnLT5tc2csDQog CQkJICAgICAgdmljZV9pb2N0bC5pbiwNCiAJCQkgICAgICB2aWNlX2lvY3Rs LmluX3NpemUpICE9IDApIHsNCiAJCWVycm9yID0gLUVGQVVMVDsNCkBAIC02 MjgsMTkgKzY4MCwyMyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwN CiAJCWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KIAkgICAg fQ0KLQkgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQorCSAgICBtc2ct PmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCX0NCiANCi0JbXNnLmhlYWRlci5v cGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KLQltc2cub3Bjb2RlID0gYV9v cGNvZGU7DQorCW1zZy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QSU9D VEw7DQorCW1zZy0+b3Bjb2RlID0gYV9vcGNvZGU7DQogCQ0KLQltc2cuaW5z aXplICAgPSB2aWNlX2lvY3RsLmluX3NpemU7DQotCW1zZy5vdXRzaXplICA9 IHZpY2VfaW9jdGwub3V0X3NpemU7DQotCW1zZy5jcmVkLnVpZCA9IGN1cnJl bnQtPnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K Kwltc2ctPmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KKwltc2ct Pm91dHNpemUgID0gdmljZV9pb2N0bC5vdXRfc2l6ZTsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNn LT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg bXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1z Zy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCQ0KLQllcnJvciA9 IG5ucGZzX21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy5oZWFkZXIsIHNp emVvZihtc2cpKTsgLyogWFhYICovDQotCW1zZzIgPSAoc3RydWN0IG5ucGZz X21lc3NhZ2Vfd2FrZXVwICopICZtc2c7DQorCWVycm9yID0gbm5wZnNfbWVz c2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNnLT5oZWFkZXIsIHNpemVvZihzdHJ1 Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwpKTsgLyogWFhYICovDQorCW1zZzIg PSAoc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2FrZXVwICopIG1zZzsNCiAJaWYg KGVycm9yID09IDApDQogCSAgICBlcnJvciA9IG1zZzItPmVycm9yOw0KIA0K QEAgLTY3NSwxMSArNzMxLDE2IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0 aW9uLA0KICAgICANCiAgdW5sb2NrOg0KICAgICBpZiAoZGVudHJ5KQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUp DQogCXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNlbHNlDQorCXBhdGhfcHV0KCZu ZC5wYXRoKTsNCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywg KCJubnBmc19zeXNjYWxsIHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3Ip KTsNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5l bCB1bmxvY2tcbiIpKTsNCisgICAga2ZyZWUobXNnKTsNCiAgICAgdW5sb2Nr X2tlcm5lbCgpOw0KIA0KICAgICByZXR1cm4gZXJyb3I7DQpAQCAtNzgwLDIw ICs4NDEsMzIgQEAgc3RhdGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lk KQ0KIHsNCiAgICAgc3RydWN0IHByb2NfZGlyX2VudHJ5ICplbnRyeTsNCiAg ICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDIsNiwyNikNCiAgICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIo Tk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorI2Vsc2UNCisgICAg bm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIoImZzLyIgTk5QRlNfUFJP Q19ESVIsIE5VTEwpOw0KKyNlbmRpZg0KICAgICBpZiAobm5wZnNfcHJvY2Zz X2RpciA9PSBOVUxMKQ0KIAlyZXR1cm4gLUVOT01FTTsNCiAgICAgDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMCkN CiAgICAgbm5wZnNfcHJvY2ZzX2Rpci0+b3duZXIgPSBUSElTX01PRFVMRTsN CisjZW5kaWYNCiAgICAgDQogICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50 cnkoTk5QRlNfUFJPQ19OT0RFLCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsN CiAgICAgaWYgKGVudHJ5ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZ UywgKCJubnBmc19pbml0X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjYpDQog CXJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfRElSLCBwcm9jX3Jvb3Rf ZnMpOw0KKyNlbHNlDQorCXJlbW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZT X1BST0NfRElSLCBOVUxMKTsNCisjZW5kaWYNCiAJcmV0dXJuIC1FTk9NRU07 DQogICAgIH0NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAgICAgZW50cnktPm93bmVyID0gVEhJ U19NT0RVTEU7DQorI2VuZGlmDQogICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAm bm5wZnNfcHJvY2ZzX2ZvcHM7DQogDQogI2lmZGVmIFNZU0NBTExDT01QQVQN CkBAIC04MTUsNyArODg4LDExIEBAIHN0YXRpYyB2b2lkIG5ucGZzX2V4aXRf cHJvY2ZzKHZvaWQpDQogICAgIH0NCiAjZW5kaWYgLyogU1lTQ0FMTENPTVBB VCAqLw0KICAgICByZW1vdmVfcHJvY19lbnRyeShOTlBGU19QUk9DX05PREUs IG5ucGZzX3Byb2Nmc19kaXIpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMjYpDQogICAgIHJlbW92ZV9wcm9jX2Vu dHJ5KE5OUEZTX1BST0NfRElSLCBwcm9jX3Jvb3RfZnMpOw0KKyNlbHNlDQor ICAgIHJlbW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBO VUxMKTsNCisjZW5kaWYNCiB9DQogDQogI2lmZGVmIEdST1VQUEFHUw0KQEAg LTg0MCwxMiArOTE3LDE0IEBAIHZvaWQNCiBpbnN0YWxsX2Fmc19zeXNjYWxs KHZvaWQpDQogew0KICNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI0KQ0KICAg ICBpZiAocmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19vcHMpKQ0KIAlO TlBGU0RFQihYREVCU1lTLA0KIAkJICgiaW5zdGFsbF9hZnNfc3lzY2FsbDog bm5wZnNfaW5pdF9zZWMgZmFpbGVkXG4iKSk7DQogICAgIGVsc2UNCiAJbm5w ZnNfc2VjX3JlZ2lzdGVyZWQgPSAxOw0KICNlbmRpZg0KKyNlbmRpZg0KIA0K ICAgICBubnBmc19pbml0X3Byb2NmcygpOw0KIA0KQEAgLTg4OCw5ICs5Njcs MTEgQEAgcmVzdG9yZV9hZnNfc3lzY2FsbCAodm9pZCkNCiAjZW5kaWYgLyog U1lTQ0FMTEhBQ0sgKi8NCiANCiAjaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwy NCkNCiAgICAgaWYgKG5ucGZzX3NlY19yZWdpc3RlcmVkKQ0KIAlpZiAodW5y ZWdpc3Rlcl9zZWN1cml0eSgmbm5wZnNfc2VjX29wcykpDQogCSAgICBwcmlu dGsoS0VSTl9FTUVSRyAibm5wZnNfZXhpdF9zZWM6IGNvdWxkbid0IHVucmVn aXN0ZXJcbiIpOw0KKyNlbmRpZg0KICNlbmRpZiAvKiAhQ09ORklHX1NFQ1VS SVRZICovDQogDQogI2lmZGVmIEdST1VQUEFHUw0KZGlmZiAtdXByTiBhcmxh LTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jIGFy bGEtMC45MC1uZXcvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2Fn ZS5jDQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxz LWxvc3NhZ2UuYwkyMDA2LTEyLTExIDE3OjMxOjQ1LjAwMDAwMDAwMCArMDEw MA0KKysrIGFybGEtMC45MC1uZXcvbm5wZnMvbGludXgvbm5wZnNfc3lzY2Fs bHMtbG9zc2FnZS5jCTIwMTAtMDYtMDMgMjM6MzE6MDYuMzkyNjEyMDA2ICsw MjAwDQpAQCAtNjMsNiArNjMsMTEgQEAgY29uc3QgY2hhciAqIF9fYXR0cmli dXRlX18oKHdlYWspKQ0KIAkJICAgIHVuc2lnbmVkIGxvbmcgKm9mZnNldCwN CiAJCSAgICBjaGFyICoqbW9kbmFtZSwgY2hhciAqbmFtZWJ1Zik7DQogDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+IEtFUk5FTF9WRVJTSU9OKDIsNiwx OCkNCisjaWZkZWYgX194ODZfNjRfXw0KK2V4dGVybiByd2xvY2tfdCB0YXNr bGlzdF9sb2NrIF9fYXR0cmlidXRlX18oKHdlYWspKTsNCisjZW5kaWYNCisj ZW5kaWYNCiBzdGF0aWMgdm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQp IHsNCiAjaWZkZWYgX194ODZfNjRfXw0KZGlmZiAtdXByTiBhcmxhLTAuOTAv bm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMgYXJsYS0wLjkwLW5ldy9ubnBm cy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9s aW51eC9ubnBmc192ZnNvcHMuYwkyMDA2LTEyLTExIDE3OjQzOjM1LjAwMDAw MDAwMCArMDEwMA0KKysrIGFybGEtMC45MC1uZXcvbm5wZnMvbGludXgvbm5w ZnNfdmZzb3BzLmMJMjAxMC0wNi0wMyAyMzozMTowNi4zOTI2MTIwMDYgKzAy MDANCkBAIC00OSw5ICs0OSwxMyBAQCBSQ1NJRCgiJElkOiBubnBmc192ZnNv cHMuYyx2IDEuMTA5IDIwMDYvDQogDQogc3RydWN0IG5ucGZzIG5ucGZzW05O TlBGU107DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwyNSkNCiBzdGF0aWMgdm9pZCBubnBmc19yZWFkX2lub2Rl KHN0cnVjdCBpbm9kZSAqaW5vZGUpOw0KKyNlbmRpZg0KIHN0YXRpYyB2b2lk IG5ucGZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI1 KQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5vZGUg Kmlub2RlKTsNCisjZW5kaWYNCiBzdGF0aWMgdm9pZCBubnBmc193cml0ZV9z dXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYik7DQogDQogI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQpAQCAt NjEsOCArNjUsMTAgQEAgc3RhdGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0 IHN1cGVyX2Jsbw0KICNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3Qgc3VwZXJf b3BlcmF0aW9ucyBubnBmc19zb3BzID0geyANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI1KQ0KICAgICByZWFkX2lu b2RlCQk6IG5ucGZzX3JlYWRfaW5vZGUsDQogICAgIHB1dF9pbm9kZQkJOiBu bnBmc19wdXRfaW5vZGUsDQorI2VuZGlmDQogICAgIGFsbG9jX2lub2RlCQk6 IG5ucGZzX25vZGVfYWxsb2MsDQogICAgIGRlc3Ryb3lfaW5vZGUJOiBubnBm c19ub2RlX2ZyZWUsDQogICAgIGRyb3BfaW5vZGUJCTogZ2VuZXJpY19kZWxl dGVfaW5vZGUsDQpAQCAtMTg5LDcgKzE5NSwxMSBAQCBubnBmc19yZWFkX3N1 cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogCWlmIChlcnJvcikNCiAJ ICAgIGRkZXYgPSBFUlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQogCSAg ICBkZGV2ID0gbmQuZGVudHJ5Ow0KKyNlbHNlDQorCSAgICBkZGV2ID0gbmQu cGF0aC5kZW50cnk7DQorI2VuZGlmDQogDQogCWlmICghSVNfRVJSKGRkZXYp KSB7DQogCSAgICBtaW5vcmRldmljZSA9IE1JTk9SKGRkZXYtPmRfaW5vZGUt PmlfcmRldik7DQpAQCAtMjczLDYgKzI4Myw3IEBAIG5ucGZzX3B1dF9zdXBl cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBOTlBGU0RFQihYREVC VkZPUFMsICgibm5wZnNfcHV0X3N1cGVyIGV4aXRpbmdcbiIpKTsNCiB9DQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwyNSkNCiBzdGF0aWMgdm9pZA0KIG5ucGZzX3JlYWRfaW5vZGUoc3RydWN0 IGlub2RlICppbm9kZSkNCiB7DQpAQCAtMzM5LDYgKzM1MCw3IEBAIG5ucGZz X3B1dF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIA0KICAgICB1cCgm bm5wZnNwLT5pbmFjdGl2ZV9zZW0pOw0KIH0NCisjZW5kaWYgLy8gTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI1KQ0KIA0KIHN0 YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNfaW50KHN0cnVjdCBzdXBlcl9ibG9j ayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpDQpAQCAtMzUyLDcgKzM2NCwx NSBAQCBubnBmc19zdGF0ZnNfaW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2Is DQogICAgIHRtcC5mX2JhdmFpbCAgPSAxMDI0KjEwMjQqMi01MDsNCiAgICAg dG1wLmZfZmlsZXMgICA9IDEwMjQqMTAyNDsNCiAgICAgdG1wLmZfZmZyZWUg ICA9IDEwMjQqMTAyNC0xMDA7DQorICAgIHRtcC5mX2ZzaWQudmFsWzBdID0g MDsNCisgICAgdG1wLmZfZnNpZC52YWxbMV0gPSAwOw0KICAgICB0bXAuZl9u YW1lbGVuID0gTkFNRV9NQVg7DQorICAgIHRtcC5mX2Zyc2l6ZSAgPSAwOw0K KyAgICB0bXAuZl9zcGFyZVswXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzFd ID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMl0gPSAwOw0KKyAgICB0bXAuZl9z cGFyZVszXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzRdID0gMDsNCiAgICAg KmJ1ZiA9IHRtcDsNCiAgICAgcmV0dXJuIDA7DQogfQ0K ---2098261369-1391241848-1275730294=:1097872 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Arla-drinkers mailing list [email protected] https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers ---2098261369-1391241848-1275730294=:1097872--