PATCH: Arla 0.90 on Linux 2.6.24-2.6.32
Bo Brantén <[email protected]> Fri, 4 Jun 2010 15:27:49 +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-1203694919-1275658069=:819408 Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Hello, I have updated my patch for the latest kernels of Linux. Bo Brant=E9n ---2098261369-1203694919-1275658069=:819408 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-0.90-Linux Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-arla-0.90-Linux 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 ZnNfaW5vZGVvcHMuYwkyMDEwLTA2LTA0IDAxOjE3OjM4LjQ1Njg0NTI1OSAr 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 a2VucyA9IHRvazsNCkBAIC05MDMsOSArOTM4LDE4IEBAIG5ucGZzX2NyZWF0 ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGQNCiAgICAgWEFfQ0xFQVIo Jm1zZy5hdHRyKTsNCiAgICAgWEFfU0VUX01PREUoJm1zZy5hdHRyLCBtb2Rl KTsNCiAgICAgWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX1JF Ryk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP TigyLDYsMjgpDQogICAgIFhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50 LT5mc2dpZCk7DQorI2Vsc2UNCisgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIs IGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQogICAgIG1zZy5tb2RlID0g MDsJCS8qIFhYWCAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS TkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJy ZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVu dF91aWQoKTsNCisjZW5kaWYNCisNCiAgICAgbXNnLmNyZWQucGFnID0gbm5w ZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBj KG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYg KGVycm9yID09IDApDQpAQCAtOTQ2LDcgKzk5MCwxMSBAQCBubnBmc191bmxp bmsgKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0DQogICAgIGlmIChzdHJs Y3B5KG1zZy5uYW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNn Lm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRP T0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf VkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt PnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3Vp ZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRf cGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3Ig PT0gMCkNCkBAIC05OTEsNyArMTAzOSwxMSBAQCBubnBmc19yZW5hbWUgKHN0 cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIGlmIChzdHJsY3B5KG1z Zy5uZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZiht c2cubmV3X25hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1F TkFNRVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBj dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3Vy cmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5w ZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBj KG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYg KGVycm9yID09IDApDQpAQCAtMTA0MCw5ICsxMDkyLDE3IEBAIG5ucGZzX21r ZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAJWEFfQ0xFQVIo Jm1zZy5hdHRyKTsNCiAJWEFfU0VUX01PREUoJm1zZy5hdHRyLCBtb2RlKTsN CiAJWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX0RJUik7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs MjgpDQogCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7 DQorI2Vsc2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJy ZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51 aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVk LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBh ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdl X3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogCWlm IChlcnJvciA9PSAwKQ0KQEAgLTEwODMsNyArMTE0MywxMSBAQCBubnBmc19y bWRpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogICAgIG1zZy5w YXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgaWYgKHN0cmxjcHko bXNnLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmFt ZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkgICAgcmV0dXJuIC1FTkFNRVRP T0xPTkc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS U0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp ZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgp Ow0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFn KCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAm bXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0g MCkNCkBAIC0xMTI4LDcgKzExOTIsMTEgQEAgc3RhdGljIGludCBubnBmc19s aW5rKHN0cnVjdCBkZW50cnkgKm9sZA0KIAlpZiAoc3RybGNweShtc2cubmFt ZSwgbmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUp DQogCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNn LmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBt c2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cu Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5wZnNf bWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykp Ow0KIAlpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMTU3LDIyICsxMjI1LDM5IEBA IHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAg ICAgeG4gPSBWTk9ERV9UT19YTk9ERShkaXIpOw0KIA0KICAgICB7DQotCXN0 cnVjdCBubnBmc19tZXNzYWdlX3N5bWxpbmsgbXNnOw0KKwlzdHJ1Y3Qgbm5w ZnNfbWVzc2FnZV9zeW1saW5rICptc2cgPSBOVUxMOw0KIA0KLQltc2cuaGVh ZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KLQltc2cucGFyZW50 X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQotCWlmIChzdHJsY3B5KG1zZy5uYW1l LCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkN Ci0JICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KLQlpZiAoc3RybGNweSht c2cuY29udGVudHMsIHN5bW5hbWUsIHNpemVvZihtc2cuY29udGVudHMpKSA+ PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5UKQ0KLQkgICAgcmV0dXJuIC1F TkFNRVRPT0xPTkc7DQotCVhBX0NMRUFSKCZtc2cuYXR0cik7DQotCVhBX1NF VF9NT0RFKCZtc2cuYXR0ciwgMDc3Nyk7DQotCVhBX1NFVF9UWVBFKCZtc2cu YXR0ciwgTk5QRlNfRklMRV9MTkspOw0KLQlYQV9TRVRfR0lEKCZtc2cuYXR0 ciwgY3VycmVudC0+ZnNnaWQpOw0KKwltc2cgPSBrbWFsbG9jKHNpemVvZihz dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9zeW1saW5rKSwgR0ZQX0tFUk5FTCk7DQog DQotCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCi0JbXNnLmNyZWQu cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KLQllcnJvciA9IG5ucGZzX21lc3Nh Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCisJ aWYgKCFtc2cpDQorCSAgcmV0dXJuIC1FTk9NRU07DQorDQorCW1zZy0+aGVh ZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KKwltc2ctPnBhcmVu dF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwlpZiAoc3RybGNweShtc2ctPm5h bWUsIG5hbWUsIHNpemVvZihtc2ctPm5hbWUpKSA+PSBOTlBGU19NQVhfTkFN RSkgew0KKwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xP Tkc7DQorCX0NCisJaWYgKHN0cmxjcHkobXNnLT5jb250ZW50cywgc3ltbmFt ZSwgc2l6ZW9mKG1zZy0+Y29udGVudHMpKSA+PSBOTlBGU19NQVhfU1lNTElO S19DT05URU5UKSB7DQorCSAga2ZyZWUobXNnKTsNCisJICByZXR1cm4gLUVO QU1FVE9PTE9ORzsNCisJfQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRyKTsNCisJ WEFfU0VUX01PREUoJm1zZy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NFVF9UWVBF KCZtc2ctPmF0dHIsIE5OUEZTX0ZJTEVfTE5LKTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJWEFfU0VU X0dJRCgmbXNnLT5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisg ICAgICAgIFhBX1NFVF9HSUQoJm1zZy0+YXR0ciwgY3VycmVudF9mc2dpZCgp KTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJl bnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1 cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBm c19nZXRfcGFnKCk7DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5w ZnNwLCAmbXNnLT5oZWFkZXIsIHNpemVvZihzdHJ1Y3Qgbm5wZnNfbWVzc2Fn ZV9zeW1saW5rKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KIAkgICAgZXJyb3Ig PSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKCZtc2cpOw0KIA0KQEAgLTExODAs NiArMTI2NSw3IEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3Qg aW5vZGUgKmQNCiAJaWYgKERFTlRSWV9UT19YREVOVFJZKGRlbnRyeSktPnhk X2ZsYWdzID09IDApIHsNCiAJICAgIHByaW50ayhLRVJOX0VNRVJHICJOTlBG UyBQYW5pYzogbm5wZnNfc3ltbGluazogZGVudHJ5IG5vdCB2YWxpZFxuIik7 DQogCX0NCisJa2ZyZWUobXNnKTsNCiAgICAgfQ0KIA0KICAgICByZXR1cm4g ZXJyb3I7DQpAQCAtMTM5OCw3ICsxNDg0LDExIEBAIG5ucGZzX3NldGF0dHIg KHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3QNCiAgICAgICAgIHN0cnVjdCBu bnBmc19tZXNzYWdlX3B1dGF0dHIgbXNnOw0KIA0KICAgICAgICAgbXNnLmhl YWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUFVUQVRUUjsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNn LmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBt c2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cu Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgICAgICBtc2cuaGFu ZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgIG5ucGZzX2lhdHRyMmF0dHIo eG4sIGF0dHIsICZtc2cuYXR0cik7DQpAQCAtMTU0NSw2ICsxNjM1LDggQEAg bm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KICAgICBy ZXR1cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsIDYsIDIzKQ0KKw0KIHN0YXRpYyBzc2l6ZV90DQog bm5wZnNfc2VuZGZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCAqcHBv cywgc2l6ZV90IGNvdW50LA0KIAkgICAgICAgcmVhZF9hY3Rvcl90IGFjdG9y LCB2b2lkICp0YXJnZXQpDQpAQCAtMTU2OCw2ICsxNjYwLDMzIEBAIG5ucGZz X3NlbmRmaWxlKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QNCiAgICAgcmV0 dXJuIGVycm9yOw0KIH0NCiANCisjZWxzZQ0KKw0KK3N0YXRpYyBzc2l6ZV90 DQorbm5wZnNfc3BsaWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZf dCAqcHBvcywNCisJCSAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwg c2l6ZV90IGNvdW50LA0KKwkJICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorew0K KyAgICBpbnQgZXJyb3IgPSAwOw0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorICAgIHN0cnVjdCBubnBm c19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCisgICAgDQor ICAgIGlmICh4biAhPSBOVUxMKQ0KKwlOTlBGU0RFQihYREVCVk5PUFMsICgi bm5wZnNfc2VuZGZpbGU6IHRva2VuczogMHgleFxuIiwgeG4tPnRva2Vucykp Ow0KKw0KKyAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUsIE5O UEZTX0RBVEFfUiwgKnBwb3MsICpwcG9zICsgY291bnQpOw0KKyAgICBpZiAo ZXJyb3IpIHsNCisJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRm aWxlOiBkYXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsNCisJcmV0dXJu IGVycm9yOw0KKyAgICB9DQorICAgIGVycm9yID0gZmlsZS0+Zl9vcC0+c3Bs aWNlX3JlYWQoZmlsZSwgcHBvcywgcGlwZSwgY291bnQsIGZsYWdzKTsNCisN CisgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRmaWxlOiBl cnJvciA9ICVkXG4iLCBlcnJvcikpOw0KKyAgICByZXR1cm4gZXJyb3I7DQor fQ0KKw0KKyNlbmRpZiAvKiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLCA2LCAyMykgKi8NCisNCiAvKg0KICAqDQogICoNCkBAIC0x NjM5LDExICsxNzU4LDE1IEBAIG5ucGZzX3dyaXRlX2JhY2twYWdlKHN0cnVj dCBwYWdlICpwYWdlLCANCiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBp bmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KIAl1bnNpZ25lZCBsZW4gPSBQ QUdFX0NBQ0hFX1NJWkU7DQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwy NCkNCisJdm9pZCAqZnNkYXRhOw0KKyNlbmRpZg0KIAl1bnNpZ25lZCBsb25n IG9mZnNldDsNCiANCiAJaW50IGVycm9yOw0KIAkNCiAJZG8gew0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjQpDQog CQliYWNrcGFnZSA9IGdyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBubnBmc19n ZXRfYmFja2luZGV4KHBhZ2UpKTsNCiAJCWlmICghYmFja3BhZ2UpIHsNCiAJ CQlwcmludGsoIm5ucGZzX3dyaXRlX2JhY2twYWdlOiBubyBwYWdlXG4iKTsN CkBAIC0xNjUyLDIxICsxNzc1LDM2IEBAIG5ucGZzX3dyaXRlX2JhY2twYWdl KHN0cnVjdCBwYWdlICpwYWdlLCANCiANCiAJCWVycm9yID0gbWFwcGluZy0+ YV9vcHMtPnByZXBhcmVfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KIAkJ CQkJCSAgICAgIDAsIGxlbik7DQorI2Vsc2UNCisJCWVycm9yID0gcGFnZWNh Y2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQor CQkJCUFPUF9GTEFHX1VOSU5URVJSVVBUSUJMRSwgJmJhY2twYWdlLCAmZnNk YXRhKTsNCisjZW5kaWYNCiAJCWlmICghZXJyb3IpIHsNCiAJCQljb3B5X2hp Z2hwYWdlKGJhY2twYWdlLCBwYWdlKTsNCiAJCQlmbHVzaF9kY2FjaGVfcGFn ZShiYWNrcGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDIsNiwyNCkNCiAJCQllcnJvciA9IG1hcHBpbmctPmFfb3Bz LT5jb21taXRfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KIAkJCQkJCQkg ICAgIDAsIGxlbik7DQorI2Vsc2UNCisJCQllcnJvciA9IHBhZ2VjYWNoZV93 cml0ZV9lbmQoYmFja2ZpbGUsIG1hcHBpbmcsIDAsIGxlbiwNCisJCQkJCWxl biwgYmFja3BhZ2UsIGZzZGF0YSk7DQorCQkJaWYgKGVycm9yID4gMCkNCisJ CQkJZXJyb3IgPSAwOw0KKyNlbmRpZg0KIAkJfQ0KIAkJaWYgKGVycm9yID09 IEFPUF9UUlVOQ0FURURfUEFHRSkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjQpDQogCQkJcGFnZV9jYWNoZV9y ZWxlYXNlKGJhY2twYWdlKTsNCisjZW5kaWYNCiAJCQljb250aW51ZTsNCiAJ CX0NCiAJfSB3aGlsZSAoMCk7DQogDQogCW9mZnNldCA9IHBhZ2Vfb2Zmc2V0 KGJhY2twYWdlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDI0KQ0KIAl1bmxvY2tfcGFnZShiYWNrcGFnZSk7DQog CXBhZ2VfY2FjaGVfcmVsZWFzZShiYWNrcGFnZSk7DQorI2VuZGlmDQogDQog CWlmIChlcnJvcikNCiAJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3BhZ2U6 IEVJT1xuIik7DQpAQCAtMTg3Miw2ICsyMDEwLDM0IEBAIG5ucGZzX3ByZXBh cmVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHMNCiAJcmV0dXJuIHJldDsN CiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigyLDYsMjgpDQorDQorc3RhdGljIGludA0KK25ucGZzX3dyaXRlX2Jl Z2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywgbG9mZl90IHBvcywNCit1bnNpZ25lZCBsZW4sIHVuc2lnbmVk IGZsYWdzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRhKQ0K K3sNCisJc3RydWN0IHBhZ2UgKnBhZ2U7DQorCXBnb2ZmX3QgaW5kZXg7DQor CXVuc2lnbmVkIGZyb207DQorDQorCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FD SEVfU0hJRlQ7DQorCWZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0g MSk7DQorDQorI2lmbmRlZiBBT1BfRkxBR19OT0ZTDQorCXBhZ2UgPSBfX2dy YWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRleCk7DQorI2Vsc2UNCisJcGFn ZSA9IGdyYWJfY2FjaGVfcGFnZV93cml0ZV9iZWdpbihtYXBwaW5nLCBpbmRl eCwgZmxhZ3MpOw0KKyNlbmRpZg0KKwlpZiAoIXBhZ2UpDQorCQlyZXR1cm4g LUVOT01FTTsNCisNCisJKnBhZ2VwID0gcGFnZTsNCisNCisJcmV0dXJuIG5u cGZzX3ByZXBhcmVfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbStsZW4p Ow0KK30NCisNCisjZW5kaWYNCisNCiBzdGF0aWMgaW50DQogbm5wZnNfY29t bWl0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFn ZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pDQogew0KQEAgLTE5MDIs MTQgKzIwNjgsNDUgQEAgbm5wZnNfY29tbWl0X3dyaXRlKHN0cnVjdCBmaWxl ICpmaWxlLCBzdA0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorDQor c3RhdGljIGludA0KK25ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmls ZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3Ms DQordW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsIHN0cnVjdCBwYWdl ICpwYWdlLCB2b2lkICpmc2RhdGEpDQorew0KKwl1bnNpZ25lZCBmcm9tID0g cG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOw0KKw0KKwkvKiB6ZXJvIHRo ZSBzdGFsZSBwYXJ0IG9mIHRoZSBwYWdlIGlmIHdlIGRpZCBhIHNob3J0IGNv cHkgKi8NCisJaWYgKGNvcGllZCA8IGxlbikgew0KKwkJdm9pZCAqa2FkZHIg PSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorCQltZW1zZXQoa2Fk ZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0KKwkJZmx1 c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorCQlrdW5tYXBfYXRvbWljKGthZGRy LCBLTV9VU0VSMCk7DQorCX0NCisNCisJbm5wZnNfY29tbWl0X3dyaXRlKGZp bGUsIHBhZ2UsIGZyb20sIGZyb20rY29waWVkKTsNCisNCisJdW5sb2NrX3Bh Z2UocGFnZSk7DQorCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsNCisNCisJ cmV0dXJuIGNvcGllZDsNCit9DQorDQorI2VuZGlmDQorDQogI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQogY29u c3QNCiAjZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25z IG5ucGZzX2FvcHMgPSB7DQogCS5yZWFkcGFnZSA9IG5ucGZzX3JlYWRwYWdl LA0KIAkud3JpdGVwYWdlID0gbm5wZnNfd3JpdGVwYWdlLA0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCS5w cmVwYXJlX3dyaXRlID0gbm5wZnNfcHJlcGFyZV93cml0ZSwNCiAJLmNvbW1p dF93cml0ZSA9IG5ucGZzX2NvbW1pdF93cml0ZSwNCisjZWxzZQ0KKwkud3Jp dGVfYmVnaW4gPSBubnBmc193cml0ZV9iZWdpbiwNCisJLndyaXRlX2VuZCA9 IG5ucGZzX3dyaXRlX2VuZCwNCisjZW5kaWYNCiB9Ow0KIA0KIC8qDQpAQCAt MTkyNCw3ICsyMTIxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5w ZnNfZmlsZV9vcGVyYXQNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQog ICAgIC5yZWxlYXNlCT0gbm5wZnNfcmVsZWFzZV9maWxlLA0KICAgICAuZnN5 bmMJPSBubnBmc19mc3luYywNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiwgNiwgMjMpDQogICAgIC5zZW5kZmlsZQk9IG5u cGZzX3NlbmRmaWxlLA0KKyNlbHNlDQorICAgIC5zcGxpY2VfcmVhZCA9IG5u cGZzX3NwbGljZV9yZWFkLA0KKyNlbmRpZg0KIH07DQogDQogc3RydWN0IGZp bGVfb3BlcmF0aW9ucyBubnBmc19kZWFkX29wZXJhdGlvbnMgPSB7DQpkaWZm IC11cHJOIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMg YXJsYS0wLjkwLW5ldy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMNCi0t LSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jCTIwMDct MDEtMDkgMTc6MzM6MzEuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkw LW5ldy9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxMC0wNi0wMyAy MzozMTowNi4zOTI2MTIwMDYgKzAyMDANCkBAIC00NSw3ICs0NSw3IEBADQog I2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVmIFJDU0lEDQot UkNTSUQoIiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMuMi4xIDIwMDcv MDEvMDkgMTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5w ZnNfbWVzc2FnZS5jLHYgMS4xNDMgMjAwNi8xMi8xMSAxNjo0MDoyNCB0b2wg RXhwICQiKTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KQEAgLTYwNSwx MiArNjA1LDEwIEBAIGdjX2Jsb2NrKHN0cnVjdCBubnBmcyAqbm5wZnNwLA0K ICAgICB9DQogDQogICAgIGlmICghbm5wZnNfYmxvY2tfaGF2ZV9wKHhuLCBv ZmZzZXQpKSB7DQotI2lmIDAgICAvKiBoYXBwZW5zIHdoZW4gZGFlbW9uIHNl bmRzIHNldmVyYWwgbWVzc2FnZXMgZm9yIHNhbWUgYmxvY2sgKi8NCiAJcHJp bnRrKEtFUk5fRU1FUkcgIk5OUEZTL2djX2Jsb2NrOiAiDQogCSAgICAgICAi RU5PRU5UICglZCwlZCwlZCwlZCkgMHglbGx4XG4iLCANCiAJICAgICAgIHhu LT5oYW5kbGUuYSwgeG4tPmhhbmRsZS5iLCB4bi0+aGFuZGxlLmMsIHhuLT5o YW5kbGUuZCwgDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKW9mZnNl dCk7DQotI2VuZGlmDQogCXJldHVybiAtRU5PRU5UOw0KICAgICB9DQogDQpA QCAtNzM3LDEyICs3MzUsMjMgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0 cnVjdCBubnBmcyAqbm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lv biBmYWlsZWQgcGF0aF9sb29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIs IGVycm9yKTsNCiAJfSBlbHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI1KQ0KIAkgICAgbm5wZnNwLT5jYWNo ZXJvb3QgPSBtbnRnZXQobmQubW50KTsNCiAJICAgIG5ucGZzcC0+Y2FjaGVk aXIgPSBkZ2V0KG5kLmRlbnRyeSk7DQogCSAgICBwYXRoX3JlbGVhc2UoJm5k KTsNCisjZWxzZQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQo bmQucGF0aC5tbnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQo bmQucGF0aC5kZW50cnkpOw0KKwkgICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0K KyNlbmRpZg0KIAkgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL RVJORUxfVkVSU0lPTigyLDYsMjgpDQogCSAgICBubnBmc3AtPnVpZCA9IGN1 cnJlbnQtPmZzdWlkOw0KIAkgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50LT5m c2dpZDsNCisjZWxzZQ0KKyAgICAgICAgICAgIG5ucGZzcC0+dWlkID0gY3Vy cmVudF9mc3VpZCgpOw0KKyAgICAgICAgICAgIG5ucGZzcC0+Z2lkID0gY3Vy cmVudF9mc2dpZCgpOw0KKyNlbmRpZg0KIA0KIAkgICAgLyogWFhYIHdlIHNo b3VsZCB2YWxpZGF0ZSB0aGVzZSB2YWx1ZXMgKi8NCiAJICAgIG5ucGZzX2Js b2Nrc2l6ZSA9IGJsb2Nrc2l6ZTsNCmRpZmYgLXVwck4gYXJsYS0wLjkwL25u cGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMgYXJsYS0wLjkwLW5ldy9ubnBm cy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS0wLjkwL25ucGZz L2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAwNy0wMS0wMyAxNToyNjoyNy4w MDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAtbmV3L25ucGZzL2xpbnV4 L25ucGZzX3N5c2NhbGxzLmMJMjAxMC0wNi0wNCAwMToxOToyMi44MzI2MDk0 MzcgKzAyMDANCkBAIC0xNDcsMTAgKzE0NywxNiBAQCBzdGF0aWMgaW50IG5u cGZzX3NlY19yZWdpc3RlcmVkID0gMDsNCiAjZGVmaW5lIFNFQzJQQUcocykg KG5ucGZzX3BhZ190KSh1bnNpZ25lZCBsb25nKShzKQ0KICNkZWZpbmUgUEFH MlNFQyhwKSAodm9pZCAqKSh1bnNpZ25lZCBsb25nKShwKQ0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjQpDQor DQogc3RhdGljIGludA0KIG5ucGZzX3NlY190YXNrX2FsbG9jKHN0cnVjdCB0 YXNrX3N0cnVjdCAqcCkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG5ucGZzX3BhZ190IHBh ZyA9IFNFQzJQQUcoY3VycmVudC0+c2VjdXJpdHkpOw0KKyNlbHNlDQorICAg IG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudF9zZWN1cml0eSgp KTsNCisjZW5kaWYNCiAgICAgaWYgKHBhZykNCiAJcC0+c2VjdXJpdHkgPSBQ QUcyU0VDKHBhZyk7DQogICAgIHJldHVybiAwOw0KQEAgLTE2NCwzNSArMTcw LDU1IEBAIG5ucGZzX3NlY190YXNrX2ZyZWUoc3RydWN0IHRhc2tfc3RydWN0 ICoNCiAJcC0+c2VjdXJpdHkgPSBOVUxMOw0KIH0NCiANCisjZW5kaWYNCisN CiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBubnBmc19nZXRfcGFnX3NlYyh2b2lk KQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT SU9OKDIsNiwyOCkNCiAgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhj dXJyZW50LT5zZWN1cml0eSk7DQorI2Vsc2UNCisgICAgbm5wZnNfcGFnX3Qg cGFnID0gU0VDMlBBRyhjdXJyZW50X3NlY3VyaXR5KCkpOw0KKyNlbmRpZg0K ICAgICBpZiAocGFnKQ0KIAlyZXR1cm4gcGFnOw0KIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBy ZXR1cm4gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIHJldHVybiBjdXJy ZW50X3VpZCgpOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgaW50DQogbm5w ZnNfc2V0X3BhZ19zZWModm9pZCkNCiB7DQogICAgIHN0YXRpYyBubnBmc19w YWdfdCBwYWdudW0gPSBOTlBGU19QQUdfTExJTTsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisgICAgc3Ry dWN0IGNyZWQgKmNyZWQ7DQorI2VuZGlmDQogDQogICAgIGlmIChwYWdudW0g PT0gTk5QRlNfUEFHX1VMSU0pDQogCXJldHVybiAtRU5PTUVNOw0KICAgICAv KiBwYWdudW0gPSBOTlBGU19QQUdfTExJTTsgKi8NCiAgICAgDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog ICAgIGN1cnJlbnQtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWdudW0pOw0KKyNl bHNlDQorICAgIGNyZWQgPSAoc3RydWN0IGNyZWQgKikgY3VycmVudC0+Y3Jl ZDsNCisgICAgY3JlZC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZ251bSk7DQor I2VuZGlmDQogICAgIHBhZ251bSsrOw0KICAgICByZXR1cm4gMDsNCiB9DQog DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs NiwyNCkNCiBzdGF0aWMgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgbm5w ZnNfc2VjX29wcyA9IHsNCiAgICAgLnRhc2tfYWxsb2Nfc2VjdXJpdHkgPSBu bnBmc19zZWNfdGFza19hbGxvYywNCiAgICAgLnRhc2tfZnJlZV9zZWN1cml0 eSA9IG5ucGZzX3NlY190YXNrX2ZyZWUsDQogLy8gICAgLnRhc2tfcmVwYXJl bnRfdG9faW5pdCA9IG5ucGZzX3NlY19yZXBhcmVudF90b19pbml0LA0KIH07 DQorI2VuZGlmDQogDQogI2VuZGlmIC8qIENPTkZJR19TRUNVUklUWSAqLw0K IA0KQEAgLTIyMiw4ICsyNDgsMTMgQEAgZmluZF9wYWcoc3RydWN0IGdyb3Vw X2luZm8gKmdpKQ0KIHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9w YWdfZ3JvdXAodm9pZCkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9p bmZvICpnaSA9IGN1cnJlbnQtPmdyb3VwX2luZm87DQogICAgIG5ucGZzX3Bh Z190IHJldCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3Qg Z3JvdXBfaW5mbyAqZ2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisgICAg bm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAg ICAgaW50IGk7DQogDQogICAgIGdldF9ncm91cF9pbmZvKGdpKTsNCkBAIC0y NDIsOSArMjczLDE3IEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiBz dGF0aWMgaW50DQogc3RvcmVfcGFnKG5ucGZzX3BhZ190IHBhZ251bSkNCiB7 DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy LDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpvbGRfZ2kgPSBjdXJy ZW50LT5ncm91cF9pbmZvOw0KKyNlbHNlDQorICAgc3RydWN0IGdyb3VwX2lu Zm8gKm9sZF9naSA9IGdldF9jdXJyZW50X2dyb3VwcygpOw0KKyNlbmRpZg0K ICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqbmV3X2dpOw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQogICAgIGlu dCBuYmxvY2tzLCBjb3VudDsNCisjZWxzZQ0KKyAgICB1bnNpZ25lZCBpbnQg bmJsb2NrcywgY291bnQ7DQorI2VuZGlmDQogICAgIGludCBmb3VuZCA9IDA7 DQogICAgIGludCBpLCBrOw0KICAgICANCkBAIC0zMTcsNyArMzU2LDExIEBA IG5ucGZzX2dldF9wYWcoKQ0KICAgICByZXR1cm4gbm5wZnNfZ2V0X3BhZ19n cm91cCgpOw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg ICAgcmV0dXJuIGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICByZXR1cm4g Y3VycmVudF91aWQoKTsNCisjZW5kaWYNCiB9DQogDQogc3RhdGljIGlubGlu ZSBpbnQNCkBAIC01MjgsNyArNTcxLDExIEBAIHVzZXJfcGF0aDJkZW50cnkg KHN0cnVjdCBuYW1laWRhdGEgKm5kLCANCiAgICAgcHV0bmFtZShrbmFtZSk7 DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MjUpDQogICAgIHJldHVybiBuZC0+ZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJl dHVybiBuZC0+cGF0aC5kZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxp bmthZ2UgbG9uZw0KQEAgLTU0MCwxMSArNTg3LDE2IEBAIHN5c19hZnNfaW50 IChpbnQgb3BlcmF0aW9uLA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQog ICAgIHN0cnVjdCBhcmxhVmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBz dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qg bm5wZnNfbWVzc2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVj dCBubnBmc19tZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRl bnRyeSAqZGVudHJ5ID0gTlVMTDsNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBu ZDsNCi0gICAgDQorDQorICAgIG1zZyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVj dCBubnBmc19tZXNzYWdlX3Bpb2N0bCksIEdGUF9LRVJORUwpOw0KKw0KKyAg ICBpZiAoIW1zZykNCisgICAgICByZXR1cm4gLUVOT01FTTsNCisNCiAgICAg bG9ja19rZXJuZWwoKTsNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJz eXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIpKTsNCkBAIC01NzUsNyArNjI3LDcg QEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogCSAgICBnb3RvIHVu bG9jazsNCiAJfQ0KIAlpZiAodmljZV9pb2N0bC5pbl9zaXplICE9IDApIHsN Ci0JICAgIGlmKGNvcHlfZnJvbV91c2VyKCZtc2cubXNnLA0KKwkgICAgaWYo Y29weV9mcm9tX3VzZXIoJm1zZy0+bXNnLA0KIAkJCSAgICAgIHZpY2VfaW9j dGwuaW4sDQogCQkJICAgICAgdmljZV9pb2N0bC5pbl9zaXplKSAhPSAwKSB7 DQogCQllcnJvciA9IC1FRkFVTFQ7DQpAQCAtNjI4LDE5ICs2ODAsMjMgQEAg c3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogCQllcnJvciA9IC1FSU5W QUw7DQogCQlnb3RvIHVubG9jazsNCiAJICAgIH0NCi0JICAgIG1zZy5oYW5k bGUgPSB4bi0+aGFuZGxlOw0KKwkgICAgbXNnLT5oYW5kbGUgPSB4bi0+aGFu ZGxlOw0KIAl9DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNH X1BJT0NUTDsNCi0JbXNnLm9wY29kZSA9IGFfb3Bjb2RlOw0KKwltc2ctPmhl YWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KKwltc2ctPm9wY29k ZSA9IGFfb3Bjb2RlOw0KIAkNCi0JbXNnLmluc2l6ZSAgID0gdmljZV9pb2N0 bC5pbl9zaXplOw0KLQltc2cub3V0c2l6ZSAgPSB2aWNlX2lvY3RsLm91dF9z aXplOw0KLQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQotCW1zZy5j cmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJbXNnLT5pbnNpemUgICA9 IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCisJbXNnLT5vdXRzaXplICA9IHZpY2Vf aW9jdGwub3V0X3NpemU7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL RVJORUxfVkVSU0lPTigyLDYsMjgpDQorCW1zZy0+Y3JlZC51aWQgPSBjdXJy ZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy0+Y3JlZC51aWQgPSBj dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KKwltc2ctPmNyZWQucGFnID0gbm5w ZnNfZ2V0X3BhZygpOw0KIAkNCi0JZXJyb3IgPSBubnBmc19tZXNzYWdlX3Jw Yygmbm5wZnNbMF0sICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7IC8qIFhY WCAqLw0KLQltc2cyID0gKHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1cCAq KSAmbXNnOw0KKwllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKCZubnBmc1sw XSwgJm1zZy0+aGVhZGVyLCBzaXplb2Yoc3RydWN0IG5ucGZzX21lc3NhZ2Vf cGlvY3RsKSk7IC8qIFhYWCAqLw0KKwltc2cyID0gKHN0cnVjdCBubnBmc19t ZXNzYWdlX3dha2V1cCAqKSBtc2c7DQogCWlmIChlcnJvciA9PSAwKQ0KIAkg ICAgZXJyb3IgPSBtc2cyLT5lcnJvcjsNCiANCkBAIC02NzUsMTEgKzczMSwx NiBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAgICAgDQogIHVu bG9jazoNCiAgICAgaWYgKGRlbnRyeSkNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI1KQ0KIAlwYXRoX3JlbGVhc2Uo Jm5kKTsNCisjZWxzZQ0KKwlwYXRoX3B1dCgmbmQucGF0aCk7DQorI2VuZGlm DQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfc3lzY2FsbCBy ZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9yKSk7DQogDQogICAgIE5OUEZT REVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgdW5sb2NrXG4iKSk7DQor ICAgIGtmcmVlKG1zZyk7DQogICAgIHVubG9ja19rZXJuZWwoKTsNCiANCiAg ICAgcmV0dXJuIGVycm9yOw0KQEAgLTc4MCwyMCArODQxLDMyIEBAIHN0YXRp YyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiB7DQogICAgIHN0cnVj dCBwcm9jX2Rpcl9lbnRyeSAqZW50cnk7DQogICAgIA0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjYpDQogICAgIG5u cGZzX3Byb2Nmc19kaXIgPSBwcm9jX21rZGlyKE5OUEZTX1BST0NfRElSLCBw cm9jX3Jvb3RfZnMpOw0KKyNlbHNlDQorICAgIG5ucGZzX3Byb2Nmc19kaXIg PSBwcm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCisj ZW5kaWYNCiAgICAgaWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkNCiAJ cmV0dXJuIC1FTk9NRU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3Byb2Nm c19kaXItPm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIA0K ICAgICBlbnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9E RSwgMDY2Niwgbm5wZnNfcHJvY2ZzX2Rpcik7DQogICAgIGlmIChlbnRyeSA9 PSBOVUxMKSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfaW5pdF9w cm9jZnM6IG5vIG5vZGVcbiIpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI2KQ0KIAlyZW1vdmVfcHJvY19lbnRy eShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisjZWxzZQ0KKwly ZW1vdmVfcHJvY19lbnRyeSgiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7 DQorI2VuZGlmDQogCXJldHVybiAtRU5PTUVNOw0KICAgICB9DQogICAgIA0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzApDQogICAgIGVudHJ5LT5vd25lciA9IFRISVNfTU9EVUxFOw0KKyNlbmRp Zg0KICAgICBlbnRyeS0+cHJvY19mb3BzID0gJm5ucGZzX3Byb2Nmc19mb3Bz Ow0KIA0KICNpZmRlZiBTWVNDQUxMQ09NUEFUDQpAQCAtODE1LDcgKzg4OCwx MSBAQCBzdGF0aWMgdm9pZCBubnBmc19leGl0X3Byb2Nmcyh2b2lkKQ0KICAg ICB9DQogI2VuZGlmIC8qIFNZU0NBTExDT01QQVQgKi8NCiAgICAgcmVtb3Zl X3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RFLCBubnBmc19wcm9jZnNfZGly KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Miw2LDI2KQ0KICAgICByZW1vdmVfcHJvY19lbnRyeShOTlBGU19QUk9DX0RJ UiwgcHJvY19yb290X2ZzKTsNCisjZWxzZQ0KKyAgICByZW1vdmVfcHJvY19l bnRyeSgiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQorI2VuZGlmDQog fQ0KIA0KICNpZmRlZiBHUk9VUFBBR1MNCkBAIC04NDAsMTIgKzkxNywxNCBA QCB2b2lkDQogaW5zdGFsbF9hZnNfc3lzY2FsbCh2b2lkKQ0KIHsNCiAjaWZk ZWYgQ09ORklHX1NFQ1VSSVRZDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwyNCkNCiAgICAgaWYgKHJlZ2lzdGVyX3Nl Y3VyaXR5KCZubnBmc19zZWNfb3BzKSkNCiAJTk5QRlNERUIoWERFQlNZUywN CiAJCSAoImluc3RhbGxfYWZzX3N5c2NhbGw6IG5ucGZzX2luaXRfc2VjIGZh aWxlZFxuIikpOw0KICAgICBlbHNlDQogCW5ucGZzX3NlY19yZWdpc3RlcmVk ID0gMTsNCiAjZW5kaWYNCisjZW5kaWYNCiANCiAgICAgbm5wZnNfaW5pdF9w cm9jZnMoKTsNCiANCkBAIC04ODgsOSArOTY3LDExIEBAIHJlc3RvcmVfYWZz X3N5c2NhbGwgKHZvaWQpDQogI2VuZGlmIC8qIFNZU0NBTExIQUNLICovDQog DQogI2lmZGVmIENPTkZJR19TRUNVUklUWQ0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjQpDQogICAgIGlmIChubnBm c19zZWNfcmVnaXN0ZXJlZCkNCiAJaWYgKHVucmVnaXN0ZXJfc2VjdXJpdHko Jm5ucGZzX3NlY19vcHMpKQ0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIm5u cGZzX2V4aXRfc2VjOiBjb3VsZG4ndCB1bnJlZ2lzdGVyXG4iKTsNCisjZW5k aWYNCiAjZW5kaWYgLyogIUNPTkZJR19TRUNVUklUWSAqLw0KIA0KICNpZmRl ZiBHUk9VUFBBR1MNCmRpZmYgLXVwck4gYXJsYS0wLjkwL25ucGZzL2xpbnV4 L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhLTAuOTAtbmV3L25ucGZz L2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFybGEtMC45 MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAwNi0x Mi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAt bmV3L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDEw LTA2LTAzIDIzOjMxOjA2LjM5MjYxMjAwNiArMDIwMA0KQEAgLTYzLDYgKzYz LDExIEBAIGNvbnN0IGNoYXIgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkNCiAJ CSAgICB1bnNpZ25lZCBsb25nICpvZmZzZXQsDQogCQkgICAgY2hhciAqKm1v ZG5hbWUsIGNoYXIgKm5hbWVidWYpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPiBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQorI2lmZGVmIF9feDg2 XzY0X18NCitleHRlcm4gcndsb2NrX3QgdGFza2xpc3RfbG9jayBfX2F0dHJp YnV0ZV9fKCh3ZWFrKSk7DQorI2VuZGlmDQorI2VuZGlmDQogc3RhdGljIHZv aWQgKioNCiBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2 XzY0X18NCmRpZmYgLXVwck4gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz X3Zmc29wcy5jIGFybGEtMC45MC1uZXcvbm5wZnMvbGludXgvbm5wZnNfdmZz b3BzLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfdmZzb3Bz LmMJMjAwNi0xMi0xMSAxNzo0MzozNS4wMDAwMDAwMDAgKzAxMDANCisrKyBh cmxhLTAuOTAtbmV3L25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMTAt MDYtMDMgMjM6MzE6MDYuMzkyNjEyMDA2ICswMjAwDQpAQCAtNDksOSArNDks MTMgQEAgUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjEwOSAyMDA2 Lw0KIA0KIHN0cnVjdCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQog c3RhdGljIHZvaWQgbm5wZnNfcmVhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlu b2RlKTsNCisjZW5kaWYNCiBzdGF0aWMgdm9pZCBubnBmc19wdXRfc3VwZXIo c3RydWN0IHN1cGVyX2Jsb2NrICpzYik7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyNSkNCiBzdGF0aWMgdm9pZCBu bnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQorI2VuZGlm DQogc3RhdGljIHZvaWQgbm5wZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVy X2Jsb2NrICogc2IpOw0KIA0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g S0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KQEAgLTYxLDggKzY1LDEwIEBAIHN0 YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVjdCBzdXBlcl9ibG8NCiAjZW5k aWYNCiANCiBzdGF0aWMgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgbm5wZnNf c29wcyA9IHsgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDIsNiwyNSkNCiAgICAgcmVhZF9pbm9kZQkJOiBubnBmc19yZWFk X2lub2RlLA0KICAgICBwdXRfaW5vZGUJCTogbm5wZnNfcHV0X2lub2RlLA0K KyNlbmRpZg0KICAgICBhbGxvY19pbm9kZQkJOiBubnBmc19ub2RlX2FsbG9j LA0KICAgICBkZXN0cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAg ICBkcm9wX2lub2RlCQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KQEAgLTE4 OSw3ICsxOTUsMTEgQEAgbm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1cGVy X2Jsb2NrICogcw0KIAlpZiAoZXJyb3IpDQogCSAgICBkZGV2ID0gRVJSX1BU UihlcnJvcik7DQogCWVsc2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDI1KQ0KIAkgICAgZGRldiA9IG5kLmRlbnRy eTsNCisjZWxzZQ0KKwkgICAgZGRldiA9IG5kLnBhdGguZGVudHJ5Ow0KKyNl bmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2KSkgew0KIAkgICAgbWlub3Jk ZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2RlLT5pX3JkZXYpOw0KQEAgLTI3 Myw2ICsyODMsNyBAQCBubnBmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Js b2NrICpzYikNCiAgICAgTk5QRlNERUIoWERFQlZGT1BTLCAoIm5ucGZzX3B1 dF9zdXBlciBleGl0aW5nXG4iKSk7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjUpDQogc3RhdGljIHZv aWQNCiBubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog ew0KQEAgLTMzOSw2ICszNTAsNyBAQCBubnBmc19wdXRfaW5vZGUoc3RydWN0 IGlub2RlICppbm9kZSkNCiANCiAgICAgdXAoJm5ucGZzcC0+aW5hY3RpdmVf c2VtKTsNCiB9DQorI2VuZGlmIC8vIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwyNSkNCiANCiBzdGF0aWMgaW50DQogbm5wZnNf c3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qga3N0 YXRmcyAqYnVmKQ0KQEAgLTM1Miw3ICszNjQsMTUgQEAgbm5wZnNfc3RhdGZz X2ludChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLA0KICAgICB0bXAuZl9iYXZh aWwgID0gMTAyNCoxMDI0KjItNTA7DQogICAgIHRtcC5mX2ZpbGVzICAgPSAx MDI0KjEwMjQ7DQogICAgIHRtcC5mX2ZmcmVlICAgPSAxMDI0KjEwMjQtMTAw Ow0KKyAgICB0bXAuZl9mc2lkLnZhbFswXSA9IDA7DQorICAgIHRtcC5mX2Zz aWQudmFsWzFdID0gMDsNCiAgICAgdG1wLmZfbmFtZWxlbiA9IE5BTUVfTUFY Ow0KKyAgICB0bXAuZl9mcnNpemUgID0gMDsNCisgICAgdG1wLmZfc3BhcmVb MF0gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVsxXSA9IDA7DQorICAgIHRtcC5m X3NwYXJlWzJdID0gMDsNCisgICAgdG1wLmZfc3BhcmVbM10gPSAwOw0KKyAg ICB0bXAuZl9zcGFyZVs0XSA9IDA7DQogICAgICpidWYgPSB0bXA7DQogICAg IHJldHVybiAwOw0KIH0NCg== ---2098261369-1203694919-1275658069=:819408 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-1203694919-1275658069=:819408--