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=p7hrv00x; arc=none (Message is not ARC signed); dmarc=none Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com [IPv6:2607:f8b0:4864:20::72b]) by mail.toke.dk (Postfix) with ESMTPS id A0B34188C4E2 for ; Tue, 20 Oct 2026 18:57:43 +0200 (CEST) Received: by mail-qk1-x72b.google.com with SMTP id af79cd13be357-93f560af6aeso29533785a.0 for ; Tue, 20 Oct 2026 09:57:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mojatatu.com; s=google; t=1792515462; x=1793120262; 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=NgfhOOSrcf71hQzuI2PlCudVWMHX1P6q/EtWLLXXYr4=; b=p7hrv00xRwYAEJGCJRbp+aA9QyOjPrI44pmQYwOI79dje2NH4OQsybTO+C2jbfxQ4t mQ7vO9UGZbK9vEkFiFbj1nX5Ligm4mpi9ebWbsyPhEj/W6WWXCjzz5Xi/e3lBuhIt8UM NQVMiGlaFxB5tJACNtOtViCetdjwXXalYJDPs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792515462; x=1793120262; 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=NgfhOOSrcf71hQzuI2PlCudVWMHX1P6q/EtWLLXXYr4=; b=2WaIXQVWO8+AlQWfWOYP0wv16JzRQuAVpqEfpA7JYY40drAW0pe5X3nKnnj3DlJqJ7 o7DxSvvnGHtwxMW3zzC5iuUhxji99SuZFVKgpGrAiCOYUffUysVbNu8l3HLOrQn/zOAM dAe1BlfXpnH+D0ytU0d4ngwChCOv2ZZzZ3bjHaxvQwtbvlW1nhUm3fCwq+cApvaX8K+6 3090eVUDqL7epVKILz2PbCor01IJ6fyVdttq/U89hXap7eiOAF+gaeHsRPOl2on0S5oU c9K3gzOySlj0Kqbn8Jt3Stx3Hi4Pm+1ngBB3QeR9Nzrh/rFNtNNDBuwWT/Ugx3FDDVZZ LquA== X-Forwarded-Encrypted: i=1; AKwUvBzmvEt8Q4DaIBNP38c7+J0M2uxX4V6exSpdf3/2RvLF/cjPwEaialwrm4WWtNGf7ogXF/qr@lists.bufferbloat.net X-Gm-Message-State: AFq9FYJqstCiQf7a5XR/b6yFU76FKilkePq06YAgu2cGJgRR/cgFJb+9 a3AsmPI05BX8qLW0/La2B5Mjf9mB8SjbWewGDplkZgrPqZIvaFeqzGvVzRLp+uf9ZA== X-Gm-Gg: AYBFou0KRARZdJfCJPNUT3oQ8xOwrw0Vi4RvAi+hoP3ozXezsS+QvpfUgPdSdqip7Uc lz7NM5k3GF6sAS3aSefHD18k+GshygIQMNEpVs2EliqC3N/9K6isvibJtQc0e5Nf68IMOgvUE5G u4mXZQJSNlaEdwU2mIyzmX7PCsHbPUu53Fwxbc7gzqkfWz1pIKYL6WQcSBC9KbCVeLyLrnhf/MX EkFlEzkClkTDN6dhvPDWggPx4Vb1SIT6bMc9P83xqqj3mdLD6XZb5eCL4f5Uc87b4qZeBY/RJy4 H+l/C7fM4AJ82HFDQB9GVyb7Du4Q9zQ8Hn9vdJ9fAo5GARt6B6PHU1ZAIBXq4+M6LyyScRnoBEY azO/+Wef0fNcKfpvg73PcezLxVLh2U63KcLvP+yNq4C7hWYPwB6wdbJYmfARaIVLG08hRWzRiqM 312pNxbKOLAOneZ0Rhoobj5++UYtI3YVpFudgYdfyhNREJGWdKCz3ppZiDQJbnbCFa04xRDeXGm DH1oiaEeImuwAgJDhx5Aki6pjYv+3hWUnoDKKytnDsh X-Received: by 2002:a05:620a:40d2:b0:93c:720c:94e0 with SMTP id af79cd13be357-93f29d36396mr1798506485a.30.1792515461895; Tue, 20 Oct 2026 09:57:41 -0700 (PDT) Received: from mbili.waya ([64.203.83.2]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-91c10a441acsm3034586d6.6.2026.10.20.09.57.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Oct 2026 09:57:41 -0700 (PDT) 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, 20 Oct 2026 12:57:30 -0400 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: L5XNX455Z2AD6GLAXRH3GOMRBUKCHJ3Q X-Message-ID-Hash: L5XNX455Z2AD6GLAXRH3GOMRBUKCHJ3Q 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 v8 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 Y29yZSByZWFzb24uDQoNClJlYWQgcS0+Y29uZmlnLT5mbG93X21vZGUgb25jZSB3aXRoIFJFQURf T05DRSgpIGluIGNha2VfZW5xdWV1ZSgpIGFuZA0KcGFzcyB0aGF0IHZhbHVlIHRvIGJvdGggY2Fr ZV9oYXNoX2tleXMoKSBhbmQgY2FrZV9oYXNoX3Jlc29sdmUoKS4NCmNha2VfY29uZmlnX2NoYW5n ZSgpIHdyaXRlcyB0aGUgbW9kZSBiZWZvcmUgY2FrZV9jaGFuZ2UoKSB0YWtlcw0Kc2NoX3RyZWVf bG9jaygpLCBhbmQgdGhlIHNwbGl0IGludHJvZHVjZWQgdHdvIHNlcGFyYXRlIGxvYWRzIHdpdGgg dGhlDQpzZWdtZW50YXRpb24gd29yayBiZXR3ZWVuIHRoZW07IGEgY29uY3VycmVudCByZWNvbmZp Z3VyYXRpb24gY291bGQNCmV4dHJhY3Qga2V5cyBpbiBvbmUgbW9kZSBhbmQgcmVzb2x2ZSB0aGVt IGluIGFub3RoZXIuDQoNCkxpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL25ldGRldi8xNzky MzE5MzMwNjguMzEzNS44MDM0MDc5MjYzMzA3Nzk4NkBrZXJuZWwub3JnLw0KUmV2aWV3ZWQtYnk6 IFZpY3RvciBOb2d1ZWlyYSA8dmljdG9yQG1vamF0YXR1LmNvbT4NClNpZ25lZC1vZmYtYnk6IEph bWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+DQoNCi0tLQ0KDQp2NyAtPiB2ODogdGhl IG9yaWdpbmFsIHNrYiBpcyBjb25zdW1lZCB1bmNvbmRpdGlvbmFsbHkgcmlnaHQgYWZ0ZXIgYQ0K c3VjY2Vzc2Z1bCBzcGxpdCAtLSB0aGUgY2FsbGVyJ3MgcmVmZXJlbmNlOyBhIGZyYWdsaXN0IEdT TyB0YWtlcyB0aGUNCmxpc3QncyBvd24gcmVmZXJlbmNlIG9uIHRoZSBzYW1lIHNrYiBpbiBza2Jf c2VnbWVudF9saXN0KCkgLS0gc28gdGhlDQpyZWplY3QgYnJhbmNoIHRhZ3MgZXZlcnkgZGVmZXJy ZWQgc2VnbWVudCBhbmQgZHJvcHMgdGhlIHdob2xlIGxpc3Qgd2l0aA0KcWRpc2NfZHJvcF9hbGwo KSwgdGhlIGFkbWl0dGVkIHBhdGggbm8gbG9uZ2VyIGNvbnN1bWVzIHRoZSBza2IgYWZ0ZXIgdGhl DQp3YWxrLCBhbmQgYm90aCBzcGVjaWFsLWNhc2UgY29tbWVudHMgYXJlIGdvbmUuICAoVG9rZQ0K SMO4aWxhbmQtSsO4cmdlbnNlbiwgdjcgcmV2aWV3KQ0KLS0tDQogbmV0L3NjaGVkL3NjaF9jYWtl LmMgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KIDEg ZmlsZSBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkNCg0KZGlmZiAt LWdpdCBhL25ldC9zY2hlZC9zY2hfY2FrZS5jIGIvbmV0L3NjaGVkL3NjaF9jYWtlLmMNCmluZGV4 IDkxYzMzMjk1YjMwYi4uNzlkNmY2Zjc2ZGJjIDEwMDY0NA0KLS0tIGEvbmV0L3NjaGVkL3NjaF9j YWtlLmMNCisrKyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jDQpAQCAtNzA2LDE5ICs3MDYsMjggQEAg c3RhdGljIHUxNiBjYWtlX2dldF9mbG93X3F1YW50dW0oc3RydWN0IGNha2VfdGluX2RhdGEgKnEs DQogCQlnZXRfcmFuZG9tX3UxNigpKSA+PiAxNjsNCiB9DQogDQotc3RhdGljIHUzMiBjYWtlX2hh c2goc3RydWN0IGNha2VfdGluX2RhdGEgKnEsIGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsDQot CQkgICAgIGludCBmbG93X21vZGUsIHUxNiBmbG93X292ZXJyaWRlLCB1MTYgaG9zdF9vdmVycmlk ZSkNCitzdHJ1Y3QgY2FrZV9oYXNoX2tleXMgew0KKwl1MzIgc3JjaG9zdF9oYXNoOw0KKwl1MzIg ZHN0aG9zdF9oYXNoOw0KKwl1MzIgZmxvd19oYXNoOw0KK307DQorDQorc3RhdGljIHZvaWQgY2Fr ZV9oYXNoX2tleXMoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGZsb3dfbW9kZSwNCisJ CQkgICB1MTYgZmxvd19vdmVycmlkZSwgdTE2IGhvc3Rfb3ZlcnJpZGUsDQorCQkJICAgc3RydWN0 IGNha2VfaGFzaF9rZXlzICpvdXQpDQogew0KIAlib29sIGhhc2hfZmxvd3MgPSAoIWZsb3dfb3Zl cnJpZGUgJiYgISEoZmxvd19tb2RlICYgQ0FLRV9GTE9XX0ZMT1dTKSk7DQogCWJvb2wgaGFzaF9o b3N0cyA9ICghaG9zdF9vdmVycmlkZSAmJiAhIShmbG93X21vZGUgJiBDQUtFX0ZMT1dfSE9TVFMp KTsNCiAJYm9vbCBuYXRfZW5hYmxlZCA9ICEhKGZsb3dfbW9kZSAmIENBS0VfRkxPV19OQVRfRkxB Ryk7DQotCXUzMiBmbG93X2hhc2ggPSAwLCBzcmNob3N0X2hhc2ggPSAwLCBkc3Rob3N0X2hhc2gg PSAwOw0KLQl1MTYgcmVkdWNlZF9oYXNoLCBzcmNob3N0X2lkeCwgZHN0aG9zdF9pZHg7DQogCXN0 cnVjdCBmbG93X2tleXMga2V5cywgaG9zdF9rZXlzOw0KIAlib29sIHVzZV9za2JoYXNoID0gc2ti LT5sNF9oYXNoOw0KIA0KKwlvdXQtPmZsb3dfaGFzaCA9IDA7DQorCW91dC0+c3JjaG9zdF9oYXNo ID0gMDsNCisJb3V0LT5kc3Rob3N0X2hhc2ggPSAwOw0KKw0KIAlpZiAodW5saWtlbHkoZmxvd19t b2RlID09IENBS0VfRkxPV19OT05FKSkNCi0JCXJldHVybiAwOw0KKwkJcmV0dXJuOw0KIA0KIAkv KiBJZiBib3RoIG92ZXJyaWRlcyBhcmUgc2V0LCBvciB3ZSBjYW4gdXNlIHRoZSBTS0IgaGFzaCBh bmQgbmF0IG1vZGUgaXMNCiAJICogZGlzYWJsZWQsIHdlIGNhbiBza2lwIHBhY2tldCBkaXNzZWN0 aW9uIGVudGlyZWx5LiBJZiBuYXQgbW9kZSBpcw0KQEAgLTc1Myw1MCArNzYyLDY0IEBAIHN0YXRp YyB1MzIgY2FrZV9oYXNoKHN0cnVjdCBjYWtlX3Rpbl9kYXRhICpxLCBjb25zdCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLA0KIAlzd2l0Y2ggKGhvc3Rfa2V5cy5jb250cm9sLmFkZHJfdHlwZSkgew0KIAlj YXNlIEZMT1dfRElTU0VDVE9SX0tFWV9JUFY0X0FERFJTOg0KIAkJaG9zdF9rZXlzLmFkZHJzLnY0 YWRkcnMuc3JjID0gMDsNCi0JCWRzdGhvc3RfaGFzaCA9IGZsb3dfaGFzaF9mcm9tX2tleXMoJmhv c3Rfa2V5cyk7DQorCQlvdXQtPmRzdGhvc3RfaGFzaCA9IGZsb3dfaGFzaF9mcm9tX2tleXMoJmhv c3Rfa2V5cyk7DQogCQlob3N0X2tleXMuYWRkcnMudjRhZGRycy5zcmMgPSBrZXlzLmFkZHJzLnY0 YWRkcnMuc3JjOw0KIAkJaG9zdF9rZXlzLmFkZHJzLnY0YWRkcnMuZHN0ID0gMDsNCi0JCXNyY2hv c3RfaGFzaCA9IGZsb3dfaGFzaF9mcm9tX2tleXMoJmhvc3Rfa2V5cyk7DQorCQlvdXQtPnNyY2hv c3RfaGFzaCA9IGZsb3dfaGFzaF9mcm9tX2tleXMoJmhvc3Rfa2V5cyk7DQogCQlicmVhazsNCiAN CiAJY2FzZSBGTE9XX0RJU1NFQ1RPUl9LRVlfSVBWNl9BRERSUzoNCiAJCW1lbXNldCgmaG9zdF9r ZXlzLmFkZHJzLnY2YWRkcnMuc3JjLCAwLA0KIAkJICAgICAgIHNpemVvZihob3N0X2tleXMuYWRk cnMudjZhZGRycy5zcmMpKTsNCi0JCWRzdGhvc3RfaGFzaCA9IGZsb3dfaGFzaF9mcm9tX2tleXMo Jmhvc3Rfa2V5cyk7DQorCQlvdXQtPmRzdGhvc3RfaGFzaCA9IGZsb3dfaGFzaF9mcm9tX2tleXMo Jmhvc3Rfa2V5cyk7DQogCQlob3N0X2tleXMuYWRkcnMudjZhZGRycy5zcmMgPSBrZXlzLmFkZHJz LnY2YWRkcnMuc3JjOw0KIAkJbWVtc2V0KCZob3N0X2tleXMuYWRkcnMudjZhZGRycy5kc3QsIDAs DQogCQkgICAgICAgc2l6ZW9mKGhvc3Rfa2V5cy5hZGRycy52NmFkZHJzLmRzdCkpOw0KLQkJc3Jj aG9zdF9oYXNoID0gZmxvd19oYXNoX2Zyb21fa2V5cygmaG9zdF9rZXlzKTsNCisJCW91dC0+c3Jj aG9zdF9oYXNoID0gZmxvd19oYXNoX2Zyb21fa2V5cygmaG9zdF9rZXlzKTsNCiAJCWJyZWFrOw0K IA0KIAlkZWZhdWx0Og0KLQkJZHN0aG9zdF9oYXNoID0gMDsNCi0JCXNyY2hvc3RfaGFzaCA9IDA7 DQorCQlvdXQtPmRzdGhvc3RfaGFzaCA9IDA7DQorCQlvdXQtPnNyY2hvc3RfaGFzaCA9IDA7DQog CX0NCiANCiAJLyogVGhpcyAqbXVzdCogYmUgYWZ0ZXIgdGhlIGFib3ZlIHN3aXRjaCwgc2luY2Ug YXMgYQ0KIAkgKiBzaWRlLWVmZmVjdCBpdCBzb3J0cyB0aGUgc3JjIGFuZCBkc3QgYWRkcmVzc2Vz Lg0KIAkgKi8NCiAJaWYgKGhhc2hfZmxvd3MgJiYgIXVzZV9za2JoYXNoKQ0KLQkJZmxvd19oYXNo ID0gZmxvd19oYXNoX2Zyb21fa2V5cygma2V5cyk7DQorCQlvdXQtPmZsb3dfaGFzaCA9IGZsb3df aGFzaF9mcm9tX2tleXMoJmtleXMpOw0KIA0KIHNraXBfaGFzaDoNCiAJaWYgKGZsb3dfb3ZlcnJp ZGUpDQotCQlmbG93X2hhc2ggPSBmbG93X292ZXJyaWRlIC0gMTsNCisJCW91dC0+Zmxvd19oYXNo ID0gZmxvd19vdmVycmlkZSAtIDE7DQogCWVsc2UgaWYgKHVzZV9za2JoYXNoICYmIChmbG93X21v ZGUgJiBDQUtFX0ZMT1dfRkxPV1MpKQ0KLQkJZmxvd19oYXNoID0gc2tiLT5oYXNoOw0KKwkJb3V0 LT5mbG93X2hhc2ggPSBza2ItPmhhc2g7DQogCWlmIChob3N0X292ZXJyaWRlKSB7DQotCQlkc3Ro b3N0X2hhc2ggPSBob3N0X292ZXJyaWRlIC0gMTsNCi0JCXNyY2hvc3RfaGFzaCA9IGhvc3Rfb3Zl cnJpZGUgLSAxOw0KKwkJb3V0LT5kc3Rob3N0X2hhc2ggPSBob3N0X292ZXJyaWRlIC0gMTsNCisJ CW91dC0+c3JjaG9zdF9oYXNoID0gaG9zdF9vdmVycmlkZSAtIDE7DQogCX0NCiANCiAJaWYgKCEo Zmxvd19tb2RlICYgQ0FLRV9GTE9XX0ZMT1dTKSkgew0KIAkJaWYgKGZsb3dfbW9kZSAmIENBS0Vf RkxPV19TUkNfSVApDQotCQkJZmxvd19oYXNoIF49IHNyY2hvc3RfaGFzaDsNCisJCQlvdXQtPmZs b3dfaGFzaCBePSBvdXQtPnNyY2hvc3RfaGFzaDsNCiANCiAJCWlmIChmbG93X21vZGUgJiBDQUtF X0ZMT1dfRFNUX0lQKQ0KLQkJCWZsb3dfaGFzaCBePSBkc3Rob3N0X2hhc2g7DQorCQkJb3V0LT5m bG93X2hhc2ggXj0gb3V0LT5kc3Rob3N0X2hhc2g7DQogCX0NCit9DQorDQorLyogQ29tbWl0IHRo ZSBmbG93IGludG8gdGhlIHNldC1hc3NvY2lhdGl2ZSB0YWJsZSAocS0+dGFnc1tdLCBob3N0DQor ICogaW5kaWNlcywgYnVsayBjb3VudGVycykuIE9ubHkgYWZ0ZXIgdGhlIHBhY2tldCBpcyBhZG1p dHRlZC4NCisgKi8NCitzdGF0aWMgdTMyIGNha2VfaGFzaF9yZXNvbHZlKHN0cnVjdCBjYWtlX3Rp bl9kYXRhICpxLA0KKwkJCSAgICAgY29uc3Qgc3RydWN0IGNha2VfaGFzaF9rZXlzICprZXlzLCBp bnQgZmxvd19tb2RlKQ0KK3sNCisJdTMyIGZsb3dfaGFzaCA9IGtleXMtPmZsb3dfaGFzaCwgc3Jj aG9zdF9oYXNoID0ga2V5cy0+c3JjaG9zdF9oYXNoLA0KKwkgICAgZHN0aG9zdF9oYXNoID0ga2V5 cy0+ZHN0aG9zdF9oYXNoOw0KKwl1MTYgcmVkdWNlZF9oYXNoLCBzcmNob3N0X2lkeCwgZHN0aG9z dF9pZHg7DQorDQorCWlmICh1bmxpa2VseShmbG93X21vZGUgPT0gQ0FLRV9GTE9XX05PTkUpKQ0K KwkJcmV0dXJuIDA7DQogDQogCXJlZHVjZWRfaGFzaCA9IGZsb3dfaGFzaCAlIENBS0VfUVVFVUVT Ow0KIA0KQEAgLTE3NjEsMTMgKzE3ODQsMTcgQEAgc3RhdGljIHMzMiBjYWtlX2VucXVldWUoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gsDQogew0KIAl1MzIgaWR4LCB0aW4s IHByZXZfcWxlbiwgcHJldl9iYWNrbG9nLCBkcm9wX2lkOw0KIAlzdHJ1Y3QgY2FrZV9zY2hlZF9k YXRhICpxID0gcWRpc2NfcHJpdihzY2gpOw0KKwlpbnQgZmxvd19tb2RlID0gUkVBRF9PTkNFKHEt PmNvbmZpZy0+Zmxvd19tb2RlKTsNCiAJaW50IGxlbiA9IHFkaXNjX3BrdF9sZW4oc2tiKSwgcmV0 Ow0KIAl1MTYgZmxvd19vdmVycmlkZSwgaG9zdF9vdmVycmlkZTsNCisJc3RydWN0IHNrX2J1ZmYg KnNlZ3MgPSBOVUxMOw0KKwlzdHJ1Y3QgY2FrZV9oYXNoX2tleXMga2V5czsNCiAJc3RydWN0IHNr X2J1ZmYgKmFjayA9IE5VTEw7DQogCWt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7DQogCXN0cnVj dCBjYWtlX3Rpbl9kYXRhICpiOw0KIAlzdHJ1Y3QgY2FrZV9mbG93ICpmbG93Ow0KIAlib29sIHNh bWVfZmxvdyA9IGZhbHNlOw0KKwl1NjQgc2xlbiA9IDA7DQogDQogCS8qIENsYXNzaWZ5IGZpcnN0 OiBhIHRlcm1pbmFsIFRDIGFjdGlvbiBjb25zdW1lcyB0aGUgcGFja2V0LiAqLw0KIAlpZiAoY2Fr ZV90Y2ZfY2xhc3NpZnkoc2NoLCBza2IsICZmbG93X292ZXJyaWRlLCAmaG9zdF9vdmVycmlkZSwg JnJldCkpIHsNCkBAIC0xNzg0LDEyICsxODExLDQ5IEBAIHN0YXRpYyBzMzIgY2FrZV9lbnF1ZXVl KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoLA0KIAkJCQkJIFFESVNDX0RS T1BfT1ZFUkxJTUlUKTsNCiAJfQ0KIA0KLQkvKiBjaG9vc2UgZmxvdyB0byBpbnNlcnQgaW50byAq Lw0KKwkvKiBTZWxlY3QgdGhlIHRpbiBhbmQgZXh0cmFjdCB0aGUga2V5cyBiZWZvcmUgc2VnbWVu dGluZzoNCisJICogc2tiX2dzb19zZWdtZW50KCkgcmV3cml0ZXMgZW5jYXBzdWxhdGVkIGhlYWRl cnMsIHdoaWNoDQorCSAqIGNoYW5nZXMgdGhlIGtleXMuDQorCSAqLw0KIAliID0gY2FrZV9zZWxl Y3RfdGluKHNjaCwgc2tiKTsNCi0JaWR4ID0gY2FrZV9oYXNoKGIsIHNrYiwgcS0+Y29uZmlnLT5m bG93X21vZGUsIGZsb3dfb3ZlcnJpZGUsDQotCQkJaG9zdF9vdmVycmlkZSkgKyAxOw0KKwljYWtl X2hhc2hfa2V5cyhza2IsIGZsb3dfbW9kZSwgZmxvd19vdmVycmlkZSwgaG9zdF9vdmVycmlkZSwg JmtleXMpOw0KKw0KKwlpZiAocWRpc2NfcGt0X3NlZ3Moc2tiKSA+IDEgJiYgcS0+Y29uZmlnLT5y YXRlX2ZsYWdzICYgQ0FLRV9GTEFHX1NQTElUX0dTTykgew0KKwkJbmV0ZGV2X2ZlYXR1cmVzX3Qg ZmVhdHVyZXMgPSBuZXRpZl9za2JfZmVhdHVyZXMoc2tiKTsNCisJCXN0cnVjdCBza19idWZmICpu c2tiLCAqc2VnOw0KKw0KKwkJc2VncyA9IHNrYl9nc29fc2VnbWVudChza2IsIGZlYXR1cmVzICYg fk5FVElGX0ZfR1NPX01BU0spOw0KKwkJaWYgKElTX0VSUl9PUl9OVUxMKHNlZ3MpKQ0KKwkJCXJl dHVybiBxZGlzY19kcm9wKHNrYiwgc2NoLCB0b19mcmVlKTsNCisNCisJCS8qIHdlIG5ldmVyIHVz ZSB0aGUgb3JpZ2luYWwgc2tiIGFmdGVyIHNwbGl0dGluZyAqLw0KKwkJY29uc3VtZV9za2Ioc2ti KTsNCisJCXNrYiA9IE5VTEw7DQorDQorCQkvKiBUaGUgc3BsaXQgcGF0aCBhY2NvdW50cyB0aGUg c2VnbWVudCBzdW0sIG5vdCB0aGUNCisJCSAqIHN0YWItYWRqdXN0ZWQgcWRpc2NfcGt0X2xlbigp LCBzbyBjaGVjayBpdCBoZXJlLg0KKwkJICovDQorCQlza2JfbGlzdF93YWxrX3NhZmUoc2Vncywg c2VnLCBuc2tiKQ0KKwkJCXNsZW4gKz0gc2VnLT5sZW47DQorDQorCQlpZiAodW5saWtlbHkoKHU2 NClzY2gtPnFzdGF0cy5iYWNrbG9nICsgc2xlbiA+IFFESVNDX01BWF9CQUNLTE9HKSkgew0KKwkJ CXFkaXNjX3FzdGF0c19vdmVybGltaXQoc2NoKTsNCisJCQkvKiBfX3NrYl9nc29fc2VnbWVudCgp IHB1dHMgU0tCX0dTT19DQiBhdCBjYg0KKwkJCSAqIG9mZnNldCAzMiwgb3ZlciB0Y19za2JfY2Iu ZHJvcF9yZWFzb247IGV2ZXJ5DQorCQkJICogc2VnbWVudCBpbmhlcml0cyBpdC4gVGFnIGVhY2gg b25lIHdpdGggdGhlDQorCQkJICogcWRpc2MgZHJvcCByZWFzb24uDQorCQkJICovDQorCQkJc2ti X2xpc3Rfd2Fsa19zYWZlKHNlZ3MsIHNlZywgbnNrYikNCisJCQkJdGNmX3NldF9xZGlzY19kcm9w X3JlYXNvbihzZWcsDQorCQkJCQkJCSAgUURJU0NfRFJPUF9PVkVSTElNSVQpOw0KKw0KKwkJCXJl dHVybiBxZGlzY19kcm9wX2FsbChzZWdzLCBzY2gsIHRvX2ZyZWUpOw0KKwkJfQ0KKwl9DQorDQor CS8qIEFkbWl0dGVkOiByZXNvbHZlIHRoZSBmbG93LiAqLw0KKwlpZHggPSBjYWtlX2hhc2hfcmVz b2x2ZShiLCAma2V5cywgZmxvd19tb2RlKTsNCiAJdGluID0gKHUzMikoYiAtIHEtPnRpbnMpOw0K LQlpZHgtLTsNCiAJZmxvdyA9ICZiLT5mbG93c1tpZHhdOw0KIA0KIAkvKiBlbnN1cmUgc2hhcGVy IHN0YXRlIGlzbid0IHN0YWxlICovDQpAQCAtMTgxNiwxNCArMTg4MCw5IEBAIHN0YXRpYyBzMzIg Y2FrZV9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoLA0KIAlp ZiAodW5saWtlbHkobGVuID4gYi0+bWF4X3NrYmxlbikpDQogCQlXUklURV9PTkNFKGItPm1heF9z a2JsZW4sIGxlbik7DQogDQotCWlmIChxZGlzY19wa3Rfc2Vncyhza2IpID4gMSAmJiBxLT5jb25m aWctPnJhdGVfZmxhZ3MgJiBDQUtFX0ZMQUdfU1BMSVRfR1NPKSB7DQotCQlzdHJ1Y3Qgc2tfYnVm ZiAqc2VncywgKm5za2IsICpzZWc7DQotCQluZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyA9IG5l dGlmX3NrYl9mZWF0dXJlcyhza2IpOw0KLQkJdW5zaWduZWQgaW50IHNsZW4gPSAwLCBudW1zZWdz ID0gMDsNCi0NCi0JCXNlZ3MgPSBza2JfZ3NvX3NlZ21lbnQoc2tiLCBmZWF0dXJlcyAmIH5ORVRJ Rl9GX0dTT19NQVNLKTsNCi0JCWlmIChJU19FUlJfT1JfTlVMTChzZWdzKSkNCi0JCQlyZXR1cm4g cWRpc2NfZHJvcChza2IsIHNjaCwgdG9fZnJlZSk7DQorCWlmIChzZWdzKSB7DQorCQlzdHJ1Y3Qg c2tfYnVmZiAqbnNrYiwgKnNlZzsNCisJCXVuc2lnbmVkIGludCBudW1zZWdzID0gMDsNCiANCiAJ CXNrYl9saXN0X3dhbGtfc2FmZShzZWdzLCBzZWcsIG5za2IpIHsNCiAJCQlza2JfbWFya19ub3Rf b25fbGlzdChzZWcpOw0KQEAgLTE4MzcsNyArMTg5Niw2IEBAIHN0YXRpYyBzMzIgY2FrZV9lbnF1 ZXVlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoLA0KIAkJCXFkaXNjX3Fs ZW5faW5jKHNjaCk7DQogCQkJbnVtc2VncysrOw0KIAkJCXEtPmJ1ZmZlcl91c2VkICs9IHNlZy0+ dHJ1ZXNpemU7DQotCQkJc2xlbiArPSBzZWctPmxlbjsNCiAJCQlXUklURV9PTkNFKGItPnBhY2tl dHMsIGItPnBhY2tldHMgKyAxKTsNCiAJCX0NCiANCkBAIC0xODQ5LDkgKzE5MDcsOCBAQCBzdGF0 aWMgczMyIGNha2VfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNj aCwNCiAJCVdSSVRFX09OQ0UoYi0+YmFja2xvZ3NbaWR4XSwgYi0+YmFja2xvZ3NbaWR4XSArIHNs ZW4pOw0KIA0KIAkJcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhzY2gsIDEtbnVtc2VncywgbGVu LXNsZW4pOw0KLQkJY29uc3VtZV9za2Ioc2tiKTsNCiAJfSBlbHNlIHsNCi0JCS8qIG5vdCBzcGxp dHRpbmcgKi8NCisJCS8qIG5vdCBzcGxpdHRpbmcgLSBza2IgcG9pbnRlciBzdGlsbCB2YWxpZCAq Lw0KIAkJaW50IGFja19wa3RfbGVuID0gMDsNCiANCiAJCWNvYmFsdF9zZXRfZW5xdWV1ZV90aW1l KHNrYiwgbm93KTsNCi0tIA0KMi40My4wDQoNCg==