From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; dkim=pass header.d=mojatatu.com header.i=@mojatatu.com header.a=rsa-sha256 header.s=google header.b=BltqR7TL; arc=none (Message is not ARC signed); dmarc=none Received: from mail-qv1-xf36.google.com (mail-qv1-xf36.google.com [IPv6:2607:f8b0:4864:20::f36]) by mail.toke.dk (Postfix) with ESMTPS id 0D12B19FD833 for ; Tue, 10 Nov 2026 15:41:08 +0100 (CET) Received: by mail-qv1-xf36.google.com with SMTP id 6a1803df08f44-91ea2e29d90so21434056d6.1 for ; Tue, 10 Nov 2026 06:41:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mojatatu.com; s=google; t=1794321667; x=1794926467; darn=lists.bufferbloat.net; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=ozefx5HBxcjSqzK1TQHH3peHGbgubmX+WmLQsJVYK0M=; b=BltqR7TLr0fZXDKMRLLJgRIj9rTddmOdBQOYa704mEbL/pk6KdIhSJobaD09lPMbw1 GyBcnVxwq7L/CDuKS4bXJNoOxVc3oYUTRxO6GLpXaIZFGzrV7aDsWTWQnyHWg/w237EN NcVXGFFVPHs7wfBdYIhmC1pEk+P2eNCfbSgd4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794321667; x=1794926467; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ozefx5HBxcjSqzK1TQHH3peHGbgubmX+WmLQsJVYK0M=; b=utYQWdj0zCrsNJ58s9Y7z4Nc87xGffkmqESUBWclBKq9gEUUQUrhz5hkmc7cNrLJIn +zoc7XogazmjjLtin7LHQ3sL+ZyN7hFgHrp6wRuLcPvrTQPlJNpMoCIhwB49gCcbRpop PjEkdSM81l8wZSvngp+PBrY3rgKhNz+89g2w1S+lJHb+wAAoWPM7V3YBzRo2p7e2Poax X5Ka9dgN16QQ0bw3Bg5ajkbiQs9nM7POGwqibUolpHUxc6203aeTRXTpzi68hC/zkIlE Un5R81CqJbA5iRC4v+XVHrzOPlqixQ2mVNgcCSNbONQzvB6LfM6fpNt5z5XPjUk0cHNw 4XcQ== X-Forwarded-Encrypted: i=1; AL+hErHhd4K248RVgQ7U1dNWJONeyoQiTaSo+ufYneJoQFnb3GszTQxBKHGng3SbrID8Be07eGpT@lists.bufferbloat.net X-Gm-Message-State: APuU4Z9Kjk0LtGV/gSEmeT7ksncQ3pTfwNutpKLZbBWaDjWf7bzxfE/A jBIrBlf3iivqd7IXK9z3SfqYuVWA2XNz0QQkyLN3U4+e2ADCrizadWjG7s4SJ06e8g== X-Gm-Gg: AYBFou2KotEXTe1Rc0OIe4w2+HANrjLbbzsxZVbNEEyR+QeUmVdBl4JGn8Ww8jmy2tE Afw57E/Ul/FIJXU483GG1MUVNhGxn7Cy0V9olWrvIyDbItVXzkp/sisxqtrfbraQCt9/4Kcxc6b DeT3PwCzYnWBmug9uYvZDP3bTytWaLi9hBSbZsL0O24DVR03LzJeUtlA/3fkgSDL5meXoDRT2Z1 0IwsIZEMPISt9Mpgf2qhpQrPc1S6BF6GSj251yZlDxNO2wpCLVEXJoiZuurc/RRi9iGsJ2+LB3G Dk0oIQX1db0fRwbiWd4RkrxspO2VDVp2tzmHpx2SBA+WLnFPcE6MkTkup0CHt0nWI7zuXADKW72 dM7J48zrPHk4+5d8g3MDC/6XcRxv2JbzdU/7PoTnq1O+H4pDePGr0CdaVQmTvQgOlaIqc0YYDab E3LN/Uq7Vx8k3SqyLA8XzeohAZawe7ugeF7HECIiTmXNs3TKIzt15m1Zvv2JITYK0JCJIWcT7ut xF9vAbWs5fHfHII1YkaVUdAl1qrbFyHOQYWZYcWTiMH6x7QVIF/pIoMdQPptFJa7zieBKuQ/blR FTUbYLJoEWOiip8UjIastEx5AhKKF53LmPg6O6kYE+f1TuSVAhOKQFUhJtnbQ+9iOOQNipDFeeo = X-Received: by 2002:a05:6214:3189:b0:91e:b7fd:8ce7 with SMTP id 6a1803df08f44-91ef04ee444mr39223216d6.28.1794321666685; Tue, 10 Nov 2026 06:41:06 -0800 (PST) Received: from mbili.waya ([64.203.83.2]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-91f00f6eb88sm1679276d6.39.2026.11.10.06.41.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Nov 2026 06:41:06 -0800 (PST) From: Jamal Hadi Salim To: netdev@vger.kernel.org Cc: Jamal Hadi Salim , Jiri Pirko , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Victor Nogueira , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , cake@lists.bufferbloat.net, Sashiko Date: Tue, 10 Nov 2026 09:40:55 -0500 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: ZP2OLSQGLSI5DYIA2CT37SELEXVJUXPZ X-Message-ID-Hash: ZP2OLSQGLSI5DYIA2CT37SELEXVJUXPZ X-MailFrom: jhs@mojatatu.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Subject: [Cake] [PATCH net-next v9 4/4] net/sched: cake: hash before segmenting and reject an overlong split List-Id: Cake - FQ_codel the next generation Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: VGhlIEZpeDoNCndpdGggQ0FLRV9GTEFHX1NQTElUX0dTTywgY2FrZSBjb21wdXRlcyB0aGUgZmxv dy9ob3N0IGhhc2gga2V5cywgdGhlbg0Kc3BsaXRzIGEgR1NPIHNrYiBpbnRvIHNlZ21lbnRzIGl0 IGFjY291bnRzIGluZGl2aWR1YWxseS4gS2V5IGV4dHJhY3Rpb24NCm11c3QgcnVuIG9uIHRoZSB1 bnNlZ21lbnRlZCBza2IgLS0gc2tiX2dzb19zZWdtZW50KCkgY2FuIHJld3JpdGUgYW4NCmVuY2Fw c3VsYXRlZCBwYWNrZXQncyBoZWFkZXJzIHRvIHRoZSBpbm5lciBvbmVzIC0tIGFuZCB0aGUgcmVz b2x1dGlvbg0KbXVzdCB3YWl0IHVudGlsIHRoZSBwYWNrZXQgaXMgYWRtaXR0ZWQsIHNpbmNlIGl0 IGNvbW1pdHMgdGhlDQpzZXQtYXNzb2NpYXRpdmUgdGFncywgaG9zdCBpbmRpY2VzIGFuZCB3YXkg Y291bnRlcnMgdGhhdCBhIGxhdGVyDQpyZWplY3Rpb24gd291bGQgbGVhdmUgbXV0YXRlZCAoYSBH U08gc2tiIHdob3NlIHNlZ21lbnRhdGlvbiBmYWlscyB3YXMNCmRyb3BwZWQgd2l0aCB0aGF0IHN0 YXRlIGFscmVhZHkgY29tbWl0dGVkKS4NCg0KU3BsaXQgY2FrZV9oYXNoKCkgaW50byBhIHNpZGUt ZWZmZWN0LWZyZWUgY2FrZV9oYXNoX2tleXMoKSwgcnVuIG9uIHRoZQ0KdW5zZWdtZW50ZWQgc2ti LCBhbmQgY2FrZV9oYXNoX3Jlc29sdmUoKSwgcnVuIG9ubHkgb25jZSB0aGUgcGFja2V0IGlzDQph ZG1pdHRlZC4gTW92ZSB0aGUgc3BsaXQtR1NPIHBhdGggYWhlYWQgb2YgdGhlIHJlc29sdXRpb246 IHN1bSB0aGUNCnNlZ21lbnQgbGlzdCwgdGVzdCB0aGUgdG90YWwgYWdhaW5zdCB0aGUgY2VpbGlu ZyBiZWZvcmUgbGlua2luZyBhbnkNCnNlZ21lbnQsIGFuZCBkcm9wIHRoZSB3aG9sZSBsaXN0IG9u IHJlamVjdGlvbiBzbyBubyBwZXJzaXN0ZW50IHN0YXRlIGlzDQpjb21taXR0ZWQuIFRoZSBsaXN0 IGlzIGRlZmVycmVkIHRvIHRvX2ZyZWUgc28gdGhlIHRhaWwgc2VnbWVudCdzDQpzb2NrX3dmcmVl KCkgbmV2ZXIgcnVucyB1bmRlciB0aGUgcWRpc2MgbG9jay4NCg0KVGFnIGV2ZXJ5IGRlZmVycmVk IHNlZ21lbnQgd2l0aCBRRElTQ19EUk9QX09WRVJMSU1JVDogX19za2JfZ3NvX3NlZ21lbnQoKQ0K a2VlcHMgU0tCX0dTT19DQiBhdCBjYiBvZmZzZXQgMzIsIGFsaWFzaW5nIHRjX3NrYl9jYi5kcm9w X3JlYXNvbiwgYW5kDQpfX2NvcHlfc2tiX2hlYWRlcigpIGNvcGllcyBpdCBpbnRvIGV2ZXJ5IHNl Z21lbnQsIHNvIHRhZ2dpbmcgb25seSB0aGUNCmhlYWQgbGVmdCB0aGUgcmVzdCB3aXRoIEdTTyBz Y3JhdGNoIChhIGhlYWRyb29tLXNpemVkIHZhbHVlKSBhcyB0aGVpcg0KZHJvcCByZWFzb24sIHdo aWNoIF9fdGNmX2tmcmVlX3NrYl9saXN0KCkgd291bGQgcmVwb3J0IGFzIGFuIHVucmVsYXRlZA0K Y29yZSByZWFzb24uIFRoZSBzZWdtZW50YXRpb24tZmFpbHVyZSByZXR1cm4gaGFzIHRoZSBzYW1l IGFsaWFzaW5nIGFuZA0KdXNlcyBxZGlzY19kcm9wX3JlYXNvbiguLi4sIFFESVNDX0RST1BfR0VO RVJJQykgc28gaXRzIGRyb3AgaXMgc3RpbGwNCnJlcG9ydGVkIGFzIGEgcWRpc2MgZHJvcC4NCg0K UmVhZCBxLT5jb25maWctPmZsb3dfbW9kZSBvbmNlIHdpdGggUkVBRF9PTkNFKCkgaW4gY2FrZV9l bnF1ZXVlKCkgYW5kDQpwYXNzIHRoYXQgdmFsdWUgdG8gYm90aCBjYWtlX2hhc2hfa2V5cygpIGFu ZCBjYWtlX2hhc2hfcmVzb2x2ZSgpLCBhbmQgdG8NCnRoZSBsYXRlciBmbG93Y2hhaW4gY2FsbHMg KGNha2VfZ2V0X2Zsb3dfcXVhbnR1bSgpLA0KY2FrZV9pbmNfc3JjaG9zdF9idWxrX2Zsb3dfY291 bnQoKSwgY2FrZV9pbmNfZHN0aG9zdF9idWxrX2Zsb3dfY291bnQoKSkuDQpjYWtlX21xX2NoYW5n ZSgpIHVwZGF0ZXMgdGhlIHNoYXJlZCBjYWtlX2NvbmZpZyBvdXRzaWRlIHRoZSBxZGlzYyBsb2Nr LCBzbw0KYSByZWNvbmZpZ3VyYXRpb24gY291bGQgZXh0cmFjdCBhbmQgcmVzb2x2ZSBrZXlzIGlu IGRpZmZlcmVudCBtb2Rlcy4NCg0KQ29uZGl0aW9ucyB0byByZWNyZWF0ZSB0aGUgYnVnOg0KICBp cCB0dW50YXAgYWRkIHR1bjAgbW9kZSB0dW4NCiAgaXAgbGluayBzZXQgdHVuMCB0eHF1ZXVlbGVu IDMyIHVwDQogIGlwIGFkZHIgYWRkIDEwLjk5LjAuMS8yNCBkZXYgdHVuMA0KICAjIGhvbGQgdGhl IHR1biBmZCBvcGVuIHdpdGhvdXQgcmVhZGluZyBzbyB0aGUgYmFja2xvZyBwZXJzaXN0czsgYSBz dGFiDQogICMgb3ZlcmhlYWQgb2YgMTA0ODQ2OCBhY2NvdW50cyBlYWNoIDkyLWJ5dGUgcGFja2V0 IGF0IDEwNDg1NjAgYnl0ZXMsIHNvDQogICMgNDA5NSBxdWV1ZWQgcGFja2V0cyBsZWF2ZSA2NTUx OSBieXRlcyBiZWxvdyBRRElTQ19NQVhfQkFDS0xPRy4gIEENCiAgIyA2NTAwMC1ieXRlIFVEUF9T RUdNRU5UIHBheWxvYWQgd2l0aCBhIDE0MDAtYnl0ZSBzZWdtZW50IHNpemUgdGhlbiBoYXMNCiAg IyBhIHNlZ21lbnQgc3VtIHBhc3QgdGhlIHJlbWFpbmluZyBoZWFkcm9vbSwgYW5kIGNha2UgcmVq ZWN0cyB0aGUgd2hvbGUNCiAgIyBzcGxpdC4gIFNldHVwIG5lZWRzIENBUF9ORVRfQURNSU47IHRo ZSBwYXlsb2FkIGl0c2VsZiBkb2VzIG5vdC4NCiAgdGMgcWRpc2MgYWRkIGRldiB0dW4wIHJvb3Qg aGFuZGxlIDE6IHN0YWIgb3ZlcmhlYWQgMTA0ODQ2OCBcDQogICAgICBjYWtlIHNwbGl0LWdzbyBt ZW1saW1pdCA1MTJNYg0KDQpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9uZXRkZXYvMTc5 MjMxOTMzMDY4LjMxMzUuODAzNDA3OTI2MzMwNzc5ODZAa2VybmVsLm9yZy8NCkxpbms6IGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL25ldGRldi8xNzkyNjk1NzcyNzAuMzEzNS4xNjA3MjA2NTEzODg0 NTE5MjQ1MEBrZXJuZWwub3JnLw0KUmV2aWV3ZWQtYnk6IFZpY3RvciBOb2d1ZWlyYSA8dmljdG9y QG1vamF0YXR1LmNvbT4NCkFja2VkLWJ5OiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VA dG9rZS5kaz4NClNpZ25lZC1vZmYtYnk6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5j b20+DQoNCi0tLQ0KDQp2OCAtPiB2OTogdXNlIHFkaXNjX2Ryb3BfcmVhc29uKFFESVNDX0RST1Bf R0VORVJJQykgd2hlbiBzZWdtZW50YXRpb24NCmZhaWxzIChfX3NrYl9nc29fc2VnbWVudCgpIGhh cyBhbHJlYWR5IGNsb2JiZXJlZCB0aGUgZHJvcC1yZWFzb24gc2xvdCksDQphbmQgcGFzcyB0aGUg Zmxvd19tb2RlIHNuYXBzaG90IHRvIHRoZSBsYXRlciBmbG93Y2hhaW4gY2FsbHMuICAoU2FzaGlr bw0KbmlwYSByZXZpZXcgb2YgdjcpDQotLS0NCiBuZXQvc2NoZWQvc2NoX2Nha2UuYyB8IDEzMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tDQogMSBmaWxlIGNoYW5n ZWQsIDk0IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvbmV0 L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuYw0KaW5kZXggM2ZkMTNiZjZm M2NlLi43NGUyYjA5OTcxZWUgMTAwNjQ0DQotLS0gYS9uZXQvc2NoZWQvc2NoX2Nha2UuYw0KKysr IGIvbmV0L3NjaGVkL3NjaF9jYWtlLmMNCkBAIC03MDksMTkgKzcwOSwyOCBAQCBzdGF0aWMgdTE2 IGNha2VfZ2V0X2Zsb3dfcXVhbnR1bShzdHJ1Y3QgY2FrZV90aW5fZGF0YSAqcSwNCiAJCWdldF9y YW5kb21fdTE2KCkpID4+IDE2Ow0KIH0NCiANCi1zdGF0aWMgdTMyIGNha2VfaGFzaChzdHJ1Y3Qg Y2FrZV90aW5fZGF0YSAqcSwgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCi0JCSAgICAgaW50 IGZsb3dfbW9kZSwgdTE2IGZsb3dfb3ZlcnJpZGUsIHUxNiBob3N0X292ZXJyaWRlKQ0KK3N0cnVj dCBjYWtlX2hhc2hfa2V5cyB7DQorCXUzMiBzcmNob3N0X2hhc2g7DQorCXUzMiBkc3Rob3N0X2hh c2g7DQorCXUzMiBmbG93X2hhc2g7DQorfTsNCisNCitzdGF0aWMgdm9pZCBjYWtlX2hhc2hfa2V5 cyhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgZmxvd19tb2RlLA0KKwkJCSAgIHUxNiBm bG93X292ZXJyaWRlLCB1MTYgaG9zdF9vdmVycmlkZSwNCisJCQkgICBzdHJ1Y3QgY2FrZV9oYXNo X2tleXMgKm91dCkNCiB7DQogCWJvb2wgaGFzaF9mbG93cyA9ICghZmxvd19vdmVycmlkZSAmJiAh IShmbG93X21vZGUgJiBDQUtFX0ZMT1dfRkxPV1MpKTsNCiAJYm9vbCBoYXNoX2hvc3RzID0gKCFo b3N0X292ZXJyaWRlICYmICEhKGZsb3dfbW9kZSAmIENBS0VfRkxPV19IT1NUUykpOw0KIAlib29s IG5hdF9lbmFibGVkID0gISEoZmxvd19tb2RlICYgQ0FLRV9GTE9XX05BVF9GTEFHKTsNCi0JdTMy IGZsb3dfaGFzaCA9IDAsIHNyY2hvc3RfaGFzaCA9IDAsIGRzdGhvc3RfaGFzaCA9IDA7DQotCXUx NiByZWR1Y2VkX2hhc2gsIHNyY2hvc3RfaWR4LCBkc3Rob3N0X2lkeDsNCiAJc3RydWN0IGZsb3df a2V5cyBrZXlzLCBob3N0X2tleXM7DQogCWJvb2wgdXNlX3NrYmhhc2ggPSBza2ItPmw0X2hhc2g7 DQogDQorCW91dC0+Zmxvd19oYXNoID0gMDsNCisJb3V0LT5zcmNob3N0X2hhc2ggPSAwOw0KKwlv dXQtPmRzdGhvc3RfaGFzaCA9IDA7DQorDQogCWlmICh1bmxpa2VseShmbG93X21vZGUgPT0gQ0FL RV9GTE9XX05PTkUpKQ0KLQkJcmV0dXJuIDA7DQorCQlyZXR1cm47DQogDQogCS8qIElmIGJvdGgg b3ZlcnJpZGVzIGFyZSBzZXQsIG9yIHdlIGNhbiB1c2UgdGhlIFNLQiBoYXNoIGFuZCBuYXQgbW9k ZSBpcw0KIAkgKiBkaXNhYmxlZCwgd2UgY2FuIHNraXAgcGFja2V0IGRpc3NlY3Rpb24gZW50aXJl bHkuIElmIG5hdCBtb2RlIGlzDQpAQCAtNzU2LDUwICs3NjUsNjQgQEAgc3RhdGljIHUzMiBjYWtl X2hhc2goc3RydWN0IGNha2VfdGluX2RhdGEgKnEsIGNvbnN0IHN0cnVjdCBza19idWZmICpza2Is DQogCXN3aXRjaCAoaG9zdF9rZXlzLmNvbnRyb2wuYWRkcl90eXBlKSB7DQogCWNhc2UgRkxPV19E SVNTRUNUT1JfS0VZX0lQVjRfQUREUlM6DQogCQlob3N0X2tleXMuYWRkcnMudjRhZGRycy5zcmMg PSAwOw0KLQkJZHN0aG9zdF9oYXNoID0gZmxvd19oYXNoX2Zyb21fa2V5cygmaG9zdF9rZXlzKTsN CisJCW91dC0+ZHN0aG9zdF9oYXNoID0gZmxvd19oYXNoX2Zyb21fa2V5cygmaG9zdF9rZXlzKTsN CiAJCWhvc3Rfa2V5cy5hZGRycy52NGFkZHJzLnNyYyA9IGtleXMuYWRkcnMudjRhZGRycy5zcmM7 DQogCQlob3N0X2tleXMuYWRkcnMudjRhZGRycy5kc3QgPSAwOw0KLQkJc3JjaG9zdF9oYXNoID0g Zmxvd19oYXNoX2Zyb21fa2V5cygmaG9zdF9rZXlzKTsNCisJCW91dC0+c3JjaG9zdF9oYXNoID0g Zmxvd19oYXNoX2Zyb21fa2V5cygmaG9zdF9rZXlzKTsNCiAJCWJyZWFrOw0KIA0KIAljYXNlIEZM T1dfRElTU0VDVE9SX0tFWV9JUFY2X0FERFJTOg0KIAkJbWVtc2V0KCZob3N0X2tleXMuYWRkcnMu djZhZGRycy5zcmMsIDAsDQogCQkgICAgICAgc2l6ZW9mKGhvc3Rfa2V5cy5hZGRycy52NmFkZHJz LnNyYykpOw0KLQkJZHN0aG9zdF9oYXNoID0gZmxvd19oYXNoX2Zyb21fa2V5cygmaG9zdF9rZXlz KTsNCisJCW91dC0+ZHN0aG9zdF9oYXNoID0gZmxvd19oYXNoX2Zyb21fa2V5cygmaG9zdF9rZXlz KTsNCiAJCWhvc3Rfa2V5cy5hZGRycy52NmFkZHJzLnNyYyA9IGtleXMuYWRkcnMudjZhZGRycy5z cmM7DQogCQltZW1zZXQoJmhvc3Rfa2V5cy5hZGRycy52NmFkZHJzLmRzdCwgMCwNCiAJCSAgICAg ICBzaXplb2YoaG9zdF9rZXlzLmFkZHJzLnY2YWRkcnMuZHN0KSk7DQotCQlzcmNob3N0X2hhc2gg PSBmbG93X2hhc2hfZnJvbV9rZXlzKCZob3N0X2tleXMpOw0KKwkJb3V0LT5zcmNob3N0X2hhc2gg PSBmbG93X2hhc2hfZnJvbV9rZXlzKCZob3N0X2tleXMpOw0KIAkJYnJlYWs7DQogDQogCWRlZmF1 bHQ6DQotCQlkc3Rob3N0X2hhc2ggPSAwOw0KLQkJc3JjaG9zdF9oYXNoID0gMDsNCisJCW91dC0+ ZHN0aG9zdF9oYXNoID0gMDsNCisJCW91dC0+c3JjaG9zdF9oYXNoID0gMDsNCiAJfQ0KIA0KIAkv KiBUaGlzICptdXN0KiBiZSBhZnRlciB0aGUgYWJvdmUgc3dpdGNoLCBzaW5jZSBhcyBhDQogCSAq IHNpZGUtZWZmZWN0IGl0IHNvcnRzIHRoZSBzcmMgYW5kIGRzdCBhZGRyZXNzZXMuDQogCSAqLw0K IAlpZiAoaGFzaF9mbG93cyAmJiAhdXNlX3NrYmhhc2gpDQotCQlmbG93X2hhc2ggPSBmbG93X2hh c2hfZnJvbV9rZXlzKCZrZXlzKTsNCisJCW91dC0+Zmxvd19oYXNoID0gZmxvd19oYXNoX2Zyb21f a2V5cygma2V5cyk7DQogDQogc2tpcF9oYXNoOg0KIAlpZiAoZmxvd19vdmVycmlkZSkNCi0JCWZs b3dfaGFzaCA9IGZsb3dfb3ZlcnJpZGUgLSAxOw0KKwkJb3V0LT5mbG93X2hhc2ggPSBmbG93X292 ZXJyaWRlIC0gMTsNCiAJZWxzZSBpZiAodXNlX3NrYmhhc2ggJiYgKGZsb3dfbW9kZSAmIENBS0Vf RkxPV19GTE9XUykpDQotCQlmbG93X2hhc2ggPSBza2ItPmhhc2g7DQorCQlvdXQtPmZsb3dfaGFz aCA9IHNrYi0+aGFzaDsNCiAJaWYgKGhvc3Rfb3ZlcnJpZGUpIHsNCi0JCWRzdGhvc3RfaGFzaCA9 IGhvc3Rfb3ZlcnJpZGUgLSAxOw0KLQkJc3JjaG9zdF9oYXNoID0gaG9zdF9vdmVycmlkZSAtIDE7 DQorCQlvdXQtPmRzdGhvc3RfaGFzaCA9IGhvc3Rfb3ZlcnJpZGUgLSAxOw0KKwkJb3V0LT5zcmNo b3N0X2hhc2ggPSBob3N0X292ZXJyaWRlIC0gMTsNCiAJfQ0KIA0KIAlpZiAoIShmbG93X21vZGUg JiBDQUtFX0ZMT1dfRkxPV1MpKSB7DQogCQlpZiAoZmxvd19tb2RlICYgQ0FLRV9GTE9XX1NSQ19J UCkNCi0JCQlmbG93X2hhc2ggXj0gc3JjaG9zdF9oYXNoOw0KKwkJCW91dC0+Zmxvd19oYXNoIF49 IG91dC0+c3JjaG9zdF9oYXNoOw0KIA0KIAkJaWYgKGZsb3dfbW9kZSAmIENBS0VfRkxPV19EU1Rf SVApDQotCQkJZmxvd19oYXNoIF49IGRzdGhvc3RfaGFzaDsNCisJCQlvdXQtPmZsb3dfaGFzaCBe PSBvdXQtPmRzdGhvc3RfaGFzaDsNCiAJfQ0KK30NCisNCisvKiBDb21taXQgdGhlIGZsb3cgaW50 byB0aGUgc2V0LWFzc29jaWF0aXZlIHRhYmxlIChxLT50YWdzW10sIGhvc3QNCisgKiBpbmRpY2Vz LCBidWxrIGNvdW50ZXJzKS4gT25seSBhZnRlciB0aGUgcGFja2V0IGlzIGFkbWl0dGVkLg0KKyAq Lw0KK3N0YXRpYyB1MzIgY2FrZV9oYXNoX3Jlc29sdmUoc3RydWN0IGNha2VfdGluX2RhdGEgKnEs DQorCQkJICAgICBjb25zdCBzdHJ1Y3QgY2FrZV9oYXNoX2tleXMgKmtleXMsIGludCBmbG93X21v ZGUpDQorew0KKwl1MzIgZmxvd19oYXNoID0ga2V5cy0+Zmxvd19oYXNoLCBzcmNob3N0X2hhc2gg PSBrZXlzLT5zcmNob3N0X2hhc2gsDQorCSAgICBkc3Rob3N0X2hhc2ggPSBrZXlzLT5kc3Rob3N0 X2hhc2g7DQorCXUxNiByZWR1Y2VkX2hhc2gsIHNyY2hvc3RfaWR4LCBkc3Rob3N0X2lkeDsNCisN CisJaWYgKHVubGlrZWx5KGZsb3dfbW9kZSA9PSBDQUtFX0ZMT1dfTk9ORSkpDQorCQlyZXR1cm4g MDsNCiANCiAJcmVkdWNlZF9oYXNoID0gZmxvd19oYXNoICUgQ0FLRV9RVUVVRVM7DQogDQpAQCAt MTc2NSwxMyArMTc4OCwxNyBAQCBzdGF0aWMgczMyIGNha2VfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCwNCiB7DQogCXUzMiBpZHgsIHRpbiwgcHJldl9xbGVu LCBwcmV2X2JhY2tsb2csIGRyb3BfaWQ7DQogCXN0cnVjdCBjYWtlX3NjaGVkX2RhdGEgKnEgPSBx ZGlzY19wcml2KHNjaCk7DQorCWludCBmbG93X21vZGUgPSBSRUFEX09OQ0UocS0+Y29uZmlnLT5m bG93X21vZGUpOw0KIAlpbnQgbGVuID0gcWRpc2NfcGt0X2xlbihza2IpLCByZXQ7DQogCXUxNiBm bG93X292ZXJyaWRlLCBob3N0X292ZXJyaWRlOw0KKwlzdHJ1Y3Qgc2tfYnVmZiAqc2VncyA9IE5V TEw7DQorCXN0cnVjdCBjYWtlX2hhc2hfa2V5cyBrZXlzOw0KIAlzdHJ1Y3Qgc2tfYnVmZiAqYWNr ID0gTlVMTDsNCiAJa3RpbWVfdCBub3cgPSBrdGltZV9nZXQoKTsNCiAJc3RydWN0IGNha2VfdGlu X2RhdGEgKmI7DQogCXN0cnVjdCBjYWtlX2Zsb3cgKmZsb3c7DQogCWJvb2wgc2FtZV9mbG93ID0g ZmFsc2U7DQorCXU2NCBzbGVuID0gMDsNCiANCiAJLyogQ2xhc3NpZnkgZmlyc3Q6IGEgdGVybWlu YWwgdmVyZGljdCBtZWFucyBkbyBub3QgZW5xdWV1ZS4gKi8NCiAJaWYgKGNha2VfdGNmX2NsYXNz aWZ5KHNjaCwgc2tiLCAmZmxvd19vdmVycmlkZSwgJmhvc3Rfb3ZlcnJpZGUsICZyZXQpKSB7DQpA QCAtMTc4OCwxMiArMTgxNSw1MCBAQCBzdGF0aWMgczMyIGNha2VfZW5xdWV1ZShzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCwNCiAJCQkJCSBRRElTQ19EUk9QX09WRVJMSU1J VCk7DQogCX0NCiANCi0JLyogY2hvb3NlIGZsb3cgdG8gaW5zZXJ0IGludG8gKi8NCisJLyogU2Vs ZWN0IHRoZSB0aW4gYW5kIGV4dHJhY3QgdGhlIGtleXMgYmVmb3JlIHNlZ21lbnRpbmc6DQorCSAq IHNrYl9nc29fc2VnbWVudCgpIHJld3JpdGVzIGVuY2Fwc3VsYXRlZCBoZWFkZXJzLCB3aGljaA0K KwkgKiBjaGFuZ2VzIHRoZSBrZXlzLg0KKwkgKi8NCiAJYiA9IGNha2Vfc2VsZWN0X3RpbihzY2gs IHNrYik7DQotCWlkeCA9IGNha2VfaGFzaChiLCBza2IsIHEtPmNvbmZpZy0+Zmxvd19tb2RlLCBm bG93X292ZXJyaWRlLA0KLQkJCWhvc3Rfb3ZlcnJpZGUpICsgMTsNCisJY2FrZV9oYXNoX2tleXMo c2tiLCBmbG93X21vZGUsIGZsb3dfb3ZlcnJpZGUsIGhvc3Rfb3ZlcnJpZGUsICZrZXlzKTsNCisN CisJaWYgKHFkaXNjX3BrdF9zZWdzKHNrYikgPiAxICYmIHEtPmNvbmZpZy0+cmF0ZV9mbGFncyAm IENBS0VfRkxBR19TUExJVF9HU08pIHsNCisJCW5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzID0g bmV0aWZfc2tiX2ZlYXR1cmVzKHNrYik7DQorCQlzdHJ1Y3Qgc2tfYnVmZiAqbnNrYiwgKnNlZzsN CisNCisJCXNlZ3MgPSBza2JfZ3NvX3NlZ21lbnQoc2tiLCBmZWF0dXJlcyAmIH5ORVRJRl9GX0dT T19NQVNLKTsNCisJCWlmIChJU19FUlJfT1JfTlVMTChzZWdzKSkNCisJCQlyZXR1cm4gcWRpc2Nf ZHJvcF9yZWFzb24oc2tiLCBzY2gsIHRvX2ZyZWUsDQorCQkJCQkJIFFESVNDX0RST1BfR0VORVJJ Qyk7DQorDQorCQkvKiB3ZSBuZXZlciB1c2UgdGhlIG9yaWdpbmFsIHNrYiBhZnRlciBzcGxpdHRp bmcgKi8NCisJCWNvbnN1bWVfc2tiKHNrYik7DQorCQlza2IgPSBOVUxMOw0KKw0KKwkJLyogVGhl IHNwbGl0IHBhdGggYWNjb3VudHMgdGhlIHNlZ21lbnQgc3VtLCBub3QgdGhlDQorCQkgKiBzdGFi LWFkanVzdGVkIHFkaXNjX3BrdF9sZW4oKSwgc28gY2hlY2sgaXQgaGVyZS4NCisJCSAqLw0KKwkJ c2tiX2xpc3Rfd2Fsa19zYWZlKHNlZ3MsIHNlZywgbnNrYikNCisJCQlzbGVuICs9IHNlZy0+bGVu Ow0KKw0KKwkJaWYgKHVubGlrZWx5KCh1NjQpc2NoLT5xc3RhdHMuYmFja2xvZyArIHNsZW4gPiBR RElTQ19NQVhfQkFDS0xPRykpIHsNCisJCQlxZGlzY19xc3RhdHNfb3ZlcmxpbWl0KHNjaCk7DQor CQkJLyogX19za2JfZ3NvX3NlZ21lbnQoKSBwdXRzIFNLQl9HU09fQ0IgYXQgY2INCisJCQkgKiBv ZmZzZXQgMzIsIG92ZXIgdGNfc2tiX2NiLmRyb3BfcmVhc29uOyBldmVyeQ0KKwkJCSAqIHNlZ21l bnQgaW5oZXJpdHMgaXQuIFRhZyBlYWNoIG9uZSB3aXRoIHRoZQ0KKwkJCSAqIHFkaXNjIGRyb3Ag cmVhc29uLg0KKwkJCSAqLw0KKwkJCXNrYl9saXN0X3dhbGtfc2FmZShzZWdzLCBzZWcsIG5za2Ip DQorCQkJCXRjZl9zZXRfcWRpc2NfZHJvcF9yZWFzb24oc2VnLA0KKwkJCQkJCQkgIFFESVNDX0RS T1BfT1ZFUkxJTUlUKTsNCisNCisJCQlyZXR1cm4gcWRpc2NfZHJvcF9hbGwoc2Vncywgc2NoLCB0 b19mcmVlKTsNCisJCX0NCisJfQ0KKw0KKwkvKiBBZG1pdHRlZDogcmVzb2x2ZSB0aGUgZmxvdy4g Ki8NCisJaWR4ID0gY2FrZV9oYXNoX3Jlc29sdmUoYiwgJmtleXMsIGZsb3dfbW9kZSk7DQogCXRp biA9ICh1MzIpKGIgLSBxLT50aW5zKTsNCi0JaWR4LS07DQogCWZsb3cgPSAmYi0+Zmxvd3NbaWR4 XTsNCiANCiAJLyogZW5zdXJlIHNoYXBlciBzdGF0ZSBpc24ndCBzdGFsZSAqLw0KQEAgLTE4MjAs MTQgKzE4ODUsOSBAQCBzdGF0aWMgczMyIGNha2VfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgUWRpc2MgKnNjaCwNCiAJaWYgKHVubGlrZWx5KGxlbiA+IGItPm1heF9za2JsZW4p KQ0KIAkJV1JJVEVfT05DRShiLT5tYXhfc2tibGVuLCBsZW4pOw0KIA0KLQlpZiAocWRpc2NfcGt0 X3NlZ3Moc2tiKSA+IDEgJiYgcS0+Y29uZmlnLT5yYXRlX2ZsYWdzICYgQ0FLRV9GTEFHX1NQTElU X0dTTykgew0KLQkJc3RydWN0IHNrX2J1ZmYgKnNlZ3MsICpuc2tiLCAqc2VnOw0KLQkJbmV0ZGV2 X2ZlYXR1cmVzX3QgZmVhdHVyZXMgPSBuZXRpZl9za2JfZmVhdHVyZXMoc2tiKTsNCi0JCXVuc2ln bmVkIGludCBzbGVuID0gMCwgbnVtc2VncyA9IDA7DQotDQotCQlzZWdzID0gc2tiX2dzb19zZWdt ZW50KHNrYiwgZmVhdHVyZXMgJiB+TkVUSUZfRl9HU09fTUFTSyk7DQotCQlpZiAoSVNfRVJSX09S X05VTEwoc2VncykpDQotCQkJcmV0dXJuIHFkaXNjX2Ryb3Aoc2tiLCBzY2gsIHRvX2ZyZWUpOw0K KwlpZiAoc2Vncykgew0KKwkJc3RydWN0IHNrX2J1ZmYgKm5za2IsICpzZWc7DQorCQl1bnNpZ25l ZCBpbnQgbnVtc2VncyA9IDA7DQogDQogCQlza2JfbGlzdF93YWxrX3NhZmUoc2Vncywgc2VnLCBu c2tiKSB7DQogCQkJc2tiX21hcmtfbm90X29uX2xpc3Qoc2VnKTsNCkBAIC0xODQxLDcgKzE5MDEs NiBAQCBzdGF0aWMgczMyIGNha2VfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg UWRpc2MgKnNjaCwNCiAJCQlxZGlzY19xbGVuX2luYyhzY2gpOw0KIAkJCW51bXNlZ3MrKzsNCiAJ CQlxLT5idWZmZXJfdXNlZCArPSBzZWctPnRydWVzaXplOw0KLQkJCXNsZW4gKz0gc2VnLT5sZW47 DQogCQkJV1JJVEVfT05DRShiLT5wYWNrZXRzLCBiLT5wYWNrZXRzICsgMSk7DQogCQl9DQogDQpA QCAtMTg1Myw5ICsxOTEyLDggQEAgc3RhdGljIHMzMiBjYWtlX2VucXVldWUoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gsDQogCQlXUklURV9PTkNFKGItPmJhY2tsb2dzW2lk eF0sIGItPmJhY2tsb2dzW2lkeF0gKyBzbGVuKTsNCiANCiAJCXFkaXNjX3RyZWVfcmVkdWNlX2Jh Y2tsb2coc2NoLCAxLW51bXNlZ3MsIGxlbi1zbGVuKTsNCi0JCWNvbnN1bWVfc2tiKHNrYik7DQog CX0gZWxzZSB7DQotCQkvKiBub3Qgc3BsaXR0aW5nICovDQorCQkvKiBub3Qgc3BsaXR0aW5nIC0g c2tiIHBvaW50ZXIgc3RpbGwgdmFsaWQgKi8NCiAJCWludCBhY2tfcGt0X2xlbiA9IDA7DQogDQog CQljb2JhbHRfc2V0X2VucXVldWVfdGltZShza2IsIG5vdyk7DQpAQCAtMTk0OSw3ICsyMDA3LDcg QEAgc3RhdGljIHMzMiBjYWtlX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFk aXNjICpzY2gsDQogCQlmbG93LT5zZXQgPSBDQUtFX1NFVF9TUEFSU0U7DQogCQlXUklURV9PTkNF KGItPnNwYXJzZV9mbG93X2NvdW50LCBiLT5zcGFyc2VfZmxvd19jb3VudCArIDEpOw0KIA0KLQkJ V1JJVEVfT05DRShmbG93LT5kZWZpY2l0LCBjYWtlX2dldF9mbG93X3F1YW50dW0oYiwgZmxvdywg cS0+Y29uZmlnLT5mbG93X21vZGUpKTsNCisJCVdSSVRFX09OQ0UoZmxvdy0+ZGVmaWNpdCwgY2Fr ZV9nZXRfZmxvd19xdWFudHVtKGIsIGZsb3csIGZsb3dfbW9kZSkpOw0KIAl9IGVsc2UgaWYgKGZs b3ctPnNldCA9PSBDQUtFX1NFVF9TUEFSU0VfV0FJVCkgew0KIAkJLyogdGhpcyBmbG93IHdhcyBl bXB0eSwgYWNjb3VudGVkIGFzIGEgc3BhcnNlIGZsb3csIGJ1dCBhY3R1YWxseQ0KIAkJICogaW4g dGhlIGJ1bGsgcm90YXRpb24uDQpAQCAtMTk1OCw4ICsyMDE2LDggQEAgc3RhdGljIHMzMiBjYWtl X2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gsDQogCQlXUklU RV9PTkNFKGItPnNwYXJzZV9mbG93X2NvdW50LCBiLT5zcGFyc2VfZmxvd19jb3VudCAtIDEpOw0K IAkJV1JJVEVfT05DRShiLT5idWxrX2Zsb3dfY291bnQsIGItPmJ1bGtfZmxvd19jb3VudCArIDEp Ow0KIA0KLQkJY2FrZV9pbmNfc3JjaG9zdF9idWxrX2Zsb3dfY291bnQoYiwgZmxvdywgcS0+Y29u ZmlnLT5mbG93X21vZGUpOw0KLQkJY2FrZV9pbmNfZHN0aG9zdF9idWxrX2Zsb3dfY291bnQoYiwg ZmxvdywgcS0+Y29uZmlnLT5mbG93X21vZGUpOw0KKwkJY2FrZV9pbmNfc3JjaG9zdF9idWxrX2Zs b3dfY291bnQoYiwgZmxvdywgZmxvd19tb2RlKTsNCisJCWNha2VfaW5jX2RzdGhvc3RfYnVsa19m bG93X2NvdW50KGIsIGZsb3csIGZsb3dfbW9kZSk7DQogCX0NCiANCiAJaWYgKHEtPmJ1ZmZlcl91 c2VkID4gdTY0X3N0YXRzX3JlYWQoJnEtPmJ1ZmZlcl9tYXhfdXNlZCkpIHsNCi0tIA0KMi40My4w DQoNCg==