From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=; dkim=pass header.d=redhat.com; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=redhat.com policy.dmarc=quarantine Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mail.toke.dk (Postfix) with ESMTPS id 337D4B8558B for ; Thu, 08 Jan 2026 17:57:59 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1767891478; 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: in-reply-to:in-reply-to:references:references; bh=w0VRQtyWtlpjzCobkhPA/bxrDXQwuOX3Zf3Yncleem0=; b=TIqoaaajEzCZymlo2QBFtQoRUGyhrs8zaKJ7D0pvDt05G4kOk0sTO43bMDuo/1ZQQ9beL2 RcWOvxuJgsLqQ4/CrndS2zk+G4qHzasTl5SyFafk+j4osddWhgBcDT16tfqjUrZTDK7LjF HbP0b5wp9z/IBmRHTHrTorPIo075I54= Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-607-ncm_fb72OjyX9DVRGU9e6A-1; Thu, 08 Jan 2026 11:57:57 -0500 X-MC-Unique: ncm_fb72OjyX9DVRGU9e6A-1 X-Mimecast-MFC-AGG-ID: ncm_fb72OjyX9DVRGU9e6A_1767891476 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-64d01707c32so6801223a12.1 for ; Thu, 08 Jan 2026 08:57:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767891476; x=1768496276; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=w0VRQtyWtlpjzCobkhPA/bxrDXQwuOX3Zf3Yncleem0=; b=di5xrNeAJl9qg6kv1XyqVnfYVW8y1TwMDQUHdi7/mF0+HGBtTiBNfeZffpuk1ScbRO rhDx5ZXFLYfyyA8Lu0miq0OYila9nOulGM/nMm6gRLf3A0xU0oyyiLa5jghE1K8FkjMC +gqxxEWK4/i2k6dOiuVqWWKy4A+OJ/rwjyeHKKvqJWMtAMSAyi3w764MfnH0rip5aVHm Z0HpgnbmzNe9CpsoK9QKIraFNsmPeqeU4xFgSv+R6+fdy1UAV67smajeeu9DMLSc7ulW jXeYGF82GiZlno7hxANemzwMDNDythSHnhKfaPKYUsdMLxS42o4cnQ2e2cxz7oiCW9WE ouYg== X-Forwarded-Encrypted: i=1; AJvYcCUKPgpx/AGr7c2ec9gNr9ZkW9Na4+73Lfv15Gacm6EBp1bA0JaTAI8H2M5QvYIetb4WmDnK@lists.bufferbloat.net X-Gm-Message-State: AOJu0Yw21jtLXWyUSJUljNxUkhtABvpBEDPb4LjLdQLRaHGb72JMkjao 5S63RxxkcqmQ+Rb388jHN1xZXrdqMRFhK0L83f2lvIyWdODDfE5M4XqXQv72nuY/cLCCh0g42dn K3uKjsCStw4gAd+K9OqJCfJ2K7ALZSSYqrGmZHvCAiGMlqLn2vMIpqMgPz892y40= X-Gm-Gg: AY/fxX5G0zs+qnFnTGhsPZx40kGU+3LgAwr5PBax3h1tAHP61jdhaf3yUWUUIZR7OsQ 8xiBf04mq0vpPeniz9QENJLmFJqn+bqFamxHxPoMvhp5+kRCALF53Mro0v4dVg9dkaWBJsS+N9S iHFkvySu3ltZxJfvVoi1j2nOjsnvoJf21OJMC5HQfyUOW8sOO3fHdd/tTLdNs4Syln/Xm4yXwms R11G48LlFChwWFcf4Tc60I4zsRCW3jlUpJlp/V7Bxgqxwr8dKfq45Rohe9KXroyWCKpUpVe3yGQ dWndU0wSkrLUFsypAEkI1CYc7Tq0KhuwCfv5OsvUTVV8WMJo+HLIiAbdCdH7rp2eAao1B5WJMhW /p6M+1ZoNdWMUNXIHO805oTbG2zDSnWzYKUTx X-Received: by 2002:a17:907:7b8d:b0:b76:791d:1c5c with SMTP id a640c23a62f3a-b844518d800mr681809866b.9.1767891475834; Thu, 08 Jan 2026 08:57:55 -0800 (PST) X-Google-Smtp-Source: AGHT+IEn3ywfuyYSJK5cn2ap/TME+/wbKHSEFmv4WE+49MUqOtr8ydi99dI6kFTLg3kVp6uHsoNGZg== X-Received: by 2002:a17:907:7b8d:b0:b76:791d:1c5c with SMTP id a640c23a62f3a-b844518d800mr681807466b.9.1767891475386; Thu, 08 Jan 2026 08:57:55 -0800 (PST) Received: from alrua-x1.borgediget.toke.dk (alrua-x1.borgediget.toke.dk. [2a0c:4d80:42:443::2]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b842a4d0290sm855178166b.32.2026.01.08.08.57.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jan 2026 08:57:53 -0800 (PST) Received: by alrua-x1.borgediget.toke.dk (Postfix, from userid 1000) id C5C3B4083BB; Thu, 08 Jan 2026 17:57:52 +0100 (CET) From: =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= Date: Thu, 08 Jan 2026 17:56:03 +0100 MIME-Version: 1.0 Message-Id: <20260108-mq-cake-sub-qdisc-v7-1-4eb645f0419c@redhat.com> References: <20260108-mq-cake-sub-qdisc-v7-0-4eb645f0419c@redhat.com> In-Reply-To: <20260108-mq-cake-sub-qdisc-v7-0-4eb645f0419c@redhat.com> To: =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman Cc: =?utf-8?q?Jonas_K=C3=B6ppeler?= , cake@lists.bufferbloat.net, netdev@vger.kernel.org, Willem de Bruijn , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= X-Mailer: b4 0.14.3 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 5ZwZlzDwqmi2lIIftYKPlAi-2hnPhA_qcSBW1iR1XbU_1767891476 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: 2A7NN6QTD4IB5XGIJH4L4DEIXOW2DLPN X-Message-ID-Hash: 2A7NN6QTD4IB5XGIJH4L4DEIXOW2DLPN X-MailFrom: toke@redhat.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 v7 1/6] net/sched: Export mq functions for reuse List-Id: Cake - FQ_codel the next generation Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: VG8gZW5hYmxlIHRoZSBjYWtlX21xIHFkaXNjIHRvIHJldXNlIGNvZGUgZnJvbSB0aGUgbXEgcWRp c2MsIGV4cG9ydCBhDQpidW5jaCBvZiBmdW5jdGlvbnMgZnJvbSBzY2hfbXEuIFNwbGl0IGNvbW1v biBmdW5jdGlvbmFsaXR5IG91dCBmcm9tIHNvbWUNCmZ1bmN0aW9ucyBzbyBpdCBjYW4gYmUgY29t cG9zZWQgd2l0aCBvdGhlciBjb2RlLCBhbmQgZXhwb3J0IG90aGVyDQpmdW5jdGlvbnMgd2hvbGVz YWxlLiBUbyBkaXNjb3VyYWdlIHdhbnRvbiByZXVzZSwgcHV0IHRoZSBzeW1ib2xzIGludG8gYQ0K bmV3IE5FVF9TQ0hFRF9JTlRFUk5BTCBuYW1lc3BhY2UsIGFuZCBhIHNjaF9wcml2LmggaGVhZGVy IGZpbGUuDQoNCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkLg0KDQpSZXZpZXdlZC1ieTog V2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPg0KU2lnbmVkLW9mZi1ieTogVG9r ZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+DQotLS0NCiBNQUlOVEFJTkVS UyAgICAgICAgICAgIHwgIDEgKw0KIGluY2x1ZGUvbmV0L3NjaF9wcml2LmggfCAyNyArKysrKysr KysrKysrKysrKysrDQogbmV0L3NjaGVkL3NjaF9tcS5jICAgICB8IDcxICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tDQogMyBmaWxlcyBjaGFuZ2VkLCA3 NyBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL01BSU5UQUlO RVJTIGIvTUFJTlRBSU5FUlMNCmluZGV4IDc2NWFkMmRhYTIxOC4uMDFiNjkxY2IwMGQ3IDEwMDY0 NA0KLS0tIGEvTUFJTlRBSU5FUlMNCisrKyBiL01BSU5UQUlORVJTDQpAQCAtMjU0NDYsNiArMjU0 NDYsNyBAQCBMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnDQogUzoJTWFpbnRhaW5lZA0KIEY6CWlu Y2x1ZGUvbmV0L3BrdF9jbHMuaA0KIEY6CWluY2x1ZGUvbmV0L3BrdF9zY2hlZC5oDQorRjoJaW5j bHVkZS9uZXQvc2NoX3ByaXYuaA0KIEY6CWluY2x1ZGUvbmV0L3RjX2FjdC8NCiBGOglpbmNsdWRl L3VhcGkvbGludXgvcGt0X2Nscy5oDQogRjoJaW5jbHVkZS91YXBpL2xpbnV4L3BrdF9zY2hlZC5o DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvc2NoX3ByaXYuaCBiL2luY2x1ZGUvbmV0L3NjaF9w cml2LmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjQ3ODlmNjY4 YWU4Nw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvaW5jbHVkZS9uZXQvc2NoX3ByaXYuaA0KQEAgLTAs MCArMSwyNyBAQA0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovDQorI2lm bmRlZiBfX05FVF9TQ0hFRF9QUklWX0gNCisjZGVmaW5lIF9fTkVUX1NDSEVEX1BSSVZfSA0KKw0K KyNpbmNsdWRlIDxuZXQvc2NoX2dlbmVyaWMuaD4NCisNCitzdHJ1Y3QgbXFfc2NoZWQgew0KKwlz dHJ1Y3QgUWRpc2MJCSoqcWRpc2NzOw0KK307DQorDQoraW50IG1xX2luaXRfY29tbW9uKHN0cnVj dCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsDQorCQkgICBzdHJ1Y3QgbmV0bGlua19l eHRfYWNrICpleHRhY2ssDQorCQkgICBjb25zdCBzdHJ1Y3QgUWRpc2Nfb3BzICpxZGlzY19vcHMp Ow0KK3ZvaWQgbXFfZGVzdHJveV9jb21tb24oc3RydWN0IFFkaXNjICpzY2gpOw0KK3ZvaWQgbXFf YXR0YWNoKHN0cnVjdCBRZGlzYyAqc2NoKTsNCit2b2lkIG1xX2R1bXBfY29tbW9uKHN0cnVjdCBR ZGlzYyAqc2NoLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCitzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpt cV9zZWxlY3RfcXVldWUoc3RydWN0IFFkaXNjICpzY2gsDQorCQkJCSAgICAgc3RydWN0IHRjbXNn ICp0Y20pOw0KK3N0cnVjdCBRZGlzYyAqbXFfbGVhZihzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWdu ZWQgbG9uZyBjbCk7DQordW5zaWduZWQgbG9uZyBtcV9maW5kKHN0cnVjdCBRZGlzYyAqc2NoLCB1 MzIgY2xhc3NpZCk7DQoraW50IG1xX2R1bXBfY2xhc3Moc3RydWN0IFFkaXNjICpzY2gsIHVuc2ln bmVkIGxvbmcgY2wsDQorCQkgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0Y21zZyAqdGNt KTsNCitpbnQgbXFfZHVtcF9jbGFzc19zdGF0cyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQg bG9uZyBjbCwNCisJCQlzdHJ1Y3QgZ25ldF9kdW1wICpkKTsNCit2b2lkIG1xX3dhbGsoc3RydWN0 IFFkaXNjICpzY2gsIHN0cnVjdCBxZGlzY193YWxrZXIgKmFyZyk7DQorDQorI2VuZGlmDQpkaWZm IC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9tcS5jIGIvbmV0L3NjaGVkL3NjaF9tcS5jDQppbmRleCBj ODYwMTE5YThmMDkuLmJiOTRjZDU3Nzk0MyAxMDA2NDQNCi0tLSBhL25ldC9zY2hlZC9zY2hfbXEu Yw0KKysrIGIvbmV0L3NjaGVkL3NjaF9tcS5jDQpAQCAtMTUsMTEgKzE1LDcgQEANCiAjaW5jbHVk ZSA8bmV0L25ldGxpbmsuaD4NCiAjaW5jbHVkZSA8bmV0L3BrdF9jbHMuaD4NCiAjaW5jbHVkZSA8 bmV0L3BrdF9zY2hlZC5oPg0KLSNpbmNsdWRlIDxuZXQvc2NoX2dlbmVyaWMuaD4NCi0NCi1zdHJ1 Y3QgbXFfc2NoZWQgew0KLQlzdHJ1Y3QgUWRpc2MJCSoqcWRpc2NzOw0KLX07DQorI2luY2x1ZGUg PG5ldC9zY2hfcHJpdi5oPg0KIA0KIHN0YXRpYyBpbnQgbXFfb2ZmbG9hZChzdHJ1Y3QgUWRpc2Mg KnNjaCwgZW51bSB0Y19tcV9jb21tYW5kIGNtZCkNCiB7DQpAQCAtNDksMjMgKzQ1LDI5IEBAIHN0 YXRpYyBpbnQgbXFfb2ZmbG9hZF9zdGF0cyhzdHJ1Y3QgUWRpc2MgKnNjaCkNCiAJcmV0dXJuIHFk aXNjX29mZmxvYWRfZHVtcF9oZWxwZXIoc2NoLCBUQ19TRVRVUF9RRElTQ19NUSwgJm9wdCk7DQog fQ0KIA0KLXN0YXRpYyB2b2lkIG1xX2Rlc3Ryb3koc3RydWN0IFFkaXNjICpzY2gpDQordm9pZCBt cV9kZXN0cm95X2NvbW1vbihzdHJ1Y3QgUWRpc2MgKnNjaCkNCiB7DQogCXN0cnVjdCBuZXRfZGV2 aWNlICpkZXYgPSBxZGlzY19kZXYoc2NoKTsNCiAJc3RydWN0IG1xX3NjaGVkICpwcml2ID0gcWRp c2NfcHJpdihzY2gpOw0KIAl1bnNpZ25lZCBpbnQgbnR4Ow0KIA0KLQltcV9vZmZsb2FkKHNjaCwg VENfTVFfREVTVFJPWSk7DQotDQogCWlmICghcHJpdi0+cWRpc2NzKQ0KIAkJcmV0dXJuOw0KIAlm b3IgKG50eCA9IDA7IG50eCA8IGRldi0+bnVtX3R4X3F1ZXVlcyAmJiBwcml2LT5xZGlzY3NbbnR4 XTsgbnR4KyspDQogCQlxZGlzY19wdXQocHJpdi0+cWRpc2NzW250eF0pOw0KIAlrZnJlZShwcml2 LT5xZGlzY3MpOw0KIH0NCitFWFBPUlRfU1lNQk9MX05TX0dQTChtcV9kZXN0cm95X2NvbW1vbiwg Ik5FVF9TQ0hFRF9JTlRFUk5BTCIpOw0KIA0KLXN0YXRpYyBpbnQgbXFfaW5pdChzdHJ1Y3QgUWRp c2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LA0KLQkJICAgc3RydWN0IG5ldGxpbmtfZXh0X2Fj ayAqZXh0YWNrKQ0KK3N0YXRpYyB2b2lkIG1xX2Rlc3Ryb3koc3RydWN0IFFkaXNjICpzY2gpDQor ew0KKwltcV9vZmZsb2FkKHNjaCwgVENfTVFfREVTVFJPWSk7DQorCW1xX2Rlc3Ryb3lfY29tbW9u KHNjaCk7DQorfQ0KKw0KK2ludCBtcV9pbml0X2NvbW1vbihzdHJ1Y3QgUWRpc2MgKnNjaCwgc3Ry dWN0IG5sYXR0ciAqb3B0LA0KKwkJICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrLA0K KwkJICAgY29uc3Qgc3RydWN0IFFkaXNjX29wcyAqcWRpc2Nfb3BzKQ0KIHsNCiAJc3RydWN0IG5l dF9kZXZpY2UgKmRldiA9IHFkaXNjX2RldihzY2gpOw0KIAlzdHJ1Y3QgbXFfc2NoZWQgKnByaXYg PSBxZGlzY19wcml2KHNjaCk7DQpAQCAtODcsNyArODksOCBAQCBzdGF0aWMgaW50IG1xX2luaXQo c3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCwNCiANCiAJZm9yIChudHggPSAw OyBudHggPCBkZXYtPm51bV90eF9xdWV1ZXM7IG50eCsrKSB7DQogCQlkZXZfcXVldWUgPSBuZXRk ZXZfZ2V0X3R4X3F1ZXVlKGRldiwgbnR4KTsNCi0JCXFkaXNjID0gcWRpc2NfY3JlYXRlX2RmbHQo ZGV2X3F1ZXVlLCBnZXRfZGVmYXVsdF9xZGlzY19vcHMoZGV2LCBudHgpLA0KKwkJcWRpc2MgPSBx ZGlzY19jcmVhdGVfZGZsdChkZXZfcXVldWUsDQorCQkJCQkgIHFkaXNjX29wcyA/OiBnZXRfZGVm YXVsdF9xZGlzY19vcHMoZGV2LCBudHgpLA0KIAkJCQkJICBUQ19IX01BS0UoVENfSF9NQUooc2No LT5oYW5kbGUpLA0KIAkJCQkJCSAgICBUQ19IX01JTihudHggKyAxKSksDQogCQkJCQkgIGV4dGFj ayk7DQpAQCAtOTgsMTIgKzEwMSwyNCBAQCBzdGF0aWMgaW50IG1xX2luaXQoc3RydWN0IFFkaXNj ICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCwNCiAJfQ0KIA0KIAlzY2gtPmZsYWdzIHw9IFRDUV9G X01RUk9PVDsNCisJcmV0dXJuIDA7DQorfQ0KK0VYUE9SVF9TWU1CT0xfTlNfR1BMKG1xX2luaXRf Y29tbW9uLCAiTkVUX1NDSEVEX0lOVEVSTkFMIik7DQorDQorc3RhdGljIGludCBtcV9pbml0KHN0 cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsDQorCQkgICBzdHJ1Y3QgbmV0bGlu a19leHRfYWNrICpleHRhY2spDQorew0KKwlpbnQgcmV0Ow0KKw0KKwlyZXQgPSBtcV9pbml0X2Nv bW1vbihzY2gsIG9wdCwgZXh0YWNrLCBOVUxMKTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7 DQogDQogCW1xX29mZmxvYWQoc2NoLCBUQ19NUV9DUkVBVEUpOw0KIAlyZXR1cm4gMDsNCiB9DQog DQotc3RhdGljIHZvaWQgbXFfYXR0YWNoKHN0cnVjdCBRZGlzYyAqc2NoKQ0KK3ZvaWQgbXFfYXR0 YWNoKHN0cnVjdCBRZGlzYyAqc2NoKQ0KIHsNCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHFk aXNjX2RldihzY2gpOw0KIAlzdHJ1Y3QgbXFfc2NoZWQgKnByaXYgPSBxZGlzY19wcml2KHNjaCk7 DQpAQCAtMTI0LDggKzEzOSw5IEBAIHN0YXRpYyB2b2lkIG1xX2F0dGFjaChzdHJ1Y3QgUWRpc2Mg KnNjaCkNCiAJa2ZyZWUocHJpdi0+cWRpc2NzKTsNCiAJcHJpdi0+cWRpc2NzID0gTlVMTDsNCiB9 DQorRVhQT1JUX1NZTUJPTF9OU19HUEwobXFfYXR0YWNoLCAiTkVUX1NDSEVEX0lOVEVSTkFMIik7 DQogDQotc3RhdGljIGludCBtcV9kdW1wKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQ0KK3ZvaWQgbXFfZHVtcF9jb21tb24oc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBz a19idWZmICpza2IpDQogew0KIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gcWRpc2NfZGV2KHNj aCk7DQogCXN0cnVjdCBRZGlzYyAqcWRpc2M7DQpAQCAtMTUyLDcgKzE2OCwxMiBAQCBzdGF0aWMg aW50IG1xX2R1bXAoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBza19idWZmICpza2IpDQogDQog CQlzcGluX3VubG9ja19iaChxZGlzY19sb2NrKHFkaXNjKSk7DQogCX0NCit9DQorRVhQT1JUX1NZ TUJPTF9OU19HUEwobXFfZHVtcF9jb21tb24sICJORVRfU0NIRURfSU5URVJOQUwiKTsNCiANCitz dGF0aWMgaW50IG1xX2R1bXAoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBza19idWZmICpza2Ip DQorew0KKwltcV9kdW1wX2NvbW1vbihzY2gsIHNrYik7DQogCXJldHVybiBtcV9vZmZsb2FkX3N0 YXRzKHNjaCk7DQogfQ0KIA0KQEAgLTE2NiwxMSArMTg3LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgbmV0 ZGV2X3F1ZXVlICptcV9xdWV1ZV9nZXQoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcg Y2wpDQogCXJldHVybiBuZXRkZXZfZ2V0X3R4X3F1ZXVlKGRldiwgbnR4KTsNCiB9DQogDQotc3Rh dGljIHN0cnVjdCBuZXRkZXZfcXVldWUgKm1xX3NlbGVjdF9xdWV1ZShzdHJ1Y3QgUWRpc2MgKnNj aCwNCi0JCQkJCSAgICBzdHJ1Y3QgdGNtc2cgKnRjbSkNCitzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpt cV9zZWxlY3RfcXVldWUoc3RydWN0IFFkaXNjICpzY2gsDQorCQkJCSAgICAgc3RydWN0IHRjbXNn ICp0Y20pDQogew0KIAlyZXR1cm4gbXFfcXVldWVfZ2V0KHNjaCwgVENfSF9NSU4odGNtLT50Y21f cGFyZW50KSk7DQogfQ0KK0VYUE9SVF9TWU1CT0xfTlNfR1BMKG1xX3NlbGVjdF9xdWV1ZSwgIk5F VF9TQ0hFRF9JTlRFUk5BTCIpOw0KIA0KIHN0YXRpYyBpbnQgbXFfZ3JhZnQoc3RydWN0IFFkaXNj ICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wsIHN0cnVjdCBRZGlzYyAqbmV3LA0KIAkJICAgIHN0cnVj dCBRZGlzYyAqKm9sZCwgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQ0KQEAgLTE5OCwx NCArMjIwLDE1IEBAIHN0YXRpYyBpbnQgbXFfZ3JhZnQoc3RydWN0IFFkaXNjICpzY2gsIHVuc2ln bmVkIGxvbmcgY2wsIHN0cnVjdCBRZGlzYyAqbmV3LA0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3Rh dGljIHN0cnVjdCBRZGlzYyAqbXFfbGVhZihzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9u ZyBjbCkNCitzdHJ1Y3QgUWRpc2MgKm1xX2xlYWYoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVk IGxvbmcgY2wpDQogew0KIAlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVldWUgPSBtcV9xdWV1 ZV9nZXQoc2NoLCBjbCk7DQogDQogCXJldHVybiBydG5sX2RlcmVmZXJlbmNlKGRldl9xdWV1ZS0+ cWRpc2Nfc2xlZXBpbmcpOw0KIH0NCitFWFBPUlRfU1lNQk9MX05TX0dQTChtcV9sZWFmLCAiTkVU X1NDSEVEX0lOVEVSTkFMIik7DQogDQotc3RhdGljIHVuc2lnbmVkIGxvbmcgbXFfZmluZChzdHJ1 Y3QgUWRpc2MgKnNjaCwgdTMyIGNsYXNzaWQpDQordW5zaWduZWQgbG9uZyBtcV9maW5kKHN0cnVj dCBRZGlzYyAqc2NoLCB1MzIgY2xhc3NpZCkNCiB7DQogCXVuc2lnbmVkIGludCBudHggPSBUQ19I X01JTihjbGFzc2lkKTsNCiANCkBAIC0yMTMsOSArMjM2LDEwIEBAIHN0YXRpYyB1bnNpZ25lZCBs b25nIG1xX2ZpbmQoc3RydWN0IFFkaXNjICpzY2gsIHUzMiBjbGFzc2lkKQ0KIAkJcmV0dXJuIDA7 DQogCXJldHVybiBudHg7DQogfQ0KK0VYUE9SVF9TWU1CT0xfTlNfR1BMKG1xX2ZpbmQsICJORVRf U0NIRURfSU5URVJOQUwiKTsNCiANCi1zdGF0aWMgaW50IG1xX2R1bXBfY2xhc3Moc3RydWN0IFFk aXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wsDQotCQkJIHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCB0Y21zZyAqdGNtKQ0KK2ludCBtcV9kdW1wX2NsYXNzKHN0cnVjdCBRZGlzYyAqc2NoLCB1 bnNpZ25lZCBsb25nIGNsLA0KKwkJICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGNtc2cg KnRjbSkNCiB7DQogCXN0cnVjdCBuZXRkZXZfcXVldWUgKmRldl9xdWV1ZSA9IG1xX3F1ZXVlX2dl dChzY2gsIGNsKTsNCiANCkBAIC0yMjQsOSArMjQ4LDEwIEBAIHN0YXRpYyBpbnQgbXFfZHVtcF9j bGFzcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBjbCwNCiAJdGNtLT50Y21faW5m byA9IHJ0bmxfZGVyZWZlcmVuY2UoZGV2X3F1ZXVlLT5xZGlzY19zbGVlcGluZyktPmhhbmRsZTsN CiAJcmV0dXJuIDA7DQogfQ0KK0VYUE9SVF9TWU1CT0xfTlNfR1BMKG1xX2R1bXBfY2xhc3MsICJO RVRfU0NIRURfSU5URVJOQUwiKTsNCiANCi1zdGF0aWMgaW50IG1xX2R1bXBfY2xhc3Nfc3RhdHMo c3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wsDQotCQkJICAgICAgIHN0cnVjdCBn bmV0X2R1bXAgKmQpDQoraW50IG1xX2R1bXBfY2xhc3Nfc3RhdHMoc3RydWN0IFFkaXNjICpzY2gs IHVuc2lnbmVkIGxvbmcgY2wsDQorCQkJc3RydWN0IGduZXRfZHVtcCAqZCkNCiB7DQogCXN0cnVj dCBuZXRkZXZfcXVldWUgKmRldl9xdWV1ZSA9IG1xX3F1ZXVlX2dldChzY2gsIGNsKTsNCiANCkBA IC0yMzYsOCArMjYxLDkgQEAgc3RhdGljIGludCBtcV9kdW1wX2NsYXNzX3N0YXRzKHN0cnVjdCBR ZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLA0KIAkJcmV0dXJuIC0xOw0KIAlyZXR1cm4gMDsN CiB9DQorRVhQT1JUX1NZTUJPTF9OU19HUEwobXFfZHVtcF9jbGFzc19zdGF0cywgIk5FVF9TQ0hF RF9JTlRFUk5BTCIpOw0KIA0KLXN0YXRpYyB2b2lkIG1xX3dhbGsoc3RydWN0IFFkaXNjICpzY2gs IHN0cnVjdCBxZGlzY193YWxrZXIgKmFyZykNCit2b2lkIG1xX3dhbGsoc3RydWN0IFFkaXNjICpz Y2gsIHN0cnVjdCBxZGlzY193YWxrZXIgKmFyZykNCiB7DQogCXN0cnVjdCBuZXRfZGV2aWNlICpk ZXYgPSBxZGlzY19kZXYoc2NoKTsNCiAJdW5zaWduZWQgaW50IG50eDsNCkBAIC0yNTEsNiArMjc3 LDcgQEAgc3RhdGljIHZvaWQgbXFfd2FsayhzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IHFkaXNj X3dhbGtlciAqYXJnKQ0KIAkJCWJyZWFrOw0KIAl9DQogfQ0KK0VYUE9SVF9TWU1CT0xfTlNfR1BM KG1xX3dhbGssICJORVRfU0NIRURfSU5URVJOQUwiKTsNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0 IFFkaXNjX2NsYXNzX29wcyBtcV9jbGFzc19vcHMgPSB7DQogCS5zZWxlY3RfcXVldWUJPSBtcV9z ZWxlY3RfcXVldWUsDQoNCi0tIA0KMi41Mi4wDQoNCg==