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=V/VCL8mh; 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 D58175A061E for ; Tue, 28 Jan 2025 00:13:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1738019592; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b04VDWzcEKOkLP2rdTOIiFvcErv92TPEa+7KNF/Mo2s=; b=V/VCL8mhvIgCCVNjHGLXq1Bho4R3/6I8/Ce5Ps0ffZ1WtCLzNv1ZAHpqy4DsRqkqCfJLkE lirnDFMawYSu1QweCyavQEX47PtVR8svVVdzvtbXItbhbfa6ERELnOEctRZxr7B2CVQYQB tNgCN/ouezOYZGRFxGWKUUsQUpzPqQo= Received: from mx-prod-mc-04.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-93-I0GRzqSLOrWcJTb33Nt65Q-1; Mon, 27 Jan 2025 18:13:09 -0500 X-MC-Unique: I0GRzqSLOrWcJTb33Nt65Q-1 X-Mimecast-MFC-AGG-ID: I0GRzqSLOrWcJTb33Nt65Q Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (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-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 8519B19560A3; Mon, 27 Jan 2025 23:13:07 +0000 (UTC) Received: from jmaloy-thinkpadp16vgen1.rmtcaqc.csb (unknown [10.22.81.70]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 0A3CC19560BC; Mon, 27 Jan 2025 23:13:04 +0000 (UTC) From: jmaloy@redhat.com To: netdev@vger.kernel.org, davem@davemloft.net Subject: [net,v3] tcp: correct handling of extreme memory squeeze Date: Mon, 27 Jan 2025 18:13:04 -0500 Message-ID: <20250127231304.1465565-1-jmaloy@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 Message-ID-Hash: YEZTSXWBND57SLSB2RMDFYYJCH2O4TBM X-Message-ID-Hash: YEZTSXWBND57SLSB2RMDFYYJCH2O4TBM 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 CC: kuba@kernel.org, passt-dev@passt.top, jmaloy@redhat.com, sbrivio@redhat.com, lvivier@redhat.com, dgibson@redhat.com, memnglong8.dong@gmail.com, kerneljasonxing@gmail.com, ncardwell@google.com, eric.dumazet@gmail.com, edumazet@google.com 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: RnJvbTogSm9uIE1hbG95IDxqbWFsb3lAcmVkaGF0LmNvbT4NCg0KVGVzdGluZyB3aXRoIGlwZXJm MyB1c2luZyB0aGUgInBhc3RhIiBwcm90b2NvbCBzcGxpY2VyIGhhcyByZXZlYWxlZA0KYSBidWcg aW4gdGhlIHdheSB0Y3AgaGFuZGxlcyB3aW5kb3cgYWR2ZXJ0aXNpbmcgaW4gZXh0cmVtZSBtZW1v cnkNCnNxdWVlemUgc2l0dWF0aW9ucy4NCg0KVW5kZXIgbWVtb3J5IHByZXNzdXJlLCBhIHNvY2tl dCBlbmRwb2ludCBtYXkgdGVtcG9yYXJpbHkgYWR2ZXJ0aXNlDQphIHplcm8tc2l6ZWQgd2luZG93 LCBidXQgdGhpcyBpcyBub3Qgc3RvcmVkIGFzIHBhcnQgb2YgdGhlIHNvY2tldCBkYXRhLg0KVGhl IHJlYXNvbmluZyBiZWhpbmQgdGhpcyBpcyB0aGF0IGl0IGlzIGNvbnNpZGVyZWQgYSB0ZW1wb3Jh cnkgc2V0dGluZw0Kd2hpY2ggc2hvdWxkbid0IGluZmx1ZW5jZSBhbnkgZnVydGhlciBjYWxjdWxh dGlvbnMuDQoNCkhvd2V2ZXIsIGlmIHdlIGhhcHBlbiB0byBzdGFsbCBhdCBhbiB1bmZvcnR1bmF0 ZSB2YWx1ZSBvZiB0aGUgY3VycmVudA0Kd2luZG93IHNpemUsIHRoZSBhbGdvcml0aG0gc2VsZWN0 aW5nIGEgbmV3IHZhbHVlIHdpbGwgY29uc2lzdGVudGx5IGZhaWwNCnRvIGFkdmVydGlzZSBhIG5v bi16ZXJvIHdpbmRvdyBvbmNlIHdlIGhhdmUgZnJlZWQgdXAgZW5vdWdoIG1lbW9yeS4NClRoaXMg bWVhbnMgdGhhdCB0aGlzIHNpZGUncyBub3Rpb24gb2YgdGhlIGN1cnJlbnQgd2luZG93IHNpemUg aXMNCmRpZmZlcmVudCBmcm9tIHRoZSBvbmUgbGFzdCBhZHZlcnRpc2VkIHRvIHRoZSBwZWVyLCBj YXVzaW5nIHRoZSBsYXR0ZXINCnRvIG5vdCBzZW5kIGFueSBkYXRhIHRvIHJlc29sdmUgdGhlIHNp dHV0aW9uLg0KDQpUaGUgcHJvYmxlbSBvY2N1cnMgb24gdGhlIGlwZXJmMyBzZXJ2ZXIgc2lkZSwg YW5kIHRoZSBzb2NrZXQgaW4gcXVlc3Rpb24NCmlzIGEgY29tcGxldGVseSByZWd1bGFyIHNvY2tl dCB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUNCmZlZG9yYTQwIGtlcm5lbC4gV2Ug ZG8gbm90IHVzZSBTT19QRUVLIG9yIFNPX1JDVkJVRiBvbiB0aGUgc29ja2V0Lg0KDQpUaGUgZm9s bG93aW5nIGV4Y2VycHQgb2YgYSBsb2dnaW5nIHNlc3Npb24sIHdpdGggb3duIGNvbW1lbnRzIGFk ZGVkLA0Kc2hvd3MgbW9yZSBpbiBkZXRhaWwgd2hhdCBpcyBoYXBwZW5pbmc6DQoNCi8vICAgICAg ICAgICAgICB0Y3BfdjRfcmN2KC0+KQ0KLy8gICAgICAgICAgICAgICAgdGNwX3Jjdl9lc3RhYmxp c2hlZCgtPikNCls1MjAxPC0+MzkyMjJdOiAgICAgPT09PSBBY3RpdmF0aW5nIGxvZyBAIG5ldC9p cHY0L3RjcF9pbnB1dC5jL3RjcF9kYXRhX3F1ZXVlKCkvNTI1NyA9PT09DQpbNTIwMTwtPjM5MjIy XTogICAgIHRjcF9kYXRhX3F1ZXVlKC0+KQ0KWzUyMDE8LT4zOTIyMl06ICAgICAgICBEUk9QUElO RyBza2IgWzI2NTYwMDE2MC4uMjY1NjY1NjQwXSwgcmVhc29uOiBTS0JfRFJPUF9SRUFTT05fUFJP VE9fTUVNDQogICAgICAgICAgICAgICAgICAgICAgIFtyY3Zfbnh0IDI2NTYwMDE2MCwgcmN2X3du ZCAyNjIxNDQsIHNudF9hY2sgMjY1NDY5MjAwLCB3aW5fbm93IDEzMTE4NF0NCiAgICAgICAgICAg ICAgICAgICAgICAgW2NvcGllZF9zZXEgMjU5OTA5MzkyLT4yNjAwMzQzNjAgKDEyNDk2OCksIHVu cmVhZCA1NTY1ODAwLCBxbGVuIDg1LCBvZm9xIDBdDQogICAgICAgICAgICAgICAgICAgICAgIFtP Rk8gcXVldWU6IGdhcDogNjU0ODAsIGxlbjogMF0NCls1MjAxPC0+MzkyMjJdOiAgICAgdGNwX2Rh dGFfcXVldWUoPC0pDQpbNTIwMTwtPjM5MjIyXTogICAgIF9fdGNwX3RyYW5zbWl0X3NrYigtPikN CiAgICAgICAgICAgICAgICAgICAgICAgIFt0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2 X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjBdDQpbNTIwMTwtPjM5MjIyXTogICAg ICAgdGNwX3NlbGVjdF93aW5kb3coLT4pDQpbNTIwMTwtPjM5MjIyXTogICAgICAgICAoaW5ldF9j c2soc2spLT5pY3NrX2Fjay5wZW5kaW5nICYgSUNTS19BQ0tfTk9NRU0pID8gLS0+IFRSVUUNCiAg ICAgICAgICAgICAgICAgICAgICAgIFt0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2X3du ZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjBdDQogICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm5pbmcgMA0KWzUyMDE8LT4zOTIyMl06ICAgICAgIHRjcF9zZWxlY3Rfd2luZG93KDwt KQ0KWzUyMDE8LT4zOTIyMl06ICAgICAgIEFEVkVSVElTSU5HIFdJTiAwLCBBQ0tfU0VROiAyNjU2 MDAxNjANCls1MjAxPC0+MzkyMjJdOiAgICAgW19fdGNwX3RyYW5zbWl0X3NrYig8LSkNCls1MjAx PC0+MzkyMjJdOiAgIHRjcF9yY3ZfZXN0YWJsaXNoZWQoPC0pDQpbNTIwMTwtPjM5MjIyXTogdGNw X3Y0X3Jjdig8LSkNCg0KLy8gUmVjZWl2ZSBxdWV1ZSBpcyBhdCA4NSBidWZmZXJzIGFuZCB3ZSBh cmUgb3V0IG9mIG1lbW9yeS4NCi8vIFdlIGRyb3AgdGhlIGluY29taW5nIGJ1ZmZlciwgYWx0aG91 Z2ggaXQgaXMgaW4gc2VxdWVuY2UsIGFuZCBkZWNpZGUNCi8vIHRvIHNlbmQgYW4gYWR2ZXJ0aXNl bWVudCB3aXRoIGEgd2luZG93IG9mIHplcm8uDQovLyBXZSBkb24ndCB1cGRhdGUgdHAtPnJjdl93 bmQgYW5kIHRwLT5yY3Zfd3VwIGFjY29yZGluZ2x5LCB3aGljaCBtZWFucw0KLy8gd2UgdW5jb25k aXRpb25hbGx5IHNocmluayB0aGUgd2luZG93Lg0KDQpbNTIwMTwtPjM5MjIyXTogdGNwX3JlY3Zt c2dfbG9ja2VkKC0+KQ0KWzUyMDE8LT4zOTIyMl06ICAgX190Y3BfY2xlYW51cF9yYnVmKC0+KSB0 cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAy NjU2MDAxNjANCls1MjAxPC0+MzkyMjJdOiAgICAgW25ld193aW4gPSAwLCB3aW5fbm93ID0gMTMx MTg0LCAyICogd2luX25vdyA9IDI2MjM2OF0NCls1MjAxPC0+MzkyMjJdOiAgICAgW25ld193aW4g Pj0gKDIgKiB3aW5fbm93KSA/IC0tPiB0aW1lX3RvX2FjayA9IDBdDQpbNTIwMTwtPjM5MjIyXTog ICAgIE5PVCBjYWxsaW5nIHRjcF9zZW5kX2FjaygpDQogICAgICAgICAgICAgICAgICAgIFt0cC0+ cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2 MDAxNjBdDQpbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9jbGVhbnVwX3JidWYoPC0pDQogICAgICAg ICAgICAgICAgICBbcmN2X254dCAyNjU2MDAxNjAsIHJjdl93bmQgMjYyMTQ0LCBzbnRfYWNrIDI2 NTQ2OTIwMCwgd2luX25vdyAxMzExODRdDQogICAgICAgICAgICAgICAgICBbY29waWVkX3NlcSAy NjAwNDA0NjQtPjI2MDA0MDQ2NCAoMCksIHVucmVhZCA1NTU5Njk2LCBxbGVuIDg1LCBvZm9xIDBd DQogICAgICAgICAgICAgICAgICByZXR1cm5pbmcgNjEwNCBieXRlcw0KWzUyMDE8LT4zOTIyMl06 IHRjcF9yZWN2bXNnX2xvY2tlZCg8LSkNCg0KLy8gQWZ0ZXIgZWFjaCByZWFkLCB0aGUgYWxnb3Jp dGhtIGZvciBjYWxjdWxhdGluZyB0aGUgbmV3IHJlY2VpdmUNCi8vIHdpbmRvdyBpbiBfX3RjcF9j bGVhbnVwX3JidWYoKSBmaW5kcyBpdCBpcyB0b28gc21hbGwgdG8gYWR2ZXJ0aXNlDQovLyBvciB0 byB1cGRhdGUgdHAtPnJjdl93bmQuDQovLyBNZWFud2hpbGUsIHRoZSBwZWVyIHRoaW5rcyB0aGUg d2luZG93IGlzIHplcm8sIGFuZCB3aWxsIG5vdCBzZW5kDQovLyBhbnkgbW9yZSBkYXRhIHRvIHRy aWdnZXIgYW4gdXBkYXRlIGZyb20gdGhlIGludGVycnVwdCBtb2RlIHNpZGUuDQoNCls1MjAxPC0+ MzkyMjJdOiB0Y3BfcmVjdm1zZ19sb2NrZWQoLT4pDQpbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9j bGVhbnVwX3JidWYoLT4pIHRwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIx NDQsIHRwLT5yY3Zfbnh0IDI2NTYwMDE2MA0KWzUyMDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA9 IDI2MjE0NCwgd2luX25vdyA9IDEzMTE4NCwgMiAqIHdpbl9ub3cgPSAyNjIzNjhdDQpbNTIwMTwt PjM5MjIyXTogICAgIFtuZXdfd2luID49ICgyICogd2luX25vdykgPyAtLT4gdGltZV90b19hY2sg PSAwXQ0KWzUyMDE8LT4zOTIyMl06ICAgICBOT1QgY2FsbGluZyB0Y3Bfc2VuZF9hY2soKQ0KICAg ICAgICAgICAgICAgICAgICBbdHAtPnJjdl93dXA6IDI2NTQ2OTIwMCwgdHAtPnJjdl93bmQ6IDI2 MjE0NCwgdHAtPnJjdl9ueHQgMjY1NjAwMTYwXQ0KWzUyMDE8LT4zOTIyMl06ICAgX190Y3BfY2xl YW51cF9yYnVmKDwtKQ0KICAgICAgICAgICAgICAgICAgW3Jjdl9ueHQgMjY1NjAwMTYwLCByY3Zf d25kIDI2MjE0NCwgc250X2FjayAyNjU0NjkyMDAsIHdpbl9ub3cgMTMxMTg0XQ0KICAgICAgICAg ICAgICAgICAgW2NvcGllZF9zZXEgMjYwMDk5ODQwLT4yNjAxNzE1MzYgKDcxNjk2KSwgdW5yZWFk IDU0Mjg2MjQsIHFsZW4gODMsIG9mb3EgMF0NCiAgICAgICAgICAgICAgICAgIHJldHVybmluZyAx MzEwNzIgYnl0ZXMNCls1MjAxPC0+MzkyMjJdOiB0Y3BfcmVjdm1zZ19sb2NrZWQoPC0pDQoNCi8v IFRoZSBhYm92ZSBwYXR0ZXJuIHJlcGVhdHMgYWdhaW4gYW5kIGFnYWluLCBzaW5jZSBub3RoaW5n IGNoYW5nZXMNCi8vIGJldHdlZW4gdGhlIHJlYWRzLg0KDQpbLi4uXQ0KDQpbNTIwMTwtPjM5MjIy XTogdGNwX3JlY3Ztc2dfbG9ja2VkKC0+KQ0KWzUyMDE8LT4zOTIyMl06ICAgX190Y3BfY2xlYW51 cF9yYnVmKC0+KSB0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0 cC0+cmN2X254dCAyNjU2MDAxNjANCls1MjAxPC0+MzkyMjJdOiAgICAgW25ld193aW4gPSAyNjIx NDQsIHdpbl9ub3cgPSAxMzExODQsIDIgKiB3aW5fbm93ID0gMjYyMzY4XQ0KWzUyMDE8LT4zOTIy Ml06ICAgICBbbmV3X3dpbiA+PSAoMiAqIHdpbl9ub3cpID8gLS0+IHRpbWVfdG9fYWNrID0gMF0N Cls1MjAxPC0+MzkyMjJdOiAgICAgTk9UIGNhbGxpbmcgdGNwX3NlbmRfYWNrKCkNCiAgICAgICAg ICAgICAgICAgICAgW3RwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQs IHRwLT5yY3Zfbnh0IDI2NTYwMDE2MF0NCls1MjAxPC0+MzkyMjJdOiAgIF9fdGNwX2NsZWFudXBf cmJ1Zig8LSkNCiAgICAgICAgICAgICAgICAgIFtyY3Zfbnh0IDI2NTYwMDE2MCwgcmN2X3duZCAy NjIxNDQsIHNudF9hY2sgMjY1NDY5MjAwLCB3aW5fbm93IDEzMTE4NF0NCiAgICAgICAgICAgICAg ICAgIFtjb3BpZWRfc2VxIDI2NTYwMDE2MC0+MjY1NjAwMTYwICgwKSwgdW5yZWFkIDAsIHFsZW4g MCwgb2ZvcSAwXQ0KICAgICAgICAgICAgICAgICAgcmV0dXJuaW5nIDU0NjcyIGJ5dGVzDQpbNTIw MTwtPjM5MjIyXTogdGNwX3JlY3Ztc2dfbG9ja2VkKDwtKQ0KDQovLyBUaGUgcmVjZWl2ZSBxdWV1 ZSBpcyBlbXB0eSwgYnV0IG5vIG5ldyBhZHZlcnRpc2VtZW50IGhhcyBiZWVuIHNlbnQuDQovLyBU aGUgcGVlciBzdGlsbCB0aGlua3MgdGhlIHJlY2VpdmUgd2luZG93IGlzIHplcm8sIGFuZCBzZW5k cyBub3RoaW5nLg0KLy8gV2UgaGF2ZSBlbmRlZCB1cCBpbiBhIGRlYWRsb2NrIHNpdHVhdGlvbi4N Cg0KRnVydGhlcm1vcmUsIHdlIGhhdmUgb2JzZXJ2ZWQgdGhhdCBpbiB0aGVzZSBzaXR1YXRpb25z IHRoaXMgc2lkZSBtYXkNCnNlbmQgb3V0IGFuIHVwZGF0ZWQgJ3RoLT5hY2tfc2VxwrQgd2hpY2gg aXMgbm90IHN0b3JlZCBpbiB0cC0+cmN2X3d1cA0KYXMgaXQgc2hvdWxkIGJlLiBCYWNraW5nIGFj a19zZXEgc2VlbXMgdG8gYmUgaGFybWxlc3MsIGJ1dCBpcyBvZg0KY291cnNlIHN0aWxsIHdyb25n IGZyb20gYSBwcm90b2NvbCB2aWV3cG9pbnQuDQoNCldlIGZpeCB0aGlzIGJ5IHVwZGF0aW5nIHRo ZSBzb2NrZXQgc3RhdGUgY29ycmVjdGx5IHdoZW4gYSBwYWNrZXQgaGFzDQpiZWVuIGRyb3BwZWQg YmVjYXVzZSBvZiBtZW1vcnkgZXhoYXVzdGlvbiBhbmQgd2UgaGF2ZSB0byBhZHZlcnRpemUNCmEg emVybyB3aW5kb3cuDQoNCkZ1cnRoZXIgdGVzdGluZyBzaG93cyB0aGF0IHRoZSBjb25uZWN0aW9u IHJlY292ZXJzIG5lYXRseSBmcm9tIHRoZQ0Kc3F1ZWV6ZSBzaXR1YXRpb24sIGFuZCB0cmFmZmlj IGNhbiBjb250aW51ZSBpbmRlZmluaXRlbHkuDQoNCkZpeGVzOiBlMjE0MjgyNWMxMjAgKCJuZXQ6 IHRjcDogc2VuZCB6ZXJvLXdpbmRvdyBBQ0sgd2hlbiBubyBtZW1vcnkiKQ0KQ2M6IE1lbmdsb25n IERvbmcgPG1lbmdsb25nOC5kb25nQGdtYWlsLmNvbT4NClJldmlld2VkLWJ5OiBTdGVmYW5vIEJy aXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPg0KU2lnbmVkLW9mZi1ieTogSm9uIE1hbG95IDxqbWFs b3lAcmVkaGF0LmNvbT4NCi0tLQ0KdjE6IC1Qb3N0ZWQgb24gQXByIDYsIDIwMjQ6DQogICAgIGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC8yMDI0MDQwNjE4MjEwNy4yNjE0NzItMS1qbWFsb3lA cmVkaGF0LmNvbS8jcg0KdjI6IC1JbXByb3ZlZCBjb21taXQgbG9nIHRvIGNsYXJpZnkgaG93IHdl IGVuZCB1cCBpbiB0aGlzIHNpdHVhdGlvbi4NCiAgICAtQWZ0ZXIgZmVlZGJhY2sgZnJvbSBFcmlj IER1bWF6ZXQsIHJlbW92ZWQgcmVmZXJlbmNlcyB0byB1c2Ugb2YNCiAgICAgU09fUEVFSyBhbmQg U09fUEVFS19PRkYgd2hpY2ggbWF5IGxlYWQgdG8gYSBtaXN1bmRlcnN0YW5kaW5nDQogICAgIGFi b3V0IGhvdyB0aGlzIHNpdHVhdGlvbiBvY2N1cnMuIFRob3NlIGZsYWdzIGFyZSB1c2VkIGF0IHRo ZQ0KICAgICBwZWVyIHNpZGUncyBpbmNvbWluZyBjb25uZWN0aW9uLCBhbmQgbm90IG9uIHRoaXMg b25lLg0KdjM6IC1DbGVhcmluZyB0cC0+cHJlZF9mbGFncyB3aGVuIHdlIGRvIGEgemVybyBhZHZl cnRpc2VtZW50Lg0KICAgIC1FZGl0ZWQgKG1hbnVhbGx5KSBhbmQgc2hvcnRlbmVkIHRoZSBsb2cg ZG9jdW1lbnRpbmcgdGhlIHByb2JsZW0uDQotLS0NCiBuZXQvaXB2NC90Y3Bfb3V0cHV0LmMgfCA5 ICsrKysrKy0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pDQoNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bf b3V0cHV0LmMNCmluZGV4IDBlNWI5YTY1NDI1NC4uYmM5NWQyYTU5MjRmIDEwMDY0NA0KLS0tIGEv bmV0L2lwdjQvdGNwX291dHB1dC5jDQorKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMNCkBAIC0y NjUsMTEgKzI2NSwxNCBAQCBzdGF0aWMgdTE2IHRjcF9zZWxlY3Rfd2luZG93KHN0cnVjdCBzb2Nr ICpzaykNCiAJdTMyIGN1cl93aW4sIG5ld193aW47DQogDQogCS8qIE1ha2UgdGhlIHdpbmRvdyAw IGlmIHdlIGZhaWxlZCB0byBxdWV1ZSB0aGUgZGF0YSBiZWNhdXNlIHdlDQotCSAqIGFyZSBvdXQg b2YgbWVtb3J5LiBUaGUgd2luZG93IGlzIHRlbXBvcmFyeSwgc28gd2UgZG9uJ3Qgc3RvcmUNCi0J ICogaXQgb24gdGhlIHNvY2tldC4NCisJICogYXJlIG91dCBvZiBtZW1vcnkuDQogCSAqLw0KLQlp ZiAodW5saWtlbHkoaW5ldF9jc2soc2spLT5pY3NrX2Fjay5wZW5kaW5nICYgSUNTS19BQ0tfTk9N RU0pKQ0KKwlpZiAodW5saWtlbHkoaW5ldF9jc2soc2spLT5pY3NrX2Fjay5wZW5kaW5nICYgSUNT S19BQ0tfTk9NRU0pKSB7DQorCQl0cC0+cHJlZF9mbGFncyA9IDA7DQorCQl0cC0+cmN2X3duZCA9 IDA7DQorCQl0cC0+cmN2X3d1cCA9IHRwLT5yY3Zfbnh0Ow0KIAkJcmV0dXJuIDA7DQorCX0NCiAN CiAJY3VyX3dpbiA9IHRjcF9yZWNlaXZlX3dpbmRvdyh0cCk7DQogCW5ld193aW4gPSBfX3RjcF9z ZWxlY3Rfd2luZG93KHNrKTsNCi0tIA0KMi40OC4wDQoNCg==