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=A/E6TdrQ; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTPS id B3C5C5A061F for ; Fri, 17 Jan 2025 22:40:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1737150051; 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=aq9MWQIX3mm2TtOspqMrqHd+ZJ2mtFutJbPOVlX++30=; b=A/E6TdrQuBxb+Y/7/70pagw58uLkHLWuv5kKMBZfCA7CYGVcA1J24/WoX95i6k/aQBAhSz mihQe2gwkLHpKso0w3zXL+K1ua+bJSjb08T94S6LF6Th7/BBAkh0Oa71O/UVgbQKChIR1j +paf548gcunWww7LJZlu/S6KjOYWsYk= Received: from mx-prod-mc-03.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-658-zPmk1L_IPOeG9PDa_y2COw-1; Fri, 17 Jan 2025 16:40:47 -0500 X-MC-Unique: zPmk1L_IPOeG9PDa_y2COw-1 X-Mimecast-MFC-AGG-ID: zPmk1L_IPOeG9PDa_y2COw Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 29B841956056; Fri, 17 Jan 2025 21:40:46 +0000 (UTC) Received: from jmaloy-thinkpadp16vgen1.rmtcaqc.csb (unknown [10.22.64.91]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 2006C19560A3; Fri, 17 Jan 2025 21:40:42 +0000 (UTC) From: jmaloy@redhat.com To: netdev@vger.kernel.org, davem@davemloft.net Subject: [net,v2] tcp: correct handling of extreme memory squeeze Date: Fri, 17 Jan 2025 16:40:35 -0500 Message-ID: <20250117214035.2414668-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.12 Message-ID-Hash: QC23UC26AOVFOFPPQFU6DM6LPJRQ5BLV X-Message-ID-Hash: QC23UC26AOVFOFPPQFU6DM6LPJRQ5BLV 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, imagedong@tencent.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 cmVhZCA1NTY1ODAwLCBxbGVuIDg1LCBvZm9xIDBdDQpbNTIwMTwtPjM5MjIyXTogICAgIHRjcF9k YXRhX3F1ZXVlKDwtKSBPRk8gcXVldWU6IGdhcDogNjU0ODAsIGxlbjogMA0KWzUyMDE8LT4zOTIy Ml06ICAgICBfX3RjcF90cmFuc21pdF9za2IoLT4pDQpbNTIwMTwtPjM5MjIyXTogICAgICAgdGNw X3NlbGVjdF93aW5kb3coLT4pIHRwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAy NjIxNDQsIHRwLT5yY3Zfbnh0IDI2NTYwMDE2MA0KWzUyMDE8LT4zOTIyMl06ICAgICAgICAgKGlu ZXRfY3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAmIElDU0tfQUNLX05PTUVNKSAtLT4gVFJVRQ0K WzUyMDE8LT4zOTIyMl06ICAgICAgIHRjcF9zZWxlY3Rfd2luZG93KDwtKSB0cC0+cmN2X3d1cDog MjY1NDY5MjAwLCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjAsIHJl dHVybmluZyAwDQpbNTIwMTwtPjM5MjIyXTogICAgICAgQURWRVJUSVNJTkcgV0lOIDAsIEFDS19T RVE6IDI2NTYwMDE2MA0KWzUyMDE8LT4zOTIyMl06ICAgICBfX3RjcF90cmFuc21pdF9za2IoPC0p IHRwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQsIHRwLT5yY3Zfbnh0 IDI2NTYwMDE2MA0KWzUyMDE8LT4zOTIyMl06ICAgdGNwX3Jjdl9lc3RhYmxpc2hlZCg8LSkNCls1 MjAxPC0+MzkyMjJdOiB0Y3BfdjRfcmN2KDwtKQ0KDQovLyBSZWNlaXZlIHF1ZXVlIGlzIGF0IDg1 IGJ1ZmZlcnMgYW5kIHdlIGFyZSBvdXQgb2YgbWVtb3J5Lg0KLy8gV2UgZHJvcCB0aGUgaW5jb21p bmcgYnVmZmVyLCBhbHRob3VnaCBpdCBpcyBpbiBzZXF1ZW5jZSwgYW5kIGRlY2lkZQ0KLy8gdG8g c2VuZCBhbiBhZHZlcnRpc2VtZW50IHdpdGggYSB3aW5kb3cgb2YgemVyby4NCi8vIFdlIGRvbid0 IHVwZGF0ZSB0cC0+cmN2X3duZCBhbmQgdHAtPnJjdl93dXAgYWNjb3JkaW5nbHksIHdoaWNoIG1l YW5zDQovLyB3ZSB1bmNvbmRpdGlvbmFsbHkgc2hyaW5rIHRoZSB3aW5kb3cuDQoNCls1MjAxPC0+ MzkyMjJdOiB0Y3BfcmVjdm1zZ19sb2NrZWQoLT4pDQpbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9j bGVhbnVwX3JidWYoLT4pIHRwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIx NDQsIHRwLT5yY3Zfbnh0IDI2NTYwMDE2MA0KWzUyMDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA9 IDAsIHdpbl9ub3cgPSAxMzExODQsIDIgKiB3aW5fbm93ID0gMjYyMzY4XQ0KWzUyMDE8LT4zOTIy Ml06ICAgICBbbmV3X3dpbiA+PSAoMiAqIHdpbl9ub3cpID8gLS0+IHRpbWVfdG9fYWNrID0gMF0N Cls1MjAxPC0+MzkyMjJdOiAgICAgTk9UIGNhbGxpbmcgdGNwX3NlbmRfYWNrKCkNCls1MjAxPC0+ MzkyMjJdOiAgIF9fdGNwX2NsZWFudXBfcmJ1Zig8LSkgdHAtPnJjdl93dXA6IDI2NTQ2OTIwMCwg dHAtPnJjdl93bmQ6IDI2MjE0NCwgdHAtPnJjdl9ueHQgMjY1NjAwMTYwDQpbNTIwMTwtPjM5MjIy XTogdGNwX3JlY3Ztc2dfbG9ja2VkKDwtKSByZXR1cm5pbmcgNjEwNCBieXRlcy4NCiAgICAgICAg ICAgICAgICBbcmN2X254dCAyNjU2MDAxNjAsIHJjdl93bmQgMjYyMTQ0LCBzbnRfYWNrIDI2NTQ2 OTIwMCwgd2luX25vdyAxMzExODRdDQogICAgICAgICAgICAgICAgW2NvcGllZF9zZXEgMjYwMDQw NDY0LT4yNjAwNDA0NjQgKDApLCB1bnJlYWQgNTU1OTY5NiwgcWxlbiA4NSwgb2ZvcSAwXQ0KDQov LyBBZnRlciBlYWNoIHJlYWQsIHRoZSBhbGdvcml0aG0gZm9yIGNhbGN1bGF0aW5nIHRoZSBuZXcg cmVjZWl2ZQ0KLy8gd2luZG93IGluIF9fdGNwX2NsZWFudXBfcmJ1ZigpIGZpbmRzIGl0IGlzIHRv byBzbWFsbCB0byBhZHZlcnRpc2UNCi8vIG9yIHRvIHVwZGF0ZSB0cC0+cmN2X3duZC4NCi8vIE1l YW53aGlsZSwgdGhlIHBlZXIgdGhpbmtzIHRoZSB3aW5kb3cgaXMgemVybywgYW5kIHdpbGwgbm90 IHNlbmQNCi8vIGFueSBtb3JlIGRhdGEgdG8gdHJpZ2dlciBhbiB1cGRhdGUgZnJvbSB0aGUgaW50 ZXJydXB0IG1vZGUgc2lkZS4NCg0KWzUyMDE8LT4zOTIyMl06IHRjcF9yZWN2bXNnX2xvY2tlZCgt PikNCls1MjAxPC0+MzkyMjJdOiAgIF9fdGNwX2NsZWFudXBfcmJ1ZigtPikgdHAtPnJjdl93dXA6 IDI2NTQ2OTIwMCwgdHAtPnJjdl93bmQ6IDI2MjE0NCwgdHAtPnJjdl9ueHQgMjY1NjAwMTYwDQpb NTIwMTwtPjM5MjIyXTogICAgIFtuZXdfd2luID0gMjYyMTQ0LCB3aW5fbm93ID0gMTMxMTg0LCAy ICogd2luX25vdyA9IDI2MjM2OF0NCls1MjAxPC0+MzkyMjJdOiAgICAgW25ld193aW4gPj0gKDIg KiB3aW5fbm93KSA/IC0tPiB0aW1lX3RvX2FjayA9IDBdDQpbNTIwMTwtPjM5MjIyXTogICAgIE5P VCBjYWxsaW5nIHRjcF9zZW5kX2FjaygpDQpbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9jbGVhbnVw X3JidWYoPC0pIHRwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQsIHRw LT5yY3Zfbnh0IDI2NTYwMDE2MA0KWzUyMDE8LT4zOTIyMl06IHRjcF9yZWN2bXNnX2xvY2tlZCg8 LSkgcmV0dXJuaW5nIDEzMTA3MiBieXRlcy4NCiAgICAgICAgICAgICAgICBbcmN2X254dCAyNjU2 MDAxNjAsIHJjdl93bmQgMjYyMTQ0LCBzbnRfYWNrIDI2NTQ2OTIwMCwgd2luX25vdyAxMzExODRd DQogICAgICAgICAgICAgICAgW2NvcGllZF9zZXEgMjYwMDk5ODQwLT4yNjAxNzE1MzYgKDcxNjk2 KSwgdW5yZWFkIDU0Mjg2MjQsIHFsZW4gODMsIG9mb3EgMF0NCg0KLy8gVGhlIGFib3ZlIHBhdHRl cm4gcmVwZWF0cyBhZ2FpbiBhbmQgYWdhaW4sIHNpbmNlIG5vdGhpbmcgY2hhbmdlcw0KLy8gYmV0 d2VlbiB0aGUgcmVhZHMuDQoNClsuLi5dDQoNCls1MjAxPC0+MzkyMjJdOiB0Y3BfcmVjdm1zZ19s b2NrZWQoLT4pDQpbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9jbGVhbnVwX3JidWYoLT4pIHRwLT5y Y3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQsIHRwLT5yY3Zfbnh0IDI2NTYw MDE2MA0KWzUyMDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA9IDI2MjE0NCwgd2luX25vdyA9IDEz MTE4NCwgMiAqIHdpbl9ub3cgPSAyNjIzNjhdDQpbNTIwMTwtPjM5MjIyXTogICAgIFtuZXdfd2lu ID49ICgyICogd2luX25vdykgPyAtLT4gdGltZV90b19hY2sgPSAwXQ0KWzUyMDE8LT4zOTIyMl06 ICAgICBOT1QgY2FsbGluZyB0Y3Bfc2VuZF9hY2soKQ0KWzUyMDE8LT4zOTIyMl06ICAgX190Y3Bf Y2xlYW51cF9yYnVmKDwtKSB0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2X3duZDogMjYy MTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjANCls1MjAxPC0+MzkyMjJdOiB0Y3BfcmVjdm1zZ19s b2NrZWQoPC0pIHJldHVybmluZyAxMzEwNzIgYnl0ZXMuDQogICAgICAgICAgICAgICAgW3Jjdl9u eHQgMjY1NjAwMTYwLCByY3Zfd25kIDI2MjE0NCwgc250X2FjayAyNjU0NjkyMDAsIHdpbl9ub3cg MTMxMTg0XQ0KICAgICAgICAgICAgICAgIFtjb3BpZWRfc2VxIDI2NTQ2OTIwMC0+MjY1NTQ1NDg4 ICg3NjI4OCksIHVucmVhZCA1NDY3MiwgcWxlbiAxLCBvZm9xIDBdDQoNCls1MjAxPC0+MzkyMjJd OiB0Y3BfcmVjdm1zZ19sb2NrZWQoLT4pDQpbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9jbGVhbnVw X3JidWYoLT4pIHRwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQsIHRw LT5yY3Zfbnh0IDI2NTYwMDE2MA0KWzUyMDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA9IDI2MjE0 NCwgd2luX25vdyA9IDEzMTE4NCwgMiAqIHdpbl9ub3cgPSAyNjIzNjhdDQpbNTIwMTwtPjM5MjIy XTogICAgIFtuZXdfd2luID49ICgyICogd2luX25vdykgPyAtLT4gdGltZV90b19hY2sgPSAwXQ0K WzUyMDE8LT4zOTIyMl06ICAgICBOT1QgY2FsbGluZyB0Y3Bfc2VuZF9hY2soKQ0KWzUyMDE8LT4z OTIyMl06ICAgX190Y3BfY2xlYW51cF9yYnVmKDwtKSB0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0 cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjANCls1MjAxPC0+MzkyMjJd OiB0Y3BfcmVjdm1zZ19sb2NrZWQoPC0pIHJldHVybmluZyA1NDY3MiBieXRlcy4NCiAgICAgICAg ICAgICAgICBbcmN2X254dCAyNjU2MDAxNjAsIHJjdl93bmQgMjYyMTQ0LCBzbnRfYWNrIDI2NTQ2 OTIwMCwgd2luX25vdyAxMzExODRdDQogICAgICAgICAgICAgICAgW2NvcGllZF9zZXEgMjY1NjAw MTYwLT4yNjU2MDAxNjAgKDApLCB1bnJlYWQgMCwgcWxlbiAwLCBvZm9xIDBdDQoNCi8vIFRoZSBy ZWNlaXZlIHF1ZXVlIGlzIGVtcHR5LCBidXQgbm8gbmV3IGFkdmVydGlzZW1lbnQgaGFzIGJlZW4g c2VudC4NCi8vIFRoZSBwZWVyIHN0aWxsIHRoaW5rcyB0aGUgcmVjZWl2ZSB3aW5kb3cgaXMgemVy bywgYW5kIHNlbmRzIG5vdGhpbmcuDQovLyBXZSBoYXZlIGVuZGVkIHVwIGluIGEgZGVhZGxvY2sg c2l0dWF0aW9uLg0KDQpGdXJ0aGVybW9yZSwgd2UgaGF2ZSBvYnNlcnZlZCB0aGF0IGluIHRoZXNl IHNpdHVhdGlvbnMgdGhpcyBzaWRlIG1heQ0Kc2VuZCBvdXQgYW4gdXBkYXRlZCAndGgtPmFja19z ZXHCtCB3aGljaCBpcyBub3Qgc3RvcmVkIGluIHRwLT5yY3Zfd3VwDQphcyBpdCBzaG91bGQgYmUu IEJhY2tpbmcgYWNrX3NlcSBzZWVtcyB0byBiZSBoYXJtbGVzcywgYnV0IGlzIG9mDQpjb3Vyc2Ug c3RpbGwgd3JvbmcgZnJvbSBhIHByb3RvY29sIHZpZXdwb2ludC4NCg0KV2UgZml4IHRoaXMgYnkg c2V0dGluZyB0cC0+cmN2X3duZCBhbmQgdHAtPnJjdl93dXAgZXZlbiB3aGVuIGEgcGFja2V0DQpo YXMgYmVlbiBkcm9wcGVkIGJlY2F1c2Ugb2YgbWVtb3J5IGV4aGF1c3Rpb24gYW5kIHdlIGhhdmUg dG8gYWR2ZXJ0aXplDQphIHplcm8gd2luZG93Lg0KDQpGdXJ0aGVyIHRlc3Rpbmcgc2hvd3MgdGhh dCB0aGUgY29ubmVjdGlvbiByZWNvdmVycyBuZWF0bHkgZnJvbSB0aGUNCnNxdWVlemUgc2l0dWF0 aW9uLCBhbmQgdHJhZmZpYyBjYW4gY29udGludWUgaW5kZWZpbml0ZWx5Lg0KDQpGaXhlczogZTIx NDI4MjVjMTIwICgibmV0OiB0Y3A6IHNlbmQgemVyby13aW5kb3cgQUNLIHdoZW4gbm8gbWVtb3J5 IikNClJldmlld2VkLWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPg0KU2ln bmVkLW9mZi1ieTogSm9uIE1hbG95IDxqbWFsb3lAcmVkaGF0LmNvbT4NCi0tLQ0KdjE6IC1Qb3N0 ZWQgb24gQXByIDYsIDIwMjQNCnYyOiAtSW1wcm92ZWQgY29tbWl0IGxvZyB0byBjbGFyaWZ5IGhv dyB3ZSBlbmQgdXAgaW4gdGhpcyBzaXR1YXRpb24uDQogICAgLUFmdGVyIGZlZWRiYWNrIGZyb20g RXJpYyBEdW1hemV0LCByZW1vdmVkIHJlZmVyZW5jZXMgdG8gdXNlIG9mDQogICAgIFNPX1BFRUsg YW5kIFNPX1BFRUtfT0ZGIHdoaWNoIG1heSBsZWFkIHRvIGEgbWlzdW5kZXJzdGFuZGluZw0KICAg ICBhYm91dCBob3cgdGhpcyBzaXR1YXRpb24gb2NjdXJzLiBUaG9zZSBmbGFncyBhcmUgdXNlZCBh dCB0aGUNCiAgICAgcGVlciBzaWRlJ3MgaW5jb21pbmcgY29ubmVjdGlvbiwgYW5kIG5vdCBvbiB0 aGlzIG9uZS4NCi0tLQ0KIG5ldC9pcHY0L3RjcF9vdXRwdXQuYyB8IDggKysrKystLS0NCiAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jDQppbmRleCAw ZTViOWE2NTQyNTQuLmJhMjk1Zjc5OGU1ZSAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L3RjcF9vdXRw dXQuYw0KKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jDQpAQCAtMjY1LDExICsyNjUsMTMgQEAg c3RhdGljIHUxNiB0Y3Bfc2VsZWN0X3dpbmRvdyhzdHJ1Y3Qgc29jayAqc2spDQogCXUzMiBjdXJf d2luLCBuZXdfd2luOw0KIA0KIAkvKiBNYWtlIHRoZSB3aW5kb3cgMCBpZiB3ZSBmYWlsZWQgdG8g cXVldWUgdGhlIGRhdGEgYmVjYXVzZSB3ZQ0KLQkgKiBhcmUgb3V0IG9mIG1lbW9yeS4gVGhlIHdp bmRvdyBpcyB0ZW1wb3JhcnksIHNvIHdlIGRvbid0IHN0b3JlDQotCSAqIGl0IG9uIHRoZSBzb2Nr ZXQuDQorCSAqIGFyZSBvdXQgb2YgbWVtb3J5Lg0KIAkgKi8NCi0JaWYgKHVubGlrZWx5KGluZXRf Y3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAmIElDU0tfQUNLX05PTUVNKSkNCisJaWYgKHVubGlr ZWx5KGluZXRfY3NrKHNrKS0+aWNza19hY2sucGVuZGluZyAmIElDU0tfQUNLX05PTUVNKSkgew0K KwkJdHAtPnJjdl93bmQgPSAwOw0KKwkJdHAtPnJjdl93dXAgPSB0cC0+cmN2X254dDsNCiAJCXJl dHVybiAwOw0KKwl9DQogDQogCWN1cl93aW4gPSB0Y3BfcmVjZWl2ZV93aW5kb3codHApOw0KIAlu ZXdfd2luID0gX190Y3Bfc2VsZWN0X3dpbmRvdyhzayk7DQotLSANCjIuNDguMA0KDQo=