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 A2339B8AB75 for ; Fri, 09 Jan 2026 14:15:43 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1767964542; 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=fhJKb0JkiLgxTDq6YHCV69pHjZz3mYzvPrvW7+fKyANw6GbajlQHT8bXXo9rqLlEXHApOq f1uEuKVto8Z5r9KFMvdQicUI2d4IZKlsf3MIOcKj+T+qgsOeynHKLKPJcUuPYV5vp4QUXq vVv6tnRAvbNOMfVxqXipnGSD6mNS7Js= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-633-tEiVxbUoNEaYgK3T9a8NnA-1; Fri, 09 Jan 2026 08:15:41 -0500 X-MC-Unique: tEiVxbUoNEaYgK3T9a8NnA-1 X-Mimecast-MFC-AGG-ID: tEiVxbUoNEaYgK3T9a8NnA_1767964540 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-b763b24f223so619838766b.0 for ; Fri, 09 Jan 2026 05:15:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767964540; x=1768569340; 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=AE4Vzv5dNvd2rII+7+bIvOeStt8YmStTk9H/OxJq3W4zgav99FZAt0WeMjMapkVupz SJUqUF2eDdtzqFE3dAFIq2sXA0b4rNE7ONYE6qEINwsdOknVXmyrDFChUWF8NGUO7e61 +FqGrCIZuoOOUKD6SYyqDZmghFfMmNaz9J4oOstXmnuQm3ZY4EEOsPJBceHFuoItADLF AQ8tmxm2RiDtgJNqebF66Z0NjiXMV9Hif3c9JWdf1bs4KO3wkwE4Es2gozCISinr5tme W4nkEifuIm1+8BKPVvqbMkbypz6eQTat7te6QtBMEMH2afCo0M/a9Rv3d0nEzLTjkeZk IH8A== X-Forwarded-Encrypted: i=1; AJvYcCUIUU5/zIAVfC7eA3WOJGqKpITrSEKLn7SbMNespQomhaG/hW2hQIrdnFhcYg1scfOqDfqN@lists.bufferbloat.net X-Gm-Message-State: AOJu0YyPD89oQBeV6A+ag7Uolk74mLI4lqJSUmO9oXbDpVq7l5gAKBDO ZUCztKHsszOZ2Z1IFq0cpwfLUNXF1EqNfS7424Ugdwl62OgDMmqQw5FQMHvb4WskGj9kIAtukpI YGXm/FiPi2Kk5oFI6h8jwI0i5sH1ll6aL9Z+AWdaDgaayVmivWEpenztKnS7dWoc= X-Gm-Gg: AY/fxX4bmMr07dlV8OKqQJrEfLPDu4etw2NjeIHRyD+f8DCSLfgIglbA68TyY1viezU RjqZUHUk6BeCJWwcwkYus3JP36Svhqza8tlDjRTEhb7GAC4UO3uy+njBTmh4moiRYPwnzA0vLYx 1ViiEbGZ5XpRCcEzWMjHs/jJYMCdLJEndJSrprIRE4jLIA+/3qEx94yO4dH6WN42Y6B0f6uiTfD IwNpw9IPElAv9GJWGr8fT5t4cBwBR9TVK2fg7RJ82lE+O1FrLe73qikmuxjXiFe/MB0t3Qu6xSl ylA2xaZ9HlIrE5ivczL37/qcIbs+uoYdM5hf2i+PLINEGgpP2jr3GT1AELsjaKSv0pEcKlLSY65 kNXfWcrGDLEWBrldFOShkxcQOJSXtxtVZig== X-Received: by 2002:a17:906:308b:b0:b84:5818:6130 with SMTP id a640c23a62f3a-b8458186688mr560321866b.43.1767964539812; Fri, 09 Jan 2026 05:15:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IH45xvXr+lcQGLbKnMK5yBtPFXk/FS9cYJ0UFOTrHw+lBHOvqC3FjXhRg4jcYDezUMT+23iCQ== X-Received: by 2002:a17:906:308b:b0:b84:5818:6130 with SMTP id a640c23a62f3a-b8458186688mr560319366b.43.1767964539334; Fri, 09 Jan 2026 05:15:39 -0800 (PST) Received: from alrua-x1.borgediget.toke.dk ([45.145.92.2]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b842a5118eesm1098642466b.52.2026.01.09.05.15.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Jan 2026 05:15:38 -0800 (PST) Received: by alrua-x1.borgediget.toke.dk (Postfix, from userid 1000) id 2253240862D; Fri, 09 Jan 2026 14:15:38 +0100 (CET) From: =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= Date: Fri, 09 Jan 2026 14:15:30 +0100 MIME-Version: 1.0 Message-Id: <20260109-mq-cake-sub-qdisc-v8-1-8d613fece5d8@redhat.com> References: <20260109-mq-cake-sub-qdisc-v8-0-8d613fece5d8@redhat.com> In-Reply-To: <20260109-mq-cake-sub-qdisc-v8-0-8d613fece5d8@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: gxIsnQpjBndY5QNIxwm38tsoiatpR81-iyo0-3TmcN4_1767964540 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: PJ2UCPAHNN243HE23GZROJQE2U4ORUDI X-Message-ID-Hash: PJ2UCPAHNN243HE23GZROJQE2U4ORUDI 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 v8 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==