From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 31/32] drm: Nuke fb->bits_per_pixel Date: Thu, 17 Nov 2016 18:14:30 +0200 Message-ID: <1479399271-31991-32-git-send-email-ville.syrjala@linux.intel.com> References: <1479399271-31991-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE1676E807 for ; Thu, 17 Nov 2016 16:16:28 +0000 (UTC) In-Reply-To: <1479399271-31991-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClJl cGxhY2UgdXNlcyBvZiBmYi0+Yml0c19wZXJfcGl4ZWwgd2l0aCBmYi0+Zm9ybWF0LT5jcHBbMF0q OC4KTGVzcyBkdXBsaWNhdGVkIGluZm9ybWF0aW9uIGlzIGEgZ29vZCB0aGluZy4KCk5vdGUgdGhh dCBJIGRpZG4ndCBwdXQgcGFyZW5zIGFyb3VuZCB0aGUgY3BwKjggaW4gdGhlIGJlbG93IGNvY2Np IHNjcmlwdCwKb24gYWNjb3VudCBvZiBub3Qgd2FudGluZyBzcHVyaW91cyBwYXJlbnMgYWxsIG92 ZXIgdGhlIHBsYWNlLiBJbnN0ZWFkIEkKZGlkIHRoZSB1bnNhZmUgd2F5LCBhbmQgdHJpZWQgdG8g bG9vayBvdmVyIHRoZSBlbnRpcmUgZGlmZiB0byBzcG90IGlmCmFueSBkYW5nZXJvdXMgZXhwcmVz c2lvbnMgd2VyZSBwcm9kdWNlZC4gSSBkaWRuJ3Qgc2VlIGFueS4KClRoZXJlIGFyZSBzb21lIGNh c2VzIHdoZXJlIHByZXZpb3VzbHkgdGhlIGNvZGUgZGlkIFgqYnBwLzgsIHNvIHRoZQpkaXZpc2lv biBoYXBwZW5lZCBhZnRlciB0aGUgbXVsdGlwbGljYXRpb24uIFRob3NlIGFyZSBub3cganVzdCBY KmNwcApzbyB0aGUgZGl2aXNpb24gZWZmZWN0aXZlbHkgaGFwcGVucyBiZWZvcmUgdGhlIG11bHRp cGxpY2F0aW9uLApidXQgdGhhdCBpcyBwZXJmZWN0bHkgZmluZSBzaW5jZSBicHAgaXMgYWx3YXlz IGEgbXVsdGlwbGUgb2YgOC4KCkBACnN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwpleHByZXNz aW9uIEU7CkBACiBkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QoLi4uKSB7CgkuLi4KLQlm Yi0+Yml0c19wZXJfcGl4ZWwgPSBFOwoJLi4uCiB9CgpAQApzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVy X3N1cmZhY2UgKnZmYjsKZXhwcmVzc2lvbiBFOwpAQAotIHZmYi0+YmFzZS5iYXNlLmJpdHNfcGVy X3BpeGVsID0gRTsKCkBACnN0cnVjdCB2bXdfZnJhbWVidWZmZXJfZG1hYnVmICp2ZmI7CmV4cHJl c3Npb24gRTsKQEAKLSB2ZmItPmJhc2UuYmFzZS5iaXRzX3Blcl9waXhlbCA9IEU7CgpAQApzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKZXhwcmVzc2lvbiBFOwpAQAogaTl4eF9nZXRfaW5pdGlh bF9wbGFuZV9jb25maWcoLi4uKSB7CgkuLi4KLQlmYi0+Yml0c19wZXJfcGl4ZWwgPSBFOwoJLi4u CiB9CgpAQApzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKZXhwcmVzc2lvbiBFOwpAQAogaXJv bmxha2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKC4uLikgewoJLi4uCi0JZmItPmJpdHNfcGVy X3BpeGVsID0gRTsKCS4uLgogfQoKQEAKc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CmV4cHJl c3Npb24gRTsKQEAKIHNreWxha2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKC4uLikgewoJLi4u Ci0JZmItPmJpdHNfcGVyX3BpeGVsID0gRTsKCS4uLgogfQoKQEAKc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciBmYjsKZXhwcmVzc2lvbiBFOwpAQAooCi0gRSAqIGZiLmJpdHNfcGVyX3BpeGVsIC8gOAor IEUgKiBmYi5mb3JtYXQtPmNwcFswXQp8Ci0gZmIuYml0c19wZXJfcGl4ZWwgLyA4CisgZmIuZm9y bWF0LT5jcHBbMF0KfAotIEUgKiBmYi5iaXRzX3Blcl9waXhlbCA+PiAzCisgRSAqIGZiLmZvcm1h dC0+Y3BwWzBdCnwKLSBmYi5iaXRzX3Blcl9waXhlbCA+PiAzCisgZmIuZm9ybWF0LT5jcHBbMF0K fAotIChmYi5iaXRzX3Blcl9waXhlbCArIDcpIC8gOAorIGZiLmZvcm1hdC0+Y3BwWzBdCnwKLSBm Yi5iaXRzX3Blcl9waXhlbAorIGZiLmZvcm1hdC0+Y3BwWzBdICogOAp8Ci0gZmIuZm9ybWF0LT5j cHBbMF0gKiA4ICE9IDgKKyBmYi5mb3JtYXQtPmNwcFswXSAhPSAxCikKCkBACnN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiOwpleHByZXNzaW9uIEU7CkBACigKLSBFICogZmItPmJpdHNfcGVyX3Bp eGVsIC8gOAorIEUgKiBmYi0+Zm9ybWF0LT5jcHBbMF0KfAotIGZiLT5iaXRzX3Blcl9waXhlbCAv IDgKKyBmYi0+Zm9ybWF0LT5jcHBbMF0KfAotIEUgKiBmYi0+Yml0c19wZXJfcGl4ZWwgPj4gMwor IEUgKiBmYi0+Zm9ybWF0LT5jcHBbMF0KfAotIGZiLT5iaXRzX3Blcl9waXhlbCA+PiAzCisgZmIt PmZvcm1hdC0+Y3BwWzBdCnwKLSAoZmItPmJpdHNfcGVyX3BpeGVsICsgNykgLyA4CisgZmItPmZv cm1hdC0+Y3BwWzBdCnwKLSBmYi0+Yml0c19wZXJfcGl4ZWwKKyBmYi0+Zm9ybWF0LT5jcHBbMF0g KiA4CnwKLSBmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4ICE9IDgKKyBmYi0+Zm9ybWF0LT5jcHBbMF0g IT0gMQopCgpAQApzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGZiOwpAQAotIChmYi5mb3JtYXQtPmNw cFswXSkKKyBmYi5mb3JtYXQtPmNwcFswXQoKQEAKc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7 CkBACi0gKGZiLT5mb3JtYXQtPmNwcFswXSkKKyBmYi0+Zm9ybWF0LT5jcHBbMF0KCkBACkBACiBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIHsKCSAuLi4KLQkgaW50IGJpdHNfcGVyX3BpeGVsOwoJIC4u LgogfTsKClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jICAg ICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYyAgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYyAgICAgICAgICB8 ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMgICAgICAgICB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9mYi5jICAgICAgICAgICAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jICAgICAgICAgICAgICAgIHwgIDkg KysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19mYmRldi5jICAgICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jICAgICAgICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgICAgICAgICAgICAgICB8ICA4 ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgICAgICAgICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jICAgICAgICAgIHwg IDMgLS0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczU0MzNfZHJtX2RlY29uLmMgfCAg NCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29uLmMgICAgfCAg NiArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9mYmRldi5jICAgICB8 ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMgICAgICB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jICAgICAgICAgfCAg NCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2ZyYW1lYnVmZmVyLmMgICAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9nbWFfZGlzcGxheS5jICAgICAgICAgIHwgIDQg KystLQogZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9pbnRlbF9kaXNwbGF5LmMgIHwgIDYg KysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2NydGMuYyAgICAgICAgfCAg NCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICAgfCAg NCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgICAgfCAx MSArKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyAgICAgICAg ICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2ZiLmMgICAg ICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9tb2RlLmMgICAg ICAgIHwgMTYgKysrKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52 MDQvY3J0Yy5jICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVh dV9kaXNwbGF5LmMgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2RyYXcuYyAg ICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2Ny dGMuYyAgICAgICAgfCAxMSArKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAw LmMgICAgICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fZGlzcGxheS5jICAgICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9sZWdhY3lfY3J0Yy5jICAgfCAxNCArKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L3RlZ3JhL2RjLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS90 ZWdyYS9kcm0uYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdWRs L3VkbF9mYi5jICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2ZiLmMgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2ZiLmMgICAgICAgICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfa21zLmMgICAgICAgICAgIHwgIDIgLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2xkdS5jICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X3Njcm4uYyAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9zdGR1LmMgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVy LmggICAgICAgICAgICAgICAgIHwgIDcgLS0tLS0tLQogNDQgZmlsZXMgY2hhbmdlZCwgODkgaW5z ZXJ0aW9ucygrKSwgMTAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNl X3YxMF8wLmMKaW5kZXggNjVhOTU0Y2I2OWVkLi45YzhmMzM3ODAyNTcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCkBAIC0yMjIwLDcgKzIyMjAsNyBAQCBzdGF0aWMgaW50 IGRjZV92MTBfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlXUkVH MzIobW1HUlBIX1hfRU5EICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCB0YXJnZXRfZmItPndp ZHRoKTsKIAlXUkVHMzIobW1HUlBIX1lfRU5EICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCB0 YXJnZXRfZmItPmhlaWdodCk7CiAKLQlmYl9waXRjaF9waXhlbHMgPSB0YXJnZXRfZmItPnBpdGNo ZXNbMF0gLyAodGFyZ2V0X2ZiLT5iaXRzX3Blcl9waXhlbCAvIDgpOworCWZiX3BpdGNoX3BpeGVs cyA9IHRhcmdldF9mYi0+cGl0Y2hlc1swXSAvIHRhcmdldF9mYi0+Zm9ybWF0LT5jcHBbMF07CiAJ V1JFRzMyKG1tR1JQSF9QSVRDSCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgZmJfcGl0Y2hf cGl4ZWxzKTsKIAogCWRjZV92MTBfMF9ncnBoX2VuYWJsZShjcnRjLCB0cnVlKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMKaW5kZXggZDgwN2U4NzYzNjZiLi43MmJhM2E1MDQ1 MmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCkBAIC0yMjAxLDcgKzIy MDEsNyBAQCBzdGF0aWMgaW50IGRjZV92MTFfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAlXUkVHMzIobW1HUlBIX1hfRU5EICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zm c2V0LCB0YXJnZXRfZmItPndpZHRoKTsKIAlXUkVHMzIobW1HUlBIX1lfRU5EICsgYW1kZ3B1X2Ny dGMtPmNydGNfb2Zmc2V0LCB0YXJnZXRfZmItPmhlaWdodCk7CiAKLQlmYl9waXRjaF9waXhlbHMg PSB0YXJnZXRfZmItPnBpdGNoZXNbMF0gLyAodGFyZ2V0X2ZiLT5iaXRzX3Blcl9waXhlbCAvIDgp OworCWZiX3BpdGNoX3BpeGVscyA9IHRhcmdldF9mYi0+cGl0Y2hlc1swXSAvIHRhcmdldF9mYi0+ Zm9ybWF0LT5jcHBbMF07CiAJV1JFRzMyKG1tR1JQSF9QSVRDSCArIGFtZGdwdV9jcnRjLT5jcnRj X29mZnNldCwgZmJfcGl0Y2hfcGl4ZWxzKTsKIAogCWRjZV92MTFfMF9ncnBoX2VuYWJsZShjcnRj LCB0cnVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8w LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCmluZGV4IGJjOWYyZjQy MzI3MC4uYWE2NGQ5YzFhOGM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdjZfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMK QEAgLTE2MjMsNyArMTYyMyw3IEBAIHN0YXRpYyBpbnQgZGNlX3Y2XzBfY3J0Y19kb19zZXRfYmFz ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJV1JFRzMyKEVWRVJHUkVFTl9HUlBIX1hfRU5EICsg YW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCB0YXJnZXRfZmItPndpZHRoKTsKIAlXUkVHMzIoRVZF UkdSRUVOX0dSUEhfWV9FTkQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIHRhcmdldF9mYi0+ aGVpZ2h0KTsKIAotCWZiX3BpdGNoX3BpeGVscyA9IHRhcmdldF9mYi0+cGl0Y2hlc1swXSAvICh0 YXJnZXRfZmItPmJpdHNfcGVyX3BpeGVsIC8gOCk7CisJZmJfcGl0Y2hfcGl4ZWxzID0gdGFyZ2V0 X2ZiLT5waXRjaGVzWzBdIC8gdGFyZ2V0X2ZiLT5mb3JtYXQtPmNwcFswXTsKIAlXUkVHMzIoRVZF UkdSRUVOX0dSUEhfUElUQ0ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIGZiX3BpdGNoX3Bp eGVscyk7CiAKIAlkY2VfdjZfMF9ncnBoX2VuYWJsZShjcnRjLCB0cnVlKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9kY2VfdjhfMC5jCmluZGV4IDRhZTU5OTE0YmMzMi4uZWNmNmM2OGI4ZjQzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKQEAgLTIwNzksNyArMjA3OSw3IEBA IHN0YXRpYyBpbnQgZGNlX3Y4XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCiAJV1JFRzMyKG1tR1JQSF9YX0VORCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgdGFy Z2V0X2ZiLT53aWR0aCk7CiAJV1JFRzMyKG1tR1JQSF9ZX0VORCArIGFtZGdwdV9jcnRjLT5jcnRj X29mZnNldCwgdGFyZ2V0X2ZiLT5oZWlnaHQpOwogCi0JZmJfcGl0Y2hfcGl4ZWxzID0gdGFyZ2V0 X2ZiLT5waXRjaGVzWzBdIC8gKHRhcmdldF9mYi0+Yml0c19wZXJfcGl4ZWwgLyA4KTsKKwlmYl9w aXRjaF9waXhlbHMgPSB0YXJnZXRfZmItPnBpdGNoZXNbMF0gLyB0YXJnZXRfZmItPmZvcm1hdC0+ Y3BwWzBdOwogCVdSRUczMihtbUdSUEhfUElUQ0ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQs IGZiX3BpdGNoX3BpeGVscyk7CiAKIAlkY2VfdjhfMF9ncnBoX2VuYWJsZShjcnRjLCB0cnVlKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYyBiL2RyaXZl cnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYwppbmRleCBhNTFmOGNiY2ZlMjYuLmM2OWE1 ZWE1NGYyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfY3J0Yy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYwpAQCAtMTY5LDEyICsx NjksMTIgQEAgc3RhdGljIHVuc2lnbmVkIGFybWFkYV9kcm1fY3J0Y19jYWxjX2ZiKHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiLAogewogCXN0cnVjdCBhcm1hZGFfZ2VtX29iamVjdCAqb2JqID0g ZHJtX2ZiX29iaihmYik7CiAJdW5zaWduZWQgcGl0Y2ggPSBmYi0+cGl0Y2hlc1swXTsKLQl1bnNp Z25lZCBvZmZzZXQgPSB5ICogcGl0Y2ggKyB4ICogZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKKwl1 bnNpZ25lZCBvZmZzZXQgPSB5ICogcGl0Y2ggKyB4ICogZmItPmZvcm1hdC0+Y3BwWzBdOwogCXVp bnQzMl90IGFkZHJfb2RkLCBhZGRyX2V2ZW47CiAJdW5zaWduZWQgaSA9IDA7CiAKIAlEUk1fREVC VUdfRFJJVkVSKCJwaXRjaCAldSB4ICVkIHkgJWQgYnBwICVkXG4iLAotCQlwaXRjaCwgeCwgeSwg ZmItPmJpdHNfcGVyX3BpeGVsKTsKKwkJcGl0Y2gsIHgsIHksIGZiLT5mb3JtYXQtPmNwcFswXSAq IDgpOwogCiAJYWRkcl9vZGQgPSBhZGRyX2V2ZW4gPSBvYmotPmRldl9hZGRyICsgb2Zmc2V0Owog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jIGIvZHJp dmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYwppbmRleCAzYTU4ZmI2MDBiMDUuLjc4 MzM1MTAwY2JjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJk ZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jCkBAIC05NCw3 ICs5NCw3IEBAIHN0YXRpYyBpbnQgYXJtYWRhX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJoLAogCWRybV9mYl9oZWxwZXJfZmlsbF92YXIoaW5mbywgZmJoLCBzaXplcy0+ZmJfd2lk dGgsIHNpemVzLT5mYl9oZWlnaHQpOwogCiAJRFJNX0RFQlVHX0tNUygiYWxsb2NhdGVkICVkeCVk ICVkYnBwIGZiOiAweCUwOGxseFxuIiwKLQkJZGZiLT5mYi53aWR0aCwgZGZiLT5mYi5oZWlnaHQs IGRmYi0+ZmIuYml0c19wZXJfcGl4ZWwsCisJCWRmYi0+ZmIud2lkdGgsIGRmYi0+ZmIuaGVpZ2h0 LCBkZmItPmZiLmZvcm1hdC0+Y3BwWzBdICogOCwKIAkJKHVuc2lnbmVkIGxvbmcgbG9uZylvYmot PnBoeXNfYWRkcik7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h c3QvYXN0X2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9mYi5jCmluZGV4IGY3NTE3OTJh M2M3Yy4uYjA4NTE0MGZhZTk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9m Yi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMKQEAgLTQ5LDcgKzQ5LDcgQEAg c3RhdGljIHZvaWQgYXN0X2RpcnR5X3VwZGF0ZShzdHJ1Y3QgYXN0X2ZiZGV2ICphZmJkZXYsCiAJ c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGFzdF9ibyAqYm87CiAJaW50IHNy Y19vZmZzZXQsIGRzdF9vZmZzZXQ7Ci0JaW50IGJwcCA9IChhZmJkZXYtPmFmYi5iYXNlLmJpdHNf cGVyX3BpeGVsICsgNykvODsKKwlpbnQgYnBwID0gYWZiZGV2LT5hZmIuYmFzZS5mb3JtYXQtPmNw cFswXTsKIAlpbnQgcmV0ID0gLUVCVVNZOwogCWJvb2wgdW5tYXAgPSBmYWxzZTsKIAlib29sIHN0 b3JlX2Zvcl9sYXRlciA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9h c3RfbW9kZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCmluZGV4IGRlYjM2ODRj Y2FmOC4uMGNmNWUwYWI1MDE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9t b2RlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCkBAIC04NSw3ICs4NSw3 IEBAIHN0YXRpYyBib29sIGFzdF9nZXRfdmJpb3NfbW9kZV9pbmZvKHN0cnVjdCBkcm1fY3J0YyAq Y3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21vCiAJYm9vbCBjaGVja19zeW5jOwogCXN0cnVjdCBh c3RfdmJpb3NfZW5odGFibGUgKmJlc3QgPSBOVUxMOwogCi0Jc3dpdGNoIChmYi0+Yml0c19wZXJf cGl4ZWwpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmNwcFswXSAqIDgpIHsKIAljYXNlIDg6CiAJ CXZiaW9zX21vZGUtPnN0ZF90YWJsZSA9ICZ2Ymlvc19zdGR0YWJsZVtWR0FNb2RlSW5kZXhdOwog CQljb2xvcl9pbmRleCA9IFZHQU1vZGVJbmRleCAtIDE7CkBAIC0yMDgsNyArMjA4LDggQEAgc3Rh dGljIGJvb2wgYXN0X2dldF92Ymlvc19tb2RlX2luZm8oc3RydWN0IGRybV9jcnRjICpjcnRjLCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW8KIAkJYXN0X3NldF9pbmRleF9yZWcoYXN0LCBBU1RfSU9fQ1JU Q19QT1JULCAweDkxLCAweDAwKTsKIAkJaWYgKHZiaW9zX21vZGUtPmVuaF90YWJsZS0+ZmxhZ3Mg JiBOZXdNb2RlSW5mbykgewogCQkJYXN0X3NldF9pbmRleF9yZWcoYXN0LCBBU1RfSU9fQ1JUQ19Q T1JULCAweDkxLCAweGE4KTsKLQkJCWFzdF9zZXRfaW5kZXhfcmVnKGFzdCwgQVNUX0lPX0NSVENf UE9SVCwgMHg5MiwgZmItPmJpdHNfcGVyX3BpeGVsKTsKKwkJCWFzdF9zZXRfaW5kZXhfcmVnKGFz dCwgQVNUX0lPX0NSVENfUE9SVCwgMHg5MiwKKwkJCQkJICBmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4 KTsKIAkJCWFzdF9zZXRfaW5kZXhfcmVnKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHg5MywgYWRq dXN0ZWRfbW9kZS0+Y2xvY2sgLyAxMDAwKTsKIAkJCWFzdF9zZXRfaW5kZXhfcmVnKGFzdCwgQVNU X0lPX0NSVENfUE9SVCwgMHg5NCwgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7CiAJCQlh c3Rfc2V0X2luZGV4X3JlZyhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4OTUsIGFkanVzdGVkX21v ZGUtPmNydGNfaGRpc3BsYXkgPj4gOCk7CkBAIC00MDAsNyArNDAxLDcgQEAgc3RhdGljIHZvaWQg YXN0X3NldF9leHRfcmVnKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUKIAljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPnBy aW1hcnktPmZiOwogCXU4IGpyZWdBMCA9IDAsIGpyZWdBMyA9IDAsIGpyZWdBOCA9IDA7CiAKLQlz d2l0Y2ggKGZiLT5iaXRzX3Blcl9waXhlbCkgeworCXN3aXRjaCAoZmItPmZvcm1hdC0+Y3BwWzBd ICogOCkgewogCWNhc2UgODoKIAkJanJlZ0EwID0gMHg3MDsKIAkJanJlZ0EzID0gMHgwMTsKQEAg LTQ1Nyw3ICs0NTgsNyBAQCBzdGF0aWMgYm9vbCBhc3Rfc2V0X2RhY19yZWcoc3RydWN0IGRybV9j cnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZQogewogCWNvbnN0IHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+cHJpbWFyeS0+ZmI7CiAKLQlzd2l0Y2ggKGZi LT5iaXRzX3Blcl9waXhlbCkgeworCXN3aXRjaCAoZmItPmZvcm1hdC0+Y3BwWzBdICogOCkgewog CWNhc2UgODoKIAkJYnJlYWs7CiAJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9jaXJydXMvY2lycnVzX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19m YmRldi5jCmluZGV4IDNjYWM4YTAzY2Y0Zi4uNzlhNWNkMTA4MjQ1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19mYmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9j aXJydXMvY2lycnVzX2ZiZGV2LmMKQEAgLTIyLDcgKzIyLDcgQEAgc3RhdGljIHZvaWQgY2lycnVz X2RpcnR5X3VwZGF0ZShzdHJ1Y3QgY2lycnVzX2ZiZGV2ICphZmJkZXYsCiAJc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGNpcnJ1c19ibyAqYm87CiAJaW50IHNyY19vZmZzZXQs IGRzdF9vZmZzZXQ7Ci0JaW50IGJwcCA9IChhZmJkZXYtPmdmYi5iYXNlLmJpdHNfcGVyX3BpeGVs ICsgNykvODsKKwlpbnQgYnBwID0gYWZiZGV2LT5nZmIuYmFzZS5mb3JtYXQtPmNwcFswXTsKIAlp bnQgcmV0ID0gLUVCVVNZOwogCWJvb2wgdW5tYXAgPSBmYWxzZTsKIAlib29sIHN0b3JlX2Zvcl9s YXRlciA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNf bW9kZS5jIGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jCmluZGV4IGYyMjk3 YWNhZTIzNS4uZTc4YTdhMjk1Y2VmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVz L2NpcnJ1c19tb2RlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5j CkBAIC0yNTgsNyArMjU4LDcgQEAgc3RhdGljIGludCBjaXJydXNfY3J0Y19tb2RlX3NldChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJc3IwNyA9IFJSRUc4KFNFUV9EQVRBKTsKIAlzcjA3ICY9IDB4 ZTA7CiAJaGRyID0gMDsKLQlzd2l0Y2ggKGZiLT5iaXRzX3Blcl9waXhlbCkgeworCXN3aXRjaCAo ZmItPmZvcm1hdC0+Y3BwWzBdICogOCkgewogCWNhc2UgODoKIAkJc3IwNyB8PSAweDExOwogCQli cmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCmluZGV4IDc1NWUzYjZlOTcxMC4uYmY1YTA2Yjdj MGMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKQEAgLTExNjIsNyArMTE2Miw3IEBAIHN0YXRp YyBpbnQgc2V0Y29scmVnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTE2IHJlZCwgdTE2IGdyZWVu LAogCQkgICAgIWZiX2hlbHBlci0+ZnVuY3MtPmdhbW1hX2dldCkpCiAJCXJldHVybiAtRUlOVkFM OwogCi0JV0FSTl9PTihmYi0+Yml0c19wZXJfcGl4ZWwgIT0gOCk7CisJV0FSTl9PTihmYi0+Zm9y bWF0LT5jcHBbMF0gKiA4ICE9IDgpOwogCiAJZmJfaGVscGVyLT5mdW5jcy0+Z2FtbWFfc2V0KGNy dGMsIHJlZCwgZ3JlZW4sIGJsdWUsIHJlZ25vKTsKIApAQCAtMTI0NSwxNCArMTI0NSwxNCBAQCBp bnQgZHJtX2ZiX2hlbHBlcl9jaGVja192YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIs CiAJICogQ2hhbmdlcyBzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gYXJlIGN1cnJlbnRseSBub3Qg cHVzaGVkIGJhY2sKIAkgKiB0byBLTVMsIGhlbmNlIGZhaWwgaWYgZGlmZmVyZW50IHNldHRpbmdz IGFyZSByZXF1ZXN0ZWQuCiAJICovCi0JaWYgKHZhci0+Yml0c19wZXJfcGl4ZWwgIT0gZmItPmJp dHNfcGVyX3BpeGVsIHx8CisJaWYgKHZhci0+Yml0c19wZXJfcGl4ZWwgIT0gZmItPmZvcm1hdC0+ Y3BwWzBdICogOCB8fAogCSAgICB2YXItPnhyZXMgIT0gZmItPndpZHRoIHx8IHZhci0+eXJlcyAh PSBmYi0+aGVpZ2h0IHx8CiAJICAgIHZhci0+eHJlc192aXJ0dWFsICE9IGZiLT53aWR0aCB8fCB2 YXItPnlyZXNfdmlydHVhbCAhPSBmYi0+aGVpZ2h0KSB7CiAJCURSTV9ERUJVRygiZmIgdXNlcnNw YWNlIHJlcXVlc3RlZCB3aWR0aC9oZWlnaHQvYnBwIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgZmIg IgogCQkJICAicmVxdWVzdCAlZHglZC0lZCAodmlydHVhbCAlZHglZCkgPiAlZHglZC0lZFxuIiwK IAkJCSAgdmFyLT54cmVzLCB2YXItPnlyZXMsIHZhci0+Yml0c19wZXJfcGl4ZWwsCiAJCQkgIHZh ci0+eHJlc192aXJ0dWFsLCB2YXItPnlyZXNfdmlydHVhbCwKLQkJCSAgZmItPndpZHRoLCBmYi0+ aGVpZ2h0LCBmYi0+Yml0c19wZXJfcGl4ZWwpOworCQkJICBmYi0+d2lkdGgsIGZiLT5oZWlnaHQs IGZiLT5mb3JtYXQtPmNwcFswXSAqIDgpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTE2 NTUsNyArMTY1NSw3IEBAIHZvaWQgZHJtX2ZiX2hlbHBlcl9maWxsX3ZhcihzdHJ1Y3QgZmJfaW5m byAqaW5mbywgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlCiAJaW5mby0+cHNldWRvX3Bh bGV0dGUgPSBmYl9oZWxwZXItPnBzZXVkb19wYWxldHRlOwogCWluZm8tPnZhci54cmVzX3ZpcnR1 YWwgPSBmYi0+d2lkdGg7CiAJaW5mby0+dmFyLnlyZXNfdmlydHVhbCA9IGZiLT5oZWlnaHQ7Ci0J aW5mby0+dmFyLmJpdHNfcGVyX3BpeGVsID0gZmItPmJpdHNfcGVyX3BpeGVsOworCWluZm8tPnZh ci5iaXRzX3Blcl9waXhlbCA9IGZiLT5mb3JtYXQtPmNwcFswXSAqIDg7CiAJaW5mby0+dmFyLmFj Y2VsX2ZsYWdzID0gRkJfQUNDRUxGX1RFWFQ7CiAJaW5mby0+dmFyLnhvZmZzZXQgPSAwOwogCWlu Zm8tPnZhci55b2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJh bWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwppbmRleCAwMGRl ZjkzMGI2YTUuLjk4YzA1NDA5ODgwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9m cmFtZWJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwpAQCAt NDMzLDcgKzQzMyw3IEBAIGludCBkcm1fbW9kZV9nZXRmYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCXItPmhlaWdodCA9IGZiLT5oZWlnaHQ7CiAJci0+d2lkdGggPSBmYi0+d2lkdGg7CiAJci0+ ZGVwdGggPSBmYi0+Zm9ybWF0LT5kZXB0aDsKLQlyLT5icHAgPSBmYi0+Yml0c19wZXJfcGl4ZWw7 CisJci0+YnBwID0gZmItPmZvcm1hdC0+Y3BwWzBdICogODsKIAlyLT5waXRjaCA9IGZiLT5waXRj aGVzWzBdOwogCWlmIChmYi0+ZnVuY3MtPmNyZWF0ZV9oYW5kbGUpIHsKIAkJaWYgKGRybV9pc19j dXJyZW50X21hc3RlcihmaWxlX3ByaXYpIHx8IGNhcGFibGUoQ0FQX1NZU19BRE1JTikgfHwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYwppbmRleCBlNWQxOWU1ZmMzNDEuLjNjNDQ0MDky NDRkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXNldF9oZWxwZXIuYwpAQCAtODIsMTAgKzgyLDcg QEAgdm9pZCBkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3Qoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJRFJNX0RFQlVHX0tNUygibm9uLVJHQiBwaXhlbCBmb3JtYXQgJXNcbiIsCiAJCSAg ICAgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LAog CQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvcm1hdF9uYW1lKSk7Ci0KLQkJ ZmItPmJpdHNfcGVyX3BpeGVsID0gMDsKIAl9IGVsc2UgewotCQlmYi0+Yml0c19wZXJfcGl4ZWwg PSBpbmZvLT5jcHBbMF0gKiA4OwogCX0KIAogCWZiLT5kZXYgPSBkZXY7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczU0MzNfZHJtX2RlY29uLmMgYi9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vczU0MzNfZHJtX2RlY29uLmMKaW5kZXggNmNhMWYzMTE3ZmU4Li5l OGNlNGEzMTg1ODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQz M19kcm1fZGVjb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczU0MzNfZHJt X2RlY29uLmMKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgdm9pZCBkZWNvbl93aW5fc2V0X3Bp eGZtdChzdHJ1Y3QgZGVjb25fY29udGV4dCAqY3R4LCB1bnNpZ25lZCBpbnQgd2luLAogCQlyZXR1 cm47CiAJfQogCi0JRFJNX0RFQlVHX0tNUygiYnBwID0gJXVcbiIsIGZiLT5iaXRzX3Blcl9waXhl bCk7CisJRFJNX0RFQlVHX0tNUygiYnBwID0gJXVcbiIsIGZiLT5mb3JtYXQtPmNwcFswXSAqIDgp OwogCiAJLyoKIAkgKiBJbiBjYXNlIG9mIGV4eW5vcywgc2V0dGluZyBkbWEtYnVyc3QgdG8gMTZX b3JkIGNhdXNlcyBwZXJtYW5lbnQKQEAgLTI3NSw3ICsyNzUsNyBAQCBzdGF0aWMgdm9pZCBkZWNv bl91cGRhdGVfcGxhbmUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZGVj b25fY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4OwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gc3RhdGUtPmJhc2UuZmI7CiAJdW5zaWduZWQgaW50IHdpbiA9IHBsYW5lLT5pbmRleDsKLQl1 bnNpZ25lZCBpbnQgYnBwID0gZmItPmJpdHNfcGVyX3BpeGVsID4+IDM7CisJdW5zaWduZWQgaW50 IGJwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKIAl1bnNpZ25lZCBpbnQgcGl0Y2ggPSBmYi0+cGl0 Y2hlc1swXTsKIAlkbWFfYWRkcl90IGRtYV9hZGRyID0gZXh5bm9zX2RybV9mYl9kbWFfYWRkcihm YiwgMCk7CiAJdTMyIHZhbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zN19kcm1fZGVjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zN19kcm1fZGVj b24uYwppbmRleCBmNGQ1YTIxMzM3NzcuLjU4ZGM5YTUxOTZiYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zN19kcm1fZGVjb24uYwpAQCAtMzMwLDcgKzMzMCw3IEBAIHN0YXRpYyB2 b2lkIGRlY29uX3dpbl9zZXRfcGl4Zm10KHN0cnVjdCBkZWNvbl9jb250ZXh0ICpjdHgsIHVuc2ln bmVkIGludCB3aW4sCiAJCWJyZWFrOwogCX0KIAotCURSTV9ERUJVR19LTVMoImJwcCA9ICVkXG4i LCBmYi0+Yml0c19wZXJfcGl4ZWwpOworCURSTV9ERUJVR19LTVMoImJwcCA9ICVkXG4iLCBmYi0+ Zm9ybWF0LT5jcHBbMF0gKiA4KTsKIAogCS8qCiAJICogSW4gY2FzZSBvZiBleHlub3MsIHNldHRp bmcgZG1hLWJ1cnN0IHRvIDE2V29yZCBjYXVzZXMgcGVybWFuZW50CkBAIC0zNDAsNyArMzQwLDcg QEAgc3RhdGljIHZvaWQgZGVjb25fd2luX3NldF9waXhmbXQoc3RydWN0IGRlY29uX2NvbnRleHQg KmN0eCwgdW5zaWduZWQgaW50IHdpbiwKIAkgKiBtb3ZlbWVudCBjYXVzZXMgdW5zdGFibGUgRE1B IHdoaWNoIHJlc3VsdHMgaW50byBpb21tdSBjcmFzaC90ZWFyLgogCSAqLwogCi0JcGFkZGluZyA9 IChmYi0+cGl0Y2hlc1swXSAvIChmYi0+Yml0c19wZXJfcGl4ZWwgPj4gMykpIC0gZmItPndpZHRo OworCXBhZGRpbmcgPSAoZmItPnBpdGNoZXNbMF0gLyBmYi0+Zm9ybWF0LT5jcHBbMF0pIC0gZmIt PndpZHRoOwogCWlmIChmYi0+d2lkdGggKyBwYWRkaW5nIDwgTUlOX0ZCX1dJRFRIX0ZPUl8xNldP UkRfQlVSU1QpIHsKIAkJdmFsICY9IH5XSU5DT054X0JVUlNUTEVOX01BU0s7CiAJCXZhbCB8PSBX SU5DT054X0JVUlNUTEVOXzhXT1JEOwpAQCAtNDA3LDcgKzQwNyw3IEBAIHN0YXRpYyB2b2lkIGRl Y29uX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLAogCXVuc2lnbmVk IGludCBsYXN0X3g7CiAJdW5zaWduZWQgaW50IGxhc3RfeTsKIAl1bnNpZ25lZCBpbnQgd2luID0g cGxhbmUtPmluZGV4OwotCXVuc2lnbmVkIGludCBicHAgPSBmYi0+Yml0c19wZXJfcGl4ZWwgPj4g MzsKKwl1bnNpZ25lZCBpbnQgYnBwID0gZmItPmZvcm1hdC0+Y3BwWzBdOwogCXVuc2lnbmVkIGlu dCBwaXRjaCA9IGZiLT5waXRjaGVzWzBdOwogCiAJaWYgKGN0eC0+c3VzcGVuZGVkKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZiZGV2LmMgYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmJkZXYuYwppbmRleCBlNjhhNDZmMTEyZjYuLmQ4 ODA4MTU4ZDQxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZiZGV2LmMK QEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIGludCBleHlub3NfZHJtX2ZiZGV2X3VwZGF0ZShzdHJ1 Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogewogCXN0cnVjdCBmYl9pbmZvICpmYmk7CiAJc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBoZWxwZXItPmZiOwotCXVuc2lnbmVkIGludCBzaXpl ID0gZmItPndpZHRoICogZmItPmhlaWdodCAqIChmYi0+Yml0c19wZXJfcGl4ZWwgPj4gMyk7CisJ dW5zaWduZWQgaW50IHNpemUgPSBmYi0+d2lkdGggKiBmYi0+aGVpZ2h0ICogZmItPmZvcm1hdC0+ Y3BwWzBdOwogCXVuc2lnbmVkIGludCBucl9wYWdlczsKIAl1bnNpZ25lZCBsb25nIG9mZnNldDsK IApAQCAtMTAzLDcgKzEwMyw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RybV9mYmRldl91cGRhdGUo c3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAkJcmV0dXJuIC1FSU87CiAJfQogCi0Jb2Zm c2V0ID0gZmJpLT52YXIueG9mZnNldCAqIChmYi0+Yml0c19wZXJfcGl4ZWwgPj4gMyk7CisJb2Zm c2V0ID0gZmJpLT52YXIueG9mZnNldCAqIGZiLT5mb3JtYXQtPmNwcFswXTsKIAlvZmZzZXQgKz0g ZmJpLT52YXIueW9mZnNldCAqIGZiLT5waXRjaGVzWzBdOwogCiAJZmJpLT5zY3JlZW5fYmFzZSA9 IGV4eW5vc19nZW0tPmt2YWRkciArIG9mZnNldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5v c19kcm1fZmltZC5jCmluZGV4IGUyZTQwNTE3MGQzNS4uMDAyOTA2NTk3OWI4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMKQEAgLTczOCw3ICs3MzgsNyBAQCBzdGF0 aWMgdm9pZCBmaW1kX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLAog CXVuc2lnbmVkIGxvbmcgdmFsLCBzaXplLCBvZmZzZXQ7CiAJdW5zaWduZWQgaW50IGxhc3RfeCwg bGFzdF95LCBidWZfb2Zmc2l6ZSwgbGluZV9zaXplOwogCXVuc2lnbmVkIGludCB3aW4gPSBwbGFu ZS0+aW5kZXg7Ci0JdW5zaWduZWQgaW50IGJwcCA9IGZiLT5iaXRzX3Blcl9waXhlbCA+PiAzOwor CXVuc2lnbmVkIGludCBicHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CiAJdW5zaWduZWQgaW50IHBp dGNoID0gZmItPnBpdGNoZXNbMF07CiAKIAlpZiAoY3R4LT5zdXNwZW5kZWQpCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jIGIvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfbWl4ZXIuYwppbmRleCBlZGIyMGEzNGM2NmMuLmIzMTNlNjFhYWI2NSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCkBAIC02MzEsNyArNjMxLDcgQEAg c3RhdGljIHZvaWQgbWl4ZXJfZ3JhcGhfYnVmZmVyKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgs CiAKIAkvKiBjb252ZXJ0aW5nIGRtYSBhZGRyZXNzIGJhc2UgYW5kIHNvdXJjZSBvZmZzZXQgKi8K IAlkbWFfYWRkciA9IGV4eW5vc19kcm1fZmJfZG1hX2FkZHIoZmIsIDApCi0JCSsgKHN0YXRlLT5z cmMueCAqIGZiLT5iaXRzX3Blcl9waXhlbCA+PiAzKQorCQkrIChzdGF0ZS0+c3JjLnggKiBmYi0+ Zm9ybWF0LT5jcHBbMF0pCiAJCSsgKHN0YXRlLT5zcmMueSAqIGZiLT5waXRjaGVzWzBdKTsKIAlz cmNfeF9vZmZzZXQgPSAwOwogCXNyY195X29mZnNldCA9IDA7CkBAIC02NDksNyArNjQ5LDcgQEAg c3RhdGljIHZvaWQgbWl4ZXJfZ3JhcGhfYnVmZmVyKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgs CiAKIAkvKiBzZXR1cCBnZW9tZXRyeSAqLwogCW1peGVyX3JlZ193cml0ZShyZXMsIE1YUl9HUkFQ SElDX1NQQU4od2luKSwKLQkJCWZiLT5waXRjaGVzWzBdIC8gKGZiLT5iaXRzX3Blcl9waXhlbCA+ PiAzKSk7CisJCQlmYi0+cGl0Y2hlc1swXSAvIGZiLT5mb3JtYXQtPmNwcFswXSk7CiAKIAkvKiBz ZXR1cCBkaXNwbGF5IHNpemUgKi8KIAlpZiAoY3R4LT5teHJfdmVyID09IE1YUl9WRVJfMTI4XzBf MF8xODQgJiYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZmZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYwppbmRleCBhOTNiNTljZTZi NDEuLjZiZjMzYmEwNTViMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9mcmFt ZWJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYwpAQCAt NzcsNyArNzcsNyBAQCBzdGF0aWMgaW50IHBzYmZiX3NldGNvbHJlZyh1bnNpZ25lZCByZWdubywg dW5zaWduZWQgcmVkLCB1bnNpZ25lZCBncmVlbiwKIAkgICAgKHRyYW5zcCA8PCBpbmZvLT52YXIu dHJhbnNwLm9mZnNldCk7CiAKIAlpZiAocmVnbm8gPCAxNikgewotCQlzd2l0Y2ggKGZiLT5iaXRz X3Blcl9waXhlbCkgeworCQlzd2l0Y2ggKGZiLT5mb3JtYXQtPmNwcFswXSAqIDgpIHsKIAkJY2Fz ZSAxNjoKIAkJCSgodWludDMyX3QgKikgaW5mby0+cHNldWRvX3BhbGV0dGUpW3JlZ25vXSA9IHY7 CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZ21hX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZ21hX2Rpc3BsYXkuYwppbmRleCA1Yjg1MmFk MTUyYWUuLmQxYzU2NDJiMWMxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9n bWFfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZ21hX2Rpc3BsYXkuYwpA QCAtODIsMTQgKzgyLDE0IEBAIGludCBnbWFfcGlwZV9zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIGludCB4LCBpbnQgeSwKIAlpZiAocmV0IDwgMCkKIAkJZ290byBnbWFfcGlwZV9zZXRf YmFzZV9leGl0OwogCXN0YXJ0ID0gcHNiZmItPmd0dC0+b2Zmc2V0OwotCW9mZnNldCA9IHkgKiBm Yi0+cGl0Y2hlc1swXSArIHggKiAoZmItPmJpdHNfcGVyX3BpeGVsIC8gOCk7CisJb2Zmc2V0ID0g eSAqIGZiLT5waXRjaGVzWzBdICsgeCAqIGZiLT5mb3JtYXQtPmNwcFswXTsKIAogCVJFR19XUklU RShtYXAtPnN0cmlkZSwgZmItPnBpdGNoZXNbMF0pOwogCiAJZHNwY250ciA9IFJFR19SRUFEKG1h cC0+Y250cik7CiAJZHNwY250ciAmPSB+RElTUFBMQU5FX1BJWEZPUk1BVF9NQVNLOwogCi0Jc3dp dGNoIChmYi0+Yml0c19wZXJfcGl4ZWwpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmNwcFswXSAq IDgpIHsKIAljYXNlIDg6CiAJCWRzcGNudHIgfD0gRElTUFBMQU5FXzhCUFA7CiAJCWJyZWFrOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL21kZmxkX2ludGVsX2Rpc3BsYXkuYwppbmRleCAzYmUz MTExODI1Y2QuLjYzYzZlMDg2MDBhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUw MC9tZGZsZF9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZs ZF9pbnRlbF9kaXNwbGF5LmMKQEAgLTE0OCw3ICsxNDgsNyBAQCBzdGF0aWMgaW50IGNoZWNrX2Zi KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogCWlmICghZmIpCiAJCXJldHVybiAwOwogCi0J c3dpdGNoIChmYi0+Yml0c19wZXJfcGl4ZWwpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmNwcFsw XSAqIDgpIHsKIAljYXNlIDg6CiAJY2FzZSAxNjoKIAljYXNlIDI0OgpAQCAtMTk3LDEzICsxOTcs MTMgQEAgc3RhdGljIGludCBtZGZsZF9faW50ZWxfcGlwZV9zZXRfYmFzZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsIGludCB4LCBpbnQgeSwKIAkJcmV0dXJuIDA7CiAKIAlzdGFydCA9IHBzYmZiLT5n dHQtPm9mZnNldDsKLQlvZmZzZXQgPSB5ICogZmItPnBpdGNoZXNbMF0gKyB4ICogKGZiLT5iaXRz X3Blcl9waXhlbCAvIDgpOworCW9mZnNldCA9IHkgKiBmYi0+cGl0Y2hlc1swXSArIHggKiBmYi0+ Zm9ybWF0LT5jcHBbMF07CiAKIAlSRUdfV1JJVEUobWFwLT5zdHJpZGUsIGZiLT5waXRjaGVzWzBd KTsKIAlkc3BjbnRyID0gUkVHX1JFQUQobWFwLT5jbnRyKTsKIAlkc3BjbnRyICY9IH5ESVNQUExB TkVfUElYRk9STUFUX01BU0s7CiAKLQlzd2l0Y2ggKGZiLT5iaXRzX3Blcl9waXhlbCkgeworCXN3 aXRjaCAoZmItPmZvcm1hdC0+Y3BwWzBdICogOCkgewogCWNhc2UgODoKIAkJZHNwY250ciB8PSBE SVNQUExBTkVfOEJQUDsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21h NTAwL29ha3RyYWlsX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfY3J0 Yy5jCmluZGV4IDU2OTgxMGQ0Nzc4Ni4uMGZmZjI2OWQzZmU2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21h NTAwL29ha3RyYWlsX2NydGMuYwpAQCAtNjE4LDE0ICs2MTgsMTQgQEAgc3RhdGljIGludCBvYWt0 cmFpbF9waXBlX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJcmV0dXJuIDA7CiAK IAlzdGFydCA9IHBzYmZiLT5ndHQtPm9mZnNldDsKLQlvZmZzZXQgPSB5ICogZmItPnBpdGNoZXNb MF0gKyB4ICogKGZiLT5iaXRzX3Blcl9waXhlbCAvIDgpOworCW9mZnNldCA9IHkgKiBmYi0+cGl0 Y2hlc1swXSArIHggKiBmYi0+Zm9ybWF0LT5jcHBbMF07CiAKIAlSRUdfV1JJVEUobWFwLT5zdHJp ZGUsIGZiLT5waXRjaGVzWzBdKTsKIAogCWRzcGNudHIgPSBSRUdfUkVBRChtYXAtPmNudHIpOwog CWRzcGNudHIgJj0gfkRJU1BQTEFORV9QSVhGT1JNQVRfTUFTSzsKIAotCXN3aXRjaCAoZmItPmJp dHNfcGVyX3BpeGVsKSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4KSB7CiAJY2Fz ZSA4OgogCQlkc3BjbnRyIHw9IERJU1BQTEFORV84QlBQOwogCQlicmVhazsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggZWJjYmE5NzYxNmFiLi5lZTI3MmVjODczMmMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xODk1LDcgKzE4OTUsNyBAQCBzdGF0aWMg aW50IGk5MTVfZ2VtX2ZyYW1lYnVmZmVyX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpk YXRhKQogCQkJICAgZmJkZXZfZmItPmJhc2Uud2lkdGgsCiAJCQkgICBmYmRldl9mYi0+YmFzZS5o ZWlnaHQsCiAJCQkgICBmYmRldl9mYi0+YmFzZS5mb3JtYXQtPmRlcHRoLAotCQkJICAgZmJkZXZf ZmItPmJhc2UuYml0c19wZXJfcGl4ZWwsCisJCQkgICBmYmRldl9mYi0+YmFzZS5mb3JtYXQtPmNw cFswXSAqIDgsCiAJCQkgICBmYmRldl9mYi0+YmFzZS5tb2RpZmllciwKIAkJCSAgIGRybV9mcmFt ZWJ1ZmZlcl9yZWFkX3JlZmNvdW50KCZmYmRldl9mYi0+YmFzZSkpOwogCQlkZXNjcmliZV9vYmoo bSwgZmJkZXZfZmItPm9iaik7CkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgaW50IGk5MTVf Z2VtX2ZyYW1lYnVmZmVyX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCQkJ ICAgZmItPmJhc2Uud2lkdGgsCiAJCQkgICBmYi0+YmFzZS5oZWlnaHQsCiAJCQkgICBmYi0+YmFz ZS5mb3JtYXQtPmRlcHRoLAotCQkJICAgZmItPmJhc2UuYml0c19wZXJfcGl4ZWwsCisJCQkgICBm Yi0+YmFzZS5mb3JtYXQtPmNwcFswXSAqIDgsCiAJCQkgICBmYi0+YmFzZS5tb2RpZmllciwKIAkJ CSAgIGRybV9mcmFtZWJ1ZmZlcl9yZWFkX3JlZmNvdW50KCZmYi0+YmFzZSkpOwogCQlkZXNjcmli ZV9vYmoobSwgZmItPm9iaik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXgg NWQ4ZGI0MzZjNTU3Li42Yzg4OWYwZThlMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKQEAgLTg3MTUsNyArODcxNSw2IEBAIGk5eHhfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmln KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCXBpeGVsX2Zvcm1hdCA9IHZhbCAmIERJU1BQTEFO RV9QSVhGT1JNQVRfTUFTSzsKIAlmb3VyY2MgPSBpOXh4X2Zvcm1hdF90b19mb3VyY2MocGl4ZWxf Zm9ybWF0KTsKIAlmYi0+cGl4ZWxfZm9ybWF0ID0gZm91cmNjOwotCWZiLT5iaXRzX3Blcl9waXhl bCA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZvdXJjYywgMCkgKiA4OwogCWZiLT5mb3JtYXQgPSBk cm1fZm9ybWF0X2luZm8oZm91cmNjKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQp IHsKQEAgLTg3NDQsNyArODc0Myw3IEBAIGk5eHhfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJRFJNX0RFQlVHX0tNUygicGlwZS9wbGFuZSAlYy8l ZCB3aXRoIGZiOiBzaXplPSVkeCVkQCVkLCBvZmZzZXQ9JXgsIHBpdGNoICVkLCBzaXplIDB4JXhc biIsCiAJCSAgICAgIHBpcGVfbmFtZShwaXBlKSwgcGxhbmUsIGZiLT53aWR0aCwgZmItPmhlaWdo dCwKLQkJICAgICAgZmItPmJpdHNfcGVyX3BpeGVsLCBiYXNlLCBmYi0+cGl0Y2hlc1swXSwKKwkJ ICAgICAgZmItPmZvcm1hdC0+Y3BwWzBdICogOCwgYmFzZSwgZmItPnBpdGNoZXNbMF0sCiAJCSAg ICAgIHBsYW5lX2NvbmZpZy0+c2l6ZSk7CiAKIAlwbGFuZV9jb25maWctPmZiID0gaW50ZWxfZmI7 CkBAIC05NzQ3LDcgKzk3NDYsNiBAQCBza3lsYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgICAgICB2YWwgJiBQTEFORV9DVExfT1JERVJf UkdCWCwKIAkJCQkgICAgICB2YWwgJiBQTEFORV9DVExfQUxQSEFfTUFTSyk7CiAJZmItPnBpeGVs X2Zvcm1hdCA9IGZvdXJjYzsKLQlmYi0+Yml0c19wZXJfcGl4ZWwgPSBkcm1fZm9ybWF0X3BsYW5l X2NwcChmb3VyY2MsIDApICogODsKIAlmYi0+Zm9ybWF0ID0gZHJtX2Zvcm1hdF9pbmZvKGZvdXJj Yyk7CiAKIAl0aWxpbmcgPSB2YWwgJiBQTEFORV9DVExfVElMRURfTUFTSzsKQEAgLTk3OTIsNyAr OTc5MCw3IEBAIHNreWxha2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAogCiAJRFJNX0RFQlVHX0tNUygicGlwZSAlYyB3aXRoIGZiOiBzaXplPSVkeCVk QCVkLCBvZmZzZXQ9JXgsIHBpdGNoICVkLCBzaXplIDB4JXhcbiIsCiAJCSAgICAgIHBpcGVfbmFt ZShwaXBlKSwgZmItPndpZHRoLCBmYi0+aGVpZ2h0LAotCQkgICAgICBmYi0+Yml0c19wZXJfcGl4 ZWwsIGJhc2UsIGZiLT5waXRjaGVzWzBdLAorCQkgICAgICBmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4 LCBiYXNlLCBmYi0+cGl0Y2hlc1swXSwKIAkJICAgICAgcGxhbmVfY29uZmlnLT5zaXplKTsKIAog CXBsYW5lX2NvbmZpZy0+ZmIgPSBpbnRlbF9mYjsKQEAgLTk4NjMsNyArOTg2MSw2IEBAIGlyb25s YWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlw aXhlbF9mb3JtYXQgPSB2YWwgJiBESVNQUExBTkVfUElYRk9STUFUX01BU0s7CiAJZm91cmNjID0g aTl4eF9mb3JtYXRfdG9fZm91cmNjKHBpeGVsX2Zvcm1hdCk7CiAJZmItPnBpeGVsX2Zvcm1hdCA9 IGZvdXJjYzsKLQlmYi0+Yml0c19wZXJfcGl4ZWwgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmb3Vy Y2MsIDApICogODsKIAlmYi0+Zm9ybWF0ID0gZHJtX2Zvcm1hdF9pbmZvKGZvdXJjYyk7CiAKIAli YXNlID0gSTkxNV9SRUFEKERTUFNVUkYocGlwZSkpICYgMHhmZmZmZjAwMDsKQEAgLTk4OTIsNyAr OTg4OSw3IEBAIGlyb25sYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAogCURSTV9ERUJVR19LTVMoInBpcGUgJWMgd2l0aCBmYjogc2l6ZT0lZHgl ZEAlZCwgb2Zmc2V0PSV4LCBwaXRjaCAlZCwgc2l6ZSAweCV4XG4iLAogCQkgICAgICBwaXBlX25h bWUocGlwZSksIGZiLT53aWR0aCwgZmItPmhlaWdodCwKLQkJICAgICAgZmItPmJpdHNfcGVyX3Bp eGVsLCBiYXNlLCBmYi0+cGl0Y2hlc1swXSwKKwkJICAgICAgZmItPmZvcm1hdC0+Y3BwWzBdICog OCwgYmFzZSwgZmItPnBpdGNoZXNbMF0sCiAJCSAgICAgIHBsYW5lX2NvbmZpZy0+c2l6ZSk7CiAK IAlwbGFuZV9jb25maWctPmZiID0gaW50ZWxfZmI7CkBAIC0xMTA1MSw3ICsxMTA0OCw3IEBAIG1v ZGVfZml0c19pbl9mYmRldihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJZmIgPSAmZGV2X3By aXYtPmZiZGV2LT5mYi0+YmFzZTsKIAlpZiAoZmItPnBpdGNoZXNbMF0gPCBpbnRlbF9mcmFtZWJ1 ZmZlcl9waXRjaF9mb3Jfd2lkdGgobW9kZS0+aGRpc3BsYXksCi0JCQkJCQkJICAgICAgIGZiLT5i aXRzX3Blcl9waXhlbCkpCisJCQkJCQkJICAgICAgIGZiLT5mb3JtYXQtPmNwcFswXSAqIDgpKQog CQlyZXR1cm4gTlVMTDsKIAogCWlmIChvYmotPmJhc2Uuc2l6ZSA8IG1vZGUtPnZkaXNwbGF5ICog ZmItPnBpdGNoZXNbMF0pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwppbmRleCBiNzI2NDgz YTQ2MGQuLjNmNjBhNGY2ZjA3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCkBAIC02 MjEsNyArNjIxLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZmJkZXZfaW5pdF9iaW9zKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCSAqIHJhdGhlciB0aGFuIHRoZSBjdXJyZW50IHBpcGUncywgc2lu Y2UgdGhleSBkaWZmZXIuCiAJCSAqLwogCQljdXJfc2l6ZSA9IGludGVsX2NydGMtPmNvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXk7Ci0JCWN1cl9zaXplID0gY3VyX3NpemUg KiBmYi0+YmFzZS5iaXRzX3Blcl9waXhlbCAvIDg7CisJCWN1cl9zaXplID0gY3VyX3NpemUgKiBm Yi0+YmFzZS5mb3JtYXQtPmNwcFswXTsKIAkJaWYgKGZiLT5iYXNlLnBpdGNoZXNbMF0gPCBjdXJf c2l6ZSkgewogCQkJRFJNX0RFQlVHX0tNUygiZmIgbm90IHdpZGUgZW5vdWdoIGZvciBwbGFuZSAl YyAoJWQgdnMgJWQpXG4iLAogCQkJCSAgICAgIHBpcGVfbmFtZShpbnRlbF9jcnRjLT5waXBlKSwK QEAgLTYzOSw3ICs2MzksNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9mYmRldl9pbml0X2Jpb3Moc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgIHBpcGVfbmFtZShpbnRlbF9jcnRjLT5waXBl KSwKIAkJCSAgICAgIGludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNf aGRpc3BsYXksCiAJCQkgICAgICBpbnRlbF9jcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZS5jcnRjX3ZkaXNwbGF5LAotCQkJICAgICAgZmItPmJhc2UuYml0c19wZXJfcGl4ZWwsCisJCQkg ICAgICBmYi0+YmFzZS5mb3JtYXQtPmNwcFswXSAqIDgsCiAJCQkgICAgICBjdXJfc2l6ZSk7CiAK IAkJaWYgKGN1cl9zaXplID4gbWF4X3NpemUpIHsKQEAgLTY2MCw3ICs2NjAsNyBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9mYmRldl9pbml0X2Jpb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJZ290 byBvdXQ7CiAJfQogCi0JaWZiZGV2LT5wcmVmZXJyZWRfYnBwID0gZmItPmJhc2UuYml0c19wZXJf cGl4ZWw7CisJaWZiZGV2LT5wcmVmZXJyZWRfYnBwID0gZmItPmJhc2UuZm9ybWF0LT5jcHBbMF0g KiA4OwogCWlmYmRldi0+ZmIgPSBmYjsKIAogCWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2UoJmlm YmRldi0+ZmItPmJhc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdh ZzIwMF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9mYi5jCmluZGV4IDE5 YTc4YjZiNWExYS4uMWE2NjVlMTY3MWI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdh ZzIwMC9tZ2FnMjAwX2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9m Yi5jCkBAIC0yNCw3ICsyNCw3IEBAIHN0YXRpYyB2b2lkIG1nYV9kaXJ0eV91cGRhdGUoc3RydWN0 IG1nYV9mYmRldiAqbWZiZGV2LAogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwogCXN0cnVj dCBtZ2FnMjAwX2JvICpibzsKIAlpbnQgc3JjX29mZnNldCwgZHN0X29mZnNldDsKLQlpbnQgYnBw ID0gKG1mYmRldi0+bWZiLmJhc2UuYml0c19wZXJfcGl4ZWwgKyA3KS84OworCWludCBicHAgPSBt ZmJkZXYtPm1mYi5iYXNlLmZvcm1hdC0+Y3BwWzBdOwogCWludCByZXQgPSAtRUJVU1k7CiAJYm9v bCB1bm1hcCA9IGZhbHNlOwogCWJvb2wgc3RvcmVfZm9yX2xhdGVyID0gZmFsc2U7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9kZS5jCmluZGV4IDMxODBkYjVlODFjYi4uMWUwMzljZmRk ZWRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYwpAQCAtMzgsNyArMzgs NyBAQCBzdGF0aWMgdm9pZCBtZ2FfY3J0Y19sb2FkX2x1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMp CiAKIAlXUkVHOChEQUNfSU5ERVggKyBNR0ExMDY0X0lOREVYLCAwKTsKIAotCWlmIChmYiAmJiBm Yi0+Yml0c19wZXJfcGl4ZWwgPT0gMTYpIHsKKwlpZiAoZmIgJiYgZmItPmZvcm1hdC0+Y3BwWzBd ICogOCA9PSAxNikgewogCQlpbnQgaW5jID0gKGZiLT5mb3JtYXQtPmRlcHRoID09IDE1KSA/IDgg OiA0OwogCQl1OCByLCBiOwogCQlmb3IgKGkgPSAwOyBpIDwgTUdBRzIwMF9MVVRfU0laRTsgaSAr PSBpbmMpIHsKQEAgLTkwMyw3ICs5MDMsNyBAQCBzdGF0aWMgaW50IG1nYV9jcnRjX21vZGVfc2V0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJLyogMHg0ODogKi8gICAgICAgIDAsICAgIDAsICAg IDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAsICAgIDAKIAl9OwogCi0JYnBwc2hpZnQgPSBtZGV2 LT5icHBfc2hpZnRzWyhmYi0+Yml0c19wZXJfcGl4ZWwgPj4gMykgLSAxXTsKKwlicHBzaGlmdCA9 IG1kZXYtPmJwcF9zaGlmdHNbZmItPmZvcm1hdC0+Y3BwWzBdIC0gMV07CiAKIAlzd2l0Y2ggKG1k ZXYtPnR5cGUpIHsKIAljYXNlIEcyMDBfU0VfQToKQEAgLTk0Miw3ICs5NDIsNyBAQCBzdGF0aWMg aW50IG1nYV9jcnRjX21vZGVfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJYnJlYWs7CiAJ fQogCi0Jc3dpdGNoIChmYi0+Yml0c19wZXJfcGl4ZWwpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQt PmNwcFswXSAqIDgpIHsKIAljYXNlIDg6CiAJCWRhY3ZhbHVlW01HQTEwNjRfTVVMX0NUTF0gPSBN R0ExMDY0X01VTF9DVExfOGJpdHM7CiAJCWJyZWFrOwpAQCAtOTk4LDggKzk5OCw4IEBAIHN0YXRp YyBpbnQgbWdhX2NydGNfbW9kZV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCVdSRUdfU0VR KDMsIDApOwogCVdSRUdfU0VRKDQsIDB4ZSk7CiAKLQlwaXRjaCA9IGZiLT5waXRjaGVzWzBdIC8g KGZiLT5iaXRzX3Blcl9waXhlbCAvIDgpOwotCWlmIChmYi0+Yml0c19wZXJfcGl4ZWwgPT0gMjQp CisJcGl0Y2ggPSBmYi0+cGl0Y2hlc1swXSAvIGZiLT5mb3JtYXQtPmNwcFswXTsKKwlpZiAoZmIt PmZvcm1hdC0+Y3BwWzBdICogOCA9PSAyNCkKIAkJcGl0Y2ggPSAocGl0Y2ggKiAzKSA+PiAoNCAt IGJwcHNoaWZ0KTsKIAllbHNlCiAJCXBpdGNoID0gcGl0Y2ggPj4gKDQgLSBicHBzaGlmdCk7CkBA IC0xMDc2LDcgKzEwNzYsNyBAQCBzdGF0aWMgaW50IG1nYV9jcnRjX21vZGVfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAkJKCh2ZGlzcGxheSAmIDB4YzAwKSA+PiA3KSB8CiAJCSgodnN5bmNz dGFydCAmIDB4YzAwKSA+PiA1KSB8CiAJCSgodmRpc3BsYXkgJiAweDQwMCkgPj4gMyk7Ci0JaWYg KGZiLT5iaXRzX3Blcl9waXhlbCA9PSAyNCkKKwlpZiAoZmItPmZvcm1hdC0+Y3BwWzBdICogOCA9 PSAyNCkKIAkJZXh0X3ZnYVszXSA9ICgoKDEgPDwgYnBwc2hpZnQpICogMykgLSAxKSB8IDB4ODA7 CiAJZWxzZQogCQlleHRfdmdhWzNdID0gKCgxIDw8IGJwcHNoaWZ0KSAtIDEpIHwgMHg4MDsKQEAg LTExMzksOSArMTEzOSw5IEBAIHN0YXRpYyBpbnQgbWdhX2NydGNfbW9kZV9zZXQoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCQkJdTMyIGJwcDsKIAkJCXUzMiBtYjsKIAotCQkJaWYgKGZiLT5iaXRz X3Blcl9waXhlbCA+IDE2KQorCQkJaWYgKGZiLT5mb3JtYXQtPmNwcFswXSAqIDggPiAxNikKIAkJ CQlicHAgPSAzMjsKLQkJCWVsc2UgaWYgKGZiLT5iaXRzX3Blcl9waXhlbCA+IDgpCisJCQllbHNl IGlmIChmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4ID4gOCkKIAkJCQlicHAgPSAxNjsKIAkJCWVsc2UK IAkJCQlicHAgPSA4OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52 MDQvY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvY3J0Yy5jCmluZGV4 IDQ4MGUzYWI0NzdmZC4uYTcyNzU0ZDczYzg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9kaXNwbnYwNC9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlz cG52MDQvY3J0Yy5jCkBAIC04NzQsMTEgKzg3NCwxMSBAQCBudjA0X2NydGNfZG9fbW9kZV9zZXRf YmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAkvKiBVcGRhdGUgdGhlIGZyYW1lYnVmZmVy IGxvY2F0aW9uLiAqLwogCXJlZ3AtPmZiX3N0YXJ0ID0gbnZfY3J0Yy0+ZmIub2Zmc2V0ICYgfjM7 Ci0JcmVncC0+ZmJfc3RhcnQgKz0gKHkgKiBkcm1fZmItPnBpdGNoZXNbMF0pICsgKHggKiBkcm1f ZmItPmJpdHNfcGVyX3BpeGVsIC8gOCk7CisJcmVncC0+ZmJfc3RhcnQgKz0gKHkgKiBkcm1fZmIt PnBpdGNoZXNbMF0pICsgKHggKiBkcm1fZmItPmZvcm1hdC0+Y3BwWzBdKTsKIAludl9zZXRfY3J0 Y19iYXNlKGRldiwgbnZfY3J0Yy0+aW5kZXgsIHJlZ3AtPmZiX3N0YXJ0KTsKIAogCS8qIFVwZGF0 ZSB0aGUgYXJiaXRyYXRpb24gcGFyYW1ldGVycy4gKi8KLQlub3V2ZWF1X2NhbGNfYXJiKGRldiwg Y3J0Yy0+bW9kZS5jbG9jaywgZHJtX2ZiLT5iaXRzX3Blcl9waXhlbCwKKwlub3V2ZWF1X2NhbGNf YXJiKGRldiwgY3J0Yy0+bW9kZS5jbG9jaywgZHJtX2ZiLT5mb3JtYXQtPmNwcFswXSAqIDgsCiAJ CQkgJmFyYl9idXJzdCwgJmFyYl9sd20pOwogCiAJcmVncC0+Q1JUQ1tOVl9DSU9fQ1JFX0ZGX0lO REVYXSA9IGFyYl9idXJzdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5 LmMKaW5kZXggYTQ2ZDg5M2FhYWZhLi4zMTdhYzM4ZmM2MTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCkBAIC04ODgsNyArODg4LDcgQEAgbm91dmVhdV9jcnRj X3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiLAogCiAJLyogSW5pdGlhbGl6ZSBhIHBhZ2UgZmxpcCBzdHJ1Y3QgKi8KIAkqcyA9IChzdHJ1 Y3Qgbm91dmVhdV9wYWdlX2ZsaXBfc3RhdGUpCi0JCXsgeyB9LCBldmVudCwgY3J0YywgZmItPmJp dHNfcGVyX3BpeGVsLCBmYi0+cGl0Y2hlc1swXSwKKwkJeyB7IH0sIGV2ZW50LCBjcnRjLCBmYi0+ Zm9ybWF0LT5jcHBbMF0gKiA4LCBmYi0+cGl0Y2hlc1swXSwKIAkJICBuZXdfYm8tPmJvLm9mZnNl dCB9OwogCiAJLyogS2VlcCB2YmxhbmtzIG9uIGR1cmluZyBmbGlwLCBmb3IgdGhlIHRhcmdldCBj cnRjIG9mIHRoaXMgZmxpcCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxf ZHJhdy5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJhdy5jCmluZGV4IDliNzI4ZWRmMWI0 OS4uNGQ4NjgxZTg0ZTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcmF3 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJhdy5jCkBAIC0yODMsNyArMjgzLDcg QEAgdm9pZCBxeGxfZHJhd19kaXJ0eV9mYihzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiwKIAlzdHJ1 Y3QgcXhsX3JlY3QgKnJlY3RzOwogCWludCBzdHJpZGUgPSBxeGxfZmItPmJhc2UucGl0Y2hlc1sw XTsKIAkvKiBkZXB0aCBpcyBub3QgYWN0dWFsbHkgaW50ZXJlc3RpbmcsIHdlIGRvbid0IG1hc2sg d2l0aCBpdCAqLwotCWludCBkZXB0aCA9IHF4bF9mYi0+YmFzZS5iaXRzX3Blcl9waXhlbDsKKwlp bnQgZGVwdGggPSBxeGxfZmItPmJhc2UuZm9ybWF0LT5jcHBbMF0gKiA4OwogCXVpbnQ4X3QgKnN1 cmZhY2VfYmFzZTsKIAlzdHJ1Y3QgcXhsX3JlbGVhc2UgKnJlbGVhc2U7CiAJc3RydWN0IHF4bF9i byAqY2xpcHNfYm87CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9z X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfY3J0Yy5jCmluZGV4IDA1 ZjRlYmUzMWNlMi4uOGVlZmZjNTMyNGIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL2F0b21iaW9zX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9z X2NydGMuYwpAQCAtMTI3Nyw3ICsxMjc3LDcgQEAgc3RhdGljIGludCBkY2U0X2NydGNfZG9fc2V0 X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJCQkJLyogQ2FsY3VsYXRlIHRoZSBtYWNy b3RpbGUgbW9kZSBpbmRleC4gKi8KIAkJCQl0aWxlX3NwbGl0X2J5dGVzID0gNjQgPDwgdGlsZV9z cGxpdDsKLQkJCQl0aWxlYiA9IDggKiA4ICogdGFyZ2V0X2ZiLT5iaXRzX3Blcl9waXhlbCAvIDg7 CisJCQkJdGlsZWIgPSAoOCAqIDgpICogdGFyZ2V0X2ZiLT5mb3JtYXQtPmNwcFswXTsKIAkJCQl0 aWxlYiA9IG1pbih0aWxlX3NwbGl0X2J5dGVzLCB0aWxlYik7CiAKIAkJCQlmb3IgKGluZGV4ID0g MDsgdGlsZWIgPiA2NDsgaW5kZXgrKykKQEAgLTEyODUsMTMgKzEyODUsMTQgQEAgc3RhdGljIGlu dCBkY2U0X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJCQkJaWYg KGluZGV4ID49IDE2KSB7CiAJCQkJCURSTV9FUlJPUigiV3Jvbmcgc2NyZWVuIGJwcCAoJXUpIG9y IHRpbGUgc3BsaXQgKCV1KVxuIiwKLQkJCQkJCSAgdGFyZ2V0X2ZiLT5iaXRzX3Blcl9waXhlbCwg dGlsZV9zcGxpdCk7CisJCQkJCQkgIHRhcmdldF9mYi0+Zm9ybWF0LT5jcHBbMF0gKiA4LAorCQkJ CQkJICB0aWxlX3NwbGl0KTsKIAkJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQkJfQogCiAJCQkJbnVt X2JhbmtzID0gKHJkZXYtPmNvbmZpZy5jaWsubWFjcm90aWxlX21vZGVfYXJyYXlbaW5kZXhdID4+ IDYpICYgMHgzOwogCQkJfSBlbHNlIHsKLQkJCQlzd2l0Y2ggKHRhcmdldF9mYi0+Yml0c19wZXJf cGl4ZWwpIHsKKwkJCQlzd2l0Y2ggKHRhcmdldF9mYi0+Zm9ybWF0LT5jcHBbMF0gKiA4KSB7CiAJ CQkJY2FzZSA4OgogCQkJCQlpbmRleCA9IDEwOwogCQkJCQlicmVhazsKQEAgLTE0MTQsNyArMTQx NSw3IEBAIHN0YXRpYyBpbnQgZGNlNF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKIAlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfWF9FTkQgKyByYWRlb25fY3J0Yy0+Y3J0Y19v ZmZzZXQsIHRhcmdldF9mYi0+d2lkdGgpOwogCVdSRUczMihFVkVSR1JFRU5fR1JQSF9ZX0VORCAr IHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwgdGFyZ2V0X2ZiLT5oZWlnaHQpOwogCi0JZmJfcGl0 Y2hfcGl4ZWxzID0gdGFyZ2V0X2ZiLT5waXRjaGVzWzBdIC8gKHRhcmdldF9mYi0+Yml0c19wZXJf cGl4ZWwgLyA4KTsKKwlmYl9waXRjaF9waXhlbHMgPSB0YXJnZXRfZmItPnBpdGNoZXNbMF0gLyB0 YXJnZXRfZmItPmZvcm1hdC0+Y3BwWzBdOwogCVdSRUczMihFVkVSR1JFRU5fR1JQSF9QSVRDSCAr IHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwgZmJfcGl0Y2hfcGl4ZWxzKTsKIAlXUkVHMzIoRVZF UkdSRUVOX0dSUEhfRU5BQkxFICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LCAxKTsKIApAQCAt MTYyMSw3ICsxNjIyLDcgQEAgc3RhdGljIGludCBhdml2b19jcnRjX2RvX3NldF9iYXNlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKIAlXUkVHMzIoQVZJVk9fRDFHUlBIX1hfRU5EICsgcmFkZW9uX2Ny dGMtPmNydGNfb2Zmc2V0LCB0YXJnZXRfZmItPndpZHRoKTsKIAlXUkVHMzIoQVZJVk9fRDFHUlBI X1lfRU5EICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LCB0YXJnZXRfZmItPmhlaWdodCk7CiAK LQlmYl9waXRjaF9waXhlbHMgPSB0YXJnZXRfZmItPnBpdGNoZXNbMF0gLyAodGFyZ2V0X2ZiLT5i aXRzX3Blcl9waXhlbCAvIDgpOworCWZiX3BpdGNoX3BpeGVscyA9IHRhcmdldF9mYi0+cGl0Y2hl c1swXSAvIHRhcmdldF9mYi0+Zm9ybWF0LT5jcHBbMF07CiAJV1JFRzMyKEFWSVZPX0QxR1JQSF9Q SVRDSCArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwgZmJfcGl0Y2hfcGl4ZWxzKTsKIAlXUkVH MzIoQVZJVk9fRDFHUlBIX0VOQUJMRSArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwgMSk7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yMTAwLmMKaW5kZXggOTg0YjM1ZjQzNTU0Li5lMzM5OTMxMGQ0MWQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcjEwMC5jCkBAIC0zMjI5LDcgKzMyMjksNyBAQCB2b2lkIHIxMDBfYmFuZHdpZHRo X3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJCXJkZXYtPm1vZGVfaW5mby5j cnRjc1swXS0+YmFzZS5wcmltYXJ5LT5mYjsKIAogCQltb2RlMSA9ICZyZGV2LT5tb2RlX2luZm8u Y3J0Y3NbMF0tPmJhc2UubW9kZTsKLQkJcGl4ZWxfYnl0ZXMxID0gZmItPmJpdHNfcGVyX3BpeGVs IC8gODsKKwkJcGl4ZWxfYnl0ZXMxID0gZmItPmZvcm1hdC0+Y3BwWzBdOwogCX0KIAlpZiAoIShy ZGV2LT5mbGFncyAmIFJBREVPTl9TSU5HTEVfQ1JUQykpIHsKIAkJaWYgKHJkZXYtPm1vZGVfaW5m by5jcnRjc1sxXS0+YmFzZS5lbmFibGVkKSB7CkBAIC0zMjM3LDcgKzMyMzcsNyBAQCB2b2lkIHIx MDBfYmFuZHdpZHRoX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJCQlyZGV2 LT5tb2RlX2luZm8uY3J0Y3NbMV0tPmJhc2UucHJpbWFyeS0+ZmI7CiAKIAkJCW1vZGUyID0gJnJk ZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5tb2RlOwotCQkJcGl4ZWxfYnl0ZXMyID0gZmIt PmJpdHNfcGVyX3BpeGVsIC8gODsKKwkJCXBpeGVsX2J5dGVzMiA9IGZiLT5mb3JtYXQtPmNwcFsw XTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCmluZGV4 IDYyODUzNTVlYjVkNS4uYWVhOGI2MjgzNWE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fZGlzcGxheS5jCkBAIC01NDksMTkgKzU0OSwxOSBAQCBzdGF0aWMgaW50IHJhZGVvbl9jcnRj X3BhZ2VfZmxpcF90YXJnZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlmICghQVNJQ19JU19B VklWTyhyZGV2KSkgewogCQkvKiBjcnRjIG9mZnNldCBpcyBmcm9tIGRpc3BsYXkgYmFzZSBhZGRy IG5vdCBGQiBsb2NhdGlvbiAqLwogCQliYXNlIC09IHJhZGVvbl9jcnRjLT5sZWdhY3lfZGlzcGxh eV9iYXNlX2FkZHI7Ci0JCXBpdGNoX3BpeGVscyA9IGZiLT5waXRjaGVzWzBdIC8gKGZiLT5iaXRz X3Blcl9waXhlbCAvIDgpOworCQlwaXRjaF9waXhlbHMgPSBmYi0+cGl0Y2hlc1swXSAvIGZiLT5m b3JtYXQtPmNwcFswXTsKIAogCQlpZiAodGlsaW5nX2ZsYWdzICYgUkFERU9OX1RJTElOR19NQUNS TykgewogCQkJaWYgKEFTSUNfSVNfUjMwMChyZGV2KSkgewogCQkJCWJhc2UgJj0gfjB4N2ZmOwog CQkJfSBlbHNlIHsKLQkJCQlpbnQgYnl0ZXNoaWZ0ID0gZmItPmJpdHNfcGVyX3BpeGVsID4+IDQ7 CisJCQkJaW50IGJ5dGVzaGlmdCA9IGZiLT5mb3JtYXQtPmNwcFswXSAqIDggPj4gNDsKIAkJCQlp bnQgdGlsZV9hZGRyID0gKCgoY3J0Yy0+eSA+PiAzKSAqIHBpdGNoX3BpeGVscyArICBjcnRjLT54 KSA+PiAoOCAtIGJ5dGVzaGlmdCkpIDw8IDExOwogCQkJCWJhc2UgKz0gdGlsZV9hZGRyICsgKChj cnRjLT54IDw8IGJ5dGVzaGlmdCkgJSAyNTYpICsgKChjcnRjLT55ICUgOCkgPDwgOCk7CiAJCQl9 CiAJCX0gZWxzZSB7CiAJCQlpbnQgb2Zmc2V0ID0gY3J0Yy0+eSAqIHBpdGNoX3BpeGVscyArIGNy dGMtPng7Ci0JCQlzd2l0Y2ggKGZiLT5iaXRzX3Blcl9waXhlbCkgeworCQkJc3dpdGNoIChmYi0+ Zm9ybWF0LT5jcHBbMF0gKiA4KSB7CiAJCQljYXNlIDg6CiAJCQlkZWZhdWx0OgogCQkJCW9mZnNl dCAqPSAxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbGVnYWN5 X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2xlZ2FjeV9jcnRjLmMKaW5k ZXggMzFjMDNlMzJhNmI1Li5jZTZjYjY2NjYyMTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2xlZ2FjeV9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fbGVnYWN5X2NydGMuYwpAQCAtNDAyLDcgKzQwMiw3IEBAIGludCByYWRlb25fY3J0 Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCXRhcmdldF9mYiA9IGNydGMt PnByaW1hcnktPmZiOwogCX0KIAotCXN3aXRjaCAodGFyZ2V0X2ZiLT5iaXRzX3Blcl9waXhlbCkg eworCXN3aXRjaCAodGFyZ2V0X2ZiLT5mb3JtYXQtPmNwcFswXSAqIDgpIHsKIAljYXNlIDg6CiAJ CWZvcm1hdCA9IDI7CiAJCWJyZWFrOwpAQCAtNDc2LDkgKzQ3Niw5IEBAIGludCByYWRlb25fY3J0 Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAljcnRjX29mZnNldF9jbnRs ID0gMDsKIAotCXBpdGNoX3BpeGVscyA9IHRhcmdldF9mYi0+cGl0Y2hlc1swXSAvICh0YXJnZXRf ZmItPmJpdHNfcGVyX3BpeGVsIC8gOCk7Ci0JY3J0Y19waXRjaCA9IERJVl9ST1VORF9VUChwaXRj aF9waXhlbHMgKiB0YXJnZXRfZmItPmJpdHNfcGVyX3BpeGVsLAotCQkJCSAgdGFyZ2V0X2ZiLT5i aXRzX3Blcl9waXhlbCAqIDgpOworCXBpdGNoX3BpeGVscyA9IHRhcmdldF9mYi0+cGl0Y2hlc1sw XSAvIHRhcmdldF9mYi0+Zm9ybWF0LT5jcHBbMF07CisJY3J0Y19waXRjaCA9IERJVl9ST1VORF9V UChwaXRjaF9waXhlbHMgKiB0YXJnZXRfZmItPmZvcm1hdC0+Y3BwWzBdICogOCwKKwkJCQkgIHRh cmdldF9mYi0+Zm9ybWF0LT5jcHBbMF0gKiA4ICogOCk7CiAJY3J0Y19waXRjaCB8PSBjcnRjX3Bp dGNoIDw8IDE2OwogCiAJY3J0Y19vZmZzZXRfY250bCB8PSBSQURFT05fQ1JUQ19HVUlfVFJJR19P RkZTRVRfTEVGVF9FTjsKQEAgLTUwMywxNCArNTAzLDE0IEBAIGludCByYWRlb25fY3J0Y19kb19z ZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQljcnRjX3RpbGVfeDBfeTAgPSB4IHwg KHkgPDwgMTYpOwogCQkJYmFzZSAmPSB+MHg3ZmY7CiAJCX0gZWxzZSB7Ci0JCQlpbnQgYnl0ZXNo aWZ0ID0gdGFyZ2V0X2ZiLT5iaXRzX3Blcl9waXhlbCA+PiA0OworCQkJaW50IGJ5dGVzaGlmdCA9 IHRhcmdldF9mYi0+Zm9ybWF0LT5jcHBbMF0gKiA4ID4+IDQ7CiAJCQlpbnQgdGlsZV9hZGRyID0g KCgoeSA+PiAzKSAqIHBpdGNoX3BpeGVscyArICB4KSA+PiAoOCAtIGJ5dGVzaGlmdCkpIDw8IDEx OwogCQkJYmFzZSArPSB0aWxlX2FkZHIgKyAoKHggPDwgYnl0ZXNoaWZ0KSAlIDI1NikgKyAoKHkg JSA4KSA8PCA4KTsKIAkJCWNydGNfb2Zmc2V0X2NudGwgfD0gKHkgJSAxNik7CiAJCX0KIAl9IGVs c2UgewogCQlpbnQgb2Zmc2V0ID0geSAqIHBpdGNoX3BpeGVscyArIHg7Ci0JCXN3aXRjaCAodGFy Z2V0X2ZiLT5iaXRzX3Blcl9waXhlbCkgeworCQlzd2l0Y2ggKHRhcmdldF9mYi0+Zm9ybWF0LT5j cHBbMF0gKiA4KSB7CiAJCWNhc2UgODoKIAkJCW9mZnNldCAqPSAxOwogCQkJYnJlYWs7CkBAIC02 MDIsNyArNjAyLDcgQEAgc3RhdGljIGJvb2wgcmFkZW9uX3NldF9jcnRjX3RpbWluZyhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2QKIAkJfQogCX0KIAotCXN3aXRj aCAoZmItPmJpdHNfcGVyX3BpeGVsKSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4 KSB7CiAJY2FzZSA4OgogCQlmb3JtYXQgPSAyOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS90ZWdyYS9kYy5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKaW5kZXgg NDAxMGQ2OWNiZDA4Li4zYWYxNTdhMmQ0MGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90 ZWdyYS9kYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jCkBAIC01NjgsNyArNTY4 LDcgQEAgc3RhdGljIHZvaWQgdGVncmFfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAl3aW5kb3cuZHN0LnkgPSBwbGFuZS0+c3RhdGUtPmNydGNfeTsKIAl3aW5k b3cuZHN0LncgPSBwbGFuZS0+c3RhdGUtPmNydGNfdzsKIAl3aW5kb3cuZHN0LmggPSBwbGFuZS0+ c3RhdGUtPmNydGNfaDsKLQl3aW5kb3cuYml0c19wZXJfcGl4ZWwgPSBmYi0+Yml0c19wZXJfcGl4 ZWw7CisJd2luZG93LmJpdHNfcGVyX3BpeGVsID0gZmItPmZvcm1hdC0+Y3BwWzBdICogODsKIAl3 aW5kb3cuYm90dG9tX3VwID0gdGVncmFfZmJfaXNfYm90dG9tX3VwKGZiKTsKIAogCS8qIGNvcHkg ZnJvbSBzdGF0ZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jIGIv ZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RybS5jCmluZGV4IGQyODkzZjY1MzQxYS4uZTI4OWRiYzZh ZDgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3RlZ3JhL2RybS5jCkBAIC04NzcsNyArODc3LDcgQEAgc3RhdGljIGludCB0ZWdy YV9kZWJ1Z2ZzX2ZyYW1lYnVmZmVycyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpCiAJ CXNlcV9wcmludGYocywgIiUzZDogdXNlciBzaXplOiAlZCB4ICVkLCBkZXB0aCAlZCwgJWQgYnBw LCByZWZjb3VudCAlZFxuIiwKIAkJCSAgIGZiLT5iYXNlLmlkLCBmYi0+d2lkdGgsIGZiLT5oZWln aHQsCiAJCQkgICBmYi0+Zm9ybWF0LT5kZXB0aCwKLQkJCSAgIGZiLT5iaXRzX3Blcl9waXhlbCwK KwkJCSAgIGZiLT5mb3JtYXQtPmNwcFswXSAqIDgsCiAJCQkgICBkcm1fZnJhbWVidWZmZXJfcmVh ZF9yZWZjb3VudChmYikpOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3VkbC91 ZGxfZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2ZiLmMKaW5kZXggZTIxYTNlZDNhYjJi Li5iOGRjMDZkNjg3NzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2ZiLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZmIuYwpAQCAtODksNyArODksNyBAQCBpbnQg dWRsX2hhbmRsZV9kYW1hZ2Uoc3RydWN0IHVkbF9mcmFtZWJ1ZmZlciAqZmIsIGludCB4LCBpbnQg eSwKIAlpbnQgYnl0ZXNfaWRlbnRpY2FsID0gMDsKIAlzdHJ1Y3QgdXJiICp1cmI7CiAJaW50IGFs aWduZWRfeDsKLQlpbnQgYnBwID0gKGZiLT5iYXNlLmJpdHNfcGVyX3BpeGVsIC8gOCk7CisJaW50 IGJwcCA9IGZiLT5iYXNlLmZvcm1hdC0+Y3BwWzBdOwogCiAJaWYgKCFmYi0+YWN0aXZlXzE2KQog CQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9m Yi5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ZiLmMKaW5kZXggOWQwZGE0MmNj NDIwLi42MTI1NGI5OTEyNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmly dGdwdV9mYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mYi5jCkBAIC00 Myw3ICs0Myw3IEBAIHN0YXRpYyBpbnQgdmlydGlvX2dwdV9kaXJ0eV91cGRhdGUoc3RydWN0IHZp cnRpb19ncHVfZnJhbWVidWZmZXIgKmZiLAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYi0+ YmFzZS5kZXY7CiAJc3RydWN0IHZpcnRpb19ncHVfZGV2aWNlICp2Z2RldiA9IGRldi0+ZGV2X3By aXZhdGU7CiAJYm9vbCBzdG9yZV9mb3JfbGF0ZXIgPSBmYWxzZTsKLQlpbnQgYnBwID0gZmItPmJh c2UuYml0c19wZXJfcGl4ZWwgLyA4OworCWludCBicHAgPSBmYi0+YmFzZS5mb3JtYXQtPmNwcFsw XTsKIAlpbnQgeDIsIHkyOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc3RydWN0IHZpcnRpb19n cHVfb2JqZWN0ICpvYmogPSBnZW1fdG9fdmlydGlvX2dwdV9vYmooZmItPm9iaik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfZmIuYwppbmRleCBiNmU0YWRkMDlmNDQuLjRkOWFiMTZmYjkwOSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBpbnQg dm13X2ZiX3NldGNvbHJlZyh1bnNpZ25lZCByZWdubywgdW5zaWduZWQgcmVkLCB1bnNpZ25lZCBn cmVlbiwKIAlkZWZhdWx0OgogCQlEUk1fRVJST1IoIkJhZCBkZXB0aCAldSwgYnBwICV1LlxuIiwK IAkJCSAgcGFyLT5zZXRfZmItPmZvcm1hdC0+ZGVwdGgsCi0JCQkgIHBhci0+c2V0X2ZiLT5iaXRz X3Blcl9waXhlbCk7CisJCQkgIHBhci0+c2V0X2ZiLT5mb3JtYXQtPmNwcFswXSAqIDgpOwogCQly ZXR1cm4gMTsKIAl9CiAKQEAgLTE5OCw3ICsxOTgsNyBAQCBzdGF0aWMgdm9pZCB2bXdfZmJfZGly dHlfZmx1c2goc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCSAqIEhhbmRsZSBwYW5uaW5nIHdo ZW4gY29weWluZyBmcm9tIHZtYWxsb2MgdG8gZnJhbWVidWZmZXIuCiAJICogQ2xpcCBkaXJ0eSBh cmVhIHRvIGZyYW1lYnVmZmVyLgogCSAqLwotCWNwcCA9IChjdXJfZmItPmJpdHNfcGVyX3BpeGVs ICsgNykgLyA4OworCWNwcCA9IGN1cl9mYi0+Zm9ybWF0LT5jcHBbMF07CiAJbWF4X3ggPSBwYXIt PmZiX3ggKyBjdXJfZmItPndpZHRoOwogCW1heF95ID0gcGFyLT5mYl95ICsgY3VyX2ZiLT5oZWln aHQ7CiAKQEAgLTQ4Niw3ICs0ODYsNyBAQCBzdGF0aWMgaW50IHZtd19mYl9rbXNfZnJhbWVidWZm ZXIoc3RydWN0IGZiX2luZm8gKmluZm8pCiAJY3VyX2ZiID0gcGFyLT5zZXRfZmI7CiAJaWYgKGN1 cl9mYiAmJiBjdXJfZmItPndpZHRoID09IG1vZGVfY21kLndpZHRoICYmCiAJICAgIGN1cl9mYi0+ aGVpZ2h0ID09IG1vZGVfY21kLmhlaWdodCAmJgotCSAgICBjdXJfZmItPmJpdHNfcGVyX3BpeGVs ID09IG1vZGVfY21kLmJwcCAmJgorCSAgICBjdXJfZmItPmZvcm1hdC0+Y3BwWzBdICogOCA9PSBt b2RlX2NtZC5icHAgJiYKIAkgICAgY3VyX2ZiLT5mb3JtYXQtPmRlcHRoID09IG1vZGVfY21kLmRl cHRoICYmCiAJICAgIGN1cl9mYi0+cGl0Y2hlc1swXSA9PSBtb2RlX2NtZC5waXRjaCkKIAkJcmV0 dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCmluZGV4IDJjZTQ3NDM3MDFmMS4u ZWI4ZTM2NDYyOTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9r bXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwpAQCAtNTkxLDcg KzU5MSw2IEBAIHN0YXRpYyBpbnQgdm13X2ttc19uZXdfZnJhbWVidWZmZXJfc3VyZmFjZShzdHJ1 Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCS8qIFhYWCBnZXQgdGhlIGZpcnN0IDQgZnJvbSB0 aGUgc3VyZmFjZSBpbmZvICovCiAJdmZicy0+YmFzZS5iYXNlLmZvcm1hdCA9IGRybV9mb3JtYXRf aW5mbyhwaXhlbF9mb3JtYXQpOwogCXZmYnMtPmJhc2UuYmFzZS5waXhlbF9mb3JtYXQgPSBwaXhl bF9mb3JtYXQ7Ci0JdmZicy0+YmFzZS5iYXNlLmJpdHNfcGVyX3BpeGVsID0gbW9kZV9jbWQtPmJw cDsKIAl2ZmJzLT5iYXNlLmJhc2UucGl0Y2hlc1swXSA9IG1vZGVfY21kLT5waXRjaDsKIAl2ZmJz LT5iYXNlLmJhc2Uud2lkdGggPSBtb2RlX2NtZC0+d2lkdGg7CiAJdmZicy0+YmFzZS5iYXNlLmhl aWdodCA9IG1vZGVfY21kLT5oZWlnaHQ7CkBAIC04OTksNyArODk4LDYgQEAgc3RhdGljIGludCB2 bXdfa21zX25ld19mcmFtZWJ1ZmZlcl9kbWFidWYoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJp diwKIAl2ZmJkLT5iYXNlLmJhc2UuZGV2ID0gZGV2OwogCXZmYmQtPmJhc2UuYmFzZS5mb3JtYXQg PSBkcm1fZm9ybWF0X2luZm8ocGl4ZWxfZm9ybWF0KTsKIAl2ZmJkLT5iYXNlLmJhc2UucGl4ZWxf Zm9ybWF0ID0gcGl4ZWxfZm9ybWF0OwotCXZmYmQtPmJhc2UuYmFzZS5iaXRzX3Blcl9waXhlbCA9 IG1vZGVfY21kLT5icHA7CiAJdmZiZC0+YmFzZS5iYXNlLnBpdGNoZXNbMF0gPSBtb2RlX2NtZC0+ cGl0Y2g7CiAJdmZiZC0+YmFzZS5iYXNlLndpZHRoID0gbW9kZV9jbWQtPndpZHRoOwogCXZmYmQt PmJhc2UuYmFzZS5oZWlnaHQgPSBtb2RlX2NtZC0+aGVpZ2h0OwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9sZHUuYwppbmRleCBhM2E4MzlhM2Q0NDEuLjM4MDYxNDhlMWJkYiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbGR1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfbGR1LmMKQEAgLTk3LDcgKzk3LDcgQEAgc3RhdGljIGludCB2bXdfbGR1 X2NvbW1pdF9saXN0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWZiID0gZW50cnkt PmJhc2UuY3J0Yy5wcmltYXJ5LT5mYjsKIAogCQlyZXR1cm4gdm13X2ttc193cml0ZV9zdmdhKGRl dl9wcml2LCB3LCBoLCBmYi0+cGl0Y2hlc1swXSwKLQkJCQkJICBmYi0+Yml0c19wZXJfcGl4ZWws CisJCQkJCSAgZmItPmZvcm1hdC0+Y3BwWzBdICogOCwKIAkJCQkJICBmYi0+Zm9ybWF0LT5kZXB0 aCk7CiAJfQogCkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIGludCB2bXdfbGR1X2NvbW1pdF9s aXN0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWZiID0gZW50cnktPmJhc2UuY3J0 Yy5wcmltYXJ5LT5mYjsKIAogCQl2bXdfa21zX3dyaXRlX3N2Z2EoZGV2X3ByaXYsIGZiLT53aWR0 aCwgZmItPmhlaWdodCwgZmItPnBpdGNoZXNbMF0sCi0JCQkJICAgZmItPmJpdHNfcGVyX3BpeGVs LCBmYi0+Zm9ybWF0LT5kZXB0aCk7CisJCQkJICAgZmItPmZvcm1hdC0+Y3BwWzBdICogOCwgZmIt PmZvcm1hdC0+ZGVwdGgpOwogCX0KIAogCS8qIE1ha2Ugc3VyZSB3ZSBhbHdheXMgc2hvdyBzb21l dGhpbmcuICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3Ju LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMKaW5kZXggMzhkN2I4YTJi NzhlLi5kNDI2OGVmYzM3ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3Njcm4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMKQEAg LTYxOCw3ICs2MTgsNyBAQCBzdGF0aWMgaW50IGRvX2RtYWJ1Zl9kZWZpbmVfZ21yZmIoc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAl9CiAKIAljbWQtPmhlYWRlciA9IFNWR0FfQ01EX0RF RklORV9HTVJGQjsKLQljbWQtPmJvZHkuZm9ybWF0LmJpdHNQZXJQaXhlbCA9IGZyYW1lYnVmZmVy LT5iYXNlLmJpdHNfcGVyX3BpeGVsOworCWNtZC0+Ym9keS5mb3JtYXQuYml0c1BlclBpeGVsID0g ZnJhbWVidWZmZXItPmJhc2UuZm9ybWF0LT5jcHBbMF0gKiA4OwogCWNtZC0+Ym9keS5mb3JtYXQu Y29sb3JEZXB0aCA9IGRlcHRoOwogCWNtZC0+Ym9keS5mb3JtYXQucmVzZXJ2ZWQgPSAwOwogCWNt ZC0+Ym9keS5ieXRlc1BlckxpbmUgPSBmcmFtZWJ1ZmZlci0+YmFzZS5waXRjaGVzWzBdOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jCmluZGV4IDk0YWQ4ZDJhY2Y5YS4uYjI3Y2QxOGVl NjZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jCkBAIC00MjQsNyArNDI0LDcg QEAgc3RhdGljIGludCB2bXdfc3RkdV9iaW5kX2ZiKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCSAqLwogCQlpZiAobmV3X2NvbnRlbnRfdHlwZSA9PSBTRVBBUkFURV9ETUEpIHsKIAot CQkJc3dpdGNoIChuZXdfZmItPmJpdHNfcGVyX3BpeGVsKSB7CisJCQlzd2l0Y2ggKG5ld19mYi0+ Zm9ybWF0LT5jcHBbMF0gKiA4KSB7CiAJCQljYXNlIDMyOgogCQkJCWNvbnRlbnRfc3JmLmZvcm1h dCA9IFNWR0EzRF9YOFI4RzhCODsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2RybV9mcmFtZWJ1ZmZlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmgKaW5kZXgg OWI5NzcyOTk4ZGI2Li40ZWZjNTA2NjQ3NWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9m cmFtZWJ1ZmZlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oCkBAIC0xNzAs MTMgKzE3MCw2IEBAIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgewogCSAqLwogCXVuc2lnbmVkIGlu dCBoZWlnaHQ7CiAJLyoqCi0JICogQGJpdHNfcGVyX3BpeGVsOiBTdG9yYWdlIHVzZWQgYml0cyBw ZXIgcGl4ZWwgZm9yIFJHQiBmb3JtYXRzLiAwIGZvcgotCSAqIGV2ZXJ5dGhpbmcgZWxzZS4gTGVn YWN5IGluZm9ybWF0aW9uIGRlcml2ZWQgZnJvbSBAcGl4ZWxfZm9ybWF0LCBpdCdzCi0JICogc3Vn Z2VzdGVkIHRvIHVzZSB0aGUgRFJNIEZPVVJDQyBjb2RlcyBhbmQgaGVscGVyIGZ1bmN0aW9ucyBk aXJlY3RseQotCSAqIGluc3RlYWQuCi0JICovCi0JaW50IGJpdHNfcGVyX3BpeGVsOwotCS8qKgog CSAqIEBmbGFnczogRnJhbWVidWZmZXIgZmxhZ3MgbGlrZSBEUk1fTU9ERV9GQl9JTlRFUkxBQ0VE IG9yCiAJICogRFJNX01PREVfRkJfTU9ESUZJRVJTLgogCSAqLwotLSAKMi43LjQKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=