From mboxrd@z Thu Jan 1 00:00:00 1970 From: krh@bitplanet.net Subject: [PATCH] intel: Drop aub dumping functionality Date: Fri, 31 Jul 2015 10:53:26 -0700 Message-ID: <1438365206-31266-1-git-send-email-krh@bitplanet.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id C42A46ED68 for ; Fri, 31 Jul 2015 10:53:27 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: =?UTF-8?q?Kristian=20H=C3=B8gsberg=20Kristensen?= List-Id: intel-gfx@lists.freedesktop.org RnJvbTogS3Jpc3RpYW4gSMO4Z3NiZXJnIEtyaXN0ZW5zZW4gPGtyaXN0aWFuLmgua3Jpc3RlbnNl bkBpbnRlbC5jb20+CgpXZSBub3cgaGF2ZSBhIHNlcGFyYXRlIHRvb2wgZm9yIHRoaXMgaW4gaW50 ZWwtZ3B1LXRvb2xzIGFuZCB3ZSBkb24ndApuZWVkIHRvIGNsdXR0ZXIgdXAgbGliZHJtIHdpdGgg dGhpcyBmZWF0dXJlLiBXZSBsZWF2ZSB0aGUgZW50cnkgcG9pbnRzCmluIHRoZXJlIHRvIGF2b2lk IGJyZWFraW5nIEFQSS9BQkkuCgpTaWduZWQtb2ZmLWJ5OiBLcmlzdGlhbiBIw7hnc2JlcmcgS3Jp c3RlbnNlbiA8a3Jpc3RpYW4uaC5rcmlzdGVuc2VuQGludGVsLmNvbT4KLS0tCiBpbnRlbC9pbnRl bF9hdWIuaCAgICAgICAgfCAxNTMgLS0tLS0tLS0tLS0tLS0tLS0tLQogaW50ZWwvaW50ZWxfYnVm bWdyX2dlbS5jIHwgMzc5ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNTMwIGRlbGV0aW9ucygt KQogZGVsZXRlIG1vZGUgMTAwNjQ0IGludGVsL2ludGVsX2F1Yi5oCgpkaWZmIC0tZ2l0IGEvaW50 ZWwvaW50ZWxfYXViLmggYi9pbnRlbC9pbnRlbF9hdWIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggNWYwYWJhOC4uMDAwMDAwMAotLS0gYS9pbnRlbC9pbnRlbF9hdWIuaAorKysgL2Rl di9udWxsCkBAIC0xLDE1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IMKpIDIwMTAgSW50ZWwg Q29ycG9yYXRpb24KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3 YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwK LSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu ZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl Ci0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkg c2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv ZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSAqIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLCBBUklTSU5HCi0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCi0gKiBJTiBUSEUgU09GVFdBUkUu Ci0gKgotICogQXV0aG9yczoKLSAqICAgIEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Ci0g KgotICovCi0KLS8qKiBAZmlsZSBpbnRlbF9hdWIuaAotICoKLSAqIFRoZSBBVUIgZmlsZSBpcyBh IGZpbGUgZm9ybWF0IHVzZWQgYnkgSW50ZWwncyBpbnRlcm5hbCBzaW11bGF0aW9uCi0gKiBhbmQg b3RoZXIgdmFsaWRhdGlvbiB0b29scy4gIEl0IGNhbiBiZSB1c2VkIGF0IHZhcmlvdXMgbGV2ZWxz IGJ5IGEKLSAqIGRyaXZlciB0byBpbnB1dCBzdGF0ZSB0byB0aGUgc2ltdWxhdGVkIGhhcmR3YXJl IG9yIGEgcmVwbGF5aW5nCi0gKiBkZWJ1Z2dlci4KLSAqCi0gKiBXZSBjaG9vc2UgdG8gZHVtcCBB VUIgZmlsZXMgdXNpbmcgdGhlIHRyYWNlIGJsb2NrIGZvcm1hdCBmb3IgZWFzZQotICogb2YgaW1w bGVtZW50YXRpb24gLS0gZHVtcCBvdXQgdGhlIGJsb2NrcyBvZiBtZW1vcnkgYXMgcGxhaW4gYmxv YnMKLSAqIGFuZCBpbnNlcnQgcmluZyBjb21tYW5kcyB0byBleGVjdXRlIHRoZSBiYXRjaGJ1ZmZl ciBibG9iLgotICovCi0KLSNpZm5kZWYgX0lOVEVMX0FVQl9ICi0jZGVmaW5lIF9JTlRFTF9BVUJf SAotCi0jZGVmaW5lIEFVQl9NSV9OT09QCQkJKDApCi0jZGVmaW5lIEFVQl9NSV9CQVRDSF9CVUZG RVJfU1RBUlQgCSgweDMxIDw8IDIzKQotI2RlZmluZSBBVUJfUElQRV9DT05UUk9MCQkoMHg3YTAw MDAwMikKLQotLyogRFcwOiBpbnN0cnVjdGlvbiB0eXBlLiAqLwotCi0jZGVmaW5lIENNRF9BVUIJ CQkoNyA8PCAyOSkKLQotI2RlZmluZSBDTURfQVVCX0hFQURFUgkJKENNRF9BVUIgfCAoMSA8PCAy MykgfCAoMHgwNSA8PCAxNikpCi0vKiBEVzEgKi8KLSMgZGVmaW5lIEFVQl9IRUFERVJfTUFKT1Jf U0hJRlQJCTI0Ci0jIGRlZmluZSBBVUJfSEVBREVSX01JTk9SX1NISUZUCQkxNgotCi0jZGVmaW5l IENNRF9BVUJfVFJBQ0VfSEVBREVSX0JMT0NLIChDTURfQVVCIHwgKDEgPDwgMjMpIHwgKDB4NDEg PDwgMTYpKQotI2RlZmluZSBDTURfQVVCX0RVTVBfQk1QICAgICAgICAgICAoQ01EX0FVQiB8ICgx IDw8IDIzKSB8ICgweDllIDw8IDE2KSkKLQotLyogRFcxICovCi0jZGVmaW5lIEFVQl9UUkFDRV9P UEVSQVRJT05fTUFTSwkweDAwMDAwMGZmCi0jZGVmaW5lIEFVQl9UUkFDRV9PUF9DT01NRU5UCQkw eDAwMDAwMDAwCi0jZGVmaW5lIEFVQl9UUkFDRV9PUF9EQVRBX1dSSVRFCQkweDAwMDAwMDAxCi0j ZGVmaW5lIEFVQl9UUkFDRV9PUF9DT01NQU5EX1dSSVRFCTB4MDAwMDAwMDIKLSNkZWZpbmUgQVVC X1RSQUNFX09QX01NSU9fV1JJVEUJCTB4MDAwMDAwMDMKLS8vIG9wZXJhdGlvbiA9IFRSQUNFX0RB VEFfV1JJVEUsIFR5cGUKLSNkZWZpbmUgQVVCX1RSQUNFX1RZUEVfTUFTSwkJMHgwMDAwZmYwMAot I2RlZmluZSBBVUJfVFJBQ0VfVFlQRV9OT1RZUEUJCSgwIDw8IDgpCi0jZGVmaW5lIEFVQl9UUkFD RV9UWVBFX0JBVENICQkoMSA8PCA4KQotI2RlZmluZSBBVUJfVFJBQ0VfVFlQRV9WRVJURVhfQlVG RkVSCSg1IDw8IDgpCi0jZGVmaW5lIEFVQl9UUkFDRV9UWVBFXzJEX01BUAkJKDYgPDwgOCkKLSNk ZWZpbmUgQVVCX1RSQUNFX1RZUEVfQ1VCRV9NQVAJCSg3IDw8IDgpCi0jZGVmaW5lIEFVQl9UUkFD RV9UWVBFX1ZPTFVNRV9NQVAJKDkgPDwgOCkKLSNkZWZpbmUgQVVCX1RSQUNFX1RZUEVfMURfTUFQ CQkoMTAgPDwgOCkKLSNkZWZpbmUgQVVCX1RSQUNFX1RZUEVfQ09OU1RBTlRfQlVGRkVSCSgxMSA8 PCA4KQotI2RlZmluZSBBVUJfVFJBQ0VfVFlQRV9DT05TVEFOVF9VUkIJKDEyIDw8IDgpCi0jZGVm aW5lIEFVQl9UUkFDRV9UWVBFX0lOREVYX0JVRkZFUgkoMTMgPDwgOCkKLSNkZWZpbmUgQVVCX1RS QUNFX1RZUEVfR0VORVJBTAkJKDE0IDw8IDgpCi0jZGVmaW5lIEFVQl9UUkFDRV9UWVBFX1NVUkZB Q0UJCSgxNSA8PCA4KQotCi0KLS8vIG9wZXJhdGlvbiA9IFRSQUNFX0NPTU1BTkRfV1JJVEUsIFR5 cGUgPQotI2RlZmluZSBBVUJfVFJBQ0VfVFlQRV9SSU5HX0hXQgkJKDEgPDwgOCkKLSNkZWZpbmUg QVVCX1RSQUNFX1RZUEVfUklOR19QUkIwCSgyIDw8IDgpCi0jZGVmaW5lIEFVQl9UUkFDRV9UWVBF X1JJTkdfUFJCMQkoMyA8PCA4KQotI2RlZmluZSBBVUJfVFJBQ0VfVFlQRV9SSU5HX1BSQjIJKDQg PDwgOCkKLQotLy8gQWRkcmVzcyBzcGFjZQotI2RlZmluZSBBVUJfVFJBQ0VfQUREUkVTU19TUEFD RV9NQVNLCTB4MDBmZjAwMDAKLSNkZWZpbmUgQVVCX1RSQUNFX01FTVRZUEVfR1RUCQkoMCA8PCAx NikKLSNkZWZpbmUgQVVCX1RSQUNFX01FTVRZUEVfTE9DQUwJCSgxIDw8IDE2KQotI2RlZmluZSBB VUJfVFJBQ0VfTUVNVFlQRV9OT05MT0NBTAkoMiA8PCAxNikKLSNkZWZpbmUgQVVCX1RSQUNFX01F TVRZUEVfUENJCQkoMyA8PCAxNikKLSNkZWZpbmUgQVVCX1RSQUNFX01FTVRZUEVfR1RUX0VOVFJZ ICAgICAoNCA8PCAxNikKLQotLyogRFcyICovCi0KLS8qKgotICogYXViX3N0YXRlX3N0cnVjdF90 eXBlIGVudW0gdmFsdWVzIGFyZSBlbmNvZGVkIHdpdGggdGhlIHRvcCAxNiBiaXRzCi0gKiByZXBy ZXNlbnRpbmcgdGhlIHR5cGUgdG8gYmUgZGVsaXZlcmVkIHRvIHRoZSAuYXViIGZpbGUsIGFuZCB0 aGUgYm90dG9tIDE2Ci0gKiBiaXRzIHJlcHJlc2VudGluZyB0aGUgc3VidHlwZS4gIFRoaXMgbWFj cm8gcGVyZm9ybXMgdGhlIGVuY29kaW5nLgotICovCi0jZGVmaW5lIEVOQ09ERV9TU19UWVBFKHR5 cGUsIHN1YnR5cGUpICgoKHR5cGUpIDw8IDE2KSB8IChzdWJ0eXBlKSkKLQotZW51bSBhdWJfc3Rh dGVfc3RydWN0X3R5cGUgewotICAgQVVCX1RSQUNFX1ZTX1NUQVRFID0JCQlFTkNPREVfU1NfVFlQ RShBVUJfVFJBQ0VfVFlQRV9HRU5FUkFMLCAxKSwKLSAgIEFVQl9UUkFDRV9HU19TVEFURSA9CQkJ RU5DT0RFX1NTX1RZUEUoQVVCX1RSQUNFX1RZUEVfR0VORVJBTCwgMiksCi0gICBBVUJfVFJBQ0Vf Q0xJUF9TVEFURSA9CQlFTkNPREVfU1NfVFlQRShBVUJfVFJBQ0VfVFlQRV9HRU5FUkFMLCAzKSwK LSAgIEFVQl9UUkFDRV9TRl9TVEFURSA9CQkJRU5DT0RFX1NTX1RZUEUoQVVCX1RSQUNFX1RZUEVf R0VORVJBTCwgNCksCi0gICBBVUJfVFJBQ0VfV01fU1RBVEUgPQkJCUVOQ09ERV9TU19UWVBFKEFV Ql9UUkFDRV9UWVBFX0dFTkVSQUwsIDUpLAotICAgQVVCX1RSQUNFX0NDX1NUQVRFID0JCQlFTkNP REVfU1NfVFlQRShBVUJfVFJBQ0VfVFlQRV9HRU5FUkFMLCA2KSwKLSAgIEFVQl9UUkFDRV9DTElQ X1ZQX1NUQVRFID0JCUVOQ09ERV9TU19UWVBFKEFVQl9UUkFDRV9UWVBFX0dFTkVSQUwsIDcpLAot ICAgQVVCX1RSQUNFX1NGX1ZQX1NUQVRFID0JCUVOQ09ERV9TU19UWVBFKEFVQl9UUkFDRV9UWVBF X0dFTkVSQUwsIDgpLAotICAgQVVCX1RSQUNFX0NDX1ZQX1NUQVRFID0JCUVOQ09ERV9TU19UWVBF KEFVQl9UUkFDRV9UWVBFX0dFTkVSQUwsIDB4OSksCi0gICBBVUJfVFJBQ0VfU0FNUExFUl9TVEFU RSA9CQlFTkNPREVfU1NfVFlQRShBVUJfVFJBQ0VfVFlQRV9HRU5FUkFMLCAweGEpLAotICAgQVVC X1RSQUNFX0tFUk5FTF9JTlNUUlVDVElPTlMgPQlFTkNPREVfU1NfVFlQRShBVUJfVFJBQ0VfVFlQ RV9HRU5FUkFMLCAweGIpLAotICAgQVVCX1RSQUNFX1NDUkFUQ0hfU1BBQ0UgPQkJRU5DT0RFX1NT X1RZUEUoQVVCX1RSQUNFX1RZUEVfR0VORVJBTCwgMHhjKSwKLSAgIEFVQl9UUkFDRV9TQU1QTEVS X0RFRkFVTFRfQ09MT1IgPQlFTkNPREVfU1NfVFlQRShBVUJfVFJBQ0VfVFlQRV9HRU5FUkFMLCAw eGQpLAotCi0gICBBVUJfVFJBQ0VfU0NJU1NPUl9TVEFURSA9CQlFTkNPREVfU1NfVFlQRShBVUJf VFJBQ0VfVFlQRV9HRU5FUkFMLCAweDE1KSwKLSAgIEFVQl9UUkFDRV9CTEVORF9TVEFURSA9CQlF TkNPREVfU1NfVFlQRShBVUJfVFJBQ0VfVFlQRV9HRU5FUkFMLCAweDE2KSwKLSAgIEFVQl9UUkFD RV9ERVBUSF9TVEVOQ0lMX1NUQVRFID0JRU5DT0RFX1NTX1RZUEUoQVVCX1RSQUNFX1RZUEVfR0VO RVJBTCwgMHgxNyksCi0KLSAgIEFVQl9UUkFDRV9WRVJURVhfQlVGRkVSID0JCUVOQ09ERV9TU19U WVBFKEFVQl9UUkFDRV9UWVBFX1ZFUlRFWF9CVUZGRVIsIDApLAotICAgQVVCX1RSQUNFX0JJTkRJ TkdfVEFCTEUgPQkJRU5DT0RFX1NTX1RZUEUoQVVCX1RSQUNFX1RZUEVfU1VSRkFDRSwgMHgxMDAp LAotICAgQVVCX1RSQUNFX1NVUkZBQ0VfU1RBVEUgPQkJRU5DT0RFX1NTX1RZUEUoQVVCX1RSQUNF X1RZUEVfU1VSRkFDRSwgMHgyMDApLAotICAgQVVCX1RSQUNFX1ZTX0NPTlNUQU5UUyA9CQlFTkNP REVfU1NfVFlQRShBVUJfVFJBQ0VfVFlQRV9DT05TVEFOVF9CVUZGRVIsIDApLAotICAgQVVCX1RS QUNFX1dNX0NPTlNUQU5UUyA9CQlFTkNPREVfU1NfVFlQRShBVUJfVFJBQ0VfVFlQRV9DT05TVEFO VF9CVUZGRVIsIDEpLAotfTsKLQotI3VuZGVmIEVOQ09ERV9TU19UWVBFCi0KLS8qKgotICogRGVj b2RlIGEgYXViX3N0YXRlX3N0cnVjdF90eXBlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgdHlwZSB0 aGF0IHNob3VsZCBiZQotICogc3RvcmVkIGluIHRoZSAuYXViIGZpbGUuCi0gKi8KLXN0YXRpYyBp bmxpbmUgdWludDMyX3QgQVVCX1RSQUNFX1RZUEUoZW51bSBhdWJfc3RhdGVfc3RydWN0X3R5cGUg c3NfdHlwZSkKLXsKLSAgIHJldHVybiAoc3NfdHlwZSAmIDB4RkZGRjAwMDApID4+IDE2OwotfQot Ci0vKioKLSAqIERlY29kZSBhIHN0YXRlX3N0cnVjdF90eXBlIHZhbHVlIHRvIGRldGVybWluZSB0 aGUgc3VidHlwZSB0aGF0IHNob3VsZCBiZQotICogc3RvcmVkIGluIHRoZSAuYXViIGZpbGUuCi0g Ki8KLXN0YXRpYyBpbmxpbmUgdWludDMyX3QgQVVCX1RSQUNFX1NVQlRZUEUoZW51bSBhdWJfc3Rh dGVfc3RydWN0X3R5cGUgc3NfdHlwZSkKLXsKLSAgIHJldHVybiBzc190eXBlICYgMHhGRkZGOwot fQotCi0vKiBEVzM6IGFkZHJlc3MgKi8KLS8qIERXNDogbGVuICovCi0KLSNlbmRpZiAvKiBfSU5U RUxfQVVCX0ggKi8KZGlmZiAtLWdpdCBhL2ludGVsL2ludGVsX2J1Zm1ncl9nZW0uYyBiL2ludGVs L2ludGVsX2J1Zm1ncl9nZW0uYwppbmRleCBiMWMzYjNhLi40NGVhMGI5IDEwMDY0NAotLS0gYS9p bnRlbC9pbnRlbF9idWZtZ3JfZ2VtLmMKKysrIGIvaW50ZWwvaW50ZWxfYnVmbWdyX2dlbS5jCkBA IC02MSw3ICs2MSw2IEBACiAjaW5jbHVkZSAiaW50ZWxfYnVmbWdyLmgiCiAjaW5jbHVkZSAiaW50 ZWxfYnVmbWdyX3ByaXYuaCIKICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCi0jaW5jbHVkZSAi aW50ZWxfYXViLmgiCiAjaW5jbHVkZSAic3RyaW5nLmgiCiAKICNpbmNsdWRlICJpOTE1X2RybS5o IgpAQCAtMTM4LDkgKzEzNyw2IEBAIHR5cGVkZWYgc3RydWN0IF9kcm1faW50ZWxfYnVmbWdyX2dl bSB7CiAJCXVpbnQzMl90IGhhbmRsZTsKIAl9IHVzZXJwdHJfYWN0aXZlOwogCi0JY2hhciAqYXVi X2ZpbGVuYW1lOwotCUZJTEUgKmF1Yl9maWxlOwotCXVpbnQzMl90IGF1Yl9vZmZzZXQ7CiB9IGRy bV9pbnRlbF9idWZtZ3JfZ2VtOwogCiAjZGVmaW5lIERSTV9JTlRFTF9SRUxPQ19GRU5DRSAoMTw8 MCkKQEAgLTI1NiwxMSArMjUyLDYgQEAgc3RydWN0IF9kcm1faW50ZWxfYm9fZ2VtIHsKIAogCS8q KiBGbGFncyB0aGF0IHdlIG1heSBuZWVkIHRvIGRvIHRoZSBTV19GSU5TSUggaW9jdGwgb24gdW5t YXAuICovCiAJYm9vbCBtYXBwZWRfY3B1X3dyaXRlOwotCi0JdWludDMyX3QgYXViX29mZnNldDsK LQotCWRybV9pbnRlbF9hdWJfYW5ub3RhdGlvbiAqYXViX2Fubm90YXRpb25zOwotCXVuc2lnbmVk IGF1Yl9hbm5vdGF0aW9uX2NvdW50OwogfTsKIAogc3RhdGljIHVuc2lnbmVkIGludApAQCAtNzg5 LDggKzc4MCw2IEBAIHJldHJ5OgogCWJvX2dlbS0+dXNlZF9hc19yZWxvY190YXJnZXQgPSBmYWxz ZTsKIAlib19nZW0tPmhhc19lcnJvciA9IGZhbHNlOwogCWJvX2dlbS0+cmV1c2FibGUgPSB0cnVl OwotCWJvX2dlbS0+YXViX2Fubm90YXRpb25zID0gTlVMTDsKLQlib19nZW0tPmF1Yl9hbm5vdGF0 aW9uX2NvdW50ID0gMDsKIAogCWRybV9pbnRlbF9ib19nZW1fc2V0X2luX2FwZXJ0dXJlX3NpemUo YnVmbWdyX2dlbSwgYm9fZ2VtLCBhbGlnbm1lbnQpOwogCkBAIC0xMTQzLDcgKzExMzIsNiBAQCBk cm1faW50ZWxfZ2VtX2JvX2ZyZWUoZHJtX2ludGVsX2JvICpibykKIAkJREJHKCJEUk1fSU9DVExf R0VNX0NMT1NFICVkIGZhaWxlZCAoJXMpOiAlc1xuIiwKIAkJICAgIGJvX2dlbS0+Z2VtX2hhbmRs ZSwgYm9fZ2VtLT5uYW1lLCBzdHJlcnJvcihlcnJubykpOwogCX0KLQlmcmVlKGJvX2dlbS0+YXVi X2Fubm90YXRpb25zKTsKIAlmcmVlKGJvKTsKIH0KIApAQCAtMTgyMiw3ICsxODEwLDYgQEAgZHJt X2ludGVsX2J1Zm1ncl9nZW1fZGVzdHJveShkcm1faW50ZWxfYnVmbWdyICpidWZtZ3IpCiAJZnJl ZShidWZtZ3JfZ2VtLT5leGVjMl9vYmplY3RzKTsKIAlmcmVlKGJ1Zm1ncl9nZW0tPmV4ZWNfb2Jq ZWN0cyk7CiAJZnJlZShidWZtZ3JfZ2VtLT5leGVjX2Jvcyk7Ci0JZnJlZShidWZtZ3JfZ2VtLT5h dWJfZmlsZW5hbWUpOwogCiAJcHRocmVhZF9tdXRleF9kZXN0cm95KCZidWZtZ3JfZ2VtLT5sb2Nr KTsKIApAQCAtMjExNiwyOTggKzIxMDMsNiBAQCBkcm1faW50ZWxfdXBkYXRlX2J1ZmZlcl9vZmZz ZXRzMiAoZHJtX2ludGVsX2J1Zm1ncl9nZW0gKmJ1Zm1ncl9nZW0pCiAJfQogfQogCi1zdGF0aWMg dm9pZAotYXViX291dChkcm1faW50ZWxfYnVmbWdyX2dlbSAqYnVmbWdyX2dlbSwgdWludDMyX3Qg ZGF0YSkKLXsKLQlmd3JpdGUoJmRhdGEsIDEsIDQsIGJ1Zm1ncl9nZW0tPmF1Yl9maWxlKTsKLX0K LQotc3RhdGljIHZvaWQKLWF1Yl9vdXRfZGF0YShkcm1faW50ZWxfYnVmbWdyX2dlbSAqYnVmbWdy X2dlbSwgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUpCi17Ci0JZndyaXRlKGRhdGEsIDEsIHNpemUs IGJ1Zm1ncl9nZW0tPmF1Yl9maWxlKTsKLX0KLQotc3RhdGljIHZvaWQKLWF1Yl93cml0ZV9ib19k YXRhKGRybV9pbnRlbF9ibyAqYm8sIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3Qgc2l6ZSkKLXsK LQlkcm1faW50ZWxfYnVmbWdyX2dlbSAqYnVmbWdyX2dlbSA9IChkcm1faW50ZWxfYnVmbWdyX2dl bSAqKSBiby0+YnVmbWdyOwotCWRybV9pbnRlbF9ib19nZW0gKmJvX2dlbSA9IChkcm1faW50ZWxf Ym9fZ2VtICopIGJvOwotCXVpbnQzMl90ICpkYXRhOwotCXVuc2lnbmVkIGludCBpOwotCi0JZGF0 YSA9IG1hbGxvYyhiby0+c2l6ZSk7Ci0JZHJtX2ludGVsX2JvX2dldF9zdWJkYXRhKGJvLCBvZmZz ZXQsIHNpemUsIGRhdGEpOwotCi0JLyogRWFzeSBtb2RlOiB3cml0ZSBvdXQgYm8gd2l0aCBubyBy ZWxvY2F0aW9ucyAqLwotCWlmICghYm9fZ2VtLT5yZWxvY19jb3VudCkgewotCQlhdWJfb3V0X2Rh dGEoYnVmbWdyX2dlbSwgZGF0YSwgc2l6ZSk7Ci0JCWZyZWUoZGF0YSk7Ci0JCXJldHVybjsKLQl9 Ci0KLQkvKiBPdGhlcndpc2UsIGhhbmRsZSB0aGUgcmVsb2NhdGlvbnMgd2hpbGUgd3JpdGluZy4g Ki8KLQlmb3IgKGkgPSAwOyBpIDwgc2l6ZSAvIDQ7IGkrKykgewotCQlpbnQgcjsKLQkJZm9yIChy ID0gMDsgciA8IGJvX2dlbS0+cmVsb2NfY291bnQ7IHIrKykgewotCQkJc3RydWN0IGRybV9pOTE1 X2dlbV9yZWxvY2F0aW9uX2VudHJ5ICpyZWxvYzsKLQkJCWRybV9pbnRlbF9yZWxvY190YXJnZXQg KmluZm87Ci0KLQkJCXJlbG9jID0gJmJvX2dlbS0+cmVsb2NzW3JdOwotCQkJaW5mbyA9ICZib19n ZW0tPnJlbG9jX3RhcmdldF9pbmZvW3JdOwotCi0JCQlpZiAocmVsb2MtPm9mZnNldCA9PSBvZmZz ZXQgKyBpICogNCkgewotCQkJCWRybV9pbnRlbF9ib19nZW0gKnRhcmdldF9nZW07Ci0JCQkJdWlu dDMyX3QgdmFsOwotCi0JCQkJdGFyZ2V0X2dlbSA9IChkcm1faW50ZWxfYm9fZ2VtICopaW5mby0+ Ym87Ci0KLQkJCQl2YWwgPSByZWxvYy0+ZGVsdGE7Ci0JCQkJdmFsICs9IHRhcmdldF9nZW0tPmF1 Yl9vZmZzZXQ7Ci0KLQkJCQlhdWJfb3V0KGJ1Zm1ncl9nZW0sIHZhbCk7Ci0JCQkJZGF0YVtpXSA9 IHZhbDsKLQkJCQlicmVhazsKLQkJCX0KLQkJfQotCQlpZiAociA9PSBib19nZW0tPnJlbG9jX2Nv dW50KSB7Ci0JCQkvKiBubyByZWxvY2F0aW9uLCBqdXN0IHRoZSBkYXRhICovCi0JCQlhdWJfb3V0 KGJ1Zm1ncl9nZW0sIGRhdGFbaV0pOwotCQl9Ci0JfQotCi0JZnJlZShkYXRhKTsKLX0KLQotc3Rh dGljIHZvaWQKLWF1Yl9ib19nZXRfYWRkcmVzcyhkcm1faW50ZWxfYm8gKmJvKQotewotCWRybV9p bnRlbF9idWZtZ3JfZ2VtICpidWZtZ3JfZ2VtID0gKGRybV9pbnRlbF9idWZtZ3JfZ2VtICopIGJv LT5idWZtZ3I7Ci0JZHJtX2ludGVsX2JvX2dlbSAqYm9fZ2VtID0gKGRybV9pbnRlbF9ib19nZW0g KikgYm87Ci0KLQkvKiBHaXZlIHRoZSBvYmplY3QgYSBncmFwaGljcyBhZGRyZXNzIGluIHRoZSBB VUIgZmlsZS4gIFdlCi0JICogZG9uJ3QganVzdCB1c2UgdGhlIEdFTSBvYmplY3QgYWRkcmVzcyBi ZWNhdXNlIHdlIGRvIEFVQgotCSAqIGR1bXBpbmcgYmVmb3JlIGV4ZWN1dGlvbiAtLSB3ZSB3YW50 IHRvIHN1Y2Nlc3NmdWxseSBsb2cKLQkgKiB3aGVuIHRoZSBoYXJkd2FyZSBtaWdodCBoYW5nLCBh bmQgd2UgbWlnaHQgZXZlbiB3YW50IHRvIGF1YgotCSAqIGNhcHR1cmUgZm9yIGEgZHJpdmVyIHRy eWluZyB0byBleGVjdXRlIG9uIGEgZGlmZmVyZW50Ci0JICogZ2VuZXJhdGlvbiBvZiBoYXJkd2Fy ZSBieSBkaXNhYmxpbmcgdGhlIGFjdHVhbCBrZXJuZWwgZXhlYwotCSAqIGNhbGwuCi0JICovCi0J Ym9fZ2VtLT5hdWJfb2Zmc2V0ID0gYnVmbWdyX2dlbS0+YXViX29mZnNldDsKLQlidWZtZ3JfZ2Vt LT5hdWJfb2Zmc2V0ICs9IGJvLT5zaXplOwotCS8qIFhYWDogSGFuZGxlIGFwZXJ0dXJlIG92ZXJm bG93LiAqLwotCWFzc2VydChidWZtZ3JfZ2VtLT5hdWJfb2Zmc2V0IDwgMjU2ICogMTAyNCAqIDEw MjQpOwotfQotCi1zdGF0aWMgdm9pZAotYXViX3dyaXRlX3RyYWNlX2Jsb2NrKGRybV9pbnRlbF9i byAqYm8sIHVpbnQzMl90IHR5cGUsIHVpbnQzMl90IHN1YnR5cGUsCi0JCSAgICAgIHVpbnQzMl90 IG9mZnNldCwgdWludDMyX3Qgc2l6ZSkKLXsKLQlkcm1faW50ZWxfYnVmbWdyX2dlbSAqYnVmbWdy X2dlbSA9IChkcm1faW50ZWxfYnVmbWdyX2dlbSAqKSBiby0+YnVmbWdyOwotCWRybV9pbnRlbF9i b19nZW0gKmJvX2dlbSA9IChkcm1faW50ZWxfYm9fZ2VtICopIGJvOwotCi0JYXViX291dChidWZt Z3JfZ2VtLAotCQlDTURfQVVCX1RSQUNFX0hFQURFUl9CTE9DSyB8Ci0JCSgoYnVmbWdyX2dlbS0+ Z2VuID49IDggPyA2IDogNSkgLSAyKSk7Ci0JYXViX291dChidWZtZ3JfZ2VtLAotCQlBVUJfVFJB Q0VfTUVNVFlQRV9HVFQgfCB0eXBlIHwgQVVCX1RSQUNFX09QX0RBVEFfV1JJVEUpOwotCWF1Yl9v dXQoYnVmbWdyX2dlbSwgc3VidHlwZSk7Ci0JYXViX291dChidWZtZ3JfZ2VtLCBib19nZW0tPmF1 Yl9vZmZzZXQgKyBvZmZzZXQpOwotCWF1Yl9vdXQoYnVmbWdyX2dlbSwgc2l6ZSk7Ci0JaWYgKGJ1 Zm1ncl9nZW0tPmdlbiA+PSA4KQotCQlhdWJfb3V0KGJ1Zm1ncl9nZW0sIDApOwotCWF1Yl93cml0 ZV9ib19kYXRhKGJvLCBvZmZzZXQsIHNpemUpOwotfQotCi0vKioKLSAqIEJyZWFrIHVwIGxhcmdl IG9iamVjdHMgaW50byBtdWx0aXBsZSB3cml0ZXMuICBPdGhlcndpc2UgYSAxMjhrYiBWQk8KLSAq IHdvdWxkIG92ZXJmbG93IHRoZSAxNiBiaXRzIG9mIHNpemUgZmllbGQgaW4gdGhlIHBhY2tldCBo ZWFkZXIgYW5kCi0gKiBldmVyeXRoaW5nIGdvZXMgYmFkbHkgYWZ0ZXIgdGhhdC4KLSAqLwotc3Rh dGljIHZvaWQKLWF1Yl93cml0ZV9sYXJnZV90cmFjZV9ibG9jayhkcm1faW50ZWxfYm8gKmJvLCB1 aW50MzJfdCB0eXBlLCB1aW50MzJfdCBzdWJ0eXBlLAotCQkJICAgIHVpbnQzMl90IG9mZnNldCwg dWludDMyX3Qgc2l6ZSkKLXsKLQl1aW50MzJfdCBibG9ja19zaXplOwotCXVpbnQzMl90IHN1Yl9v ZmZzZXQ7Ci0KLQlmb3IgKHN1Yl9vZmZzZXQgPSAwOyBzdWJfb2Zmc2V0IDwgc2l6ZTsgc3ViX29m ZnNldCArPSBibG9ja19zaXplKSB7Ci0JCWJsb2NrX3NpemUgPSBzaXplIC0gc3ViX29mZnNldDsK LQotCQlpZiAoYmxvY2tfc2l6ZSA+IDggKiA0MDk2KQotCQkJYmxvY2tfc2l6ZSA9IDggKiA0MDk2 OwotCi0JCWF1Yl93cml0ZV90cmFjZV9ibG9jayhibywgdHlwZSwgc3VidHlwZSwgb2Zmc2V0ICsg c3ViX29mZnNldCwKLQkJCQkgICAgICBibG9ja19zaXplKTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lk Ci1hdWJfd3JpdGVfYm8oZHJtX2ludGVsX2JvICpibykKLXsKLQlkcm1faW50ZWxfYm9fZ2VtICpi b19nZW0gPSAoZHJtX2ludGVsX2JvX2dlbSAqKSBibzsKLQl1aW50MzJfdCBvZmZzZXQgPSAwOwot CXVuc2lnbmVkIGk7Ci0KLQlhdWJfYm9fZ2V0X2FkZHJlc3MoYm8pOwotCi0JLyogV3JpdGUgb3V0 IGVhY2ggYW5ub3RhdGVkIHNlY3Rpb24gc2VwYXJhdGVseS4gKi8KLQlmb3IgKGkgPSAwOyBpIDwg Ym9fZ2VtLT5hdWJfYW5ub3RhdGlvbl9jb3VudDsgKytpKSB7Ci0JCWRybV9pbnRlbF9hdWJfYW5u b3RhdGlvbiAqYW5ub3RhdGlvbiA9Ci0JCQkmYm9fZ2VtLT5hdWJfYW5ub3RhdGlvbnNbaV07Ci0J CXVpbnQzMl90IGVuZGluZ19vZmZzZXQgPSBhbm5vdGF0aW9uLT5lbmRpbmdfb2Zmc2V0OwotCQlp ZiAoZW5kaW5nX29mZnNldCA+IGJvLT5zaXplKQotCQkJZW5kaW5nX29mZnNldCA9IGJvLT5zaXpl OwotCQlpZiAoZW5kaW5nX29mZnNldCA+IG9mZnNldCkgewotCQkJYXViX3dyaXRlX2xhcmdlX3Ry YWNlX2Jsb2NrKGJvLCBhbm5vdGF0aW9uLT50eXBlLAotCQkJCQkJICAgIGFubm90YXRpb24tPnN1 YnR5cGUsCi0JCQkJCQkgICAgb2Zmc2V0LAotCQkJCQkJICAgIGVuZGluZ19vZmZzZXQgLSBvZmZz ZXQpOwotCQkJb2Zmc2V0ID0gZW5kaW5nX29mZnNldDsKLQkJfQotCX0KLQotCS8qIFdyaXRlIG91 dCBhbnkgcmVtYWluaW5nIHVuYW5ub3RhdGVkIGRhdGEgKi8KLQlpZiAob2Zmc2V0IDwgYm8tPnNp emUpIHsKLQkJYXViX3dyaXRlX2xhcmdlX3RyYWNlX2Jsb2NrKGJvLCBBVUJfVFJBQ0VfVFlQRV9O T1RZUEUsIDAsCi0JCQkJCSAgICBvZmZzZXQsIGJvLT5zaXplIC0gb2Zmc2V0KTsKLQl9Ci19Ci0K LS8qCi0gKiBNYWtlIGEgcmluZ2J1ZmZlciBvbiBmbHkgYW5kIGR1bXAgaXQKLSAqLwotc3RhdGlj IHZvaWQKLWF1Yl9idWlsZF9kdW1wX3JpbmdidWZmZXIoZHJtX2ludGVsX2J1Zm1ncl9nZW0gKmJ1 Zm1ncl9nZW0sCi0JCQkgIHVpbnQzMl90IGJhdGNoX2J1ZmZlciwgaW50IHJpbmdfZmxhZykKLXsK LQl1aW50MzJfdCByaW5nYnVmZmVyWzQwOTZdOwotCWludCByaW5nID0gQVVCX1RSQUNFX1RZUEVf UklOR19QUkIwOyAvKiBUaGUgZGVmYXVsdCByaW5nICovCi0JaW50IHJpbmdfY291bnQgPSAwOwot Ci0JaWYgKHJpbmdfZmxhZyA9PSBJOTE1X0VYRUNfQlNEKQotCQlyaW5nID0gQVVCX1RSQUNFX1RZ UEVfUklOR19QUkIxOwotCWVsc2UgaWYgKHJpbmdfZmxhZyA9PSBJOTE1X0VYRUNfQkxUKQotCQly aW5nID0gQVVCX1RSQUNFX1RZUEVfUklOR19QUkIyOwotCi0JLyogTWFrZSBhIHJpbmcgYnVmZmVy IHRvIGV4ZWN1dGUgb3VyIGJhdGNoYnVmZmVyLiAqLwotCW1lbXNldChyaW5nYnVmZmVyLCAwLCBz aXplb2YocmluZ2J1ZmZlcikpOwotCWlmIChidWZtZ3JfZ2VtLT5nZW4gPj0gOCkgewotCQlyaW5n YnVmZmVyW3JpbmdfY291bnQrK10gPSBBVUJfTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIHwgKDMgLSAy KTsKLQkJcmluZ2J1ZmZlcltyaW5nX2NvdW50KytdID0gYmF0Y2hfYnVmZmVyOwotCQlyaW5nYnVm ZmVyW3JpbmdfY291bnQrK10gPSAwOwotCX0gZWxzZSB7Ci0JCXJpbmdidWZmZXJbcmluZ19jb3Vu dCsrXSA9IEFVQl9NSV9CQVRDSF9CVUZGRVJfU1RBUlQ7Ci0JCXJpbmdidWZmZXJbcmluZ19jb3Vu dCsrXSA9IGJhdGNoX2J1ZmZlcjsKLQl9Ci0KLQkvKiBXcml0ZSBvdXQgdGhlIHJpbmcuICBUaGlz IGFwcGVhcnMgdG8gdHJpZ2dlciBleGVjdXRpb24gb2YKLQkgKiB0aGUgcmluZyBpbiB0aGUgc2lt dWxhdG9yLgotCSAqLwotCWF1Yl9vdXQoYnVmbWdyX2dlbSwKLQkJQ01EX0FVQl9UUkFDRV9IRUFE RVJfQkxPQ0sgfAotCQkoKGJ1Zm1ncl9nZW0tPmdlbiA+PSA4ID8gNiA6IDUpIC0gMikpOwotCWF1 Yl9vdXQoYnVmbWdyX2dlbSwKLQkJQVVCX1RSQUNFX01FTVRZUEVfR1RUIHwgcmluZyB8IEFVQl9U UkFDRV9PUF9DT01NQU5EX1dSSVRFKTsKLQlhdWJfb3V0KGJ1Zm1ncl9nZW0sIDApOyAvKiBnZW5l cmFsL3N1cmZhY2Ugc3VidHlwZSAqLwotCWF1Yl9vdXQoYnVmbWdyX2dlbSwgYnVmbWdyX2dlbS0+ YXViX29mZnNldCk7Ci0JYXViX291dChidWZtZ3JfZ2VtLCByaW5nX2NvdW50ICogNCk7Ci0JaWYg KGJ1Zm1ncl9nZW0tPmdlbiA+PSA4KQotCQlhdWJfb3V0KGJ1Zm1ncl9nZW0sIDApOwotCi0JLyog RklYTUU6IE5lZWQgc29tZSBmbHVzaCBvcGVyYXRpb25zIGhlcmU/ICovCi0JYXViX291dF9kYXRh KGJ1Zm1ncl9nZW0sIHJpbmdidWZmZXIsIHJpbmdfY291bnQgKiA0KTsKLQotCS8qIFVwZGF0ZSBv ZmZzZXQgcG9pbnRlciAqLwotCWJ1Zm1ncl9nZW0tPmF1Yl9vZmZzZXQgKz0gNDA5NjsKLX0KLQot dm9pZAotZHJtX2ludGVsX2dlbV9ib19hdWJfZHVtcF9ibXAoZHJtX2ludGVsX2JvICpibywKLQkJ CSAgICAgIGludCB4MSwgaW50IHkxLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCi0JCQkgICAgICBl bnVtIGF1Yl9kdW1wX2JtcF9mb3JtYXQgZm9ybWF0LAotCQkJICAgICAgaW50IHBpdGNoLCBpbnQg b2Zmc2V0KQotewotCWRybV9pbnRlbF9idWZtZ3JfZ2VtICpidWZtZ3JfZ2VtID0gKGRybV9pbnRl bF9idWZtZ3JfZ2VtICopIGJvLT5idWZtZ3I7Ci0JZHJtX2ludGVsX2JvX2dlbSAqYm9fZ2VtID0g KGRybV9pbnRlbF9ib19nZW0gKilibzsKLQl1aW50MzJfdCBjcHA7Ci0KLQlzd2l0Y2ggKGZvcm1h dCkgewotCWNhc2UgQVVCX0RVTVBfQk1QX0ZPUk1BVF84QklUOgotCQljcHAgPSAxOwotCQlicmVh azsKLQljYXNlIEFVQl9EVU1QX0JNUF9GT1JNQVRfQVJHQl80NDQ0OgotCQljcHAgPSAyOwotCQli cmVhazsKLQljYXNlIEFVQl9EVU1QX0JNUF9GT1JNQVRfQVJHQl8wODg4OgotCWNhc2UgQVVCX0RV TVBfQk1QX0ZPUk1BVF9BUkdCXzg4ODg6Ci0JCWNwcCA9IDQ7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6 Ci0JCXByaW50ZigiVW5rbm93biBBVUIgZHVtcCBmb3JtYXQgJWRcbiIsIGZvcm1hdCk7Ci0JCXJl dHVybjsKLQl9Ci0KLQlpZiAoIWJ1Zm1ncl9nZW0tPmF1Yl9maWxlKQotCQlyZXR1cm47Ci0KLQlh dWJfb3V0KGJ1Zm1ncl9nZW0sIENNRF9BVUJfRFVNUF9CTVAgfCA0KTsKLQlhdWJfb3V0KGJ1Zm1n cl9nZW0sICh5MSA8PCAxNikgfCB4MSk7Ci0JYXViX291dChidWZtZ3JfZ2VtLAotCQkoZm9ybWF0 IDw8IDI0KSB8Ci0JCShjcHAgPDwgMTkpIHwKLQkJcGl0Y2ggLyA0KTsKLQlhdWJfb3V0KGJ1Zm1n cl9nZW0sIChoZWlnaHQgPDwgMTYpIHwgd2lkdGgpOwotCWF1Yl9vdXQoYnVmbWdyX2dlbSwgYm9f Z2VtLT5hdWJfb2Zmc2V0ICsgb2Zmc2V0KTsKLQlhdWJfb3V0KGJ1Zm1ncl9nZW0sCi0JCSgoYm9f Z2VtLT50aWxpbmdfbW9kZSAhPSBJOTE1X1RJTElOR19OT05FKSA/ICgxIDw8IDIpIDogMCkgfAot CQkoKGJvX2dlbS0+dGlsaW5nX21vZGUgPT0gSTkxNV9USUxJTkdfWSkgPyAoMSA8PCAzKSA6IDAp KTsKLX0KLQotc3RhdGljIHZvaWQKLWF1Yl9leGVjKGRybV9pbnRlbF9ibyAqYm8sIGludCByaW5n X2ZsYWcsIGludCB1c2VkKQotewotCWRybV9pbnRlbF9idWZtZ3JfZ2VtICpidWZtZ3JfZ2VtID0g KGRybV9pbnRlbF9idWZtZ3JfZ2VtICopIGJvLT5idWZtZ3I7Ci0JZHJtX2ludGVsX2JvX2dlbSAq Ym9fZ2VtID0gKGRybV9pbnRlbF9ib19nZW0gKikgYm87Ci0JaW50IGk7Ci0JYm9vbCBiYXRjaF9i dWZmZXJfbmVlZHNfYW5ub3RhdGlvbnM7Ci0KLQlpZiAoIWJ1Zm1ncl9nZW0tPmF1Yl9maWxlKQot CQlyZXR1cm47Ci0KLQkvKiBJZiBiYXRjaCBidWZmZXIgaXMgbm90IGFubm90YXRlZCwgYW5ub3Rh dGUgaXQgdGhlIGJlc3Qgd2UKLQkgKiBjYW4uCi0JICovCi0JYmF0Y2hfYnVmZmVyX25lZWRzX2Fu bm90YXRpb25zID0gYm9fZ2VtLT5hdWJfYW5ub3RhdGlvbl9jb3VudCA9PSAwOwotCWlmIChiYXRj aF9idWZmZXJfbmVlZHNfYW5ub3RhdGlvbnMpIHsKLQkJZHJtX2ludGVsX2F1Yl9hbm5vdGF0aW9u IGFubm90YXRpb25zWzJdID0gewotCQkJeyBBVUJfVFJBQ0VfVFlQRV9CQVRDSCwgMCwgdXNlZCB9 LAotCQkJeyBBVUJfVFJBQ0VfVFlQRV9OT1RZUEUsIDAsIGJvLT5zaXplIH0KLQkJfTsKLQkJZHJt X2ludGVsX2J1Zm1ncl9nZW1fc2V0X2F1Yl9hbm5vdGF0aW9ucyhibywgYW5ub3RhdGlvbnMsIDIp OwotCX0KLQotCS8qIFdyaXRlIG91dCBhbGwgYnVmZmVycyB0byBBVUIgbWVtb3J5ICovCi0JZm9y IChpID0gMDsgaSA8IGJ1Zm1ncl9nZW0tPmV4ZWNfY291bnQ7IGkrKykgewotCQlhdWJfd3JpdGVf Ym8oYnVmbWdyX2dlbS0+ZXhlY19ib3NbaV0pOwotCX0KLQotCS8qIFJlbW92ZSBhbnkgYW5ub3Rh dGlvbnMgd2UgYWRkZWQgKi8KLQlpZiAoYmF0Y2hfYnVmZmVyX25lZWRzX2Fubm90YXRpb25zKQot CQlkcm1faW50ZWxfYnVmbWdyX2dlbV9zZXRfYXViX2Fubm90YXRpb25zKGJvLCBOVUxMLCAwKTsK LQotCS8qIER1bXAgcmluZyBidWZmZXIgKi8KLQlhdWJfYnVpbGRfZHVtcF9yaW5nYnVmZmVyKGJ1 Zm1ncl9nZW0sIGJvX2dlbS0+YXViX29mZnNldCwgcmluZ19mbGFnKTsKLQotCWZmbHVzaChidWZt Z3JfZ2VtLT5hdWJfZmlsZSk7Ci0KLQkvKgotCSAqIE9uZSBmcmFtZSBoYXMgYmVlbiBkdW1wZWQu IFNvIHJlc2V0IHRoZSBhdWJfb2Zmc2V0IGZvciB0aGUgbmV4dCBmcmFtZS4KLQkgKgotCSAqIEZJ WE1FOiBDYW4gd2UgZG8gdGhpcz8KLQkgKi8KLQlidWZtZ3JfZ2VtLT5hdWJfb2Zmc2V0ID0gMHgx MDAwMDsKLX0KIAogc3RhdGljIGludAogZHJtX2ludGVsX2dlbV9ib19leGVjKGRybV9pbnRlbF9i byAqYm8sIGludCB1c2VkLApAQCAtMjUzMyw4ICsyMjI4LDYgQEAgZG9fZXhlYzIoZHJtX2ludGVs X2JvICpibywgaW50IHVzZWQsIGRybV9pbnRlbF9jb250ZXh0ICpjdHgsCiAJCWk5MTVfZXhlY2J1 ZmZlcjJfc2V0X2NvbnRleHRfaWQoZXhlY2J1ZiwgY3R4LT5jdHhfaWQpOwogCWV4ZWNidWYucnN2 ZDIgPSAwOwogCi0JYXViX2V4ZWMoYm8sIGZsYWdzLCB1c2VkKTsKLQogCWlmIChidWZtZ3JfZ2Vt LT5ub19leGVjKQogCQlnb3RvIHNraXBfZXhlY3V0aW9uOwogCkBAIC0zMjEwLDExICsyOTAzLDYg QEAgdm9pZAogZHJtX2ludGVsX2J1Zm1ncl9nZW1fc2V0X2F1Yl9maWxlbmFtZShkcm1faW50ZWxf YnVmbWdyICpidWZtZ3IsCiAJCQkJICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUpCiB7Ci0JZHJt X2ludGVsX2J1Zm1ncl9nZW0gKmJ1Zm1ncl9nZW0gPSAoZHJtX2ludGVsX2J1Zm1ncl9nZW0gKili dWZtZ3I7Ci0KLQlmcmVlKGJ1Zm1ncl9nZW0tPmF1Yl9maWxlbmFtZSk7Ci0JaWYgKGZpbGVuYW1l KQotCQlidWZtZ3JfZ2VtLT5hdWJfZmlsZW5hbWUgPSBzdHJkdXAoZmlsZW5hbWUpOwogfQogCiAv KioKQEAgLTMyMjgsNTggKzI5MTYsOCBAQCBkcm1faW50ZWxfYnVmbWdyX2dlbV9zZXRfYXViX2Zp bGVuYW1lKGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1nciwKIHZvaWQKIGRybV9pbnRlbF9idWZtZ3Jf Z2VtX3NldF9hdWJfZHVtcChkcm1faW50ZWxfYnVmbWdyICpidWZtZ3IsIGludCBlbmFibGUpCiB7 Ci0JZHJtX2ludGVsX2J1Zm1ncl9nZW0gKmJ1Zm1ncl9nZW0gPSAoZHJtX2ludGVsX2J1Zm1ncl9n ZW0gKilidWZtZ3I7Ci0JaW50IGVudHJ5ID0gMHgyMDAwMDM7Ci0JaW50IGk7Ci0JaW50IGd0dF9z aXplID0gMHgxMDAwMDsKLQljb25zdCBjaGFyICpmaWxlbmFtZTsKLQotCWlmICghZW5hYmxlKSB7 Ci0JCWlmIChidWZtZ3JfZ2VtLT5hdWJfZmlsZSkgewotCQkJZmNsb3NlKGJ1Zm1ncl9nZW0tPmF1 Yl9maWxlKTsKLQkJCWJ1Zm1ncl9nZW0tPmF1Yl9maWxlID0gTlVMTDsKLQkJfQotCQlyZXR1cm47 Ci0JfQotCi0JaWYgKGdldGV1aWQoKSAhPSBnZXR1aWQoKSkKLQkJcmV0dXJuOwotCi0JaWYgKGJ1 Zm1ncl9nZW0tPmF1Yl9maWxlbmFtZSkKLQkJZmlsZW5hbWUgPSBidWZtZ3JfZ2VtLT5hdWJfZmls ZW5hbWU7Ci0JZWxzZQotCQlmaWxlbmFtZSA9ICJpbnRlbC5hdWIiOwotCWJ1Zm1ncl9nZW0tPmF1 Yl9maWxlID0gZm9wZW4oZmlsZW5hbWUsICJ3KyIpOwotCWlmICghYnVmbWdyX2dlbS0+YXViX2Zp bGUpCi0JCXJldHVybjsKLQotCS8qIFN0YXJ0IGFsbG9jYXRpbmcgb2JqZWN0cyBmcm9tIGp1c3Qg YWZ0ZXIgdGhlIEdUVC4gKi8KLQlidWZtZ3JfZ2VtLT5hdWJfb2Zmc2V0ID0gZ3R0X3NpemU7Ci0K LQkvKiBTdGFydCB3aXRoIGEgKHJlcXVpcmVkKSB2ZXJzaW9uIHBhY2tldC4gKi8KLQlhdWJfb3V0 KGJ1Zm1ncl9nZW0sIENNRF9BVUJfSEVBREVSIHwgKDEzIC0gMikpOwotCWF1Yl9vdXQoYnVmbWdy X2dlbSwKLQkJKDQgPDwgQVVCX0hFQURFUl9NQUpPUl9TSElGVCkgfAotCQkoMCA8PCBBVUJfSEVB REVSX01JTk9SX1NISUZUKSk7Ci0JZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotCQlhdWJfb3V0 KGJ1Zm1ncl9nZW0sIDApOyAvKiBhcHAgbmFtZSAqLwotCX0KLQlhdWJfb3V0KGJ1Zm1ncl9nZW0s IDApOyAvKiB0aW1lc3RhbXAgKi8KLQlhdWJfb3V0KGJ1Zm1ncl9nZW0sIDApOyAvKiB0aW1lc3Rh bXAgKi8KLQlhdWJfb3V0KGJ1Zm1ncl9nZW0sIDApOyAvKiBjb21tZW50IGxlbiAqLwotCi0JLyog U2V0IHVwIHRoZSBHVFQuIFRoZSBtYXggd2UgY2FuIGhhbmRsZSBpcyAyNTZNICovCi0JYXViX291 dChidWZtZ3JfZ2VtLCBDTURfQVVCX1RSQUNFX0hFQURFUl9CTE9DSyB8ICgoYnVmbWdyX2dlbS0+ Z2VuID49IDggPyA2IDogNSkgLSAyKSk7Ci0JLyogTmVlZCB0byB1c2UgR1RUX0VOVFJZIHR5cGUg Zm9yIHJlY2VudCBlbXVsYXRvciAqLwotCWF1Yl9vdXQoYnVmbWdyX2dlbSwgQVVCX1RSQUNFX01F TVRZUEVfR1RUX0VOVFJZIHwgMCB8IEFVQl9UUkFDRV9PUF9EQVRBX1dSSVRFKTsKLQlhdWJfb3V0 KGJ1Zm1ncl9nZW0sIDApOyAvKiBzdWJ0eXBlICovCi0JYXViX291dChidWZtZ3JfZ2VtLCAwKTsg Lyogb2Zmc2V0ICovCi0JYXViX291dChidWZtZ3JfZ2VtLCBndHRfc2l6ZSk7IC8qIHNpemUgKi8K LQlpZiAoYnVmbWdyX2dlbS0+Z2VuID49IDgpCi0JCWF1Yl9vdXQoYnVmbWdyX2dlbSwgMCk7Ci0J Zm9yIChpID0gMHgwMDA7IGkgPCBndHRfc2l6ZTsgaSArPSA0LCBlbnRyeSArPSAweDEwMDApIHsK LQkJYXViX291dChidWZtZ3JfZ2VtLCBlbnRyeSk7Ci0JfQorCWZwcmludGYoc3RkZXJyLCAibGli ZHJtIGF1YiBkdW1waW5nIGlzIGRlcHJlY2F0ZWQuICIKKwkJIlVzZSBpbnRlbF9hdWJkdW1wIGZy b20gaW50ZWwtZ3B1LXRvb2xzIGluc3RlYWQuXG4iKTsKIH0KIAogZHJtX2ludGVsX2NvbnRleHQg KgpAQCAtMzQ0MiwxOSArMzA4MCw2IEBAIGRybV9pbnRlbF9idWZtZ3JfZ2VtX3NldF9hdWJfYW5u b3RhdGlvbnMoZHJtX2ludGVsX2JvICpibywKIAkJCQkJIGRybV9pbnRlbF9hdWJfYW5ub3RhdGlv biAqYW5ub3RhdGlvbnMsCiAJCQkJCSB1bnNpZ25lZCBjb3VudCkKIHsKLQlkcm1faW50ZWxfYm9f Z2VtICpib19nZW0gPSAoZHJtX2ludGVsX2JvX2dlbSAqKSBibzsKLQl1bnNpZ25lZCBzaXplID0g c2l6ZW9mKCphbm5vdGF0aW9ucykgKiBjb3VudDsKLQlkcm1faW50ZWxfYXViX2Fubm90YXRpb24g Km5ld19hbm5vdGF0aW9ucyA9Ci0JCWNvdW50ID4gMCA/IHJlYWxsb2MoYm9fZ2VtLT5hdWJfYW5u b3RhdGlvbnMsIHNpemUpIDogTlVMTDsKLQlpZiAobmV3X2Fubm90YXRpb25zID09IE5VTEwpIHsK LQkJZnJlZShib19nZW0tPmF1Yl9hbm5vdGF0aW9ucyk7Ci0JCWJvX2dlbS0+YXViX2Fubm90YXRp b25zID0gTlVMTDsKLQkJYm9fZ2VtLT5hdWJfYW5ub3RhdGlvbl9jb3VudCA9IDA7Ci0JCXJldHVy bjsKLQl9Ci0JbWVtY3B5KG5ld19hbm5vdGF0aW9ucywgYW5ub3RhdGlvbnMsIHNpemUpOwotCWJv X2dlbS0+YXViX2Fubm90YXRpb25zID0gbmV3X2Fubm90YXRpb25zOwotCWJvX2dlbS0+YXViX2Fu bm90YXRpb25fY291bnQgPSBjb3VudDsKIH0KIAogc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBidWZt Z3JfbGlzdF9tdXRleCA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7Ci0tIAoyLjQuNgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK