From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sravanthi Kollukuduru Subject: [DPU PATCH 3/5] drm/msm/dpu: remove static binding of hw pipe to plane Date: Wed, 20 Jun 2018 18:20:18 +0530 Message-ID: <1529499020-8499-4-git-send-email-skolluku@codeaurora.org> References: <1529499020-8499-1-git-send-email-skolluku@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1529499020-8499-1-git-send-email-skolluku-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Sravanthi Kollukuduru List-Id: linux-arm-msm@vger.kernel.org RXhwb3NlIGFsbCBwbGFuZXMgd2l0aCBzdXBlcnNldCBvZiBmb3JtYXRzIGFuZCB3aXRoIG5vCmh3 IHBpcGUgc3RhdGljIGJpbmRpbmcuIEFjY29yZGluZ2x5LCByZW1vdmUgY2hlY2tzIGZyb20KYXRv bWljX2NoZWNrIHJlZmxlY3RpbmcgdGhlIGRlY291cGxpbmcuCgpTaWduZWQtb2ZmLWJ5OiBTcmF2 YW50aGkgS29sbHVrdWR1cnUgPHNrb2xsdWt1QGNvZGVhdXJvcmEub3JnPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jYXRhbG9nLmMgfCAgMjYgKy0tLQogZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuaCB8ICA1MCArKystLS0tLQog ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jICAgICAgICB8ICAxNyArLS0K IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jICAgICAgfCAxNTggKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X3BsYW5lLmggICAgICB8ICAgNSArLQogNSBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCsp LCAyMDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2h3X2NhdGFsb2cuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9od19jYXRhbG9nLmMKaW5kZXggYzBiODExNi4uYzJhN2M2NCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5jCkBAIC00NCwxMyArNDQsNiBAQAog I2RlZmluZSBERUZBVUxUX0RQVV9MSU5FX1dJRFRICQkyMDQ4CiAjZGVmaW5lIERFRkFVTFRfRFBV X09VVFBVVF9MSU5FX1dJRFRICTI1NjAKIAotI2RlZmluZSBNQVhfSE9SWl9ERUNJTUFUSU9OCTQK LSNkZWZpbmUgTUFYX1ZFUlRfREVDSU1BVElPTgk0Ci0KLSNkZWZpbmUgTUFYX1VQU0NBTEVfUkFU SU8JMjAKLSNkZWZpbmUgTUFYX0RPV05TQ0FMRV9SQVRJTwk0Ci0jZGVmaW5lIFNTUFBfVU5JVFlf U0NBTEUJMQotCiAjZGVmaW5lIFNUUkNBVChYLCBZKSAoWCBZKQogCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtNTgsOSAr NTEsMTIgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLwogLyogRFBVIHRvcCBsZXZlbCBjYXBzICovCiBzdGF0aWMgY29uc3Qg c3RydWN0IGRwdV9jYXBzIHNkbTg0NV9kcHVfY2FwcyA9IHsKKwkubWF4X3NzcHBfd2lkdGggPSBE RUZBVUxUX0RQVV9PVVRQVVRfTElORV9XSURUSCwKKwkubWF4X3NzcHBfcGl4ZWxfcmFtX3NpemUg PSBERUZBVUxUX1BJWEVMX1JBTV9TSVpFLAogCS5tYXhfbWl4ZXJfd2lkdGggPSBERUZBVUxUX0RQ VV9PVVRQVVRfTElORV9XSURUSCwKIAkubWF4X21peGVyX2JsZW5kc3RhZ2VzID0gMHhiLAogCS5x c2VlZF90eXBlID0gRFBVX1NTUFBfU0NBTEVSX1FTRUVEMywKKwkuY3NjX3R5cGUgPSBEUFVfU1NQ UF9DU0NfMTBCSVQsCiAJLnVid2NfdmVyc2lvbiA9IERQVV9IV19VQldDX1ZFUl8yMCwKIAkuaGFz X3NyY19zcGxpdCA9IHRydWUsCiAJLmhhc19kaW1fbGF5ZXIgPSB0cnVlLApAQCAtMTI4LDE5ICsx MjQsOCBAQAogICogU1NQUCBzdWIgYmxvY2tzIGNvbmZpZwogICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLS8qIFNTUFAgY29t bW9uIGNvbmZpZ3VyYXRpb24gKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHB1X3NzcHBfYmxrc19j b21tb24gc2RtODQ1X3NzcHBfY29tbW9uID0gewotCS5tYXhsaW5ld2lkdGggPSBERUZBVUxUX0RQ VV9PVVRQVVRfTElORV9XSURUSCwKLQkucGl4ZWxfcmFtX3NpemUgPSBERUZBVUxUX1BJWEVMX1JB TV9TSVpFLAotCS5tYXhoZGVjaWV4cCA9IE1BWF9IT1JaX0RFQ0lNQVRJT04sCi0JLm1heHZkZWNp ZXhwID0gTUFYX1ZFUlRfREVDSU1BVElPTiwKLX07Ci0KICNkZWZpbmUgX1ZJR19TQkxLKG51bSkg XAogCXsgXAotCS5jb21tb24gPSAmc2RtODQ1X3NzcHBfY29tbW9uLCBcCi0JLm1heGR3bnNjYWxl ID0gTUFYX0RPV05TQ0FMRV9SQVRJTywgXAotCS5tYXh1cHNjYWxlID0gTUFYX1VQU0NBTEVfUkFU SU8sIFwKIAkuc3JjX2JsayA9IHsubmFtZSA9IFNUUkNBVCgic3NwcF9zcmNfIiwgbnVtKSwgXAog CQkuaWQgPSBEUFVfU1NQUF9TUkMsIC5iYXNlID0gMHgwMCwgLmxlbiA9IDB4MTUwLH0sIFwKIAku c2NhbGVyX2JsayA9IHsubmFtZSA9IFNUUkNBVCgic3NwcF9zY2FsZXIiLCBudW0pLCBcCkBAIC0x NDksMTcgKzEzNCwxMiBAQAogCS5jc2NfYmxrID0gey5uYW1lID0gU1RSQ0FUKCJzc3BwX2NzYyIs IG51bSksIFwKIAkJLmlkID0gRFBVX1NTUFBfQ1NDXzEwQklULCBcCiAJCS5iYXNlID0gMHgxYTAw LCAubGVuID0gMHgxMDAsfSwgXAotCS5mb3JtYXRfbGlzdCA9IHBsYW5lX2Zvcm1hdHNfeXV2LCBc CiAJfQogCiAjZGVmaW5lIF9ETUFfU0JMSyhudW0pIFwKIAl7IFwKLQkuY29tbW9uID0gJnNkbTg0 NV9zc3BwX2NvbW1vbiwgXAotCS5tYXhkd25zY2FsZSA9IFNTUFBfVU5JVFlfU0NBTEUsIFwKLQku bWF4dXBzY2FsZSA9IFNTUFBfVU5JVFlfU0NBTEUsIFwKIAkuc3JjX2JsayA9IHsubmFtZSA9IFNU UkNBVCgic3NwcF9zcmNfIiwgbnVtKSwgXAogCQkuaWQgPSBEUFVfU1NQUF9TUkMsIC5iYXNlID0g MHgwMCwgLmxlbiA9IDB4MTUwLH0sIFwKLQkuZm9ybWF0X2xpc3QgPSBwbGFuZV9mb3JtYXRzLCBc CiAJfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHNkbTg0NV92aWdf c2Jsa18wID0gX1ZJR19TQkxLKCIwIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2h3X2NhdGFsb2cuaAppbmRleCAxYjA0NDQ4Li42ODY0NGRiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jYXRhbG9nLmgKQEAgLTYzLDYgKzYzLDEw IEBACiAKICNkZWZpbmUgQ1JUQ19EVUFMX01JWEVSUwkyCiAKKyNkZWZpbmUgTUFYX1VQU0NBTEVf UkFUSU8JMjAKKyNkZWZpbmUgTUFYX0RPV05TQ0FMRV9SQVRJTwk0CisjZGVmaW5lIFNTUFBfVU5J VFlfU0NBTEUJMQorCiAjZGVmaW5lIE1BWF9YSU5fQ09VTlQgMTYKIAogLyoqCkBAIC0yOTAsMTkg KzI5NCwyNiBAQCBzdHJ1Y3QgZHB1X3Fvc19sdXRfdGJsIHsKIAogLyoqCiAgKiBzdHJ1Y3QgZHB1 X2NhcHMgLSBkZWZpbmUgRFBVIGNhcGFiaWxpdGllcwotICogQG1heF9taXhlcl93aWR0aCAgICBt YXggbGF5ZXIgbWl4ZXIgbGluZSB3aWR0aCBzdXBwb3J0LgotICogQG1heF9taXhlcl9ibGVuZHN0 YWdlcyBtYXggbGF5ZXIgbWl4ZXIgYmxlbmQgc3RhZ2VzIG9yCisgKiBAbWF4X3NzcHBfd2lkdGgg bWF4OiBwaXhlbHdpZHRoIHN1cHBvcnRlZCBieSB0aGlzIHBpcGUKKyAqIEBtYXhfc3NwcF9waXhl bF9yYW1fc2l6ZTogc2l6ZSBvZiBsYXRlbmN5IGhpZGluZyBhbmQKKyAqICAgICAgICAgICAgICAg ICAgICAgZGUtdGlsaW5nIGJ1ZmZlciBpbiBieXRlcworICogQG1heF9taXhlcl93aWR0aDogICBt YXggbGF5ZXIgbWl4ZXIgbGluZSB3aWR0aCBzdXBwb3J0CisgKiBAbWF4X21peGVyX2JsZW5kc3Rh Z2VzOiBtYXggbGF5ZXIgbWl4ZXIgYmxlbmQgc3RhZ2VzIG9yCiAgKiAgICAgICAgICAgICAgICAg ICAgICAgc3VwcG9ydGVkIHogb3JkZXIKLSAqIEBxc2VlZF90eXBlICAgICAgICAgcXNlZWQyIG9y IHFzZWVkMyBzdXBwb3J0LgotICogQHVid2NfdmVyc2lvbiAgICAgICBVQldDIGZlYXR1cmUgdmVy c2lvbiAoMHgwIGZvciBub3Qgc3VwcG9ydGVkKQotICogQGhhc19zcmNfc3BsaXQgICAgICBzb3Vy Y2Ugc3BsaXQgZmVhdHVyZSBzdGF0dXMKLSAqIEBoYXNfZGltX2xheWVyICAgICAgZGltIGxheWVy IGZlYXR1cmUgc3RhdHVzCi0gKiBAaGFzX2lkbGVfcGMgICAgICAgIGluZGljYXRlIGlmIGlkbGUg cG93ZXIgY29sbGFwc2UgZmVhdHVyZSBpcyBzdXBwb3J0ZWQKKyAqIEBxc2VlZF90eXBlOiAgICAg ICAgIHFzZWVkMiBvciBxc2VlZDMgc3VwcG9ydAorICogQGNzY190eXBlOiAgICAgICAgICAgY3Nj IG9yIGNzY18xMGJpdCBzdXBwb3J0CisgKiBAdWJ3Y192ZXJzaW9uOiAgICAgICBVQldDIGZlYXR1 cmUgdmVyc2lvbiAoMHgwIGZvciBub3Qgc3VwcG9ydGVkKQorICogQGhhc19zcmNfc3BsaXQ6ICAg ICAgc291cmNlIHNwbGl0IGZlYXR1cmUgc3RhdHVzCisgKiBAaGFzX2RpbV9sYXllcjogICAgICBk aW0gbGF5ZXIgZmVhdHVyZSBzdGF0dXMKKyAqIEBoYXNfaWRsZV9wYzogICAgICAgIGluZGljYXRl IGlmIGlkbGUgcG93ZXIgY29sbGFwc2UgZmVhdHVyZSBpcyBzdXBwb3J0ZWQKICAqLwogc3RydWN0 IGRwdV9jYXBzIHsKKwl1MzIgbWF4X3NzcHBfd2lkdGg7CisJdTMyIG1heF9zc3BwX3BpeGVsX3Jh bV9zaXplOwogCXUzMiBtYXhfbWl4ZXJfd2lkdGg7CiAJdTMyIG1heF9taXhlcl9ibGVuZHN0YWdl czsKIAl1MzIgcXNlZWRfdHlwZTsKKwl1MzIgY3NjX3R5cGU7CiAJdTMyIHVid2NfdmVyc2lvbjsK IAlib29sIGhhc19zcmNfc3BsaXQ7CiAJYm9vbCBoYXNfZGltX2xheWVyOwpAQCAtMzEwLDI4ICsz MjEsOSBAQCBzdHJ1Y3QgZHB1X2NhcHMgewogfTsKIAogLyoqCi0gKiBzdHJ1Y3QgZHB1X3NzcHBf Ymxrc19jb21tb24gOiBTU1BQIHN1Yi1ibG9ja3MgY29tbW9uIGNvbmZpZ3VyYXRpb24KLSAqIEBt YXh3aWR0aDogbWF4IHBpeGVsd2lkdGggc3VwcG9ydGVkIGJ5IHRoaXMgcGlwZQotICogQHBpeGVs X3JhbV9zaXplOiBzaXplIG9mIGxhdGVuY3kgaGlkaW5nIGFuZCBkZS10aWxpbmcgYnVmZmVyIGlu IGJ5dGVzCi0gKiBAbWF4aGRlY2lleHA6IG1heCBob3Jpem9udGFsIGRlY2ltYXRpb24gc3VwcG9y dGVkIGJ5IHRoaXMgcGlwZQotICoJCQkJKG1heCBpcyAyXnZhbHVlKQotICogQG1heHZkZWNpZXhw OiBtYXggdmVydGljYWwgZGVjaW1hdGlvbiBzdXBwb3J0ZWQgYnkgdGhpcyBwaXBlCi0gKgkJCQko bWF4IGlzIDJedmFsdWUpCi0gKi8KLXN0cnVjdCBkcHVfc3NwcF9ibGtzX2NvbW1vbiB7Ci0JdTMy IG1heGxpbmV3aWR0aDsKLQl1MzIgcGl4ZWxfcmFtX3NpemU7Ci0JdTMyIG1heGhkZWNpZXhwOwot CXUzMiBtYXh2ZGVjaWV4cDsKLX07Ci0KLS8qKgogICogc3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtz IDogU1NQUCBzdWItYmxvY2tzCi0gKiBjb21tb246IFBvaW50ZXIgdG8gY29tbW9uIGNvbmZpZ3Vy YXRpb25zIHNoYXJlZCBieSBzdWIgYmxvY2tzCiAgKiBAY3JlcV92Ymxhbms6IGNyZXEgcHJpb3Jp dHkgZHVyaW5nIHZlcnRpY2FsIGJsYW5raW5nCiAgKiBAZGFuZ2VyX3ZibGFuazogZGFuZ2VyIHBy aW9yaXR5IGR1cmluZyB2ZXJ0aWNhbCBibGFua2luZwotICogQG1heGR3bnNjYWxlOiBtYXggZG93 bnNjYWxlIHJhdGlvIHN1cHBvcnRlZCh3aXRob3V0IERFQ0lNQVRJT04pCi0gKiBAbWF4dXBzY2Fs ZTogIG1heHVwc2NhbGUgcmF0aW8gc3VwcG9ydGVkCiAgKiBAbWF4X3Blcl9waXBlX2J3OiBtYXhp bXVtIGFsbG93YWJsZSBiYW5kd2lkdGggb2YgdGhpcyBwaXBlIGluIGtCcHMKICAqIEBzcmNfYmxr OgogICogQHNjYWxlcl9ibGs6CkBAIC0zNDAsMTQgKzMzMiwxMCBAQCBzdHJ1Y3QgZHB1X3NzcHBf Ymxrc19jb21tb24gewogICogQG1lbWNvbG9yOgogICogQHBjY19ibGs6CiAgKiBAaWdjX2JsazoK LSAqIEBmb3JtYXRfbGlzdDogUG9pbnRlciB0byBsaXN0IG9mIHN1cHBvcnRlZCBmb3JtYXRzCiAg Ki8KIHN0cnVjdCBkcHVfc3NwcF9zdWJfYmxrcyB7Ci0JY29uc3Qgc3RydWN0IGRwdV9zc3BwX2Js a3NfY29tbW9uICpjb21tb247CiAJdTMyIGNyZXFfdmJsYW5rOwogCXUzMiBkYW5nZXJfdmJsYW5r OwotCXUzMiBtYXhkd25zY2FsZTsKLQl1MzIgbWF4dXBzY2FsZTsKIAl1MzIgbWF4X3Blcl9waXBl X2J3OwogCXN0cnVjdCBkcHVfc3JjX2JsayBzcmNfYmxrOwogCXN0cnVjdCBkcHVfc2NhbGVyX2Js ayBzY2FsZXJfYmxrOwpAQCAtMzU2LDggKzM0NCw2IEBAIHN0cnVjdCBkcHVfc3NwcF9zdWJfYmxr cyB7CiAJc3RydWN0IGRwdV9wcF9ibGsgbWVtY29sb3JfYmxrOwogCXN0cnVjdCBkcHVfcHBfYmxr IHBjY19ibGs7CiAJc3RydWN0IGRwdV9wcF9ibGsgaWdjX2JsazsKLQotCWNvbnN0IHN0cnVjdCBk cHVfZm9ybWF0X2V4dGVuZGVkICpmb3JtYXRfbGlzdDsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCmluZGV4IDhlMmU1ODIuLmJlZjRlNzEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKQEAgLTYxNiwxMyArNjE2LDE2IEBAIHN0 YXRpYyBpbnQgX2RwdV9rbXNfZHJtX29ial9pbml0KHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQog CiAJLyogQ3JlYXRlIHRoZSBwbGFuZXMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgY2F0YWxvZy0+c3Nw cF9jb3VudDsgaSsrKSB7Ci0JCWJvb2wgcHJpbWFyeSA9IHRydWU7CisJCWVudW0gZHJtX3BsYW5l X3R5cGUgdHlwZTsKIAotCQlpZiAoY2F0YWxvZy0+c3NwcFtpXS5mZWF0dXJlcyAmIEJJVChEUFVf U1NQUF9DVVJTT1IpCi0JCQl8fCBwcmltYXJ5X3BsYW5lc19pZHggPj0gbWF4X2NydGNfY291bnQp Ci0JCQlwcmltYXJ5ID0gZmFsc2U7CisJCWlmIChjYXRhbG9nLT5zc3BwW2ldLmZlYXR1cmVzICYg QklUKERQVV9TU1BQX0NVUlNPUikpCisJCQl0eXBlID0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SOwor CQllbHNlIGlmIChwcmltYXJ5X3BsYW5lc19pZHggPCBtYXhfY3J0Y19jb3VudCkKKwkJCXR5cGUg PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOworCQllbHNlCisJCQl0eXBlID0gRFJNX1BMQU5FX1RZ UEVfT1ZFUkxBWTsKIAotCQlwbGFuZSA9IGRwdV9wbGFuZV9pbml0KGRldiwgY2F0YWxvZy0+c3Nw cFtpXS5pZCwgcHJpbWFyeSwKKwkJcGxhbmUgPSBkcHVfcGxhbmVfaW5pdChkZXYsIGNhdGFsb2ct PnNzcHBbaV0uaWQsIHR5cGUsCiAJCQkJKDFVTCA8PCBtYXhfY3J0Y19jb3VudCkgLSAxKTsKIAkJ aWYgKElTX0VSUihwbGFuZSkpIHsKIAkJCURQVV9FUlJPUigiZHB1X3BsYW5lX2luaXQgZmFpbGVk XG4iKTsKQEAgLTYzMSw5ICs2MzQsOSBAQCBzdGF0aWMgaW50IF9kcHVfa21zX2RybV9vYmpfaW5p dChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKIAkJfQogCQlwcml2LT5wbGFuZXNbcHJpdi0+bnVt X3BsYW5lcysrXSA9IHBsYW5lOwogCi0JCWlmIChwcmltYXJ5KQorCQlpZiAodHlwZSA9PSBEUk1f UExBTkVfVFlQRV9QUklNQVJZKQogCQkJcHJpbWFyeV9wbGFuZXNbcHJpbWFyeV9wbGFuZXNfaWR4 KytdID0gcGxhbmU7Ci0JCWlmIChjYXRhbG9nLT5zc3BwW2ldLmZlYXR1cmVzICYgQklUKERQVV9T U1BQX0NVUlNPUikpCisJCWlmICh0eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikKIAkJCWN1 cnNvcl9wbGFuZXNbY3Vyc29yX3BsYW5lc19pZHgrK10gPSBwbGFuZTsKIAogCX0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jIGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMKaW5kZXggMGZkMDVkZS4uYmU0MGEyYyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMKQEAgLTE1MSw2ICsx NTEsNyBAQCBzdGF0aWMgYm9vbCBkcHVfcGxhbmVfc3NwcF9lbmFibGVkKHN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnN0YXRlKQogc3RhdGljIGlubGluZSBpbnQgX2RwdV9wbGFuZV9jYWxjX2ZpbGxf bGV2ZWwoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWNvbnN0IHN0cnVjdCBkcHVfZm9ybWF0 ICpmbXQsIHUzMiBzcmNfd2lkdGgpCiB7CisJc3RydWN0IGRwdV9rbXMgKmttczsKIAlzdHJ1Y3Qg ZHB1X3BsYW5lICpwZHB1OwogCXN0cnVjdCBkcHVfcGxhbmVfc3RhdGUgKnBzdGF0ZTsKIAl1MzIg Zml4ZWRfYnVmZl9zaXplOwpAQCAtMTYzLDcgKzE2NCw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IF9k cHVfcGxhbmVfY2FsY19maWxsX2xldmVsKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCiAJcGRw dSA9IHRvX2RwdV9wbGFuZShwbGFuZSk7CiAJcHN0YXRlID0gdG9fZHB1X3BsYW5lX3N0YXRlKHBs YW5lLT5zdGF0ZSk7Ci0JZml4ZWRfYnVmZl9zaXplID0gcGRwdS0+cGlwZV9zYmxrLT5jb21tb24t PnBpeGVsX3JhbV9zaXplOworCisJa21zID0gX2RwdV9wbGFuZV9nZXRfa21zKCZwZHB1LT5iYXNl KTsKKwlmaXhlZF9idWZmX3NpemUgPSBrbXMtPmNhdGFsb2ctPmNhcHMtPm1heF9zc3BwX3BpeGVs X3JhbV9zaXplOwogCiAJaWYgKGZtdC0+ZmV0Y2hfcGxhbmVzID09IERQVV9QTEFORV9QU0VVRE9f UExBTkFSKSB7CiAJCWlmIChmbXQtPmNocm9tYV9zYW1wbGUgPT0gRFBVX0NIUk9NQV80MjApIHsK QEAgLTkxNSwxMiArOTE4LDE0IEBAIHN0YXRpYyBpbnQgZHB1X3BsYW5lX3NzcHBfYXRvbWljX2No ZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpz dGF0ZSkKIHsKIAlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgZHB1X2ttcyAqa21zOwogCXN0cnVjdCBk cHVfcGxhbmUgKnBkcHU7CiAJc3RydWN0IGRwdV9wbGFuZV9zdGF0ZSAqcHN0YXRlOwogCWNvbnN0 IHN0cnVjdCBkcHVfZm9ybWF0ICpmbXQ7CiAJc3RydWN0IGRwdV9yZWN0IHNyYywgZHN0OwogCXVp bnQzMl90IG1heF91cHNjYWxlLCBtYXhfZG93bnNjYWxlLCBtaW5fc3JjX3NpemUsIG1heF9saW5l d2lkdGg7CiAJYm9vbCBxMTZfZGF0YSA9IHRydWU7CisJdWludDMyX3QgY2FwcyA9IDA7CiAKIAlp ZiAoIXBsYW5lIHx8ICFzdGF0ZSkgewogCQlEUFVfRVJST1IoImludmFsaWQgYXJnKHMpLCBwbGFu ZSAlZCBzdGF0ZSAlZFxuIiwKQEAgLTkzMiwxMSArOTM3LDggQEAgc3RhdGljIGludCBkcHVfcGxh bmVfc3NwcF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJcGRwdSA9IHRv X2RwdV9wbGFuZShwbGFuZSk7CiAJcHN0YXRlID0gdG9fZHB1X3BsYW5lX3N0YXRlKHN0YXRlKTsK IAotCWlmICghcGRwdS0+cGlwZV9zYmxrKSB7Ci0JCURQVV9FUlJPUl9QTEFORShwZHB1LCAiaW52 YWxpZCBjYXRhbG9nXG4iKTsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290byBleGl0OwotCX0KKwlr bXMgPSBfZHB1X3BsYW5lX2dldF9rbXMoJnBkcHUtPmJhc2UpOworCW1heF9saW5ld2lkdGggPSBr bXMtPmNhdGFsb2ctPmNhcHMtPm1heF9zc3BwX3dpZHRoOwogCiAJLyogc3JjIHZhbHVlcyBhcmUg aW4gUTE2IGZpeGVkIHBvaW50LCBjb252ZXJ0IHRvIGludGVnZXIgKi8KIAlQT1BVTEFURV9SRUNU KCZzcmMsIHN0YXRlLT5zcmNfeCwgc3RhdGUtPnNyY195LCBzdGF0ZS0+c3JjX3csCkBAIC05NDQs MTAgKzk0Niw2IEBAIHN0YXRpYyBpbnQgZHB1X3BsYW5lX3NzcHBfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCVBPUFVMQVRFX1JFQ1QoJmRzdCwgc3RhdGUtPmNydGNfeCwg c3RhdGUtPmNydGNfeSwgc3RhdGUtPmNydGNfdywKIAkJc3RhdGUtPmNydGNfaCwgIXExNl9kYXRh KTsKIAotCW1heF91cHNjYWxlID0gcGRwdS0+cGlwZV9zYmxrLT5tYXh1cHNjYWxlOwotCW1heF9k b3duc2NhbGUgPSBwZHB1LT5waXBlX3NibGstPm1heGR3bnNjYWxlOwotCW1heF9saW5ld2lkdGgg PSBwZHB1LT5waXBlX3NibGstPmNvbW1vbi0+bWF4bGluZXdpZHRoOwotCiAJRFBVX0RFQlVHX1BM QU5FKHBkcHUsICJjaGVjayAlZCAtPiAlZFxuIiwKIAkJZHB1X3BsYW5lX2VuYWJsZWQocGxhbmUt PnN0YXRlKSwgZHB1X3BsYW5lX2VuYWJsZWQoc3RhdGUpKTsKIApAQCAtOTU2LDE4ICs5NTQsMTkg QEAgc3RhdGljIGludCBkcHVfcGxhbmVfc3NwcF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAKIAlmbXQgPSB0b19kcHVfZm9ybWF0KG1zbV9mcmFtZWJ1ZmZlcl9mb3JtYXQo c3RhdGUtPmZiKSk7CiAKLQltaW5fc3JjX3NpemUgPSBEUFVfRk9STUFUX0lTX1lVVihmbXQpID8g MiA6IDE7CisJaWYgKERQVV9GT1JNQVRfSVNfWVVWKGZtdCkpCisJCWNhcHMgfD0gQklUKGttcy0+ Y2F0YWxvZy0+Y2Fwcy0+cXNlZWRfdHlwZSkgfAorCQkJQklUKGttcy0+Y2F0YWxvZy0+Y2Fwcy0+ Y3NjX3R5cGUpOwogCi0JaWYgKERQVV9GT1JNQVRfSVNfWVVWKGZtdCkgJiYKLQkJKCEocGRwdS0+ ZmVhdHVyZXMgJiBEUFVfU1NQUF9TQ0FMRVIpIHx8Ci0JCSAhKHBkcHUtPmZlYXR1cmVzICYgKEJJ VChEUFVfU1NQUF9DU0MpCi0JCSB8IEJJVChEUFVfU1NQUF9DU0NfMTBCSVQpKSkpKSB7Ci0JCURQ VV9FUlJPUl9QTEFORShwZHB1LAotCQkJCSJwbGFuZSBkb2Vzbid0IGhhdmUgc2NhbGVyL2NzYyBm b3IgeXV2XG4iKTsKLQkJcmV0ID0gLUVJTlZBTDsKKwlpZiAoKHNyYy53ICE9IGRzdC53KSB8fCAo c3JjLmggIT0gZHN0LmgpKQorCQljYXBzIHw9IEJJVChrbXMtPmNhdGFsb2ctPmNhcHMtPnFzZWVk X3R5cGUpOworCisJbWF4X3Vwc2NhbGUgPSAoY2FwcyAmIERQVV9TU1BQX1NDQUxFUikgPyBNQVhf VVBTQ0FMRV9SQVRJTyA6IDE7CisJbWF4X2Rvd25zY2FsZSA9IChjYXBzICYgRFBVX1NTUFBfU0NB TEVSKSA/IE1BWF9ET1dOU0NBTEVfUkFUSU8gOiAxOworCW1pbl9zcmNfc2l6ZSA9IERQVV9GT1JN QVRfSVNfWVVWKGZtdCkgPyAyIDogMTsKIAogCS8qIGNoZWNrIHNyYyBib3VuZHMgKi8KLQl9IGVs c2UgaWYgKHN0YXRlLT5mYi0+d2lkdGggPiBNQVhfSU1HX1dJRFRIIHx8CisJaWYgKHN0YXRlLT5m Yi0+d2lkdGggPiBNQVhfSU1HX1dJRFRIIHx8CiAJCXN0YXRlLT5mYi0+aGVpZ2h0ID4gTUFYX0lN R19IRUlHSFQgfHwKIAkJc3JjLncgPCBtaW5fc3JjX3NpemUgfHwgc3JjLmggPCBtaW5fc3JjX3Np emUgfHwKIAkJQ0hFQ0tfTEFZRVJfQk9VTkRTKHNyYy54LCBzcmMudywgc3RhdGUtPmZiLT53aWR0 aCkgfHwKQEAgLTk4OSwxNCArOTg4LDYgQEAgc3RhdGljIGludCBkcHVfcGxhbmVfc3NwcF9hdG9t aWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJZHN0LngsIGRzdC55LCBkc3Qu dywgZHN0LmgpOwogCQlyZXQgPSAtRUlOVkFMOwogCi0JLyogZGVjaW1hdGlvbiB2YWxpZGF0aW9u ICovCi0JfSBlbHNlIGlmICghKHBkcHUtPmZlYXR1cmVzICYgRFBVX1NTUFBfU0NBTEVSKSAmJgot CQkoKHNyYy53ICE9IGRzdC53KSB8fCAoc3JjLmggIT0gZHN0LmgpKSkgewotCQlEUFVfRVJST1Jf UExBTkUocGRwdSwKLQkJCSJwaXBlIGRvZXNuJ3Qgc3VwcG9ydCBzY2FsaW5nICV1eCV1LT4ldXgl dVxuIiwKLQkJCXNyYy53LCBzcmMuaCwgZHN0LncsIGRzdC5oKTsKLQkJcmV0ID0gLUVJTlZBTDsK LQogCS8qIGNoZWNrIGRlY2ltYXRlZCBzb3VyY2Ugd2lkdGggKi8KIAl9IGVsc2UgaWYgKHNyYy53 ID4gbWF4X2xpbmV3aWR0aCkgewogCQlEUFVfRVJST1JfUExBTkUocGRwdSwKQEAgLTEyOTIsOSAr MTI4Myw2IEBAIHN0YXRpYyB2b2lkIGRwdV9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lKQogCQkvKiB0aGlzIHdpbGwgZGVzdHJveSB0aGUgc3RhdGVzIGFzIHdlbGwgKi8KIAkJ ZHJtX3BsYW5lX2NsZWFudXAocGxhbmUpOwogCi0JCWlmIChwZHB1LT5waXBlX2h3KQotCQkJZHB1 X2h3X3NzcHBfZGVzdHJveShwZHB1LT5waXBlX2h3KTsKLQogCQlrZnJlZShwZHB1KTsKIAl9CiB9 CkBAIC0xNDc5LDggKzE0NjcsNiBAQCBzdGF0aWMgaW50IF9kcHVfcGxhbmVfaW5pdF9kZWJ1Z2Zz KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHU7CiAJc3Ry dWN0IGRwdV9rbXMgKmttczsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2OwotCWNvbnN0 IHN0cnVjdCBkcHVfc3NwcF9zdWJfYmxrcyAqc2JsayA9IDA7Ci0JY29uc3Qgc3RydWN0IGRwdV9z c3BwX2NmZyAqY2ZnID0gMDsKIAogCWlmICghcGxhbmUgfHwgIXBsYW5lLT5kZXYpIHsKIAkJRFBV X0VSUk9SKCJpbnZhbGlkIGFyZ3VtZW50c1xuIik7CkBAIC0xNDk2LDE0ICsxNDgyLDYgQEAgc3Rh dGljIGludCBfZHB1X3BsYW5lX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkK IAlrbXMgPSB0b19kcHVfa21zKHByaXYtPmttcyk7CiAJcGRwdSA9IHRvX2RwdV9wbGFuZShwbGFu ZSk7CiAKLQlpZiAocGRwdSAmJiBwZHB1LT5waXBlX2h3KQotCQljZmcgPSBwZHB1LT5waXBlX2h3 LT5jYXA7Ci0JaWYgKGNmZykKLQkJc2JsayA9IGNmZy0+c2JsazsKLQotCWlmICghc2JsaykKLQkJ cmV0dXJuIDA7Ci0KIAkvKiBjcmVhdGUgb3ZlcmFsbCBzdWItZGlyZWN0b3J5IGZvciB0aGUgcGlw ZSAqLwogCXBkcHUtPmRlYnVnZnNfcm9vdCA9CiAJCWRlYnVnZnNfY3JlYXRlX2RpcihwZHB1LT5w aXBlX25hbWUsCkBAIC0xNTEyLDYwICsxNDkwLDYgQEAgc3RhdGljIGludCBfZHB1X3BsYW5lX2lu aXRfZGVidWdmcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAlpZiAoIXBkcHUtPmRlYnVnZnNf cm9vdCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQkvKiBkb24ndCBlcnJvciBjaGVjayB0aGVzZSAq LwotCWRlYnVnZnNfY3JlYXRlX3gzMigiZmVhdHVyZXMiLCAwNjAwLAotCQkJcGRwdS0+ZGVidWdm c19yb290LCAmcGRwdS0+ZmVhdHVyZXMpOwotCi0JLyogYWRkIHJlZ2lzdGVyIGR1bXAgc3VwcG9y dCAqLwotCWRwdV9kZWJ1Z2ZzX3NldHVwX3JlZ3NldDMyKCZwZHB1LT5kZWJ1Z2ZzX3NyYywKLQkJ CXNibGstPnNyY19ibGsuYmFzZSArIGNmZy0+YmFzZSwKLQkJCXNibGstPnNyY19ibGsubGVuLAot CQkJa21zKTsKLQlkcHVfZGVidWdmc19jcmVhdGVfcmVnc2V0MzIoInNyY19ibGsiLCAwNDAwLAot CQkJcGRwdS0+ZGVidWdmc19yb290LCAmcGRwdS0+ZGVidWdmc19zcmMpOwotCi0JaWYgKGNmZy0+ ZmVhdHVyZXMgJiBCSVQoRFBVX1NTUFBfU0NBTEVSX1FTRUVEMykgfHwKLQkJCWNmZy0+ZmVhdHVy ZXMgJiBCSVQoRFBVX1NTUFBfU0NBTEVSX1FTRUVEMikpIHsKLQkJZHB1X2RlYnVnZnNfc2V0dXBf cmVnc2V0MzIoJnBkcHUtPmRlYnVnZnNfc2NhbGVyLAotCQkJCXNibGstPnNjYWxlcl9ibGsuYmFz ZSArIGNmZy0+YmFzZSwKLQkJCQlzYmxrLT5zY2FsZXJfYmxrLmxlbiwKLQkJCQlrbXMpOwotCQlk cHVfZGVidWdmc19jcmVhdGVfcmVnc2V0MzIoInNjYWxlcl9ibGsiLCAwNDAwLAotCQkJCXBkcHUt PmRlYnVnZnNfcm9vdCwKLQkJCQkmcGRwdS0+ZGVidWdmc19zY2FsZXIpOwotCQlkZWJ1Z2ZzX2Ny ZWF0ZV9ib29sKCJkZWZhdWx0X3NjYWxpbmciLAotCQkJCTA2MDAsCi0JCQkJcGRwdS0+ZGVidWdm c19yb290LAotCQkJCSZwZHB1LT5kZWJ1Z2ZzX2RlZmF1bHRfc2NhbGUpOwotCX0KLQotCWlmIChj ZmctPmZlYXR1cmVzICYgQklUKERQVV9TU1BQX0NTQykgfHwKLQkJCWNmZy0+ZmVhdHVyZXMgJiBC SVQoRFBVX1NTUFBfQ1NDXzEwQklUKSkgewotCQlkcHVfZGVidWdmc19zZXR1cF9yZWdzZXQzMigm cGRwdS0+ZGVidWdmc19jc2MsCi0JCQkJc2Jsay0+Y3NjX2Jsay5iYXNlICsgY2ZnLT5iYXNlLAot CQkJCXNibGstPmNzY19ibGsubGVuLAotCQkJCWttcyk7Ci0JCWRwdV9kZWJ1Z2ZzX2NyZWF0ZV9y ZWdzZXQzMigiY3NjX2JsayIsIDA0MDAsCi0JCQkJcGRwdS0+ZGVidWdmc19yb290LCAmcGRwdS0+ ZGVidWdmc19jc2MpOwotCX0KLQotCWRlYnVnZnNfY3JlYXRlX3UzMigieGluX2lkIiwKLQkJCTA0 MDAsCi0JCQlwZHB1LT5kZWJ1Z2ZzX3Jvb3QsCi0JCQkodTMyICopICZjZmctPnhpbl9pZCk7Ci0J ZGVidWdmc19jcmVhdGVfdTMyKCJjbGtfY3RybCIsCi0JCQkwNDAwLAotCQkJcGRwdS0+ZGVidWdm c19yb290LAotCQkJKHUzMiAqKSAmY2ZnLT5jbGtfY3RybCk7Ci0JZGVidWdmc19jcmVhdGVfeDMy KCJjcmVxX3ZibGFuayIsCi0JCQkwNjAwLAotCQkJcGRwdS0+ZGVidWdmc19yb290LAotCQkJKHUz MiAqKSAmc2Jsay0+Y3JlcV92YmxhbmspOwotCWRlYnVnZnNfY3JlYXRlX3gzMigiZGFuZ2VyX3Zi bGFuayIsCi0JCQkwNjAwLAotCQkJcGRwdS0+ZGVidWdmc19yb290LAotCQkJKHUzMiAqKSAmc2Js ay0+ZGFuZ2VyX3ZibGFuayk7Ci0KIAlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJkaXNhYmxlX2Rhbmdl ciIsCiAJCQkwNjAwLAogCQkJcGRwdS0+ZGVidWdmc19yb290LApAQCAtMTYyOSwxNCArMTU1Mywx MyBAQCBlbnVtIGRwdV9zc3BwIGRwdV9wbGFuZV9waXBlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l KQogCiAvKiBpbml0aWFsaXplIHBsYW5lICovCiBzdHJ1Y3QgZHJtX3BsYW5lICpkcHVfcGxhbmVf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQl1aW50MzJfdCBwaXBlLCBib29sIHByaW1h cnlfcGxhbmUsCisJCXVpbnQzMl90IHBpcGUsIGVudW0gZHJtX3BsYW5lX3R5cGUgdHlwZSwKIAkJ dW5zaWduZWQgbG9uZyBwb3NzaWJsZV9jcnRjcykKIHsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSA9IE5VTEw7CiAJc3RydWN0IGRwdV9wbGFuZSAqcGRwdTsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2 YXRlICpwcml2OwogCXN0cnVjdCBkcHVfa21zICprbXM7Ci0JZW51bSBkcm1fcGxhbmVfdHlwZSB0 eXBlOwogCWludCB6cG9zX21heCA9IERQVV9aUE9TX01BWDsKIAlpbnQgcmV0ID0gLUVJTlZBTDsK IApAQCAtMTY3MCw1NCArMTU5MywyMiBAQCBzdHJ1Y3QgZHJtX3BsYW5lICpkcHVfcGxhbmVfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlnb3RvIGV4aXQ7CiAJfQogCi0JLyogY2FjaGUg bG9jYWwgc3R1ZmYgZm9yIGxhdGVyICovCiAJcGxhbmUgPSAmcGRwdS0+YmFzZTsKLQlwZHB1LT5w aXBlID0gcGlwZTsKLQotCS8qIGluaXRpYWxpemUgdW5kZXJseWluZyBoL3cgZHJpdmVyICovCi0J cGRwdS0+cGlwZV9odyA9IGRwdV9od19zc3BwX2luaXQocGlwZSwga21zLT5tbWlvLCBrbXMtPmNh dGFsb2cpOwogCi0JaWYgKElTX0VSUihwZHB1LT5waXBlX2h3KSkgewotCQlEUFVfRVJST1IoIlsl dV1TU1BQIGluaXQgZmFpbGVkXG4iLCBwaXBlKTsKLQkJcmV0ID0gUFRSX0VSUihwZHB1LT5waXBl X2h3KTsKLQkJZ290byBjbGVhbl9wbGFuZTsKLQl9IGVsc2UgaWYgKCFwZHB1LT5waXBlX2h3LT5j YXAgfHwgIXBkcHUtPnBpcGVfaHctPmNhcC0+c2JsaykgewotCQlEUFVfRVJST1IoIlsldV1TU1BQ IGluaXQgcmV0dXJuZWQgaW52YWxpZCBjZmdcbiIsIHBpcGUpOwotCQlnb3RvIGNsZWFuX3NzcHA7 Ci0JfQotCi0JLyogY2FjaGUgZmVhdHVyZXMgbWFzayBmb3IgbGF0ZXIgKi8KLQlwZHB1LT5mZWF0 dXJlcyA9IHBkcHUtPnBpcGVfaHctPmNhcC0+ZmVhdHVyZXM7Ci0JcGRwdS0+cGlwZV9zYmxrID0g cGRwdS0+cGlwZV9ody0+Y2FwLT5zYmxrOwotCWlmICghcGRwdS0+cGlwZV9zYmxrKSB7Ci0JCURQ VV9FUlJPUigiWyV1XWludmFsaWQgc2Jsa1xuIiwgcGlwZSk7Ci0JCWdvdG8gY2xlYW5fc3NwcDsK LQl9Ci0KLQlwZHB1LT5uZm9ybWF0cyA9IGRwdV9wb3B1bGF0ZV9mb3JtYXRzKAotCQkJCXBkcHUt PnBpcGVfc2Jsay0+Zm9ybWF0X2xpc3QsCi0JCQkJcGRwdS0+Zm9ybWF0cywKLQkJCQkwLAorCXBk cHUtPm5mb3JtYXRzID0gZHB1X3BvcHVsYXRlX2Zvcm1hdHMocGxhbmVfZm9ybWF0c195dXYsCisJ CQkJcGRwdS0+Zm9ybWF0cywgMCwKIAkJCQlBUlJBWV9TSVpFKHBkcHUtPmZvcm1hdHMpKTsKIAog CWlmICghcGRwdS0+bmZvcm1hdHMpIHsKIAkJRFBVX0VSUk9SKCJbJXVdbm8gdmFsaWQgZm9ybWF0 cyBmb3IgcGxhbmVcbiIsIHBpcGUpOwotCQlnb3RvIGNsZWFuX3NzcHA7CisJCWdvdG8gY2xlYW5f cGxhbmU7CiAJfQogCi0JaWYgKHBkcHUtPmZlYXR1cmVzICYgQklUKERQVV9TU1BQX0NVUlNPUikp Ci0JCXR5cGUgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1I7Ci0JZWxzZSBpZiAocHJpbWFyeV9wbGFu ZSkKLQkJdHlwZSA9IERSTV9QTEFORV9UWVBFX1BSSU1BUlk7Ci0JZWxzZQotCQl0eXBlID0gRFJN X1BMQU5FX1RZUEVfT1ZFUkxBWTsKIAlyZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoZGV2 LCBwbGFuZSwgMHhmZiwgJmRwdV9wbGFuZV9mdW5jcywKIAkJCQlwZHB1LT5mb3JtYXRzLCBwZHB1 LT5uZm9ybWF0cywKIAkJCQlOVUxMLCB0eXBlLCBOVUxMKTsKIAlpZiAocmV0KQotCQlnb3RvIGNs ZWFuX3NzcHA7Ci0KLQlwZHB1LT5jYXRhbG9nID0ga21zLT5jYXRhbG9nOworCQlnb3RvIGNsZWFu X3BsYW5lOwogCiAJaWYgKGttcy0+Y2F0YWxvZy0+bWl4ZXJfY291bnQgJiYKIAkJa21zLT5jYXRh bG9nLT5taXhlclswXS5zYmxrLT5tYXhibGVuZHN0YWdlcykgewpAQCAtMTc0Miw5ICsxNjMzLDYg QEAgc3RydWN0IGRybV9wbGFuZSAqZHB1X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAkJCQkJcGlwZSwgcGxhbmUtPmJhc2UuaWQpOwogCXJldHVybiBwbGFuZTsKIAotY2xlYW5f c3NwcDoKLQlpZiAocGRwdSAmJiBwZHB1LT5waXBlX2h3KQotCQlkcHVfaHdfc3NwcF9kZXN0cm95 KHBkcHUtPnBpcGVfaHcpOwogY2xlYW5fcGxhbmU6CiAJa2ZyZWUocGRwdSk7CiBleGl0OgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmggYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuaAppbmRleCAzNzk1YTMzNi4uZTA2 ODg4OTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFu ZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5oCkBAIC0x MDIsMTIgKzEwMiwxMSBAQCB2b2lkIGRwdV9wbGFuZV9nZXRfY3RsX2ZsdXNoKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHB1X2h3X2N0bCAqY3RsLAogICogZHB1X3BsYW5lX2luaXQg LSBjcmVhdGUgbmV3IGRwdSBwbGFuZSBmb3IgdGhlIGdpdmVuIHBpcGUKICAqIEBkZXY6ICAgUG9p bnRlciB0byBEUk0gZGV2aWNlCiAgKiBAcGlwZTogIGRwdSBoYXJkd2FyZSBwaXBlIGlkZW50aWZp ZXIKLSAqIEBwcmltYXJ5X3BsYW5lOiB0cnVlIGlmIHRoaXMgcGlwZSBpcyBwcmltYXJ5IHBsYW5l IGZvciBjcnRjCisgKiBAdHlwZTogIHBsYW5lIHR5cGUgLSBQUklNQVJZL0NVUlNPUi9PVkVSTEFZ CiAgKiBAcG9zc2libGVfY3J0Y3M6IGJpdG1hc2sgb2YgY3J0YyB0aGF0IGNhbiBiZSBhdHRhY2hl ZCB0byB0aGUgZ2l2ZW4gcGlwZQotICoKICAqLwogc3RydWN0IGRybV9wbGFuZSAqZHB1X3BsYW5l X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJdWludDMyX3QgcGlwZSwgYm9vbCBwcmlt YXJ5X3BsYW5lLAorCQl1aW50MzJfdCBwaXBlLCBlbnVtIGRybV9wbGFuZV90eXBlIHR5cGUsCiAJ CXVuc2lnbmVkIGxvbmcgcG9zc2libGVfY3J0Y3MpOwogCiAvKioKLS0gClRoZSBRdWFsY29tbSBJ bm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9y dW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxp c3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=