From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=THvPPyxC; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by passt.top (Postfix) with ESMTPS id 32ADF5A004E for ; Thu, 16 Jan 2025 22:57:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1737064642; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Zf0gMbgebWqGxjL/iVf/G4ag0oDiflqDyCMhRbIDzzw=; b=THvPPyxCppo2d5kc3RH+C1aUTdvh13ohsnUQNMUD3NownGDJ2WfxLfQ8NAEKy45haQj6CW ujuwOZ3lqoObXbPIQEZMZ4XhKL5mS38Hes00/HwmDEXECjKZcC0uHtSOezFs270Q2N0KhR D2KrzJk2IoSpb6CMDTcHqkYMAwYHA1Y= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-9-BFbL5nzrPo-wufMf5DA9sg-1; Thu, 16 Jan 2025 16:57:20 -0500 X-MC-Unique: BFbL5nzrPo-wufMf5DA9sg-1 X-Mimecast-MFC-AGG-ID: BFbL5nzrPo-wufMf5DA9sg Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id ECFC91955F69 for ; Thu, 16 Jan 2025 21:57:19 +0000 (UTC) Received: from jmaloy-thinkpadp16vgen1.rmtcaqc.csb (unknown [10.22.64.91]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 878691955F1B; Thu, 16 Jan 2025 21:57:17 +0000 (UTC) From: Jon Maloy To: passt-dev@passt.top, sbrivio@redhat.com, lvivier@redhat.com, dgibson@redhat.com, jmaloy@redhat.com Subject: [net, v2.1] tcp: correct handling of extreme memory squeeze Date: Thu, 16 Jan 2025 16:57:11 -0500 Message-ID: <20250116215711.2278134-1-jmaloy@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: HhZkN1SY_1kWTa_tUEJq8zLZOpOsHuqBZA2OY20a86U_1737064640 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: EKJSIRRNHIQQ5ZG37UHQ23ABRW6YIKXH X-Message-ID-Hash: EKJSIRRNHIQQ5ZG37UHQ23ABRW6YIKXH X-MailFrom: jmaloy@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: VGVzdGluZyB3aXRoIGlwZXJmMyB1c2luZyB0aGUgInBhc3RhIiBwcm90b2NvbCBzcGxpY2VyIGhh cyByZXZlYWxlZA0KYSBidWcgaW4gdGhlIHdheSB0Y3AgaGFuZGxlcyB3aW5kb3cgYWR2ZXJ0aXNp bmcgaW4gZXh0cmVtZSBtZW1vcnkNCnNxdWVlemUgc2l0dWF0aW9ucy4gVGhlIHByb2JsZW0gb2Nj dXJzIG9uIHRoZSBzZXJ2ZXIgc2lkZSwgYW5kDQp0aGUgc29ja2V0IGluIHF1ZXN0aW9uIGlzIGEg Y29tcGxldGVseSByZWd1bGFyIHNvY2tldCB3aXRoIHRoZQ0KZGVmYXVsdCBzZXR0aW5ncyBmb3Ig dGhlIGZlZG9yYTQwIGtlcm5lbC4gV2UgZG8gbm90IHVzZSBTT19QRUVLDQpvciBTT19SQ1ZCVUYg b24gdGhpcyBzb2NrZXQuDQoNCkEgYnJpZWYgc3VtbWFyeTogVW5kZXIgbWVtb3J5IHByZXNzdXJl LCBhIHNvY2tldCBlbmRwb2ludCBtYXkNCnRlbXBvcmFyaWx5IGFkdmVydGlzZSBhIHplcm8tc2l6 ZWQgd2luZG93LCBidXQgdGhpcyBpcyBub3Qgc3RvcmVkDQphcyBwYXJ0IG9mIHRoZSBzb2NrZXQg ZGF0YS4gVGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcyBpcyB0aGF0IGl0IGlzDQpjb25zaWRlcmVk IGEgdGVtcG9yYXJ5IHNldHRpbmcgd2hpY2ggc2hvdWxkbid0IGluZmx1ZW5jZSBhbnkgZnVydGhl cg0KY2FsY3VsYXRpb25zLiBIb3dldmVyLCBpZiB3ZSBoYXBwZW4gdG8gc3RhbGwgYXQgYW4gdW5m b3J0dW5hdGUgdmFsdWUNCm9mIHRoZSBjdXJyZW50IHdpbmRvdyBzaXplLCB0aGUgYWxnb3JpdGht IHNlbGVjdGluZyBhIG5ldyB2YWx1ZSB3aWxsDQpjb25zaXN0ZW50bHkgZmFpbCB0byBhZHZlcnRp c2UgYSBub24temVybyB3aW5kb3cgb25jZSB3ZSBoYXZlIGZyZWVkDQp1cCBlbm91Z2ggbWVtb3J5 LiBUaGlzIG1lYW5zIHRoYXQgdGhpcyBzaWRlJ3Mgbm90aW9uIG9mIHRoZSBjdXJyZW50DQp3aW5k b3cgc2l6ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIGxhc3QgYWR2ZXJ0aXNlZCB0byB0aGUg cGVlciwNCmNhdXNpbmcgdGhlIGxhdHRlciB0byBub3Qgc2VuZCBhbnkgZGF0YSB0byByZXNvbHZl IHRoZSBzaXR1dGlvbi4NCg0KVGhlIGZvbGxvd2luZyBleGNlcnB0IG9mIGEgbG9nZ2luZyBzZXNz aW9uLCB3aXRoIG93biBjb21tZW50cyBhZGRlZCwNCnNob3dzIG1vcmUgaW4gZGV0YWlsIHdoYXQg aXMgaGFwcGVuaW5nOg0KDQovLyAgICAgICAgICAgICAgdGNwX3Y0X3JjdigtPikNCi8vICAgICAg ICAgICAgICAgIHRjcF9yY3ZfZXN0YWJsaXNoZWQoLT4pDQpbNTIwMTwtPjM5MjIyXTogICAgID09 PT0gQWN0aXZhdGluZyBsb2cgQCBuZXQvaXB2NC90Y3BfaW5wdXQuYy90Y3BfZGF0YV9xdWV1ZSgp LzUyNTcgPT09PQ0KWzUyMDE8LT4zOTIyMl06ICAgICB0Y3BfZGF0YV9xdWV1ZSgtPikNCls1MjAx PC0+MzkyMjJdOiAgICAgICAgRFJPUFBJTkcgc2tiIFsyNjU2MDAxNjAuLjI2NTY2NTY0MF0sIHJl YXNvbjogU0tCX0RST1BfUkVBU09OX1BST1RPX01FTQ0KICAgICAgICAgICAgICAgICAgICAgICBb cmN2X254dCAyNjU2MDAxNjAsIHJjdl93bmQgMjYyMTQ0LCBzbnRfYWNrIDI2NTQ2OTIwMCwgd2lu X25vdyAxMzExODRdDQogICAgICAgICAgICAgICAgICAgICAgIFtjb3BpZWRfc2VxIDI1OTkwOTM5 Mi0+MjYwMDM0MzYwICgxMjQ5NjgpLCB1bnJlYWQgNTU2NTgwMCwgcWxlbiA4NSwgb2ZvcSAwXQ0K WzUyMDE8LT4zOTIyMl06ICAgICB0Y3BfZGF0YV9xdWV1ZSg8LSkgT0ZPIHF1ZXVlOiBnYXA6IDY1 NDgwLCBsZW46IDANCls1MjAxPC0+MzkyMjJdOiAgICAgX190Y3BfdHJhbnNtaXRfc2tiKC0+KQ0K WzUyMDE8LT4zOTIyMl06ICAgICAgIHRjcF9zZWxlY3Rfd2luZG93KC0+KSB0cC0+cmN2X3d1cDog MjY1NDY5MjAwLCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjANCls1 MjAxPC0+MzkyMjJdOiAgICAgICAgIChpbmV0X2NzayhzayktPmljc2tfYWNrLnBlbmRpbmcgJiBJ Q1NLX0FDS19OT01FTSkgLS0+IFRSVUUNCls1MjAxPC0+MzkyMjJdOiAgICAgICB0Y3Bfc2VsZWN0 X3dpbmRvdyg8LSkgdHAtPnJjdl93dXA6IDI2NTQ2OTIwMCwgdHAtPnJjdl93bmQ6IDI2MjE0NCwg dHAtPnJjdl9ueHQgMjY1NjAwMTYwLCByZXR1cm5pbmcgMA0KWzUyMDE8LT4zOTIyMl06ICAgICAg IEFEVkVSVElTSU5HIFdJTiAwLCBBQ0tfU0VROiAyNjU2MDAxNjANCls1MjAxPC0+MzkyMjJdOiAg ICAgX190Y3BfdHJhbnNtaXRfc2tiKDwtKSB0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2 X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjANCls1MjAxPC0+MzkyMjJdOiAgIHRj cF9yY3ZfZXN0YWJsaXNoZWQoPC0pDQpbNTIwMTwtPjM5MjIyXTogdGNwX3Y0X3Jjdig8LSkNCg0K Ly8gUmVjZWl2ZSBxdWV1ZSBpcyBhdCA4NSBidWZmZXJzIGFuZCB3ZSBhcmUgb3V0IG9mIG1lbW9y eS4NCi8vIFdlIGRyb3AgdGhlIGluY29taW5nIGJ1ZmZlciwgYWx0aG91Z2ggaXQgaXMgaW4gc2Vx dWVuY2UsIGFuZCBkZWNpZGUNCi8vIHRvIHNlbmQgYW4gYWR2ZXJ0aXNlbWVudCB3aXRoIGEgd2lu ZG93IG9mIHplcm8uDQovLyBXZSBkb24ndCB1cGRhdGUgdHAtPnJjdl93bmQgYW5kIHRwLT5yY3Zf d3VwIGFjY29yZGluZ2x5LCB3aGljaCBtZWFucw0KLy8gd2UgdW5jb25kaXRpb25hbGx5IHNocmlu ayB0aGUgd2luZG93Lg0KDQpbNTIwMTwtPjM5MjIyXTogdGNwX3JlY3Ztc2dfbG9ja2VkKC0+KQ0K WzUyMDE8LT4zOTIyMl06ICAgX190Y3BfY2xlYW51cF9yYnVmKC0+KSB0cC0+cmN2X3d1cDogMjY1 NDY5MjAwLCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjANCls1MjAx PC0+MzkyMjJdOiAgICAgW25ld193aW4gPSAwLCB3aW5fbm93ID0gMTMxMTg0LCAyICogd2luX25v dyA9IDI2MjM2OF0NCls1MjAxPC0+MzkyMjJdOiAgICAgW25ld193aW4gPj0gKDIgKiB3aW5fbm93 KSA/IC0tPiB0aW1lX3RvX2FjayA9IDBdDQpbNTIwMTwtPjM5MjIyXTogICAgIE5PVCBjYWxsaW5n IHRjcF9zZW5kX2FjaygpDQpbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9jbGVhbnVwX3JidWYoPC0p IHRwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQsIHRwLT5yY3Zfbnh0 IDI2NTYwMDE2MA0KWzUyMDE8LT4zOTIyMl06IHRjcF9yZWN2bXNnX2xvY2tlZCg8LSkgcmV0dXJu aW5nIDYxMDQgYnl0ZXMuDQogICAgICAgICAgICAgICAgW3Jjdl9ueHQgMjY1NjAwMTYwLCByY3Zf d25kIDI2MjE0NCwgc250X2FjayAyNjU0NjkyMDAsIHdpbl9ub3cgMTMxMTg0XQ0KICAgICAgICAg ICAgICAgIFtjb3BpZWRfc2VxIDI2MDA0MDQ2NC0+MjYwMDQwNDY0ICgwKSwgdW5yZWFkIDU1NTk2 OTYsIHFsZW4gODUsIG9mb3EgMF0NCg0KLy8gQWZ0ZXIgZWFjaCByZWFkLCB0aGUgYWxnb3JpdGht IGZvciBjYWxjdWxhdGluZyB0aGUgbmV3IHJlY2VpdmUNCi8vIHdpbmRvdyBpbiBfX3RjcF9jbGVh bnVwX3JidWYoKSBmaW5kcyBpdCBpcyB0b28gc21hbGwgdG8gYWR2ZXJ0aXNlDQovLyBvciB0byB1 cGRhdGUgdHAtPnJjdl93bmQuDQovLyBNZWFud2hpbGUsIHRoZSBwZWVyIHRoaW5rcyB0aGUgd2lu ZG93IGlzIHplcm8sIGFuZCB3aWxsIG5vdCBzZW5kDQovLyBhbnkgbW9yZSBkYXRhIHRvIHRyaWdn ZXIgYW4gdXBkYXRlIGZyb20gdGhlIGludGVycnVwdCBtb2RlIHNpZGUuDQoNCls1MjAxPC0+Mzky MjJdOiB0Y3BfcmVjdm1zZ19sb2NrZWQoLT4pDQpbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9jbGVh bnVwX3JidWYoLT4pIHRwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQs IHRwLT5yY3Zfbnh0IDI2NTYwMDE2MA0KWzUyMDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA9IDI2 MjE0NCwgd2luX25vdyA9IDEzMTE4NCwgMiAqIHdpbl9ub3cgPSAyNjIzNjhdDQpbNTIwMTwtPjM5 MjIyXTogICAgIFtuZXdfd2luID49ICgyICogd2luX25vdykgPyAtLT4gdGltZV90b19hY2sgPSAw XQ0KWzUyMDE8LT4zOTIyMl06ICAgICBOT1QgY2FsbGluZyB0Y3Bfc2VuZF9hY2soKQ0KWzUyMDE8 LT4zOTIyMl06ICAgX190Y3BfY2xlYW51cF9yYnVmKDwtKSB0cC0+cmN2X3d1cDogMjY1NDY5MjAw LCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjANCls1MjAxPC0+Mzky MjJdOiB0Y3BfcmVjdm1zZ19sb2NrZWQoPC0pIHJldHVybmluZyAxMzEwNzIgYnl0ZXMuDQogICAg ICAgICAgICAgICAgW3Jjdl9ueHQgMjY1NjAwMTYwLCByY3Zfd25kIDI2MjE0NCwgc250X2FjayAy NjU0NjkyMDAsIHdpbl9ub3cgMTMxMTg0XQ0KICAgICAgICAgICAgICAgIFtjb3BpZWRfc2VxIDI2 MDA5OTg0MC0+MjYwMTcxNTM2ICg3MTY5NiksIHVucmVhZCA1NDI4NjI0LCBxbGVuIDgzLCBvZm9x IDBdDQoNCi8vIFRoZSBhYm92ZSBwYXR0ZXJuIHJlcGVhdHMgYWdhaW4gYW5kIGFnYWluLCBzaW5j ZSBub3RoaW5nIGNoYW5nZXMNCi8vIGJldHdlZW4gdGhlIHJlYWRzLg0KDQpbLi4uXQ0KDQpbNTIw MTwtPjM5MjIyXTogdGNwX3JlY3Ztc2dfbG9ja2VkKC0+KQ0KWzUyMDE8LT4zOTIyMl06ICAgX190 Y3BfY2xlYW51cF9yYnVmKC0+KSB0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2X3duZDog MjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjANCls1MjAxPC0+MzkyMjJdOiAgICAgW25ld193 aW4gPSAyNjIxNDQsIHdpbl9ub3cgPSAxMzExODQsIDIgKiB3aW5fbm93ID0gMjYyMzY4XQ0KWzUy MDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA+PSAoMiAqIHdpbl9ub3cpID8gLS0+IHRpbWVfdG9f YWNrID0gMF0NCls1MjAxPC0+MzkyMjJdOiAgICAgTk9UIGNhbGxpbmcgdGNwX3NlbmRfYWNrKCkN Cls1MjAxPC0+MzkyMjJdOiAgIF9fdGNwX2NsZWFudXBfcmJ1Zig8LSkgdHAtPnJjdl93dXA6IDI2 NTQ2OTIwMCwgdHAtPnJjdl93bmQ6IDI2MjE0NCwgdHAtPnJjdl9ueHQgMjY1NjAwMTYwDQpbNTIw MTwtPjM5MjIyXTogdGNwX3JlY3Ztc2dfbG9ja2VkKDwtKSByZXR1cm5pbmcgMTMxMDcyIGJ5dGVz Lg0KICAgICAgICAgICAgICAgIFtyY3Zfbnh0IDI2NTYwMDE2MCwgcmN2X3duZCAyNjIxNDQsIHNu dF9hY2sgMjY1NDY5MjAwLCB3aW5fbm93IDEzMTE4NF0NCiAgICAgICAgICAgICAgICBbY29waWVk X3NlcSAyNjU0NjkyMDAtPjI2NTU0NTQ4OCAoNzYyODgpLCB1bnJlYWQgNTQ2NzIsIHFsZW4gMSwg b2ZvcSAwXQ0KDQpbNTIwMTwtPjM5MjIyXTogdGNwX3JlY3Ztc2dfbG9ja2VkKC0+KQ0KWzUyMDE8 LT4zOTIyMl06ICAgX190Y3BfY2xlYW51cF9yYnVmKC0+KSB0cC0+cmN2X3d1cDogMjY1NDY5MjAw LCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjANCls1MjAxPC0+Mzky MjJdOiAgICAgW25ld193aW4gPSAyNjIxNDQsIHdpbl9ub3cgPSAxMzExODQsIDIgKiB3aW5fbm93 ID0gMjYyMzY4XQ0KWzUyMDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA+PSAoMiAqIHdpbl9ub3cp ID8gLS0+IHRpbWVfdG9fYWNrID0gMF0NCls1MjAxPC0+MzkyMjJdOiAgICAgTk9UIGNhbGxpbmcg dGNwX3NlbmRfYWNrKCkNCls1MjAxPC0+MzkyMjJdOiAgIF9fdGNwX2NsZWFudXBfcmJ1Zig8LSkg dHAtPnJjdl93dXA6IDI2NTQ2OTIwMCwgdHAtPnJjdl93bmQ6IDI2MjE0NCwgdHAtPnJjdl9ueHQg MjY1NjAwMTYwDQpbNTIwMTwtPjM5MjIyXTogdGNwX3JlY3Ztc2dfbG9ja2VkKDwtKSByZXR1cm5p bmcgNTQ2NzIgYnl0ZXMuDQogICAgICAgICAgICAgICAgW3Jjdl9ueHQgMjY1NjAwMTYwLCByY3Zf d25kIDI2MjE0NCwgc250X2FjayAyNjU0NjkyMDAsIHdpbl9ub3cgMTMxMTg0XQ0KICAgICAgICAg ICAgICAgIFtjb3BpZWRfc2VxIDI2NTYwMDE2MC0+MjY1NjAwMTYwICgwKSwgdW5yZWFkIDAsIHFs ZW4gMCwgb2ZvcSAwXQ0KDQovLyBUaGUgcmVjZWl2ZSBxdWV1ZSBpcyBlbXB0eSwgYnV0IG5vIG5l dyBhZHZlcnRpc2VtZW50IGlzIHNlbnQuDQovLyBUaGUgcGVlciBzdGlsbCB0aGlua3MgdGhlIHJl Y2VpdmUgd2luZG93IGlzIHplcm8sIGFuZCBzZW5kcyBub3RoaW5nLg0KLy8gV2UgaGF2ZSBlbmRl ZCB1cCBpbiBhIGRlYWRsb2NrIHNpdHVhdGlvbi4NCg0KRnVydGhlcm1vcmUsIHdlIGhhdmUgb2Jz ZXJ2ZWQgdGhhdCBpbiB0aGVzZSBzaXR1YXRpb25zIHRoaXMgc2lkZSBtYXkNCnNlbmQgb3V0IGFu IHVwZGF0ZWQgJ3RoLT5hY2tfc2VxwrQgd2hpY2ggaXMgbm90IHN0b3JlZCBpbiB0cC0+cmN2X3d1 cA0KYXMgaXQgc2hvdWxkIGJlLiBCYWNraW5nIGFja19zZXEgc2VlbXMgdG8gYmUgaGFybWxlc3Ms IGJ1dCBpcyBvZg0KY291cnNlIHN0aWxsIHdyb25nIGZyb20gYSBwcm90b2NvbCB2aWV3cG9pbnQu DQoNCldlIGZpeCB0aGlzIGJ5IHNldHRpbmcgdHAtPnJjdl93bmQgYW5kIHRwLT5yY3Zfd3VwIGV2 ZW4gd2hlbiBhIHBhY2tldA0KaGFzIGJlZW4gZHJvcHBlZCBiZWNhdXNlIG9mIG1lbW9yeSBleGhh dXN0aW9uIGFuZCB3ZSBoYXZlIHRvIGFkdmVydGl6ZQ0KYSB6ZXJvIHdpbmRvdy4NCg0KRnVydGhl ciB0ZXN0aW5nIHNob3dzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcmVjb3ZlcnMgbmVhdGx5IGZyb20g dGhlDQpzcXVlZXplIHNpdHVhdGlvbiwgYW5kIHRyYWZmaWMgY2FuIGNvbnRpbnVlIGluZGVmaW5p dGVseS4NCg0KRml4ZXM6IGUyMTQyODI1YzEyMCAoIm5ldDogdGNwOiBzZW5kIHplcm8td2luZG93 IEFDSyB3aGVuIG5vIG1lbW9yeSIpDQpTaWduZWQtb2ZmLWJ5OiBKb24gTWFsb3kgPGptYWxveUBy ZWRoYXQuY29tPg0KDQotLS0NCnYxOiAtUG9zdGVkIG9uIEFwciA2LCAyMDI0DQp2MjogLUltcHJv dmVkIGNvbW1pdCBsb2cgdG8gY2xhcmlmeSBob3cgd2UgZW5kIHVwIGluIHRoaXMgc2l0dWF0aW9u Lg0KICAgIC1BZnRlciBmZWVkYmFjayBmcm9tIEVyaWMgRHVtYXpldCwgcmVtb3ZlZCByZWZlcmVu Y2VzIHRvIHVzZSBvZg0KICAgICBTT19QRUVLIGFuZCBTT19QRUVLX09GRiB3aGljaCBtYXkgbGVh ZCB0byBhIG1pc3VuZGVyc3RhbmRpbmcNCiAgICAgYWJvdXQgaG93IHRoaXMgc2l0dWF0aW9uIG9j Y3Vycy4gVGhvc2UgZmxhZ3MgYXJlIHVzZWQgYXQgdGhlDQogICAgIHBlZXIgc2lkZSdzIGluY29t aW5nIGNvbm5lY3Rpb24sIGFuZCBub3Qgb24gdGhpcyBvbmUuDQotLS0NCiBuZXQvaXB2NC90Y3Bf b3V0cHV0LmMgfCA4ICsrKysrLS0tDQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25l dC9pcHY0L3RjcF9vdXRwdXQuYw0KaW5kZXggMGU1YjlhNjU0MjU0Li5iYTI5NWY3OThlNWUgMTAw NjQ0DQotLS0gYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMNCisrKyBiL25ldC9pcHY0L3RjcF9vdXRw dXQuYw0KQEAgLTI2NSwxMSArMjY1LDEzIEBAIHN0YXRpYyB1MTYgdGNwX3NlbGVjdF93aW5kb3co c3RydWN0IHNvY2sgKnNrKQ0KIAl1MzIgY3VyX3dpbiwgbmV3X3dpbjsNCiANCiAJLyogTWFrZSB0 aGUgd2luZG93IDAgaWYgd2UgZmFpbGVkIHRvIHF1ZXVlIHRoZSBkYXRhIGJlY2F1c2Ugd2UNCi0J ICogYXJlIG91dCBvZiBtZW1vcnkuIFRoZSB3aW5kb3cgaXMgdGVtcG9yYXJ5LCBzbyB3ZSBkb24n dCBzdG9yZQ0KLQkgKiBpdCBvbiB0aGUgc29ja2V0Lg0KKwkgKiBhcmUgb3V0IG9mIG1lbW9yeS4N CiAJICovDQotCWlmICh1bmxpa2VseShpbmV0X2NzayhzayktPmljc2tfYWNrLnBlbmRpbmcgJiBJ Q1NLX0FDS19OT01FTSkpDQorCWlmICh1bmxpa2VseShpbmV0X2NzayhzayktPmljc2tfYWNrLnBl bmRpbmcgJiBJQ1NLX0FDS19OT01FTSkpIHsNCisJCXRwLT5yY3Zfd25kID0gMDsNCisJCXRwLT5y Y3Zfd3VwID0gdHAtPnJjdl9ueHQ7DQogCQlyZXR1cm4gMDsNCisJfQ0KIA0KIAljdXJfd2luID0g dGNwX3JlY2VpdmVfd2luZG93KHRwKTsNCiAJbmV3X3dpbiA9IF9fdGNwX3NlbGVjdF93aW5kb3co c2spOw0KLS0gDQoyLjQ4LjANCg0K