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.133.124]) by mail.toke.dk (Postfix) with ESMTPS id D078BB57AF7 for ; Mon, 05 Jan 2026 13:51:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1767617499; 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=YvsPs1ICShVhzZot0GV9I6SUy38v96hmCBSsHXFLVSw=; b=BWNa6eEpalkE68BcupV7h59RHHZtdOE+pGIViHcNlcNhmBMc0Rtuz0xJOA19uletTUaSiD l+ogx4k5eVjdeyJBdGo+QIr+GhZb/sMQjhFAYRbwwMjuaVuQq8t4jTsm7LtLF3iSZBWhsG WXwVPGu7XHsU1xAJOFRh7Gzv8uCsaN8= Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-384-Z5wFb24WMXqIxDVx4hY0Og-1; Mon, 05 Jan 2026 07:51:38 -0500 X-MC-Unique: Z5wFb24WMXqIxDVx4hY0Og-1 X-Mimecast-MFC-AGG-ID: Z5wFb24WMXqIxDVx4hY0Og_1767617497 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-b8395caeab6so56158366b.2 for ; Mon, 05 Jan 2026 04:51:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767617497; x=1768222297; 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=YvsPs1ICShVhzZot0GV9I6SUy38v96hmCBSsHXFLVSw=; b=scP74Tsw7R+Ryz2DAtxp2YXg8Httjo/bu/TRSImxE8uDANgnTR1RFQowWCfS1rT1UB 5+LHV5/zxpOZ59dlgzCWWEnYzuI+BrjzBFVx8/j2j3WtbvAaCx3sWnzGqeLRnFjmNb3i YaoCJPyNZqz7/JJTe+GUtAg/4D58O956TaU/MAjnGdA6Qrjt8hiwUqQ1f6vZjh+f7Ggc 5xZRceK34XfN8XptuD1kdVYF7loweYvwaucwkAYIxJMtVF72fd+mcx1Akaqos3B06D1J IPLIduyuxNsVLBLRH3cWhC+QctBXPla3LvYh02hpnIzOdBHLKQi7LmPid16zwooOP8DZ SYsw== X-Forwarded-Encrypted: i=1; AJvYcCWCRV0MqZbpwhOAy4WIGjkV1V4M2Lvu9vPKd7RTBP8jNFYD+wRnmlqdRMMRFM9hfJlqILVp@lists.bufferbloat.net X-Gm-Message-State: AOJu0Yw0yVRu7aCP1jai5uXzIX7zAd2AK/qcH0Z4VkbGV93dYbHxl6J7 CDyamEwfwd3+YjW+h2wuGnPzfDtNAQDoivp2rPk+JQNkdkSWfDm6zzJTv0/HJpgXRKD1uVedVpJ xlh0/wb/0JEMVT/Hxx1efUmwPr1cPXrt17+thc3lFm7C4B6WrxCua3nscl+skm6s= X-Gm-Gg: AY/fxX5gE992AVJjI8x8ZRL5E509OfX9FQRNQjNvHiAc+0q5oGvbjA9Izx4mUhclpAJ aNXu/M4GC25j4pCNklqkTSfYumzYF6MXCY3TA9UoM9fjucoVPxboVARxMunJaDkzeNLmN4kLYOZ lvOAsimtsIx8yhuHysphV3s92POZ/hddKqz1D00RHBepHjdwbjeVnW4dFjhQyDuN5UsYpXbnPoM 6KJjykdbfTYDPiiEGnQiOTJbmXmI3JnqsNnzBo4WJAeFeB+3PoxUACbS3VvDkQw7CrCpI28JUZ8 ZNDUMpw0Twc+JRGqbW07f0ramfSdcFsuvDQ8jU4sSIcGBU9mTFxIXLvAOCzuecQqLVt44O3mhWT Eqew/coiFWevU5Yw+sSKSC/Xk7SnJ8mAi9fXW X-Received: by 2002:a17:907:a4d:b0:b83:3715:11c3 with SMTP id a640c23a62f3a-b8337152c91mr3342312366b.30.1767617496777; Mon, 05 Jan 2026 04:51:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IGzpjSgeoVXOFbfld1yAW9nKVHTmH+geLqyP36nPMNVUMQZ0wyM6mjYBC6z/jONFF174DMp9Q== X-Received: by 2002:a17:907:a4d:b0:b83:3715:11c3 with SMTP id a640c23a62f3a-b8337152c91mr3342309866b.30.1767617496348; Mon, 05 Jan 2026 04:51:36 -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-b8037f512e3sm5521928566b.67.2026.01.05.04.51.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jan 2026 04:51:33 -0800 (PST) Received: by alrua-x1.borgediget.toke.dk (Postfix, from userid 1000) id 4685D407E8F; Mon, 05 Jan 2026 13:51:32 +0100 (CET) From: =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= Date: Mon, 05 Jan 2026 13:50:26 +0100 MIME-Version: 1.0 Message-Id: <20260105-mq-cake-sub-qdisc-v5-1-8a99b9db05e6@redhat.com> References: <20260105-mq-cake-sub-qdisc-v5-0-8a99b9db05e6@redhat.com> In-Reply-To: <20260105-mq-cake-sub-qdisc-v5-0-8a99b9db05e6@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, =?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: V-IqZhevLtyxXfXQfzN564_rD9F9s6pEjZq-L24Rg3k_1767617497 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: T7GDKUG5KDGWT5DDDLAKS2C2F6Z55DNS X-Message-ID-Hash: T7GDKUG5KDGWT5DDDLAKS2C2F6Z55DNS 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 v5 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 IGZpbGUuDQoNCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkLg0KDQpTaWduZWQtb2ZmLWJ5 OiBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4NCi0tLQ0KIGluY2x1 ZGUvbmV0L3NjaF9wcml2LmggfCAyNyArKysrKysrKysrKysrKysrKysrDQogbmV0L3NjaGVkL3Nj aF9tcS5jICAgICB8IDcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tDQogMiBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlv bnMoLSkNCg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjaF9wcml2LmggYi9pbmNsdWRlL25l dC9zY2hfcHJpdi5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi40 Nzg5ZjY2OGFlODcNCi0tLSAvZGV2L251bGwNCisrKyBiL2luY2x1ZGUvbmV0L3NjaF9wcml2LmgN CkBAIC0wLDAgKzEsMjcgQEANCisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAq Lw0KKyNpZm5kZWYgX19ORVRfU0NIRURfUFJJVl9IDQorI2RlZmluZSBfX05FVF9TQ0hFRF9QUklW X0gNCisNCisjaW5jbHVkZSA8bmV0L3NjaF9nZW5lcmljLmg+DQorDQorc3RydWN0IG1xX3NjaGVk IHsNCisJc3RydWN0IFFkaXNjCQkqKnFkaXNjczsNCit9Ow0KKw0KK2ludCBtcV9pbml0X2NvbW1v bihzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LA0KKwkJICAgc3RydWN0IG5l dGxpbmtfZXh0X2FjayAqZXh0YWNrLA0KKwkJICAgY29uc3Qgc3RydWN0IFFkaXNjX29wcyAqcWRp c2Nfb3BzKTsNCit2b2lkIG1xX2Rlc3Ryb3lfY29tbW9uKHN0cnVjdCBRZGlzYyAqc2NoKTsNCit2 b2lkIG1xX2F0dGFjaChzdHJ1Y3QgUWRpc2MgKnNjaCk7DQordm9pZCBtcV9kdW1wX2NvbW1vbihz dHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IHNrX2J1ZmYgKnNrYik7DQorc3RydWN0IG5ldGRldl9x dWV1ZSAqbXFfc2VsZWN0X3F1ZXVlKHN0cnVjdCBRZGlzYyAqc2NoLA0KKwkJCQkgICAgIHN0cnVj dCB0Y21zZyAqdGNtKTsNCitzdHJ1Y3QgUWRpc2MgKm1xX2xlYWYoc3RydWN0IFFkaXNjICpzY2gs IHVuc2lnbmVkIGxvbmcgY2wpOw0KK3Vuc2lnbmVkIGxvbmcgbXFfZmluZChzdHJ1Y3QgUWRpc2Mg KnNjaCwgdTMyIGNsYXNzaWQpOw0KK2ludCBtcV9kdW1wX2NsYXNzKHN0cnVjdCBRZGlzYyAqc2No LCB1bnNpZ25lZCBsb25nIGNsLA0KKwkJICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGNt c2cgKnRjbSk7DQoraW50IG1xX2R1bXBfY2xhc3Nfc3RhdHMoc3RydWN0IFFkaXNjICpzY2gsIHVu c2lnbmVkIGxvbmcgY2wsDQorCQkJc3RydWN0IGduZXRfZHVtcCAqZCk7DQordm9pZCBtcV93YWxr KHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgcWRpc2Nfd2Fsa2VyICphcmcpOw0KKw0KKyNlbmRp Zg0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfbXEuYyBiL25ldC9zY2hlZC9zY2hfbXEuYw0K aW5kZXggYzg2MDExOWE4ZjA5Li5iYjk0Y2Q1Nzc5NDMgMTAwNjQ0DQotLS0gYS9uZXQvc2NoZWQv c2NoX21xLmMNCisrKyBiL25ldC9zY2hlZC9zY2hfbXEuYw0KQEAgLTE1LDExICsxNSw3IEBADQog I2luY2x1ZGUgPG5ldC9uZXRsaW5rLmg+DQogI2luY2x1ZGUgPG5ldC9wa3RfY2xzLmg+DQogI2lu Y2x1ZGUgPG5ldC9wa3Rfc2NoZWQuaD4NCi0jaW5jbHVkZSA8bmV0L3NjaF9nZW5lcmljLmg+DQot DQotc3RydWN0IG1xX3NjaGVkIHsNCi0Jc3RydWN0IFFkaXNjCQkqKnFkaXNjczsNCi19Ow0KKyNp bmNsdWRlIDxuZXQvc2NoX3ByaXYuaD4NCiANCiBzdGF0aWMgaW50IG1xX29mZmxvYWQoc3RydWN0 IFFkaXNjICpzY2gsIGVudW0gdGNfbXFfY29tbWFuZCBjbWQpDQogew0KQEAgLTQ5LDIzICs0NSwy OSBAQCBzdGF0aWMgaW50IG1xX29mZmxvYWRfc3RhdHMoc3RydWN0IFFkaXNjICpzY2gpDQogCXJl dHVybiBxZGlzY19vZmZsb2FkX2R1bXBfaGVscGVyKHNjaCwgVENfU0VUVVBfUURJU0NfTVEsICZv cHQpOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBtcV9kZXN0cm95KHN0cnVjdCBRZGlzYyAqc2NoKQ0K K3ZvaWQgbXFfZGVzdHJveV9jb21tb24oc3RydWN0IFFkaXNjICpzY2gpDQogew0KIAlzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2ID0gcWRpc2NfZGV2KHNjaCk7DQogCXN0cnVjdCBtcV9zY2hlZCAqcHJp diA9IHFkaXNjX3ByaXYoc2NoKTsNCiAJdW5zaWduZWQgaW50IG50eDsNCiANCi0JbXFfb2ZmbG9h ZChzY2gsIFRDX01RX0RFU1RST1kpOw0KLQ0KIAlpZiAoIXByaXYtPnFkaXNjcykNCiAJCXJldHVy bjsNCiAJZm9yIChudHggPSAwOyBudHggPCBkZXYtPm51bV90eF9xdWV1ZXMgJiYgcHJpdi0+cWRp c2NzW250eF07IG50eCsrKQ0KIAkJcWRpc2NfcHV0KHByaXYtPnFkaXNjc1tudHhdKTsNCiAJa2Zy ZWUocHJpdi0+cWRpc2NzKTsNCiB9DQorRVhQT1JUX1NZTUJPTF9OU19HUEwobXFfZGVzdHJveV9j b21tb24sICJORVRfU0NIRURfSU5URVJOQUwiKTsNCiANCi1zdGF0aWMgaW50IG1xX2luaXQoc3Ry dWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCwNCi0JCSAgIHN0cnVjdCBuZXRsaW5r X2V4dF9hY2sgKmV4dGFjaykNCitzdGF0aWMgdm9pZCBtcV9kZXN0cm95KHN0cnVjdCBRZGlzYyAq c2NoKQ0KK3sNCisJbXFfb2ZmbG9hZChzY2gsIFRDX01RX0RFU1RST1kpOw0KKwltcV9kZXN0cm95 X2NvbW1vbihzY2gpOw0KK30NCisNCitpbnQgbXFfaW5pdF9jb21tb24oc3RydWN0IFFkaXNjICpz Y2gsIHN0cnVjdCBubGF0dHIgKm9wdCwNCisJCSAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4 dGFjaywNCisJCSAgIGNvbnN0IHN0cnVjdCBRZGlzY19vcHMgKnFkaXNjX29wcykNCiB7DQogCXN0 cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBxZGlzY19kZXYoc2NoKTsNCiAJc3RydWN0IG1xX3NjaGVk ICpwcml2ID0gcWRpc2NfcHJpdihzY2gpOw0KQEAgLTg3LDcgKzg5LDggQEAgc3RhdGljIGludCBt cV9pbml0KHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsDQogDQogCWZvciAo bnR4ID0gMDsgbnR4IDwgZGV2LT5udW1fdHhfcXVldWVzOyBudHgrKykgew0KIAkJZGV2X3F1ZXVl ID0gbmV0ZGV2X2dldF90eF9xdWV1ZShkZXYsIG50eCk7DQotCQlxZGlzYyA9IHFkaXNjX2NyZWF0 ZV9kZmx0KGRldl9xdWV1ZSwgZ2V0X2RlZmF1bHRfcWRpc2Nfb3BzKGRldiwgbnR4KSwNCisJCXFk aXNjID0gcWRpc2NfY3JlYXRlX2RmbHQoZGV2X3F1ZXVlLA0KKwkJCQkJICBxZGlzY19vcHMgPzog Z2V0X2RlZmF1bHRfcWRpc2Nfb3BzKGRldiwgbnR4KSwNCiAJCQkJCSAgVENfSF9NQUtFKFRDX0hf TUFKKHNjaC0+aGFuZGxlKSwNCiAJCQkJCQkgICAgVENfSF9NSU4obnR4ICsgMSkpLA0KIAkJCQkJ ICBleHRhY2spOw0KQEAgLTk4LDEyICsxMDEsMjQgQEAgc3RhdGljIGludCBtcV9pbml0KHN0cnVj dCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsDQogCX0NCiANCiAJc2NoLT5mbGFncyB8 PSBUQ1FfRl9NUVJPT1Q7DQorCXJldHVybiAwOw0KK30NCitFWFBPUlRfU1lNQk9MX05TX0dQTCht cV9pbml0X2NvbW1vbiwgIk5FVF9TQ0hFRF9JTlRFUk5BTCIpOw0KKw0KK3N0YXRpYyBpbnQgbXFf aW5pdChzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LA0KKwkJICAgc3RydWN0 IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQ0KK3sNCisJaW50IHJldDsNCisNCisJcmV0ID0gbXFf aW5pdF9jb21tb24oc2NoLCBvcHQsIGV4dGFjaywgTlVMTCk7DQorCWlmIChyZXQpDQorCQlyZXR1 cm4gcmV0Ow0KIA0KIAltcV9vZmZsb2FkKHNjaCwgVENfTVFfQ1JFQVRFKTsNCiAJcmV0dXJuIDA7 DQogfQ0KIA0KLXN0YXRpYyB2b2lkIG1xX2F0dGFjaChzdHJ1Y3QgUWRpc2MgKnNjaCkNCit2b2lk IG1xX2F0dGFjaChzdHJ1Y3QgUWRpc2MgKnNjaCkNCiB7DQogCXN0cnVjdCBuZXRfZGV2aWNlICpk ZXYgPSBxZGlzY19kZXYoc2NoKTsNCiAJc3RydWN0IG1xX3NjaGVkICpwcml2ID0gcWRpc2NfcHJp dihzY2gpOw0KQEAgLTEyNCw4ICsxMzksOSBAQCBzdGF0aWMgdm9pZCBtcV9hdHRhY2goc3RydWN0 IFFkaXNjICpzY2gpDQogCWtmcmVlKHByaXYtPnFkaXNjcyk7DQogCXByaXYtPnFkaXNjcyA9IE5V TEw7DQogfQ0KK0VYUE9SVF9TWU1CT0xfTlNfR1BMKG1xX2F0dGFjaCwgIk5FVF9TQ0hFRF9JTlRF Uk5BTCIpOw0KIA0KLXN0YXRpYyBpbnQgbXFfZHVtcChzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0 IHNrX2J1ZmYgKnNrYikNCit2b2lkIG1xX2R1bXBfY29tbW9uKHN0cnVjdCBRZGlzYyAqc2NoLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIHsNCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHFkaXNj X2RldihzY2gpOw0KIAlzdHJ1Y3QgUWRpc2MgKnFkaXNjOw0KQEAgLTE1Miw3ICsxNjgsMTIgQEAg c3RhdGljIGludCBtcV9kdW1wKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQ0KIA0KIAkJc3Bpbl91bmxvY2tfYmgocWRpc2NfbG9jayhxZGlzYykpOw0KIAl9DQorfQ0KK0VY UE9SVF9TWU1CT0xfTlNfR1BMKG1xX2R1bXBfY29tbW9uLCAiTkVUX1NDSEVEX0lOVEVSTkFMIik7 DQogDQorc3RhdGljIGludCBtcV9kdW1wKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQ0KK3sNCisJbXFfZHVtcF9jb21tb24oc2NoLCBza2IpOw0KIAlyZXR1cm4gbXFfb2Zm bG9hZF9zdGF0cyhzY2gpOw0KIH0NCiANCkBAIC0xNjYsMTEgKzE4NywxMiBAQCBzdGF0aWMgc3Ry dWN0IG5ldGRldl9xdWV1ZSAqbXFfcXVldWVfZ2V0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25l ZCBsb25nIGNsKQ0KIAlyZXR1cm4gbmV0ZGV2X2dldF90eF9xdWV1ZShkZXYsIG50eCk7DQogfQ0K IA0KLXN0YXRpYyBzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICptcV9zZWxlY3RfcXVldWUoc3RydWN0IFFk aXNjICpzY2gsDQotCQkJCQkgICAgc3RydWN0IHRjbXNnICp0Y20pDQorc3RydWN0IG5ldGRldl9x dWV1ZSAqbXFfc2VsZWN0X3F1ZXVlKHN0cnVjdCBRZGlzYyAqc2NoLA0KKwkJCQkgICAgIHN0cnVj dCB0Y21zZyAqdGNtKQ0KIHsNCiAJcmV0dXJuIG1xX3F1ZXVlX2dldChzY2gsIFRDX0hfTUlOKHRj bS0+dGNtX3BhcmVudCkpOw0KIH0NCitFWFBPUlRfU1lNQk9MX05TX0dQTChtcV9zZWxlY3RfcXVl dWUsICJORVRfU0NIRURfSU5URVJOQUwiKTsNCiANCiBzdGF0aWMgaW50IG1xX2dyYWZ0KHN0cnVj dCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLCBzdHJ1Y3QgUWRpc2MgKm5ldywNCiAJCSAg ICBzdHJ1Y3QgUWRpc2MgKipvbGQsIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykNCkBA IC0xOTgsMTQgKzIyMCwxNSBAQCBzdGF0aWMgaW50IG1xX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2No LCB1bnNpZ25lZCBsb25nIGNsLCBzdHJ1Y3QgUWRpc2MgKm5ldywNCiAJcmV0dXJuIDA7DQogfQ0K IA0KLXN0YXRpYyBzdHJ1Y3QgUWRpc2MgKm1xX2xlYWYoc3RydWN0IFFkaXNjICpzY2gsIHVuc2ln bmVkIGxvbmcgY2wpDQorc3RydWN0IFFkaXNjICptcV9sZWFmKHN0cnVjdCBRZGlzYyAqc2NoLCB1 bnNpZ25lZCBsb25nIGNsKQ0KIHsNCiAJc3RydWN0IG5ldGRldl9xdWV1ZSAqZGV2X3F1ZXVlID0g bXFfcXVldWVfZ2V0KHNjaCwgY2wpOw0KIA0KIAlyZXR1cm4gcnRubF9kZXJlZmVyZW5jZShkZXZf cXVldWUtPnFkaXNjX3NsZWVwaW5nKTsNCiB9DQorRVhQT1JUX1NZTUJPTF9OU19HUEwobXFfbGVh ZiwgIk5FVF9TQ0hFRF9JTlRFUk5BTCIpOw0KIA0KLXN0YXRpYyB1bnNpZ25lZCBsb25nIG1xX2Zp bmQoc3RydWN0IFFkaXNjICpzY2gsIHUzMiBjbGFzc2lkKQ0KK3Vuc2lnbmVkIGxvbmcgbXFfZmlu ZChzdHJ1Y3QgUWRpc2MgKnNjaCwgdTMyIGNsYXNzaWQpDQogew0KIAl1bnNpZ25lZCBpbnQgbnR4 ID0gVENfSF9NSU4oY2xhc3NpZCk7DQogDQpAQCAtMjEzLDkgKzIzNiwxMCBAQCBzdGF0aWMgdW5z aWduZWQgbG9uZyBtcV9maW5kKHN0cnVjdCBRZGlzYyAqc2NoLCB1MzIgY2xhc3NpZCkNCiAJCXJl dHVybiAwOw0KIAlyZXR1cm4gbnR4Ow0KIH0NCitFWFBPUlRfU1lNQk9MX05TX0dQTChtcV9maW5k LCAiTkVUX1NDSEVEX0lOVEVSTkFMIik7DQogDQotc3RhdGljIGludCBtcV9kdW1wX2NsYXNzKHN0 cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLA0KLQkJCSBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBzdHJ1Y3QgdGNtc2cgKnRjbSkNCitpbnQgbXFfZHVtcF9jbGFzcyhzdHJ1Y3QgUWRpc2Mg KnNjaCwgdW5zaWduZWQgbG9uZyBjbCwNCisJCSAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IHRjbXNnICp0Y20pDQogew0KIAlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVldWUgPSBtcV9x dWV1ZV9nZXQoc2NoLCBjbCk7DQogDQpAQCAtMjI0LDkgKzI0OCwxMCBAQCBzdGF0aWMgaW50IG1x X2R1bXBfY2xhc3Moc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wsDQogCXRjbS0+ dGNtX2luZm8gPSBydG5sX2RlcmVmZXJlbmNlKGRldl9xdWV1ZS0+cWRpc2Nfc2xlZXBpbmcpLT5o YW5kbGU7DQogCXJldHVybiAwOw0KIH0NCitFWFBPUlRfU1lNQk9MX05TX0dQTChtcV9kdW1wX2Ns YXNzLCAiTkVUX1NDSEVEX0lOVEVSTkFMIik7DQogDQotc3RhdGljIGludCBtcV9kdW1wX2NsYXNz X3N0YXRzKHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLA0KLQkJCSAgICAgICBz dHJ1Y3QgZ25ldF9kdW1wICpkKQ0KK2ludCBtcV9kdW1wX2NsYXNzX3N0YXRzKHN0cnVjdCBRZGlz YyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLA0KKwkJCXN0cnVjdCBnbmV0X2R1bXAgKmQpDQogew0K IAlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVldWUgPSBtcV9xdWV1ZV9nZXQoc2NoLCBjbCk7 DQogDQpAQCAtMjM2LDggKzI2MSw5IEBAIHN0YXRpYyBpbnQgbXFfZHVtcF9jbGFzc19zdGF0cyhz dHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBjbCwNCiAJCXJldHVybiAtMTsNCiAJcmV0 dXJuIDA7DQogfQ0KK0VYUE9SVF9TWU1CT0xfTlNfR1BMKG1xX2R1bXBfY2xhc3Nfc3RhdHMsICJO RVRfU0NIRURfSU5URVJOQUwiKTsNCiANCi1zdGF0aWMgdm9pZCBtcV93YWxrKHN0cnVjdCBRZGlz YyAqc2NoLCBzdHJ1Y3QgcWRpc2Nfd2Fsa2VyICphcmcpDQordm9pZCBtcV93YWxrKHN0cnVjdCBR ZGlzYyAqc2NoLCBzdHJ1Y3QgcWRpc2Nfd2Fsa2VyICphcmcpDQogew0KIAlzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2ID0gcWRpc2NfZGV2KHNjaCk7DQogCXVuc2lnbmVkIGludCBudHg7DQpAQCAtMjUx LDYgKzI3Nyw3IEBAIHN0YXRpYyB2b2lkIG1xX3dhbGsoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVj dCBxZGlzY193YWxrZXIgKmFyZykNCiAJCQlicmVhazsNCiAJfQ0KIH0NCitFWFBPUlRfU1lNQk9M X05TX0dQTChtcV93YWxrLCAiTkVUX1NDSEVEX0lOVEVSTkFMIik7DQogDQogc3RhdGljIGNvbnN0 IHN0cnVjdCBRZGlzY19jbGFzc19vcHMgbXFfY2xhc3Nfb3BzID0gew0KIAkuc2VsZWN0X3F1ZXVl CT0gbXFfc2VsZWN0X3F1ZXVlLA0KDQotLSANCjIuNTIuMA0KDQo=