From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arkadiusz Hiler Subject: [PATCH] drm/i915/uc: Move intel_uc_fw_fetch() to intel_uc.c Date: Fri, 3 Mar 2017 13:36:34 +0100 Message-ID: <20170303123634.13970-1-arkadiusz.hiler@intel.com> References: <20170302163605.GE32004@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0D3806ECEB for ; Fri, 3 Mar 2017 12:36:38 +0000 (UTC) In-Reply-To: <20170302163605.GE32004@nuc-i3427.alporthouse.com> 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 List-Id: intel-gfx@lists.freedesktop.org VGhlIGZpbGUgZml0cyBiZXR0ZXIuCgpBZGRpdGlvbmFsbHkgcmVuYW1lIGl0IHRvIGludGVsX3Vj X3ByZXBhcmVfZncoKSwgYXMgdGhlIGZ1bmN0aW9uIGRvZXMKbW9yZSB0aGFuIHNpbXBsZSBmZXRj aC4KCmBvYmpgIGNsZWFudXAgaW4gdGhlIGZ1bmN0aW9uIGlzIGFsc28gZml4ZWQgKGkuZS4gcmVt b3ZlZCkuIEluIHRoZSBmYWlsCnNjZW5hcmlvIGl0IHdhcyBhbHdheXMgJ3B1dCcgYnV0IHRoZXJl J3Mgbm8gcG9zc2libGUgZmxvdyB0aGF0CmluaXRpYWxpemVzIHRoZSBvYmogcHJvcGVybHkgYW5k IHRoZW4gZ29lcyB0byB0aGUgZmFpbCBsYWJlbC4KCnYyOiByZW1vdmUgc2Vjb25kIGRlY2xhcmF0 aW9uLCByZW9yZGVyIChNLiBXYWpkZWN6a28pCnYzOiBub24tdHJpdmlhbCByZWJhc2UKdjQ6IHJl bW92ZSBvYmogY2xlYW51cCBpbiB0aGUgZmFpbCBzY2VuYXJpbyAoQy4gV2lsc29uKQoKQ2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogTWljaGFsIFdhamRlY3pr byA8bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFya2FkaXVzeiBI aWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWNfbG9hZGVyLmMgfCAxMzcgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5jICAgICAgICB8ICAgMiArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuYyAgICAgICAgIHwgMTMxICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaCAgICAgICAg IHwgICA0ICstCiA0IGZpbGVzIGNoYW5nZWQsIDEzNSBpbnNlcnRpb25zKCspLCAxMzkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4IDlmMDll MjYuLjIwZTMzMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19s b2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAg LTI2LDcgKzI2LDYgQEAKICAqICAgIERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5j b20+CiAgKiAgICBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KICAqLwotI2luY2x1ZGUgPGxp bnV4L2Zpcm13YXJlLmg+CiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF91 Yy5oIgogCkBAIC01ODcsMTQwICs1ODYsNiBAQCBpbnQgaW50ZWxfZ3VjX2luaXRfaHcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXJldHVybiByZXQ7CiB9CiAKLXZvaWQgaW50 ZWxfdWNfZndfZmV0Y2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJIHN0 cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCi17Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZf cHJpdi0+ZHJtLnBkZXY7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQljb25z dCBzdHJ1Y3QgZmlybXdhcmUgKmZ3ID0gTlVMTDsKLQlzdHJ1Y3QgdWNfY3NzX2hlYWRlciAqY3Nz OwotCXNpemVfdCBzaXplOwotCWludCBlcnI7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJiZWZvcmUg cmVxdWVzdGluZyBmaXJtd2FyZTogdUMgZncgZmV0Y2ggc3RhdHVzICVzXG4iLAotCQlpbnRlbF91 Y19md19zdGF0dXNfcmVwcih1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7Ci0KLQllcnIgPSByZXF1ZXN0 X2Zpcm13YXJlKCZmdywgdWNfZnctPnBhdGgsICZwZGV2LT5kZXYpOwotCWlmIChlcnIpCi0JCWdv dG8gZmFpbDsKLQlpZiAoIWZ3KQotCQlnb3RvIGZhaWw7Ci0KLQlEUk1fREVCVUdfRFJJVkVSKCJm ZXRjaCB1QyBmdyBmcm9tICVzIHN1Y2NlZWRlZCwgZncgJXBcbiIsCi0JCXVjX2Z3LT5wYXRoLCBm dyk7Ci0KLQkvKiBDaGVjayB0aGUgc2l6ZSBvZiB0aGUgYmxvYiBiZWZvcmUgZXhhbWluaW5nIGJ1 ZmZlciBjb250ZW50cyAqLwotCWlmIChmdy0+c2l6ZSA8IHNpemVvZihzdHJ1Y3QgdWNfY3NzX2hl YWRlcikpIHsKLQkJRFJNX05PVEUoIkZpcm13YXJlIGhlYWRlciBpcyBtaXNzaW5nXG4iKTsKLQkJ Z290byBmYWlsOwotCX0KLQotCWNzcyA9IChzdHJ1Y3QgdWNfY3NzX2hlYWRlciAqKWZ3LT5kYXRh OwotCi0JLyogRmlybXdhcmUgYml0cyBhbHdheXMgc3RhcnQgZnJvbSBoZWFkZXIgKi8KLQl1Y19m dy0+aGVhZGVyX29mZnNldCA9IDA7Ci0JdWNfZnctPmhlYWRlcl9zaXplID0gKGNzcy0+aGVhZGVy X3NpemVfZHcgLSBjc3MtPm1vZHVsdXNfc2l6ZV9kdyAtCi0JCWNzcy0+a2V5X3NpemVfZHcgLSBj c3MtPmV4cG9uZW50X3NpemVfZHcpICogc2l6ZW9mKHUzMik7Ci0KLQlpZiAodWNfZnctPmhlYWRl cl9zaXplICE9IHNpemVvZihzdHJ1Y3QgdWNfY3NzX2hlYWRlcikpIHsKLQkJRFJNX05PVEUoIkNT UyBoZWFkZXIgZGVmaW5pdGlvbiBtaXNtYXRjaFxuIik7Ci0JCWdvdG8gZmFpbDsKLQl9Ci0KLQkv KiB0aGVuLCB1Q29kZSAqLwotCXVjX2Z3LT51Y29kZV9vZmZzZXQgPSB1Y19mdy0+aGVhZGVyX29m ZnNldCArIHVjX2Z3LT5oZWFkZXJfc2l6ZTsKLQl1Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNp emVfZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAqIHNpemVvZih1MzIpOwotCi0JLyogbm93IFJT QSAqLwotCWlmIChjc3MtPmtleV9zaXplX2R3ICE9IFVPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlQp IHsKLQkJRFJNX05PVEUoIlJTQSBrZXkgc2l6ZSBpcyBiYWRcbiIpOwotCQlnb3RvIGZhaWw7Ci0J fQotCXVjX2Z3LT5yc2Ffb2Zmc2V0ID0gdWNfZnctPnVjb2RlX29mZnNldCArIHVjX2Z3LT51Y29k ZV9zaXplOwotCXVjX2Z3LT5yc2Ffc2l6ZSA9IGNzcy0+a2V5X3NpemVfZHcgKiBzaXplb2YodTMy KTsKLQotCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFkZXIsIHVDb2RlIGFuZCBSU0Eu IFNpemUgb2YgYWxsIHRocmVlLiAqLwotCXNpemUgPSB1Y19mdy0+aGVhZGVyX3NpemUgKyB1Y19m dy0+dWNvZGVfc2l6ZSArIHVjX2Z3LT5yc2Ffc2l6ZTsKLQlpZiAoZnctPnNpemUgPCBzaXplKSB7 Ci0JCURSTV9OT1RFKCJNaXNzaW5nIGZpcm13YXJlIGNvbXBvbmVudHNcbiIpOwotCQlnb3RvIGZh aWw7Ci0JfQotCi0JLyoKLQkgKiBUaGUgR3VDIGZpcm13YXJlIGltYWdlIGhhcyB0aGUgdmVyc2lv biBudW1iZXIgZW1iZWRkZWQgYXQgYSB3ZWxsLWtub3duCi0JICogb2Zmc2V0IHdpdGhpbiB0aGUg ZmlybXdhcmUgYmxvYjsgbm90ZSB0aGF0IG1ham9yIC8gbWlub3IgdmVyc2lvbiBhcmUKLQkgKiBU V08gYnl0ZXMgZWFjaCAoaS5lLiB1MTYpLCBhbHRob3VnaCBhbGwgcG9pbnRlcnMgYW5kIG9mZnNl dHMgYXJlIGRlZmluZWQKLQkgKiBpbiB0ZXJtcyBvZiBieXRlcyAodTgpLgotCSAqLwotCXN3aXRj aCAodWNfZnctPmZ3KSB7Ci0JY2FzZSBJTlRFTF9VQ19GV19UWVBFX0dVQzoKLQkJLyogSGVhZGVy IGFuZCB1Q29kZSB3aWxsIGJlIGxvYWRlZCB0byBXT1BDTS4gU2l6ZSBvZiB0aGUgdHdvLiAqLwot CQlzaXplID0gdWNfZnctPmhlYWRlcl9zaXplICsgdWNfZnctPnVjb2RlX3NpemU7Ci0KLQkJLyog VG9wIDMyayBvZiBXT1BDTSBpcyByZXNlcnZlZCAoOEsgc3RhY2sgKyAyNGsgUkM2IGNvbnRleHQp LiAqLwotCQlpZiAoc2l6ZSA+IGludGVsX2d1Y193b3BjbV9zaXplKGRldl9wcml2KSkgewotCQkJ RFJNX0VSUk9SKCJGaXJtd2FyZSBpcyB0b28gbGFyZ2UgdG8gZml0IGluIFdPUENNXG4iKTsKLQkJ CWdvdG8gZmFpbDsKLQkJfQotCQl1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kID0gY3NzLT5ndWMuc3df dmVyc2lvbiA+PiAxNjsKLQkJdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCA9IGNzcy0+Z3VjLnN3X3Zl cnNpb24gJiAweEZGRkY7Ci0JCWJyZWFrOwotCi0JY2FzZSBJTlRFTF9VQ19GV19UWVBFX0hVQzoK LQkJdWNfZnctPm1ham9yX3Zlcl9mb3VuZCA9IGNzcy0+aHVjLnN3X3ZlcnNpb24gPj4gMTY7Ci0J CXVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPSBjc3MtPmh1Yy5zd192ZXJzaW9uICYgMHhGRkZGOwot CQlicmVhazsKLQotCWRlZmF1bHQ6Ci0JCURSTV9FUlJPUigiVW5rbm93biBmaXJtd2FyZSB0eXBl ICVkXG4iLCB1Y19mdy0+ZncpOwotCQllcnIgPSAtRU5PRVhFQzsKLQkJZ290byBmYWlsOwotCX0K LQotCWlmICh1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kICE9IHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVk IHx8Ci0JICAgIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPCB1Y19mdy0+bWlub3JfdmVyX3dhbnRl ZCkgewotCQlEUk1fTk9URSgidUMgZmlybXdhcmUgdmVyc2lvbiAlZC4lZCwgcmVxdWlyZWQgJWQu JWRcbiIsCi0JCQl1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCB1Y19mdy0+bWlub3JfdmVyX2ZvdW5k LAotCQkJdWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKTsK LQkJZXJyID0gLUVOT0VYRUM7Ci0JCWdvdG8gZmFpbDsKLQl9Ci0KLQlEUk1fREVCVUdfRFJJVkVS KCJmaXJtd2FyZSB2ZXJzaW9uICVkLiVkIE9LIChtaW5pbXVtICVkLiVkKVxuIiwKLQkJCXVjX2Z3 LT5tYWpvcl92ZXJfZm91bmQsIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQsCi0JCQl1Y19mdy0+bWFq b3JfdmVyX3dhbnRlZCwgdWNfZnctPm1pbm9yX3Zlcl93YW50ZWQpOwotCi0JbXV0ZXhfbG9jaygm ZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVh dGVfZnJvbV9kYXRhKGRldl9wcml2LCBmdy0+ZGF0YSwgZnctPnNpemUpOwotCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCWlmIChJU19FUlJfT1JfTlVMTChvYmop KSB7Ci0JCWVyciA9IG9iaiA/IFBUUl9FUlIob2JqKSA6IC1FTk9NRU07Ci0JCWdvdG8gZmFpbDsK LQl9Ci0KLQl1Y19mdy0+b2JqID0gb2JqOwotCXVjX2Z3LT5zaXplID0gZnctPnNpemU7Ci0KLQlE Uk1fREVCVUdfRFJJVkVSKCJ1QyBmdyBmZXRjaCBzdGF0dXMgU1VDQ0VTUywgb2JqICVwXG4iLAot CQkJdWNfZnctPm9iaik7Ci0KLQlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKLQl1Y19mdy0+ZmV0Y2hf c3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfU1VDQ0VTUzsKLQlyZXR1cm47Ci0KLWZhaWw6Ci0J RFJNX1dBUk4oIkZhaWxlZCB0byBmZXRjaCB2YWxpZCB1QyBmaXJtd2FyZSBmcm9tICVzIChlcnJv ciAlZClcbiIsCi0JCSB1Y19mdy0+cGF0aCwgZXJyKTsKLQlEUk1fREVCVUdfRFJJVkVSKCJ1QyBm dyBmZXRjaCBzdGF0dXMgRkFJTDsgZXJyICVkLCBmdyAlcCwgb2JqICVwXG4iLAotCQllcnIsIGZ3 LCB1Y19mdy0+b2JqKTsKLQotCW9iaiA9IGZldGNoX2FuZF96ZXJvKCZ1Y19mdy0+b2JqKTsKLQlp ZiAob2JqKQotCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7Ci0KLQlyZWxlYXNlX2Zpcm13YXJl KGZ3KTsJCS8qIE9LIGV2ZW4gaWYgZncgaXMgTlVMTCAqLwotCXVjX2Z3LT5mZXRjaF9zdGF0dXMg PSBJTlRFTF9VQ19GSVJNV0FSRV9GQUlMOwotfQogCiAvKioKICAqIGludGVsX2d1Y19pbml0KCkg LSBkZWZpbmUgcGFyYW1ldGVycyBhbmQgZmV0Y2ggZmlybXdhcmUKQEAgLTc3OSw3ICs2NDQsNyBA QCB2b2lkIGludGVsX2d1Y19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAogCWd1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfUEVORElORzsKIAlE Uk1fREVCVUdfRFJJVkVSKCJHdUMgZmlybXdhcmUgcGVuZGluZywgcGF0aCAlc1xuIiwgZndfcGF0 aCk7Ci0JaW50ZWxfdWNfZndfZmV0Y2goZGV2X3ByaXYsIGd1Y19mdyk7CisJaW50ZWxfdWNfcHJl cGFyZV9mdyhkZXZfcHJpdiwgZ3VjX2Z3KTsKIAkvKiBzdGF0dXMgbXVzdCBub3cgYmUgRkFJTCBv ciBTVUNDRVNTICovCiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2h1Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMKaW5kZXggYzBkZjExMy4u ODRhZmMxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMKQEAgLTE4OSw3ICsxODksNyBAQCB2 b2lkIGludGVsX2h1Y19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAog CURSTV9ERUJVR19EUklWRVIoIkh1QyBmaXJtd2FyZSBwZW5kaW5nLCBwYXRoICVzXG4iLCBmd19w YXRoKTsKIAotCWludGVsX3VjX2Z3X2ZldGNoKGRldl9wcml2LCBodWNfZncpOworCWludGVsX3Vj X3ByZXBhcmVfZncoZGV2X3ByaXYsIGh1Y19mdyk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VjLmMKaW5kZXggYzQ2YmM4NS4uMmVhOGEyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jCkBA IC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVs X3VjLmgiCisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KIAogdm9pZCBpbnRlbF91Y19pbml0 X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKQEAgLTExNCwzICsx MTUsMTMzIEBAIGludCBpbnRlbF9ndWNfc2FtcGxlX2ZvcmNld2FrZShzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpCiAJcmV0dXJuIGludGVsX2d1Y19zZW5kKGd1YywgYWN0aW9uLCBBUlJBWV9TSVpFKGFj dGlvbikpOwogfQogCit2b2lkIGludGVsX3VjX3ByZXBhcmVfZncoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAorCQkJIHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCit7CisJc3Ry dWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7CisJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iajsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3ID0gTlVMTDsKKwlz dHJ1Y3QgdWNfY3NzX2hlYWRlciAqY3NzOworCXNpemVfdCBzaXplOworCWludCBlcnI7CisKKwlE Uk1fREVCVUdfRFJJVkVSKCJiZWZvcmUgcmVxdWVzdGluZyBmaXJtd2FyZTogdUMgZncgZmV0Y2gg c3RhdHVzICVzXG4iLAorCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcih1Y19mdy0+ZmV0Y2hfc3Rh dHVzKSk7CisKKwllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgdWNfZnctPnBhdGgsICZwZGV2 LT5kZXYpOworCWlmIChlcnIpCisJCWdvdG8gZmFpbDsKKwlpZiAoIWZ3KQorCQlnb3RvIGZhaWw7 CisKKwlEUk1fREVCVUdfRFJJVkVSKCJmZXRjaCB1QyBmdyBmcm9tICVzIHN1Y2NlZWRlZCwgZncg JXBcbiIsCisJCXVjX2Z3LT5wYXRoLCBmdyk7CisKKwkvKiBDaGVjayB0aGUgc2l6ZSBvZiB0aGUg YmxvYiBiZWZvcmUgZXhhbWluaW5nIGJ1ZmZlciBjb250ZW50cyAqLworCWlmIChmdy0+c2l6ZSA8 IHNpemVvZihzdHJ1Y3QgdWNfY3NzX2hlYWRlcikpIHsKKwkJRFJNX05PVEUoIkZpcm13YXJlIGhl YWRlciBpcyBtaXNzaW5nXG4iKTsKKwkJZ290byBmYWlsOworCX0KKworCWNzcyA9IChzdHJ1Y3Qg dWNfY3NzX2hlYWRlciAqKWZ3LT5kYXRhOworCisJLyogRmlybXdhcmUgYml0cyBhbHdheXMgc3Rh cnQgZnJvbSBoZWFkZXIgKi8KKwl1Y19mdy0+aGVhZGVyX29mZnNldCA9IDA7CisJdWNfZnctPmhl YWRlcl9zaXplID0gKGNzcy0+aGVhZGVyX3NpemVfZHcgLSBjc3MtPm1vZHVsdXNfc2l6ZV9kdyAt CisJCWNzcy0+a2V5X3NpemVfZHcgLSBjc3MtPmV4cG9uZW50X3NpemVfZHcpICogc2l6ZW9mKHUz Mik7CisKKwlpZiAodWNfZnctPmhlYWRlcl9zaXplICE9IHNpemVvZihzdHJ1Y3QgdWNfY3NzX2hl YWRlcikpIHsKKwkJRFJNX05PVEUoIkNTUyBoZWFkZXIgZGVmaW5pdGlvbiBtaXNtYXRjaFxuIik7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiB0aGVuLCB1Q29kZSAqLworCXVjX2Z3LT51Y29kZV9v ZmZzZXQgPSB1Y19mdy0+aGVhZGVyX29mZnNldCArIHVjX2Z3LT5oZWFkZXJfc2l6ZTsKKwl1Y19m dy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVfZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAqIHNp emVvZih1MzIpOworCisJLyogbm93IFJTQSAqLworCWlmIChjc3MtPmtleV9zaXplX2R3ICE9IFVP U19SU0FfU0NSQVRDSF9NQVhfQ09VTlQpIHsKKwkJRFJNX05PVEUoIlJTQSBrZXkgc2l6ZSBpcyBi YWRcbiIpOworCQlnb3RvIGZhaWw7CisJfQorCXVjX2Z3LT5yc2Ffb2Zmc2V0ID0gdWNfZnctPnVj b2RlX29mZnNldCArIHVjX2Z3LT51Y29kZV9zaXplOworCXVjX2Z3LT5yc2Ffc2l6ZSA9IGNzcy0+ a2V5X3NpemVfZHcgKiBzaXplb2YodTMyKTsKKworCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2 ZSBoZWFkZXIsIHVDb2RlIGFuZCBSU0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLworCXNpemUgPSB1 Y19mdy0+aGVhZGVyX3NpemUgKyB1Y19mdy0+dWNvZGVfc2l6ZSArIHVjX2Z3LT5yc2Ffc2l6ZTsK KwlpZiAoZnctPnNpemUgPCBzaXplKSB7CisJCURSTV9OT1RFKCJNaXNzaW5nIGZpcm13YXJlIGNv bXBvbmVudHNcbiIpOworCQlnb3RvIGZhaWw7CisJfQorCisJLyoKKwkgKiBUaGUgR3VDIGZpcm13 YXJlIGltYWdlIGhhcyB0aGUgdmVyc2lvbiBudW1iZXIgZW1iZWRkZWQgYXQgYQorCSAqIHdlbGwt a25vd24gb2Zmc2V0IHdpdGhpbiB0aGUgZmlybXdhcmUgYmxvYjsgbm90ZSB0aGF0IG1ham9yIC8g bWlub3IKKwkgKiB2ZXJzaW9uIGFyZSBUV08gYnl0ZXMgZWFjaCAoaS5lLiB1MTYpLCBhbHRob3Vn aCBhbGwgcG9pbnRlcnMgYW5kCisJICogb2Zmc2V0cyBhcmUgZGVmaW5lZCBpbiB0ZXJtcyBvZiBi eXRlcyAodTgpLgorCSAqLworCXN3aXRjaCAodWNfZnctPmZ3KSB7CisJY2FzZSBJTlRFTF9VQ19G V19UWVBFX0dVQzoKKwkJLyogSGVhZGVyIGFuZCB1Q29kZSB3aWxsIGJlIGxvYWRlZCB0byBXT1BD TS4gU2l6ZSBvZiB0aGUgdHdvLiAqLworCQlzaXplID0gdWNfZnctPmhlYWRlcl9zaXplICsgdWNf ZnctPnVjb2RlX3NpemU7CisKKwkJLyogVG9wIDMyayBvZiBXT1BDTSBpcyByZXNlcnZlZCAoOEsg c3RhY2sgKyAyNGsgUkM2IGNvbnRleHQpLiAqLworCQlpZiAoc2l6ZSA+IGludGVsX2d1Y193b3Bj bV9zaXplKGRldl9wcml2KSkgeworCQkJRFJNX0VSUk9SKCJGaXJtd2FyZSBpcyB0b28gbGFyZ2Ug dG8gZml0IGluIFdPUENNXG4iKTsKKwkJCWdvdG8gZmFpbDsKKwkJfQorCQl1Y19mdy0+bWFqb3Jf dmVyX2ZvdW5kID0gY3NzLT5ndWMuc3dfdmVyc2lvbiA+PiAxNjsKKwkJdWNfZnctPm1pbm9yX3Zl cl9mb3VuZCA9IGNzcy0+Z3VjLnN3X3ZlcnNpb24gJiAweEZGRkY7CisJCWJyZWFrOworCisJY2Fz ZSBJTlRFTF9VQ19GV19UWVBFX0hVQzoKKwkJdWNfZnctPm1ham9yX3Zlcl9mb3VuZCA9IGNzcy0+ aHVjLnN3X3ZlcnNpb24gPj4gMTY7CisJCXVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPSBjc3MtPmh1 Yy5zd192ZXJzaW9uICYgMHhGRkZGOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCURSTV9FUlJP UigiVW5rbm93biBmaXJtd2FyZSB0eXBlICVkXG4iLCB1Y19mdy0+ZncpOworCQllcnIgPSAtRU5P RVhFQzsKKwkJZ290byBmYWlsOworCX0KKworCWlmICh1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kICE9 IHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkIHx8CisJICAgIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQg PCB1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCkgeworCQlEUk1fTk9URSgidUMgZmlybXdhcmUgdmVy c2lvbiAlZC4lZCwgcmVxdWlyZWQgJWQuJWRcbiIsCisJCQl1Y19mdy0+bWFqb3JfdmVyX2ZvdW5k LCB1Y19mdy0+bWlub3JfdmVyX2ZvdW5kLAorCQkJdWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIHVj X2Z3LT5taW5vcl92ZXJfd2FudGVkKTsKKwkJZXJyID0gLUVOT0VYRUM7CisJCWdvdG8gZmFpbDsK Kwl9CisKKwlEUk1fREVCVUdfRFJJVkVSKCJmaXJtd2FyZSB2ZXJzaW9uICVkLiVkIE9LIChtaW5p bXVtICVkLiVkKVxuIiwKKwkJCXVjX2Z3LT5tYWpvcl92ZXJfZm91bmQsIHVjX2Z3LT5taW5vcl92 ZXJfZm91bmQsCisJCQl1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCwgdWNfZnctPm1pbm9yX3Zlcl93 YW50ZWQpOworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW9i aiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfZnJvbV9kYXRhKGRldl9wcml2LCBmdy0+ZGF0YSwg ZnctPnNpemUpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwor CWlmIChJU19FUlJfT1JfTlVMTChvYmopKSB7CisJCWVyciA9IG9iaiA/IFBUUl9FUlIob2JqKSA6 IC1FTk9NRU07CisJCWdvdG8gZmFpbDsKKwl9CisKKwl1Y19mdy0+b2JqID0gb2JqOworCXVjX2Z3 LT5zaXplID0gZnctPnNpemU7CisKKwlEUk1fREVCVUdfRFJJVkVSKCJ1QyBmdyBmZXRjaCBzdGF0 dXMgU1VDQ0VTUywgb2JqICVwXG4iLAorCQkJdWNfZnctPm9iaik7CisKKwlyZWxlYXNlX2Zpcm13 YXJlKGZ3KTsKKwl1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfU1VDQ0VT UzsKKwlyZXR1cm47CisKK2ZhaWw6CisJRFJNX1dBUk4oIkZhaWxlZCB0byBmZXRjaCB2YWxpZCB1 QyBmaXJtd2FyZSBmcm9tICVzIChlcnJvciAlZClcbiIsCisJCSB1Y19mdy0+cGF0aCwgZXJyKTsK KwlEUk1fREVCVUdfRFJJVkVSKCJ1QyBmdyBmZXRjaCBzdGF0dXMgRkFJTDsgZXJyICVkLCBmdyAl cCwgb2JqICVwXG4iLAorCQllcnIsIGZ3LCB1Y19mdy0+b2JqKTsKKworCXJlbGVhc2VfZmlybXdh cmUoZncpOwkJLyogT0sgZXZlbiBpZiBmdyBpcyBOVUxMICovCisJdWNfZnctPmZldGNoX3N0YXR1 cyA9IElOVEVMX1VDX0ZJUk1XQVJFX0ZBSUw7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF91Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaAppbmRl eCA0MWI3MzUxLi41ZmExM2RjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF91Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmgKQEAgLTE4NSw2ICsx ODUsOCBAQCBzdHJ1Y3QgaW50ZWxfaHVjIHsKIAogLyogaW50ZWxfdWMuYyAqLwogdm9pZCBpbnRl bF91Y19pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lk IGludGVsX3VjX3ByZXBhcmVfZncoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAor CQkJIHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpOwogaW50IGludGVsX2d1Y19zZW5kKHN0cnVj dCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4pOwogaW50IGludGVs X2d1Y19zYW1wbGVfZm9yY2V3YWtlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CiAKQEAgLTE5NSw4 ICsxOTcsNiBAQCB2b2lkIGludGVsX2d1Y19maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CiBjb25zdCBjaGFyICppbnRlbF91Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVs X3VjX2Z3X3N0YXR1cyBzdGF0dXMpOwogaW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBpbnQgaW50ZWxfZ3VjX3Jlc3VtZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpbnRlbF91Y19md19mZXRjaChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0Jc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdyk7 CiB1MzIgaW50ZWxfZ3VjX3dvcGNtX3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKIAogLyogaTkxNV9ndWNfc3VibWlzc2lvbi5jICovCi0tIAoyLjkuMwoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==