From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=HehpvHIn; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=kernel.org policy.dmarc=quarantine Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by mail.toke.dk (Postfix) with ESMTPS id A9CDC1727C75 for ; Wed, 30 Sep 2026 23:34:15 +0200 (CEST) Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 2E764601FF; Wed, 30 Sep 2026 21:34:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2FB141F000FF; Wed, 30 Sep 2026 21:34:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1790804053; bh=S2vG1Mhuv+pR9JA6kaW6baOesZxlKroQYZoJTVbzuvU=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=HehpvHInnv5s/EMOv2rcUkk4+ggrVlXM/XLVBGRvBgKeJPNPhUQEL4TwcTI6cd386 zJbFLSrLLhv+cLuAaNI7fLaCoFyRsLR5eBMeULUr0+gJq6Ok11LMDa6k9T2kwr8to0 F0sKPqKNky+uYjkDeeVQax3FgXBACKrQFqAF/74vYcRx0ptOjh9djZj2lTr/C08+3X HrFsaSA/Fzh+haD5zCEwj3+GIif3VxEZjrpTtcEGwwcy49YPIyYXEoj9yi3GcS6mbj f1pBjrOENh35yuA88AIcdyQkmN32fSNju2xF438DeGlPz2uWNzyY5j1vmo85n2Or6F vfc9h/m6McDPg== From: netdev-bot+sashiko@kernel.org To: jhs@mojatatu.com Cc: netdev@vger.kernel.org, jiri@resnulli.us, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, victor@mojatatu.com, hybris@mojatatu.ai, toke@toke.dk, moeller0@gmx.de, cake@lists.bufferbloat.net, sashiko-bot@kernel.org Date: Wed, 30 Sep 2026 21:34:12 +0000 Message-ID: <179080405275.434549.4774091019761986371@kernel.org> In-Reply-To: References: X-sashiko-severity: Critical Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MailFrom: netdev-bot+sashiko@kernel.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation Message-ID-Hash: OH3RWC6SG3TPFFG7ASV3DTYL423HISLV X-Message-ID-Hash: OH3RWC6SG3TPFFG7ASV3DTYL423HISLV X-Mailman-Approved-At: Thu, 01 Oct 2026 09:53:19 +0200 X-Mailman-Version: 3.3.10 Precedence: list Subject: [Cake] Re: [PATCH net-next v3] net/sched: cap the accounted backlog before it can wrap List-Id: Cake - FQ_codel the next generation Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NSBwb3RlbnRpYWwNCmlzc3VlKHMpIHRvIGNvbnNpZGVyLg0KDQpDcml0aWNhbDogMSDCtyBIaWdo OiAxIMK3IE1lZGl1bTogMSDCtyBMb3c6IDINCg0KSWYgeW91IGJlbGlldmUgbm9uZSBvZiB0aGUg aXNzdWVzIGFyZSBsZWdpdGltYXRlLCBwbGVhc2UgcmVwbHkgdG8gZWFjaA0KaXNzdWUgb2YgTWVk aXVtIHNldmVyaXR5IG9yIGhpZ2hlciBhbmQgZXhwbGFpbiB3aHkgdGhlIEFJIGlzIHdyb25nLg0K SWYgYW55IG9mIHRoZW0gYXJlIGxlZ2l0aW1hdGUgYW5kIHlvdSBwbGFuIHRvIHJlc3BpbiwgcGxl YXNlIGxldCBwYXRjaHdvcmsNCmtub3cgYnkgaW5jbHVkaW5nICJwdy1ib3Q6IGNyIiBhcyBhIHNl cGFyYXRlIGxpbmUgYXQgdGhlIGVuZCBvZiB5b3VyIHJlcGx5DQoob25lIHN1Y2ggcmVwbHkgcGVy IHNlcmllcyBpcyBlbm91Z2gpLg0KDQotIFtDcml0aWNhbF0gVGhlIG5ldyBvdmVybGltaXQgcGF0 aCBmb3IgQ0FLRSdzIFNQTElUX0dTTyBpbg0KICBjYWtlX2VucXVldWUoKSAobmV0L3NjaGVkL3Nj aF9jYWtlLmM6MTgyNC0xODI1KSBwdXRzIHRoZSBzYW1lIHNrYiBvbuKApg0KLSBbSGlnaF0gVGhl IG5ldyBjZWlsaW5nIHFkaXNjX2JhY2tsb2dfYXRfbWF4KCkgKHNjaC0+cXN0YXRzLmJhY2tsb2cg Pg0KICBVMzJfTUFYIC0gUURJU0NfUEtUX0xFTl9NQVgpIG9ubHkgcHJldmVudHMgYSB3cmFwIGlm IG5vIHNpbmdsZSBwYWNrZXTigKYNCi0gW01lZGl1bV0gY2FrZV9lbnF1ZXVlKCkgbm93IGNhbGxz IGNha2VfaGFzaChiLCBza2IsIC4uLikgYXQNCiAgbmV0L3NjaGVkL3NjaF9jYWtlLmM6MTgzMSwg YWZ0ZXIgc2tiX2dzb19zZWdtZW50KHNrYiwgLi4uKSBhdCBsaW5l4oCmDQotIFtMb3ddIFRoZSBj b21taXQgZml4ZXMgYSB1c2VyLXJlYWNoYWJsZSBjcmFzaCAodGhlIE5VTEwgZmxvdy0+aGVhZA0K ICBkZXJlZmVyZW5jZSBpbiBmcV9jb2RlbF9kcm9wKCkvZGVxdWV1ZV9oZWFkKCkpIGFuZCB3cm9u ZyBBUU0gZHJvcOKApg0KLSBbTG93XSBUaGUgbmV3IGNvbW1lbnQgb24gY2FrZV90Y2ZfY2xhc3Np ZnkoKQ0KICAobmV0L3NjaGVkL3NjaF9jYWtlLmM6MTcxNS0xNzE4KSBzYXlzIGl0IHJldHVybnMg dHJ1ZSB3aGVuICd0aGXigKYNCg0KLS0NCg0KbmV0L3NjaGVkOiBjYXAgdGhlIGFjY291bnRlZCBi YWNrbG9nIGJlZm9yZSBpdCBjYW4gd3JhcA0KDQpUaGlzIHBhdGNoIG1ha2VzIGZxX2NvZGVsLCBj YWtlLCBjb2RlbCwgcGllLCBmcV9waWUsIGR1YWxwaTIsIFJFRCBhbmQNCnBmaWZvIGRyb3AgYXQg ZW5xdWV1ZSBvbmNlIHNjaC0+cXN0YXRzLmJhY2tsb2cgaXMgd2l0aGluIFFESVNDX1BLVF9MRU5f TUFYDQpvZiBVMzJfTUFYLiBmcV9jb2RlbCBhbmQgY2FrZSBhcmUgcmVzdHJ1Y3R1cmVkIHNvIHRo ZSBleHRlcm5hbCBjbGFzc2lmaWVyDQpydW5zIGJlZm9yZSB0aGUgbmV3IGNlaWxpbmcgY2hlY2sg YW5kIGZsb3cgaGFzaGluZyBydW5zIGFmdGVyIGl0LiBUaGUgQ0FLRQ0KU1BMSVRfR1NPIHBhdGgg bm93IHNlZ21lbnRzIGZpcnN0IGFuZCBjaGVja3MgdGhlIHN1bW1lZCBzZWdtZW50IGxlbmd0aA0K YmVmb3JlIGNha2VfaGFzaCgpIGlzIGNhbGxlZC4NCg0KQ2xvc2VzOiBodHRwczovL25ldGRldi1h aS5ib3RzLmxpbnV4LmRldi9zYXNoaWtvLyMvcGF0Y2hzZXQvMjAyNjA4MTgxMDExMzAuMTYyMDMt MS1qaHNAbW9qYXRhdHUuY29tDQpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9uZXRkZXYv MjAyNjA4MTgxMDExMzAuMTYyMDMtMS1qaHNAbW9qYXRhdHUuY29tLw0KTGluazogaHR0cHM6Ly9s b3JlLmtlcm5lbC5vcmcvbmV0ZGV2L0NBTm44OWlMZk1KVjdhbmNLSDFHanp6bTdaVUctZ0tjcmN6 a0pqSkVXTjVzQ3VXZC11Z0BtYWlsLmdtYWlsLmNvbS8NCkxpbms6IGh0dHBzOi8vbG9yZS5rZXJu ZWwub3JnL25ldGRldi9DQU5uODlpK0dPRkhfOGcrdlNWMGpVajBhQnFMWVZXdUZPckh1RGdnWnU5 a1BDX202dFFAbWFpbC5nbWFpbC5jb20vDQpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9u ZXRkZXYvQ0FObjg5aSs5OWpQaDdKalpmPUczT3Vhb20ydHVPdEFFaUhVZjJNRXNSZFZQZD1uejR3 QG1haWwuZ21haWwuY29tLw0KDQo+IFJlcG9ydGVkLWJ5OiBTYXNoaWtvIChuaXBhKSA8c2FzaGlr by1ib3RAa2VybmVsLm9yZz4NCj4gQ2xvc2VzOiBodHRwczovL25ldGRldi1haS5ib3RzLmxpbnV4 LmRldi9zYXNoaWtvLyMvcGF0Y2hzZXQvMjAyNjA4MTgxMDExMzAuMTYyMDMtMS1qaHNAbW9qYXRh dHUuY29tDQpbIC4uLiBdDQo+IFNpZ25lZC1vZmYtYnk6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Bt b2phdGF0dS5jb20+DQoNCltTZXZlcml0eTogTG93XQ0KVGhpcyBpc24ndCBhIGJ1ZywgYnV0IHNo b3VsZCB0aGlzIGhhdmUgYSBGaXhlczogdGFnIGFuZCBDYzogc3RhYmxlPw0KDQpUaGUgY29tbWl0 IG1lc3NhZ2UgZGVzY3JpYmVzIGEgTlVMTCBmbG93LT5oZWFkIGRlcmVmZXJlbmNlIGluDQpmcV9j b2RlbF9kcm9wKCktPmRlcXVldWVfaGVhZCgpLiBJdCBzYXlzIHRoaXMgbmVlZHMgb25seSBDQVBf TkVUX0FETUlOIGluDQphIHVzZXIgbmFtZXNwYWNlLg0KDQpUaGUgYmFja2xvZyB3cmFwIGFsc28g ZXhpc3RlZCBiZWZvcmUgdGhlIFFESVNDX1BLVF9MRU5fTUFYIGNsYW1wIHdhcw0KYWRkZWQsIHdo ZW4gc3RhYiBwa3RfbGVuIGhhZCBubyB1cHBlciBib3VuZC4gU28gb2xkZXIgc3RhYmxlIHRyZWVz IGFyZQ0KYWZmZWN0ZWQsIGFuZCBub3RoaW5nIGluIHRoZSB0cmFpbGVycyBtYXJrcyB0aGVtLg0K DQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIGIvaW5jbHVkZS9uZXQv c2NoX2dlbmVyaWMuaA0KPiBpbmRleCBmMzViZDA2YTZiYWQ2Li44N2ZhNjVjODhmMDNiIDEwMDY0 NA0KPiAtLS0gYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oDQo+ICsrKyBiL2luY2x1ZGUvbmV0 L3NjaF9nZW5lcmljLmgNCj4gQEAgLTkwNiw2ICs5MDYsMjMgQEAgc3RhdGljIGlubGluZSB1bnNp Z25lZCBpbnQgcWRpc2NfcGt0X2xlbihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KPiAgCXJl dHVybiBxZGlzY19za2JfY2Ioc2tiKS0+cGt0X2xlbjsNCj4gIH0NCj4gIA0KPiArI2RlZmluZSBR RElTQ19QS1RfTEVOX01BWAkoMSA8PCAyMCkJLyogMSBNaUIgKi8NCj4gKw0KPiArLyogTGFyZ2Vz dCBhY2NvdW50ZWQgYmFja2xvZyBmb3Igd2hpY2ggZW5xdWV1aW5nIG9uZSBtb3JlIG1heGltdW0t c2l6ZQ0KPiArICogcGFja2V0IGNhbm5vdCB3cmFwIHRoZSAzMi1iaXQgc2NoLT5xc3RhdHMuYmFj a2xvZy4NCj4gKyAqLw0KPiArI2RlZmluZSBRRElTQ19NQVhfQkFDS0xPRwkoVTMyX01BWCAtIFFE SVNDX1BLVF9MRU5fTUFYKQ0KPiArDQo+ICsvKiBUcnVlIHdoZW4gdGhlIGFjY291bnRlZCBiYWNr bG9nIGlzIGNsb3NlIGVub3VnaCB0byBVMzJfTUFYIHRoYXQgb25lDQo+ICsgKiBtb3JlIG1heGlt dW0tc2l6ZSBwYWNrZXQgY291bGQgd3JhcCBpdC4gQSBxZGlzYyB3aG9zZSBsaW1pdCBpcyBhDQo+ ICsgKiBwYWNrZXQgY291bnQgKG9yIGlzIG90aGVyd2lzZSBub3QgYSBieXRlIGJvdW5kKSBtdXN0 IGRyb3AgYXQgZW5xdWV1ZQ0KPiArICogd2hlbiB0aGlzIGhvbGRzLCBzbyB0aGUgMzItYml0IGJh Y2tsb2cgYW4gQVFNIHJlYWRzIGNhbm5vdCB3cmFwLg0KPiArICovDQo+ICtzdGF0aWMgaW5saW5l IGJvb2wgcWRpc2NfYmFja2xvZ19hdF9tYXgoY29uc3Qgc3RydWN0IFFkaXNjICpzY2gpDQo+ICt7 DQo+ICsJcmV0dXJuIHNjaC0+cXN0YXRzLmJhY2tsb2cgPiBRRElTQ19NQVhfQkFDS0xPRzsNCj4g K30NCg0KW1NldmVyaXR5OiBIaWdoXQ0KRG9lcyB0aGUgZml4ZWQgMSBNaUIgaGVhZHJvb20gc3Rp bGwgaG9sZCB3aGVuIG5vIHNpemUgdGFibGUgaXMgYXR0YWNoZWQ/DQoNClRoZSBvbmx5IGNsYW1w IHRvIFFESVNDX1BLVF9MRU5fTUFYIGlzIGluIF9fcWRpc2NfY2FsY3VsYXRlX3BrdF9sZW4oKS4N CnFkaXNjX2NhbGN1bGF0ZV9wa3RfbGVuKCkgY2FsbHMgaXQgb25seSB3aGVuIGEgc3RhYiBleGlz dHM6DQoNCm5ldC9zY2hlZC9zY2hfYXBpLmM6X19xZGlzY19jYWxjdWxhdGVfcGt0X2xlbigpIHsN CiAgICAuLi4NCglwa3RfbGVuID0gY2xhbXBfdChpbnQsIHBrdF9sZW4sIDEsIFFESVNDX1BLVF9M RU5fTUFYKTsNCglxZGlzY19za2JfY2Ioc2tiKS0+cGt0X2xlbiA9IHBrdF9sZW47DQp9DQoNCldp dGhvdXQgYSBzdGFiLCBwa3RfbGVuIGNvbWVzIGZyb20gcWRpc2NfcGt0X2xlbl9zZWdzX2luaXQo KSwgd2hpY2ggaGFzIG5vDQp1cHBlciBib3VuZDoNCg0KbmV0L2NvcmUvZGV2LmM6cWRpc2NfcGt0 X2xlbl9zZWdzX2luaXQoKSB7DQogICAgLi4uDQoJCWdzb19zZWdzID0gRElWX1JPVU5EX1VQKHBh eWxvYWQsIHNoaW5mby0+Z3NvX3NpemUpOw0KICAgIC4uLg0KCXFkaXNjX3NrYl9jYihza2IpLT5w a3RfbGVuICs9IChnc29fc2VncyAtIDEpICogaGRyX2xlbjsNCn0NCg0KRm9yIFNLQl9HU09fRE9E R1kgc2ticyBmcm9tIEFGX1BBQ0tFVCB3aXRoIFBBQ0tFVF9WTkVUX0hEUiAoQ0FQX05FVF9SQVcg aW4NCmEgdXNlciBuYW1lc3BhY2UpLCBfX3ZpcnRpb19uZXRfaGRyX3RvX3NrYigpIGxldHMgdGhl IHNlbmRlciBjaG9vc2UgdHdvDQp2YWx1ZXMuIGNzdW1fc3RhcnQgYmVjb21lcyB0aGUgdHJhbnNw b3J0IG9mZnNldCwgYW5kIGdzb19zaXplIGNhbiBiZSBhcw0Kc21hbGwgYXMgVENQX01JTl9HU09f U0laRS4NCg0KQSAxNiBLaUIgc2tiIHdpdGggYW4gOCBLaUIgaGVhZGVyIGdpdmVzIGFib3V0IDEw MjQgc2VnbWVudHMgYW5kIGEgcGt0X2xlbg0Kb2YgYWJvdXQgOCBNaUIuIEEgNjQgS2lCIHNrYiB3 aXRoIGEgMzIgS2lCIGhlYWRlciBnaXZlcyBhYm91dCAxMjggTWlCLg0KDQpxZGlzY19iYWNrbG9n X2F0X21heCgpIGFkbWl0cyBzdWNoIGEgcGFja2V0IHdoZW5ldmVyIHRoZSBiYWNrbG9nIGlzIGF0 IG1vc3QNClUzMl9NQVggLSAxIE1pQi4gQ2FuIGFib3V0IDMyIG9mIHRoZXNlIHBhY2tldHMgc3Rp bGwgd3JhcA0Kc2NoLT5xc3RhdHMuYmFja2xvZyBhbmQgZnFfY29kZWwncyBxLT5iYWNrbG9nc1tp ZHhdPyBUaGVpciB0cnVlc2l6ZSBpcw0Kc21hbGwsIHNvIHRoZXkgc3RheSB3ZWxsIHVuZGVyIGZx X2NvZGVsJ3MgbWVtb3J5X2xpbWl0IGFuZCBwYWNrZXQgbGltaXQuDQoNCklmIHNvLCB0aGUgTlVM TCBmbG93LT5oZWFkIGRlcmVmZXJlbmNlIGluIGZxX2NvZGVsX2Ryb3AoKS0+ZGVxdWV1ZV9oZWFk KCkNCmNvbWVzIGJhY2suIFNvIGRvIHRoZSB3cm9uZyBBUU0gZGVjaXNpb25zIGluIGNvZGVsLCBw aWUsIGZxX3BpZSwgZHVhbHBpMiwNCmNha2UsIFJFRCBhbmQgcGZpZm8uDQoNClRoZSBuZXcgY29t bWVudHMgaW4gZnFfY29kZWxfZW5xdWV1ZSgpIGFuZCBjYWtlX2VucXVldWUoKSBzYXkgInRoZSAx IE1pQg0KUURJU0NfUEtUX0xFTl9NQVggaGVhZHJvb20ga2VlcHMgYSBzaW5nbGUgcGFja2V0IGZy b20gY3Jvc3NpbmcgdGhlIGNlaWxpbmciLg0KVGhhdCB3b3VsZCBub3QgYmUgdHJ1ZSBvbiB0aGlz IHBhdGguDQoNCldvdWxkIHRoaXMgbmVlZCBhIGxlbmd0aC1hd2FyZSBjaGVjayBzdWNoIGFzICh1 NjQpYmFja2xvZyArDQpxZGlzY19wa3RfbGVuKHNrYikgPiBVMzJfTUFYLCBvciBhIHBrdF9sZW4g Y2xhbXAgaW4NCnFkaXNjX3BrdF9sZW5fc2Vnc19pbml0KCkgYXMgd2VsbD8NCg0KWyAuLi4gXQ0K DQo+IGRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2Nha2UuYyBiL25ldC9zY2hlZC9zY2hfY2Fr ZS5jDQo+IGluZGV4IGRjOTMyNjcwMjllNzAuLmJkMWE3YWVkMmViYjIgMTAwNjQ0DQo+IC0tLSBh L25ldC9zY2hlZC9zY2hfY2FrZS5jDQo+ICsrKyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jDQo+IEBA IC0xNzEyLDE4ICsxNzEyLDI1IEBAIHN0YXRpYyBzdHJ1Y3QgY2FrZV90aW5fZGF0YSAqY2FrZV9z ZWxlY3RfdGluKHN0cnVjdCBRZGlzYyAqc2NoLA0KPiAgCXJldHVybiAmcWQtPnRpbnNbdGluXTsN Cj4gIH0NCj4gIA0KPiAtc3RhdGljIHUzMiBjYWtlX2NsYXNzaWZ5KHN0cnVjdCBRZGlzYyAqc2No LCBzdHJ1Y3QgY2FrZV90aW5fZGF0YSAqKnQsDQo+IC0JCQkgc3RydWN0IHNrX2J1ZmYgKnNrYiwg aW50IGZsb3dfbW9kZSwgaW50ICpxZXJyKQ0KPiArLyogUnVuIHRoZSBvcHRpb25hbCBleHRlcm5h bCBjbGFzc2lmaWVyLiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgY2FsbGVyIG11c3QNCj4gKyAqIGRy b3AgKHRoZSBmaWx0ZXIncyB0ZXJtaW5hbCBUQyBhY3Rpb24gY29uc3VtZWQgdGhlIHBhY2tldCwg b3IgaXQgbWF0Y2hlZCBubw0KPiArICogdXNhYmxlIGZsb3cpOyB0aGUgcmVhc29uIGlzIHRoZW4g aW4gKnFlcnIuIE90aGVyd2lzZSAqZmxvdyBhbmQgKmhvc3QgaG9sZA0KPiArICogdGhlIGZpbHRl cidzIGZsb3cvaG9zdCBvdmVycmlkZXMgKDAgd2hlbiB0aGUgZmlsdGVyIHN1cHBsaWVkIG5vbmUp Lg0KPiArICovDQoNCltTZXZlcml0eTogTG93XQ0KVGhpcyBpc24ndCBhIGJ1ZywgYnV0IGlzIHRo ZSAib3IgaXQgbWF0Y2hlZCBubyB1c2FibGUgZmxvdyIgcGFydCBvZiB0aGlzDQpjb21tZW50IGFj Y3VyYXRlPw0KDQpjYWtlX3RjZl9jbGFzc2lmeSgpIHJldHVybnMgdHJ1ZSBvbmx5IGZvciBUQ19B Q1RfU1RPTEVOLCBUQ19BQ1RfUVVFVUVELA0KVENfQUNUX1RSQVAgYW5kIFRDX0FDVF9TSE9ULiBJ biB0d28gb3RoZXIgY2FzZXMgaXQgbGVhdmVzICpmbG93IGFuZCAqaG9zdA0KYXQgMCwgcmV0dXJu cyBmYWxzZSwgYW5kIGNha2UgaGFzaGVzIHRoZSBwYWNrZXQgYXMgYmVmb3JlOg0KDQogIC0gdGhl cmUgaXMgbm8gZmlsdGVyIG1hdGNoIChyZXN1bHQgPCAwKQ0KICAtIHRoZSBjbGFzc2lkIG1pbm9y IG9yIG1ham9yIGlzIG91dCBvZiByYW5nZQ0KDQoJCWlmIChUQ19IX01JTihyZXMuY2xhc3NpZCkg PD0gQ0FLRV9RVUVVRVMpDQoJCQkqZmxvdyA9IFRDX0hfTUlOKHJlcy5jbGFzc2lkKTsNCgkJaWYg KFRDX0hfTUFKKHJlcy5jbGFzc2lkKSA8PSAoQ0FLRV9RVUVVRVMgPDwgMTYpKQ0KCQkJKmhvc3Qg PSBUQ19IX01BSihyZXMuY2xhc3NpZCkgPj4gMTY7DQoJfQ0KCXJldHVybiBmYWxzZTsNCg0KZnFf Y29kZWxfY2xhc3NpZnkoKSBoYXMgdGhlIHNhbWUgd29yZGluZywgYW5kIHRoZXJlIGl0IGRvZXMg cmV0dXJuIHRydWUNCmZvciBhIG5vLWZsb3cgcmVzdWx0LiBTbyB0aGUgdHdvIGNvbW1lbnRzIG1h dGNoLCBidXQgdGhlIGZ1bmN0aW9ucw0KYmVoYXZlIGRpZmZlcmVudGx5Lg0KDQo+ICtzdGF0aWMg Ym9vbCBjYWtlX3RjZl9jbGFzc2lmeShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IHNrX2J1ZmYg KnNrYiwNCj4gKwkJCSAgICAgIHUxNiAqZmxvdywgdTE2ICpob3N0LCBpbnQgKnFlcnIpDQoNClsg Li4uIF0NCg0KPiBAQCAtMTc1OCwyMiArMTc2Myw3NCBAQCBzdGF0aWMgczMyIGNha2VfZW5xdWV1 ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCwNCg0KWyAuLi4gXQ0KDQo+ ICsJLyogVGluIHNlbGVjdGlvbiAoRFNDUC93YXNoKSBtdXN0IGhhcHBlbiBiZWZvcmUgc2VnbWVu dGF0aW9uLCBidXQgbm8NCj4gKwkgKiBmbG93L2hvc3Qgc3RhdGUgaXMgY29tbWl0dGVkIHVudGls IGFkbWlzc2lvbiBpcyBrbm93biBiZWxvdy4NCj4gKwkgKi8NCj4gKwliID0gY2FrZV9zZWxlY3Rf dGluKHNjaCwgc2tiKTsNCj4gKw0KPiArCWlmIChxZGlzY19wa3Rfc2Vncyhza2IpID4gMSAmJiBx LT5jb25maWctPnJhdGVfZmxhZ3MgJiBDQUtFX0ZMQUdfU1BMSVRfR1NPKSB7DQo+ICsJCXN0cnVj dCBza19idWZmICpuc2tiLCAqc2VnOw0KPiArCQluZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyA9 IG5ldGlmX3NrYl9mZWF0dXJlcyhza2IpOw0KPiArDQo+ICsJCXNlZ3MgPSBza2JfZ3NvX3NlZ21l bnQoc2tiLCBmZWF0dXJlcyAmIH5ORVRJRl9GX0dTT19NQVNLKTsNCj4gKwkJaWYgKElTX0VSUl9P Ul9OVUxMKHNlZ3MpKQ0KPiArCQkJcmV0dXJuIHFkaXNjX2Ryb3Aoc2tiLCBzY2gsIHRvX2ZyZWUp Ow0KPiArDQo+ICsJCS8qIFRoZSBzcGxpdCBwYXRoIGFjY291bnRzIHRoZSBzdW0gb2YgdGhlIHNl Z21lbnQgbGVuZ3Rocw0KPiArCQkgKiByYXRoZXIgdGhhbiB0aGUgc3RhYi1hZGp1c3RlZCBxZGlz Y19wa3RfbGVuKCksIHNvIHRoZSB0b3ANCj4gKwkJICogY2hlY2sgZG9lcyBub3QgYm91bmQgdGhp cyBhZGRpdGlvbi4gU3VtIHRoZSBsaXN0IGFuZCByZWplY3QNCj4gKwkJICogdGhlIHdob2xlIGxp c3QgYmVmb3JlIGFueSBmbG93L2hvc3Qgc3RhdGUgaXMgY29tbWl0dGVkLg0KPiArCQkgKi8NCj4g KwkJc2tiX2xpc3Rfd2Fsa19zYWZlKHNlZ3MsIHNlZywgbnNrYikNCj4gKwkJCXNsZW4gKz0gc2Vn LT5sZW47DQo+ICsNCj4gKwkJaWYgKHVubGlrZWx5KCh1NjQpc2NoLT5xc3RhdHMuYmFja2xvZyAr IHNsZW4gPiBRRElTQ19NQVhfQkFDS0xPRykpIHsNCj4gKwkJCXFkaXNjX3FzdGF0c19vdmVybGlt aXQoc2NoKTsNCj4gKwkJCS8qIHNrYl9nc29fc2VnbWVudCgpIG1vdmVkIHRoZSBzb2NrX3dmcmVl IGRlc3RydWN0b3IgdG8NCj4gKwkJCSAqIHRoZSB0YWlsIHNlZ21lbnQ7IGZyZWUgYm90aCB0aGUg b3JpZ2luYWwgcGFja2V0IGFuZA0KPiArCQkJICogdGhlIHdob2xlIGxpc3QgYWZ0ZXIgdGhlIHFk aXNjIGxvY2sgaXMgcmVsZWFzZWQsDQo+ICsJCQkgKiBuZXZlciBoZXJlLg0KPiArCQkJICovDQo+ ICsJCQlfX3FkaXNjX2Ryb3BfYWxsKHNlZ3MsIHRvX2ZyZWUpOw0KPiArCQkJcmV0dXJuIHFkaXNj X2Ryb3BfcmVhc29uKHNrYiwgc2NoLCB0b19mcmVlLA0KPiArCQkJCQkJIFFESVNDX0RST1BfT1ZF UkxJTUlUKTsNCg0KW1NldmVyaXR5OiBDcml0aWNhbF0NCkNhbiB0aGlzIHB1dCB0aGUgc2FtZSBz a2Igb24gKnRvX2ZyZWUgdHdpY2U/DQoNCkZvciBTS0JfR1NPX0ZSQUdMSVNUIHBhY2tldHMgKGZv ciBleGFtcGxlIGZvcndhcmRlZCBmcmFnbGlzdCBHUk8NCnRyYWZmaWMpLCBza2Jfc2VnbWVudF9s aXN0KCkgcmV0dXJucyB0aGUgb3JpZ2luYWwgc2tiLCB3aXRoIGFuIGV4dHJhDQpyZWZlcmVuY2Us IGFzIHRoZSBoZWFkIG9mIHRoZSBsaXN0Og0KDQpuZXQvY29yZS9za2J1ZmYuYzpza2Jfc2VnbWVu dF9saXN0KCkgew0KICAgIC4uLg0KCXNrYi0+cHJldiA9IHRhaWw7DQogICAgLi4uDQoJc2tiX2dl dChza2IpOw0KDQoJcmV0dXJuIHNrYjsNCn0NCg0KU28gc2VncyA9PSBza2IgaGVyZS4gVGhlIHR3 byBkcm9wIGNhbGxzIHRoZW4gcnVuIGluIHRoaXMgb3JkZXI6DQoNCiAgLSBfX3FkaXNjX2Ryb3Bf YWxsKHNlZ3MsIHRvX2ZyZWUpIHNldHMgdGFpbC0+bmV4dCA9ICp0b19mcmVlIGFuZA0KICAgICp0 b19mcmVlID0gc2tiLg0KICAtIHFkaXNjX2Ryb3BfcmVhc29uKHNrYiwgLi4uKSBjYWxscyBfX3Fk aXNjX2Ryb3AoKSwgd2hpY2ggc2V0cw0KICAgIHNrYi0+bmV4dCA9ICp0b19mcmVlLiBBdCB0aGF0 IHBvaW50ICp0b19mcmVlIGlzIHNrYiBpdHNlbGYuDQoNClRoYXQgbGVhdmVzIHNrYi0+bmV4dCA9 PSBza2IsIGFuZCBzZWdtZW50cyAyLi5OIGNhbiBubyBsb25nZXIgYmUgcmVhY2hlZA0KZnJvbSAq dG9fZnJlZS4gQXJlIHRoZXkgbGVha2VkPw0KDQpMYXRlciwgX190Y2Zfa2ZyZWVfc2tiX2xpc3Qo KSB3YWxrcyB0aGUgbGlzdDoNCg0KCXdoaWxlIChza2IpIHsNCgkJdTMyIHJlYXNvbiA9IHRjX3Nr Yl9jYihza2IpLT5kcm9wX3JlYXNvbjsNCgkJc3RydWN0IHNrX2J1ZmYgKm5leHQgPSBza2ItPm5l eHQ7DQoJCS4uLg0KCQlrZnJlZV9za2JfcmVhc29uKHNrYiwgc2tiX3JlYXNvbik7DQoJCXNrYiA9 IG5leHQ7DQoJfQ0KDQpFYWNoIHBhc3MgbGFuZHMgb24gdGhlIHNhbWUgc2tiOg0KDQogIC0gVGhl IGZpcnN0IHBhc3MgZHJvcHMgdGhlIHNrYl9nZXQoKSByZWZlcmVuY2UuDQogIC0gVGhlIHNlY29u ZCBwYXNzIGZyZWVzIHRoZSBza2IuDQogIC0gVGhlIHRoaXJkIHBhc3MgcmVhZHMgdGNfc2tiX2Ni KHNrYiktPmRyb3BfcmVhc29uIGZyb20gZnJlZWQgbWVtb3J5DQogICAgYW5kIGNhbGxzIGtmcmVl X3NrYl9yZWFzb24oKSBhZ2Fpbi4NCg0KRG9lcyB0aGlzIGxlYWQgdG8gYSB1c2UtYWZ0ZXItZnJl ZSBvciBkb3VibGUgZnJlZSwgYW5kIHBvc3NpYmx5IGFuDQplbmRsZXNzIGxvb3AgaW4gdGhlIHRy YW5zbWl0IHBhdGg/DQoNClRoaXMgaGFwcGVucyB3aXRoIHNwbGl0X2dzbyAodGhlIGRlZmF1bHQp IHdoZW4gdGhlIGJhY2tsb2cgaXMgYXQgb3IgYmVsb3cNClFESVNDX01BWF9CQUNLTE9HIGJ1dCBi YWNrbG9nICsgc2xlbiBpcyBhYm92ZSBpdC4gQmVmb3JlIHRoaXMgcGF0Y2ggdGhlcmUNCndhcyBu byBkcm9wIHBhdGggaGVyZTogZXZlcnkgc2VnbWVudCB3YXMgZW5xdWV1ZWQgYW5kIGNvbnN1bWVf c2tiKHNrYikNCm9ubHkgZHJvcHBlZCB0aGUgZXh0cmEgcmVmZXJlbmNlLg0KDQo+ICsJCX0NCj4g Kwl9DQo+ICsNCj4gKwkvKiBBZG1pc3Npb24gaXMga25vd247IHBlcnNpc3RlbnQgZmxvdy9oYXNo L3NoYXBlciBtdXRhdGlvbiBtYXkgYmVnaW4uICovDQo+ICsJaWR4ID0gY2FrZV9oYXNoKGIsIHNr YiwgcS0+Y29uZmlnLT5mbG93X21vZGUsIGZsb3dfb3ZlcnJpZGUsIGhvc3Rfb3ZlcnJpZGUpOw0K DQpbU2V2ZXJpdHk6IE1lZGl1bV0NCklzIGNha2VfaGFzaCgpIG5vdyBkaXNzZWN0aW5nIGFuIHNr YiB3aG9zZSBoZWFkZXJzIHNrYl9nc29fc2VnbWVudCgpIGhhcw0KYWxyZWFkeSBjaGFuZ2VkPw0K DQpCZWZvcmUgdGhpcyBwYXRjaCwgY2FrZV9jbGFzc2lmeSgpIGhhc2hlZCB0aGUgdW50b3VjaGVk IHNrYiBiZWZvcmUNCnNlZ21lbnRpbmcuIEZvciBlbmNhcHN1bGF0ZWQgR1NPIHNrYnMsIGEgc3Vj Y2Vzc2Z1bCBzZWdtZW50YXRpb24gbGVhdmVzDQp0aGUgb3JpZ2luYWwgc2tiIHBvaW50aW5nIGF0 IGl0cyBpbm5lciBoZWFkZXJzOg0KDQpuZXQvaXB2NC91ZHBfb2ZmbG9hZC5jOl9fc2tiX3VkcF90 dW5uZWxfc2VnbWVudCgpIHsNCiAgICAuLi4NCglza2ItPmVuY2Fwc3VsYXRpb24gPSAwOw0KCS4u Lg0KCXNrYl9yZXNldF9tYWNfaGVhZGVyKHNrYik7DQoJc2tiX3NldF9uZXR3b3JrX2hlYWRlcihz a2IsIHNrYl9pbm5lcl9uZXR3b3JrX29mZnNldChza2IpKTsNCglza2Jfc2V0X3RyYW5zcG9ydF9o ZWFkZXIoc2tiLCBza2JfaW5uZXJfdHJhbnNwb3J0X29mZnNldChza2IpKTsNCglza2ItPm1hY19s ZW4gPSBza2JfaW5uZXJfbmV0d29ya19vZmZzZXQoc2tiKTsNCglza2ItPnByb3RvY29sID0gbmV3 X3Byb3RvY29sOw0KICAgIC4uLg0KfQ0KDQpza2JfZ3NvX2Vycm9yX3Vud2luZCgpIHVuZG9lcyB0 aGlzIG9ubHkgb24gZmFpbHVyZS4gQWZ0ZXIgaXQsDQpza2JfbWFjX2dzb19zZWdtZW50KCkgcHVz aGVzIHNrYi0+ZGF0YSBiYWNrIHRvIHRoZSBuZXcgaW5uZXIgbWFjIGhlYWRlci4NCg0KRm9yIFZY TEFOLCBza2ItPnByb3RvY29sIGJlY29tZXMgRVRIX1BfVEVCLCBhbmQgX19za2JfZmxvd19kaXNz ZWN0KCkNCmhhbmRsZXMgdGhhdCBvbmx5IGluc2lkZSBHUkUgZGlzc2VjdGlvbi4gV291bGQgc2ti X2Zsb3dfZGlzc2VjdF9mbG93X2tleXMoKQ0KaW4gY2FrZV9oYXNoKCkgdGhlbiBmYWlsIGFuZCBs ZWF2ZSBzcmNob3N0X2hhc2ggYW5kIGRzdGhvc3RfaGFzaCBhdCAwPw0KRm9yIG90aGVyIHR1bm5l bHMsIHdvdWxkIHRoZSBpbm5lciBhZGRyZXNzZXMgYmUgaGFzaGVkIGluc3RlYWQgb2YgdGhlIG91 dGVyDQpvbmVzPw0KDQpXaXRoIHNwbGl0X2dzbyBhbmQgdGhlIGRlZmF1bHQgdHJpcGxlLWlzb2xh dGUgbW9kZSwgdHVubmVsIEdTTyBwYWNrZXRzDQpjb3VsZCB0aGVuIGxhbmQgaW4gYSBkaWZmZXJl bnQgZmxvdyBvciBob3N0IGJ1Y2tldCB0aGFuIG5vbi1HU08gcGFja2V0cw0Kb2YgdGhlIHNhbWUg b3V0ZXIgZmxvdy4gVGhhdCB3b3VsZCBjaGFuZ2UgcGVyLWhvc3QgZmFpcm5lc3MsIGNvdWxkDQpy ZW9yZGVyIHBhY2tldHMgYWNyb3NzIHF1ZXVlcywgYW5kIHdvdWxkIHBhc3MgZGlmZmVyZW50IGtl eXMgdG8gdGhlDQpOQVQtbW9kZSBjb25udHJhY2sgbG9va3VwLg0KDQo+ICAJdGluID0gKHUzMiko YiAtIHEtPnRpbnMpOw0KPiAtCWlkeC0tOw0KPiAgCWZsb3cgPSAmYi0+Zmxvd3NbaWR4XTsNCg0K WyAuLi4gXQ0KDQotLSANClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vbmV0ZGV2LWFpLmJv dHMubGludXguZGV2L3Nhc2hpa28vIy9wYXRjaHNldC9RRElTQy1CQTI3LnYzLjIwMjYwOTI5MTQy NDE3JTQwbW9qYXRhdHUuY29tDQo=