From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4044EC4332F for ; Fri, 25 Nov 2022 17:10:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229907AbiKYRKo (ORCPT ); Fri, 25 Nov 2022 12:10:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48416 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229572AbiKYRKk (ORCPT ); Fri, 25 Nov 2022 12:10:40 -0500 Received: from mx.sberdevices.ru (mx.sberdevices.ru [45.89.227.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 757A41D335; Fri, 25 Nov 2022 09:10:38 -0800 (PST) Received: from s-lin-edge02.sberdevices.ru (localhost [127.0.0.1]) by mx.sberdevices.ru (Postfix) with ESMTP id CE3705FD0B; Fri, 25 Nov 2022 20:10:36 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sberdevices.ru; s=mail; t=1669396236; bh=TbfqY0U08CBmZ07Mj9iWXW5NhW/QFZHOkT6OdCmAJ2s=; h=From:To:Subject:Date:Message-ID:Content-Type:MIME-Version; b=HYfVgMfNEwn9QmE88aX5wZyP4W8zIRyxTlCAKtmpsTxfH8yEPDCM6GPPA+o7zibjA YtQ5fjQ2gQlSVMSqZAeyyFPnGrwhcCSgnLcNTin0Fr2EMTLgCi+b+yfDT/9D5xQmWt +NdBkw94pSpzGjPQ8PFaKLLS8R8E8/f8kPH/suMMheJ36BmwuqNufKLTvtZQkwQvCf ZWnbGI9HIw0EcJ7fVQNdsMZQ5j1elr8KZ+b+jsu5gKW4eusXmIAqyhz2R3LClnPCQm fkDKdKrv1FfXURUcw6G+5QysKXOE0oFlL+kyLaQkMfLutDhwHA2pfn6XBP2BUI8C6N 8CvmaBiR+qebw== Received: from S-MS-EXCH01.sberdevices.ru (S-MS-EXCH01.sberdevices.ru [172.16.1.4]) by mx.sberdevices.ru (Postfix) with ESMTP; Fri, 25 Nov 2022 20:10:35 +0300 (MSK) From: Arseniy Krasnov To: Stefano Garzarella , "David S. Miller" , "edumazet@google.com" , "Jakub Kicinski" , Paolo Abeni , "kys@microsoft.com" , "haiyangz@microsoft.com" , "wei.liu@kernel.org" , "Dexuan Cui" , Bryan Tan , Vishnu Dasa , Arseniy Krasnov , "Krasnov Arseniy" , Bobby Eshleman , Bobby Eshleman CC: "linux-kernel@vger.kernel.org" , "netdev@vger.kernel.org" , "virtualization@lists.linux-foundation.org" , "linux-hyperv@vger.kernel.org" , kernel Subject: [RFC PATCH v2 4/6] test/vsock: rework message bounds test Thread-Topic: [RFC PATCH v2 4/6] test/vsock: rework message bounds test Thread-Index: AQHZAPDVjHyum7GlNEe8zXRCLJKxfg== Date: Fri, 25 Nov 2022 17:10:35 +0000 Message-ID: In-Reply-To: <9d96f6c6-1d4f-8197-b3bc-8957124c8933@sberdevices.ru> Accept-Language: en-US, ru-RU Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.16.1.12] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-KSMG-Rule-ID: 4 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiPhishing: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2022/11/25 14:59:00 #20610704 X-KSMG-AntiVirus-Status: Clean, skipped Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org VGhpcyB1cGRhdGVzIG1lc3NhZ2UgYm91bmQgdGVzdCBtYWtpbmcgaXQgbW9yZSBjb21wbGV4LiBJ bnN0ZWFkIG9mDQpzZW5kaW5nIDEgYnl0ZXMgbWVzc2FnZXMgd2l0aCBvbmUgTVNHX0VPUiBiaXQs IGl0IHNlbmRzIG1lc3NhZ2VzIG9mDQpyYW5kb20gbGVuZ3RoKG9uZSBoYWxmIG9mIG1lc3NhZ2Vz IGFyZSBzbWFsbGVyIHRoYW4gcGFnZSBzaXplLCBzZWNvbmQNCmhhbGYgYXJlIGJpZ2dlcikgd2l0 aCByYW5kb20gbnVtYmVyIG9mIE1TR19FT1IgYml0cyBzZXQuIFJlY2VpdmVyDQphbHNvIGRvbid0 IGtub3cgdG90YWwgbnVtYmVyIG9mIG1lc3NhZ2VzLg0KDQpTaWduZWQtb2ZmLWJ5OiBBcnNlbml5 IEtyYXNub3YgPEFWS3Jhc25vdkBzYmVyZGV2aWNlcy5ydT4NCi0tLQ0KIHRvb2xzL3Rlc3Rpbmcv dnNvY2svY29udHJvbC5jICAgIHwgIDI4ICsrKysrKysNCiB0b29scy90ZXN0aW5nL3Zzb2NrL2Nv bnRyb2wuaCAgICB8ICAgMiArDQogdG9vbHMvdGVzdGluZy92c29jay91dGlsLmMgICAgICAgfCAg MTMgKysrKw0KIHRvb2xzL3Rlc3RpbmcvdnNvY2svdXRpbC5oICAgICAgIHwgICAxICsNCiB0b29s cy90ZXN0aW5nL3Zzb2NrL3Zzb2NrX3Rlc3QuYyB8IDEyNCArKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tDQogNSBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRp b25zKC0pDQoNCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3Zzb2NrL2NvbnRyb2wuYyBiL3Rv b2xzL3Rlc3RpbmcvdnNvY2svY29udHJvbC5jDQppbmRleCA0ODc0ODcyZmM1YTMuLmQyZGViNGIx NWI5NCAxMDA2NDQNCi0tLSBhL3Rvb2xzL3Rlc3RpbmcvdnNvY2svY29udHJvbC5jDQorKysgYi90 b29scy90ZXN0aW5nL3Zzb2NrL2NvbnRyb2wuYw0KQEAgLTE0MSw2ICsxNDEsMzQgQEAgdm9pZCBj b250cm9sX3dyaXRlbG4oY29uc3QgY2hhciAqc3RyKQ0KIAl0aW1lb3V0X2VuZCgpOw0KIH0NCiAN Cit2b2lkIGNvbnRyb2xfd3JpdGV1bG9uZyh1bnNpZ25lZCBsb25nIHZhbHVlKQ0KK3sNCisJY2hh ciBzdHJbMzJdOw0KKw0KKwlpZiAoc25wcmludGYoc3RyLCBzaXplb2Yoc3RyKSwgIiVsdSIsIHZh bHVlKSA+PSBzaXplb2Yoc3RyKSkgew0KKwkJcGVycm9yKCJzbnByaW50ZiIpOw0KKwkJZXhpdChF WElUX0ZBSUxVUkUpOw0KKwl9DQorDQorCWNvbnRyb2xfd3JpdGVsbihzdHIpOw0KK30NCisNCit1 bnNpZ25lZCBsb25nIGNvbnRyb2xfcmVhZHVsb25nKHZvaWQpDQorew0KKwl1bnNpZ25lZCBsb25n IHZhbHVlOw0KKwljaGFyICpzdHI7DQorDQorCXN0ciA9IGNvbnRyb2xfcmVhZGxuKCk7DQorDQor CWlmICghc3RyKQ0KKwkJZXhpdChFWElUX0ZBSUxVUkUpOw0KKw0KKwl2YWx1ZSA9IHN0cnRvdWwo c3RyLCBOVUxMLCAxMCk7DQorCWZyZWUoc3RyKTsNCisNCisJcmV0dXJuIHZhbHVlOw0KK30NCisN CiAvKiBSZXR1cm4gdGhlIG5leHQgbGluZSBmcm9tIHRoZSBjb250cm9sIHNvY2tldCAod2l0aG91 dCB0aGUgdHJhaWxpbmcgbmV3bGluZSkuDQogICoNCiAgKiBUaGUgcHJvZ3JhbSB0ZXJtaW5hdGVz IGlmIGEgdGltZW91dCBvY2N1cnMuDQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy92c29jay9j b250cm9sLmggYi90b29scy90ZXN0aW5nL3Zzb2NrL2NvbnRyb2wuaA0KaW5kZXggNTE4MTRiNGY5 YWMxLi5jMWY3N2ZkYjJjN2EgMTAwNjQ0DQotLS0gYS90b29scy90ZXN0aW5nL3Zzb2NrL2NvbnRy b2wuaA0KKysrIGIvdG9vbHMvdGVzdGluZy92c29jay9jb250cm9sLmgNCkBAIC05LDcgKzksOSBA QCB2b2lkIGNvbnRyb2xfaW5pdChjb25zdCBjaGFyICpjb250cm9sX2hvc3QsIGNvbnN0IGNoYXIg KmNvbnRyb2xfcG9ydCwNCiB2b2lkIGNvbnRyb2xfY2xlYW51cCh2b2lkKTsNCiB2b2lkIGNvbnRy b2xfd3JpdGVsbihjb25zdCBjaGFyICpzdHIpOw0KIGNoYXIgKmNvbnRyb2xfcmVhZGxuKHZvaWQp Ow0KK3Vuc2lnbmVkIGxvbmcgY29udHJvbF9yZWFkdWxvbmcodm9pZCk7DQogdm9pZCBjb250cm9s X2V4cGVjdGxuKGNvbnN0IGNoYXIgKnN0cik7DQogYm9vbCBjb250cm9sX2NtcGxuKGNoYXIgKmxp bmUsIGNvbnN0IGNoYXIgKnN0ciwgYm9vbCBmYWlsKTsNCit2b2lkIGNvbnRyb2xfd3JpdGV1bG9u Zyh1bnNpZ25lZCBsb25nIHZhbHVlKTsNCiANCiAjZW5kaWYgLyogQ09OVFJPTF9IICovDQpkaWZm IC0tZ2l0IGEvdG9vbHMvdGVzdGluZy92c29jay91dGlsLmMgYi90b29scy90ZXN0aW5nL3Zzb2Nr L3V0aWwuYw0KaW5kZXggMmFjYmI3NzAzYzZhLi4wMWI2MzZkMzAzOWEgMTAwNjQ0DQotLS0gYS90 b29scy90ZXN0aW5nL3Zzb2NrL3V0aWwuYw0KKysrIGIvdG9vbHMvdGVzdGluZy92c29jay91dGls LmMNCkBAIC0zOTUsMyArMzk1LDE2IEBAIHZvaWQgc2tpcF90ZXN0KHN0cnVjdCB0ZXN0X2Nhc2Ug KnRlc3RfY2FzZXMsIHNpemVfdCB0ZXN0X2Nhc2VzX2xlbiwNCiANCiAJdGVzdF9jYXNlc1t0ZXN0 X2lkXS5za2lwID0gdHJ1ZTsNCiB9DQorDQordW5zaWduZWQgbG9uZyBoYXNoX2RqYjIoY29uc3Qg dm9pZCAqZGF0YSwgc2l6ZV90IGxlbikNCit7DQorCXVuc2lnbmVkIGxvbmcgaGFzaCA9IDUzODE7 DQorCWludCBpID0gMDsNCisNCisJd2hpbGUgKGkgPCBsZW4pIHsNCisJCWhhc2ggPSAoKGhhc2gg PDwgNSkgKyBoYXNoKSArICgodW5zaWduZWQgY2hhciAqKWRhdGEpW2ldOw0KKwkJaSsrOw0KKwl9 DQorDQorCXJldHVybiBoYXNoOw0KK30NCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3Zzb2Nr L3V0aWwuaCBiL3Rvb2xzL3Rlc3RpbmcvdnNvY2svdXRpbC5oDQppbmRleCBhMzM3NWFkMmZiN2Yu LmZiOTkyMDhhOTVlYSAxMDA2NDQNCi0tLSBhL3Rvb2xzL3Rlc3RpbmcvdnNvY2svdXRpbC5oDQor KysgYi90b29scy90ZXN0aW5nL3Zzb2NrL3V0aWwuaA0KQEAgLTQ5LDQgKzQ5LDUgQEAgdm9pZCBy dW5fdGVzdHMoY29uc3Qgc3RydWN0IHRlc3RfY2FzZSAqdGVzdF9jYXNlcywNCiB2b2lkIGxpc3Rf dGVzdHMoY29uc3Qgc3RydWN0IHRlc3RfY2FzZSAqdGVzdF9jYXNlcyk7DQogdm9pZCBza2lwX3Rl c3Qoc3RydWN0IHRlc3RfY2FzZSAqdGVzdF9jYXNlcywgc2l6ZV90IHRlc3RfY2FzZXNfbGVuLA0K IAkgICAgICAgY29uc3QgY2hhciAqdGVzdF9pZF9zdHIpOw0KK3Vuc2lnbmVkIGxvbmcgaGFzaF9k amIyKGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOw0KICNlbmRpZiAvKiBVVElMX0ggKi8N CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3Zzb2NrL3Zzb2NrX3Rlc3QuYyBiL3Rvb2xzL3Rl c3RpbmcvdnNvY2svdnNvY2tfdGVzdC5jDQppbmRleCBiYjZkNjkxY2IzMGQuLjEyZWYwY2NhNmY5 MyAxMDA2NDQNCi0tLSBhL3Rvb2xzL3Rlc3RpbmcvdnNvY2svdnNvY2tfdGVzdC5jDQorKysgYi90 b29scy90ZXN0aW5nL3Zzb2NrL3Zzb2NrX3Rlc3QuYw0KQEAgLTI4NCwxMCArMjg0LDE0IEBAIHN0 YXRpYyB2b2lkIHRlc3Rfc3RyZWFtX21zZ19wZWVrX3NlcnZlcihjb25zdCBzdHJ1Y3QgdGVzdF9v cHRzICpvcHRzKQ0KIAljbG9zZShmZCk7DQogfQ0KIA0KLSNkZWZpbmUgTUVTU0FHRVNfQ05UIDcN Ci0jZGVmaW5lIE1TR19FT1JfSURYIChNRVNTQUdFU19DTlQgLyAyKQ0KKyNkZWZpbmUgU09DS19C VUZfU0laRSAoMiAqIDEwMjQgKiAxMDI0KQ0KKyNkZWZpbmUgTUFYX01TR19TSVpFICgzMiAqIDEw MjQpDQorDQogc3RhdGljIHZvaWQgdGVzdF9zZXFwYWNrZXRfbXNnX2JvdW5kc19jbGllbnQoY29u c3Qgc3RydWN0IHRlc3Rfb3B0cyAqb3B0cykNCiB7DQorCXVuc2lnbmVkIGxvbmcgY3Vycl9oYXNo Ow0KKwlpbnQgcGFnZV9zaXplOw0KKwlpbnQgbXNnX2NvdW50Ow0KIAlpbnQgZmQ7DQogDQogCWZk ID0gdnNvY2tfc2VxcGFja2V0X2Nvbm5lY3Qob3B0cy0+cGVlcl9jaWQsIDEyMzQpOw0KQEAgLTI5 NiwxOCArMzAwLDc4IEBAIHN0YXRpYyB2b2lkIHRlc3Rfc2VxcGFja2V0X21zZ19ib3VuZHNfY2xp ZW50KGNvbnN0IHN0cnVjdCB0ZXN0X29wdHMgKm9wdHMpDQogCQlleGl0KEVYSVRfRkFJTFVSRSk7 DQogCX0NCiANCi0JLyogU2VuZCBzZXZlcmFsIG1lc3NhZ2VzLCBvbmUgd2l0aCBNU0dfRU9SIGZs YWcgKi8NCi0JZm9yIChpbnQgaSA9IDA7IGkgPCBNRVNTQUdFU19DTlQ7IGkrKykNCi0JCXNlbmRf Ynl0ZShmZCwgMSwgKGkgPT0gTVNHX0VPUl9JRFgpID8gTVNHX0VPUiA6IDApOw0KKwkvKiBXYWl0 LCB1bnRpbCByZWNlaXZlciBzZXRzIGJ1ZmZlciBzaXplLiAqLw0KKwljb250cm9sX2V4cGVjdGxu KCJTUlZSRUFEWSIpOw0KKw0KKwljdXJyX2hhc2ggPSAwOw0KKwlwYWdlX3NpemUgPSBnZXRwYWdl c2l6ZSgpOw0KKwltc2dfY291bnQgPSBTT0NLX0JVRl9TSVpFIC8gTUFYX01TR19TSVpFOw0KKw0K Kwlmb3IgKGludCBpID0gMDsgaSA8IG1zZ19jb3VudDsgaSsrKSB7DQorCQlzc2l6ZV90IHNlbmRf c2l6ZTsNCisJCXNpemVfdCBidWZfc2l6ZTsNCisJCWludCBmbGFnczsNCisJCXZvaWQgKmJ1ZjsN CisNCisJCS8qIFVzZSAic21hbGwiIGJ1ZmZlcnMgYW5kICJiaWciIGJ1ZmZlcnMuICovDQorCQlp ZiAoaSAmIDEpDQorCQkJYnVmX3NpemUgPSBwYWdlX3NpemUgKw0KKwkJCQkJKHJhbmQoKSAlIChN QVhfTVNHX1NJWkUgLSBwYWdlX3NpemUpKTsNCisJCWVsc2UNCisJCQlidWZfc2l6ZSA9IDEgKyAo cmFuZCgpICUgcGFnZV9zaXplKTsNCisNCisJCWJ1ZiA9IG1hbGxvYyhidWZfc2l6ZSk7DQorDQor CQlpZiAoIWJ1Zikgew0KKwkJCXBlcnJvcigibWFsbG9jIik7DQorCQkJZXhpdChFWElUX0ZBSUxV UkUpOw0KKwkJfQ0KKw0KKwkJLyogU2V0IGF0IGxlYXN0IG9uZSBNU0dfRU9SICsgc29tZSByYW5k b20uICovDQorCQlpZiAoaSA9PSAobXNnX2NvdW50IC8gMikgfHwgKHJhbmQoKSAmIDEpKSB7DQor CQkJZmxhZ3MgPSBNU0dfRU9SOw0KKwkJCWN1cnJfaGFzaCsrOw0KKwkJfSBlbHNlIHsNCisJCQlm bGFncyA9IDA7DQorCQl9DQorDQorCQlzZW5kX3NpemUgPSBzZW5kKGZkLCBidWYsIGJ1Zl9zaXpl LCBmbGFncyk7DQorDQorCQlpZiAoc2VuZF9zaXplIDwgMCkgew0KKwkJCXBlcnJvcigic2VuZCIp Ow0KKwkJCWV4aXQoRVhJVF9GQUlMVVJFKTsNCisJCX0NCisNCisJCWlmIChzZW5kX3NpemUgIT0g YnVmX3NpemUpIHsNCisJCQlmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgc2VuZCBzaXplXG4iKTsN CisJCQlleGl0KEVYSVRfRkFJTFVSRSk7DQorCQl9DQorDQorCQkvKg0KKwkJICogSGFzaCBzdW0g aXMgY29tcHV0ZWQgYXQgYm90aCBjbGllbnQgYW5kIHNlcnZlciBpbg0KKwkJICogdGhlIHNhbWUg d2F5OiBIID0gaGFzaChIICsgJ21lc3NhZ2UgbGVuZ3RoJykuIElkZWENCisJCSAqIGlzIHNpbXBs ZTogc3VjaCBoYXNoICJhY2N1bXVsYXRlcyIgbGVuZ3RoIGFuZCBvcmRlcg0KKwkJICogb2YgZXZl cnkgc2VudC9yZWNlaXZlZCBtZXNzYWdlLiBBZnRlciBkYXRhIGV4Y2hhbmdlLA0KKwkJICogYm90 aCBzdW1zIGFyZSBjb21wYXJlZCB1c2luZyBjb250cm9sIHNvY2tldCwgYW5kIGlmDQorCQkgKiBt ZXNzYWdlIGJvdW5kcyB3YXNuJ3QgYnJva2VuIC0gdHdvIHZhbHVlcyBtdXN0IGJlDQorCQkgKiBl cXVhbC4NCisJCSAqLw0KKwkJY3Vycl9oYXNoICs9IHNlbmRfc2l6ZTsNCisJCWN1cnJfaGFzaCA9 IGhhc2hfZGpiMigmY3Vycl9oYXNoLCBzaXplb2YoY3Vycl9oYXNoKSk7DQorCX0NCiANCiAJY29u dHJvbF93cml0ZWxuKCJTRU5ERE9ORSIpOw0KKwljb250cm9sX3dyaXRldWxvbmcoY3Vycl9oYXNo KTsNCiAJY2xvc2UoZmQpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCB0ZXN0X3NlcXBhY2tldF9tc2df Ym91bmRzX3NlcnZlcihjb25zdCBzdHJ1Y3QgdGVzdF9vcHRzICpvcHRzKQ0KIHsNCisJdW5zaWdu ZWQgbG9uZyBzb2NrX2J1Zl9zaXplOw0KKwl1bnNpZ25lZCBsb25nIHJlbW90ZV9oYXNoOw0KKwl1 bnNpZ25lZCBsb25nIGN1cnJfaGFzaDsNCiAJaW50IGZkOw0KLQljaGFyIGJ1ZlsxNl07DQorCWNo YXIgYnVmW01BWF9NU0dfU0laRV07DQogCXN0cnVjdCBtc2doZHIgbXNnID0gezB9Ow0KIAlzdHJ1 Y3QgaW92ZWMgaW92ID0gezB9Ow0KIA0KQEAgLTMxNywyNSArMzgxLDU4IEBAIHN0YXRpYyB2b2lk IHRlc3Rfc2VxcGFja2V0X21zZ19ib3VuZHNfc2VydmVyKGNvbnN0IHN0cnVjdCB0ZXN0X29wdHMg Km9wdHMpDQogCQlleGl0KEVYSVRfRkFJTFVSRSk7DQogCX0NCiANCisJc29ja19idWZfc2l6ZSA9 IFNPQ0tfQlVGX1NJWkU7DQorDQorCWlmIChzZXRzb2Nrb3B0KGZkLCBBRl9WU09DSywgU09fVk1f U09DS0VUU19CVUZGRVJfTUFYX1NJWkUsDQorCQkgICAgICAgJnNvY2tfYnVmX3NpemUsIHNpemVv Zihzb2NrX2J1Zl9zaXplKSkpIHsNCisJCXBlcnJvcigiZ2V0c29ja29wdCIpOw0KKwkJZXhpdChF WElUX0ZBSUxVUkUpOw0KKwl9DQorDQorCWlmIChzZXRzb2Nrb3B0KGZkLCBBRl9WU09DSywgU09f Vk1fU09DS0VUU19CVUZGRVJfU0laRSwNCisJCSAgICAgICAmc29ja19idWZfc2l6ZSwgc2l6ZW9m KHNvY2tfYnVmX3NpemUpKSkgew0KKwkJcGVycm9yKCJnZXRzb2Nrb3B0Iik7DQorCQlleGl0KEVY SVRfRkFJTFVSRSk7DQorCX0NCisNCisJLyogUmVhZHkgdG8gcmVjZWl2ZSBkYXRhLiAqLw0KKwlj b250cm9sX3dyaXRlbG4oIlNSVlJFQURZIik7DQorCS8qIFdhaXQsIHVudGlsIHBlZXIgc2VuZHMg d2hvbGUgZGF0YS4gKi8NCiAJY29udHJvbF9leHBlY3RsbigiU0VORERPTkUiKTsNCiAJaW92Lmlv dl9iYXNlID0gYnVmOw0KIAlpb3YuaW92X2xlbiA9IHNpemVvZihidWYpOw0KIAltc2cubXNnX2lv diA9ICZpb3Y7DQogCW1zZy5tc2dfaW92bGVuID0gMTsNCiANCi0JZm9yIChpbnQgaSA9IDA7IGkg PCBNRVNTQUdFU19DTlQ7IGkrKykgew0KLQkJaWYgKHJlY3Ztc2coZmQsICZtc2csIDApICE9IDEp IHsNCi0JCQlwZXJyb3IoIm1lc3NhZ2UgYm91bmQgdmlvbGF0ZWQiKTsNCi0JCQlleGl0KEVYSVRf RkFJTFVSRSk7DQotCQl9DQorCWN1cnJfaGFzaCA9IDA7DQogDQotCQlpZiAoKGkgPT0gTVNHX0VP Ul9JRFgpIF4gISEobXNnLm1zZ19mbGFncyAmIE1TR19FT1IpKSB7DQotCQkJcGVycm9yKCJNU0df RU9SIik7DQorCXdoaWxlICgxKSB7DQorCQlzc2l6ZV90IHJlY3Zfc2l6ZTsNCisNCisJCXJlY3Zf c2l6ZSA9IHJlY3Ztc2coZmQsICZtc2csIDApOw0KKw0KKwkJaWYgKCFyZWN2X3NpemUpDQorCQkJ YnJlYWs7DQorDQorCQlpZiAocmVjdl9zaXplIDwgMCkgew0KKwkJCXBlcnJvcigicmVjdm1zZyIp Ow0KIAkJCWV4aXQoRVhJVF9GQUlMVVJFKTsNCiAJCX0NCisNCisJCWlmIChtc2cubXNnX2ZsYWdz ICYgTVNHX0VPUikNCisJCQljdXJyX2hhc2grKzsNCisNCisJCWN1cnJfaGFzaCArPSByZWN2X3Np emU7DQorCQljdXJyX2hhc2ggPSBoYXNoX2RqYjIoJmN1cnJfaGFzaCwgc2l6ZW9mKGN1cnJfaGFz aCkpOw0KIAl9DQogDQogCWNsb3NlKGZkKTsNCisJcmVtb3RlX2hhc2ggPSBjb250cm9sX3JlYWR1 bG9uZygpOw0KKw0KKwlpZiAoY3Vycl9oYXNoICE9IHJlbW90ZV9oYXNoKSB7DQorCQlmcHJpbnRm KHN0ZGVyciwgIk1lc3NhZ2UgYm91bmRzIGJyb2tlblxuIik7DQorCQlleGl0KEVYSVRfRkFJTFVS RSk7DQorCX0NCiB9DQogDQogI2RlZmluZSBNRVNTQUdFX1RSVU5DX1NaIDMyDQpAQCAtODM3LDYg KzkzNCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCiAJCS5wZWVyX2NpZCA9 IFZNQUREUl9DSURfQU5ZLA0KIAl9Ow0KIA0KKwlzcmFuZCh0aW1lKE5VTEwpKTsNCiAJaW5pdF9z aWduYWxzKCk7DQogDQogCWZvciAoOzspIHsNCi0tIA0KMi4yNS4xDQo=