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 7619F9ED750 for ; Mon, 01 Dec 2025 11:00:34 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1764583233; 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=XuaBOxVGfv3i0x8OoHvnBN3obdERZLRjIu9QG7xhJvM=; b=b7FUu8pC3/2GQspxwkjZrB8Wuw/S42gyn3/ukt5scQcwVC3yvpN4+lo5lDOeBOdFWKzmfN u9tzHWEU8id+GDFQemVTBMUgQO744A9h/auLX/Ftz5ryDHbAT4lPxP5LUpPtcXmPe5E+/E pmfTXTCh2GmLXjkirVSakGpUKSE5c3w= Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-569-iJqDcv6aNWmrI49O5YBIuw-1; Mon, 01 Dec 2025 05:00:31 -0500 X-MC-Unique: iJqDcv6aNWmrI49O5YBIuw-1 X-Mimecast-MFC-AGG-ID: iJqDcv6aNWmrI49O5YBIuw_1764583231 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-6450f3e7e71so3326820a12.3 for ; Mon, 01 Dec 2025 02:00:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764583230; x=1765188030; 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=XuaBOxVGfv3i0x8OoHvnBN3obdERZLRjIu9QG7xhJvM=; b=K7pbK6ALHhnlS4vCzNvf1zz8fTPl3hbidvRHyOZeveNK0UUD2CylnRcfKZKCqdyRUw TMyrGw17KbKGHUauPBIf0KA0cDikQLGqX+K/oyGx8bSLzDuuEEbFaBD5fUh1BWl/i4oP umj84cDBeuZIgcBZGvUMkHqGPnDdl8l6B/RTdpvolrecpIBFzVNO3Sj75bxC7nQ76QUQ qe2hmXrY57kVLI9ISjs/BFf4y6l7hFJ4G89x+o7F1e5QaYhst0zDkPiGZcJpxpQt6NMo oJ6ZgZ6ZnQ60qVJo8fmmsSS7FUZfq1OTOP9ADMqdftL6EGUcAD6mi4FqmLsq+X/+wiOt CSJQ== X-Forwarded-Encrypted: i=1; AJvYcCUdZM092o+bDW4fWQvrK00k6VTjw7IaQHDFX5fUqZNDcq5HHfIYPgtnnwIsYITNCR8lVNqG@lists.bufferbloat.net X-Gm-Message-State: AOJu0Yy2GhLTbyTUjSkM9lbCiY3ZzA8hFtCublwDyWn2l+/N1iCHlk/p eF0HMPpG+hF7feaMszgF5WcKFMwFNeJ/ZkX5rmpo3Y/SlD/Jts3gJHe2o657XTdT366EvIpC5Cr hKvkIKQhrOjz/98Pt+OBdS6bksR7dFcHF5E9MI5yx4tIMg147s+PMCXO89wOEneA= X-Gm-Gg: ASbGnctQMSRPgGBwxFdipeJQXtceNHxCK/Fbs/IPUR+Ayt+Kb4vfz95brsc4eS9y6JR QK87E4xdiz0rsxXq25mx9wM7YRNyvX5V0dAaz2LNc6rDjL2sCAvzw1xK/ZGVoHtHnoJKnflQyzL Q/elPOhR8phXfa1moQpD4xpdhm8gF2Ux9rN5tFJCU9hSPtvakfGT8ovAdTrVEmH3P0DQ3ZyUvHZ AnAd11O7VrlnNOJ8i6nVEjcTCksiwTOagCsPRFbaMVtl1JvNeZDa8wmUPy4XPgCSZPKZURyARSh nuZjCVNkwr40gX5dRzcz2PsrlkUZOBhcdXT3lEtpBBt/AIQWlgMKcNGJJQyV1OKGGo/knbGchOW q43lKwQDkDA95vtCk8pWa5T8j0Y7Xcn1aqw== X-Received: by 2002:a05:6402:534d:20b0:63e:405d:579c with SMTP id 4fb4d7f45d1cf-645eb793c7dmr16538831a12.29.1764583230473; Mon, 01 Dec 2025 02:00:30 -0800 (PST) X-Google-Smtp-Source: AGHT+IFEZFO/DTo/b1fdjFPSlVw3QzKbOQxT9q26rUTTA71L9rHt/ZDnXlnQOXGxxhNxrrsar3RKTA== X-Received: by 2002:a05:6402:534d:20b0:63e:405d:579c with SMTP id 4fb4d7f45d1cf-645eb793c7dmr16538803a12.29.1764583230042; Mon, 01 Dec 2025 02:00:30 -0800 (PST) Received: from alrua-x1.borgediget.toke.dk ([45.145.92.2]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64750a90e44sm11919273a12.14.2025.12.01.02.00.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Dec 2025 02:00:29 -0800 (PST) Received: by alrua-x1.borgediget.toke.dk (Postfix, from userid 1000) id 9C71A395D53; Mon, 01 Dec 2025 11:00:28 +0100 (CET) From: =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= Date: Mon, 01 Dec 2025 11:00:19 +0100 MIME-Version: 1.0 Message-Id: <20251201-mq-cake-sub-qdisc-v4-1-50dd3211a1c6@redhat.com> References: <20251201-mq-cake-sub-qdisc-v4-0-50dd3211a1c6@redhat.com> In-Reply-To: <20251201-mq-cake-sub-qdisc-v4-0-50dd3211a1c6@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: rwFCsR6q1rhn3fhNwfhHGlIP-yui-_qDjiQmViS-6F0_1764583231 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: GEOZPHAKACKUYWPG6XFUBHYREJ66VAVK X-Message-ID-Hash: GEOZPHAKACKUYWPG6XFUBHYREJ66VAVK 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 v4 1/5] 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 YWxlLg0KDQpObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZC4NCg0KU2lnbmVkLW9mZi1ieTog VG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+DQotLS0NCiBpbmNsdWRl L25ldC9zY2hfZ2VuZXJpYy5oIHwgMTkgKysrKysrKysrKysrKw0KIG5ldC9zY2hlZC9zY2hfbXEu YyAgICAgICAgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLQ0KIDIgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0p DQoNCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIGIvaW5jbHVkZS9uZXQv c2NoX2dlbmVyaWMuaA0KaW5kZXggYzNhNzI2OGI1NjdlLi5mMjI4MTkxNGQ5NjIgMTAwNjQ0DQot LS0gYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oDQorKysgYi9pbmNsdWRlL25ldC9zY2hfZ2Vu ZXJpYy5oDQpAQCAtMTQxOSw3ICsxNDE5LDI2IEBAIHZvaWQgbWluaV9xZGlzY19wYWlyX2luaXQo c3RydWN0IG1pbmlfUWRpc2NfcGFpciAqbWluaXFwLCBzdHJ1Y3QgUWRpc2MgKnFkaXNjLA0KIHZv aWQgbWluaV9xZGlzY19wYWlyX2Jsb2NrX2luaXQoc3RydWN0IG1pbmlfUWRpc2NfcGFpciAqbWlu aXFwLA0KIAkJCQlzdHJ1Y3QgdGNmX2Jsb2NrICpibG9jayk7DQogDQorc3RydWN0IG1xX3NjaGVk IHsNCisJc3RydWN0IFFkaXNjCQkqKnFkaXNjczsNCit9Ow0KKw0KK2ludCBtcV9pbml0X2NvbW1v bihzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LA0KKwkJICAgc3RydWN0IG5l dGxpbmtfZXh0X2FjayAqZXh0YWNrLA0KKwkJICAgY29uc3Qgc3RydWN0IFFkaXNjX29wcyAqcWRp c2Nfb3BzKTsNCit2b2lkIG1xX2Rlc3Ryb3lfY29tbW9uKHN0cnVjdCBRZGlzYyAqc2NoKTsNCit2 b2lkIG1xX2F0dGFjaChzdHJ1Y3QgUWRpc2MgKnNjaCk7DQogdm9pZCBtcV9jaGFuZ2VfcmVhbF9u dW1fdHgoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGludCBuZXdfcmVhbF90eCk7DQordm9p ZCBtcV9kdW1wX2NvbW1vbihzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IHNrX2J1ZmYgKnNrYik7 DQorc3RydWN0IG5ldGRldl9xdWV1ZSAqbXFfc2VsZWN0X3F1ZXVlKHN0cnVjdCBRZGlzYyAqc2No LA0KKwkJCQkgICAgIHN0cnVjdCB0Y21zZyAqdGNtKTsNCitzdHJ1Y3QgUWRpc2MgKm1xX2xlYWYo c3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wpOw0KK3Vuc2lnbmVkIGxvbmcgbXFf ZmluZChzdHJ1Y3QgUWRpc2MgKnNjaCwgdTMyIGNsYXNzaWQpOw0KK2ludCBtcV9kdW1wX2NsYXNz KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLA0KKwkJICBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgdGNtc2cgKnRjbSk7DQoraW50IG1xX2R1bXBfY2xhc3Nfc3RhdHMoc3Ry dWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wsDQorCQkJc3RydWN0IGduZXRfZHVtcCAq ZCk7DQordm9pZCBtcV93YWxrKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgcWRpc2Nfd2Fsa2Vy ICphcmcpOw0KIA0KIGludCBzY2hfZnJhZ194bWl0X2hvb2soc3RydWN0IHNrX2J1ZmYgKnNrYiwg aW50ICgqeG1pdCkoc3RydWN0IHNrX2J1ZmYgKnNrYikpOw0KIA0KZGlmZiAtLWdpdCBhL25ldC9z Y2hlZC9zY2hfbXEuYyBiL25ldC9zY2hlZC9zY2hfbXEuYw0KaW5kZXggYzg2MDExOWE4ZjA5Li4w YmNhYmRjZDFmNDQgMTAwNjQ0DQotLS0gYS9uZXQvc2NoZWQvc2NoX21xLmMNCisrKyBiL25ldC9z Y2hlZC9zY2hfbXEuYw0KQEAgLTE3LDEwICsxNyw2IEBADQogI2luY2x1ZGUgPG5ldC9wa3Rfc2No ZWQuaD4NCiAjaW5jbHVkZSA8bmV0L3NjaF9nZW5lcmljLmg+DQogDQotc3RydWN0IG1xX3NjaGVk IHsNCi0Jc3RydWN0IFFkaXNjCQkqKnFkaXNjczsNCi19Ow0KLQ0KIHN0YXRpYyBpbnQgbXFfb2Zm bG9hZChzdHJ1Y3QgUWRpc2MgKnNjaCwgZW51bSB0Y19tcV9jb21tYW5kIGNtZCkNCiB7DQogCXN0 cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBxZGlzY19kZXYoc2NoKTsNCkBAIC00OSwyMyArNDUsMjkg QEAgc3RhdGljIGludCBtcV9vZmZsb2FkX3N0YXRzKHN0cnVjdCBRZGlzYyAqc2NoKQ0KIAlyZXR1 cm4gcWRpc2Nfb2ZmbG9hZF9kdW1wX2hlbHBlcihzY2gsIFRDX1NFVFVQX1FESVNDX01RLCAmb3B0 KTsNCiB9DQogDQotc3RhdGljIHZvaWQgbXFfZGVzdHJveShzdHJ1Y3QgUWRpc2MgKnNjaCkNCit2 b2lkIG1xX2Rlc3Ryb3lfY29tbW9uKHN0cnVjdCBRZGlzYyAqc2NoKQ0KIHsNCiAJc3RydWN0IG5l dF9kZXZpY2UgKmRldiA9IHFkaXNjX2RldihzY2gpOw0KIAlzdHJ1Y3QgbXFfc2NoZWQgKnByaXYg PSBxZGlzY19wcml2KHNjaCk7DQogCXVuc2lnbmVkIGludCBudHg7DQogDQotCW1xX29mZmxvYWQo c2NoLCBUQ19NUV9ERVNUUk9ZKTsNCi0NCiAJaWYgKCFwcml2LT5xZGlzY3MpDQogCQlyZXR1cm47 DQogCWZvciAobnR4ID0gMDsgbnR4IDwgZGV2LT5udW1fdHhfcXVldWVzICYmIHByaXYtPnFkaXNj c1tudHhdOyBudHgrKykNCiAJCXFkaXNjX3B1dChwcml2LT5xZGlzY3NbbnR4XSk7DQogCWtmcmVl KHByaXYtPnFkaXNjcyk7DQogfQ0KK0VYUE9SVF9TWU1CT0wobXFfZGVzdHJveV9jb21tb24pOw0K IA0KLXN0YXRpYyBpbnQgbXFfaW5pdChzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAq b3B0LA0KLQkJICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQ0KK3N0YXRpYyB2b2lk IG1xX2Rlc3Ryb3koc3RydWN0IFFkaXNjICpzY2gpDQorew0KKwltcV9vZmZsb2FkKHNjaCwgVENf TVFfREVTVFJPWSk7DQorCW1xX2Rlc3Ryb3lfY29tbW9uKHNjaCk7DQorfQ0KKw0KK2ludCBtcV9p bml0X2NvbW1vbihzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LA0KKwkJICAg c3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrLA0KKwkJICAgY29uc3Qgc3RydWN0IFFkaXNj X29wcyAqcWRpc2Nfb3BzKQ0KIHsNCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHFkaXNjX2Rl dihzY2gpOw0KIAlzdHJ1Y3QgbXFfc2NoZWQgKnByaXYgPSBxZGlzY19wcml2KHNjaCk7DQpAQCAt ODcsNyArODksOCBAQCBzdGF0aWMgaW50IG1xX2luaXQoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVj dCBubGF0dHIgKm9wdCwNCiANCiAJZm9yIChudHggPSAwOyBudHggPCBkZXYtPm51bV90eF9xdWV1 ZXM7IG50eCsrKSB7DQogCQlkZXZfcXVldWUgPSBuZXRkZXZfZ2V0X3R4X3F1ZXVlKGRldiwgbnR4 KTsNCi0JCXFkaXNjID0gcWRpc2NfY3JlYXRlX2RmbHQoZGV2X3F1ZXVlLCBnZXRfZGVmYXVsdF9x ZGlzY19vcHMoZGV2LCBudHgpLA0KKwkJcWRpc2MgPSBxZGlzY19jcmVhdGVfZGZsdChkZXZfcXVl dWUsDQorCQkJCQkgIHFkaXNjX29wcyA/OiBnZXRfZGVmYXVsdF9xZGlzY19vcHMoZGV2LCBudHgp LA0KIAkJCQkJICBUQ19IX01BS0UoVENfSF9NQUooc2NoLT5oYW5kbGUpLA0KIAkJCQkJCSAgICBU Q19IX01JTihudHggKyAxKSksDQogCQkJCQkgIGV4dGFjayk7DQpAQCAtOTgsMTIgKzEwMSwyNCBA QCBzdGF0aWMgaW50IG1xX2luaXQoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9w dCwNCiAJfQ0KIA0KIAlzY2gtPmZsYWdzIHw9IFRDUV9GX01RUk9PVDsNCisJcmV0dXJuIDA7DQor fQ0KK0VYUE9SVF9TWU1CT0wobXFfaW5pdF9jb21tb24pOw0KKw0KK3N0YXRpYyBpbnQgbXFfaW5p dChzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LA0KKwkJICAgc3RydWN0IG5l dGxpbmtfZXh0X2FjayAqZXh0YWNrKQ0KK3sNCisJaW50IHJldDsNCisNCisJcmV0ID0gbXFfaW5p dF9jb21tb24oc2NoLCBvcHQsIGV4dGFjaywgTlVMTCk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4g cmV0Ow0KIA0KIAltcV9vZmZsb2FkKHNjaCwgVENfTVFfQ1JFQVRFKTsNCiAJcmV0dXJuIDA7DQog fQ0KIA0KLXN0YXRpYyB2b2lkIG1xX2F0dGFjaChzdHJ1Y3QgUWRpc2MgKnNjaCkNCit2b2lkIG1x X2F0dGFjaChzdHJ1Y3QgUWRpc2MgKnNjaCkNCiB7DQogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYg PSBxZGlzY19kZXYoc2NoKTsNCiAJc3RydWN0IG1xX3NjaGVkICpwcml2ID0gcWRpc2NfcHJpdihz Y2gpOw0KQEAgLTEyNCw4ICsxMzksOSBAQCBzdGF0aWMgdm9pZCBtcV9hdHRhY2goc3RydWN0IFFk aXNjICpzY2gpDQogCWtmcmVlKHByaXYtPnFkaXNjcyk7DQogCXByaXYtPnFkaXNjcyA9IE5VTEw7 DQogfQ0KK0VYUE9SVF9TWU1CT0wobXFfYXR0YWNoKTsNCiANCi1zdGF0aWMgaW50IG1xX2R1bXAo c3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBza19idWZmICpza2IpDQordm9pZCBtcV9kdW1wX2Nv bW1vbihzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCiB7DQogCXN0cnVj dCBuZXRfZGV2aWNlICpkZXYgPSBxZGlzY19kZXYoc2NoKTsNCiAJc3RydWN0IFFkaXNjICpxZGlz YzsNCkBAIC0xNTIsNyArMTY4LDEyIEBAIHN0YXRpYyBpbnQgbXFfZHVtcChzdHJ1Y3QgUWRpc2Mg KnNjaCwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCiANCiAJCXNwaW5fdW5sb2NrX2JoKHFkaXNjX2xv Y2socWRpc2MpKTsNCiAJfQ0KK30NCitFWFBPUlRfU1lNQk9MKG1xX2R1bXBfY29tbW9uKTsNCiAN CitzdGF0aWMgaW50IG1xX2R1bXAoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBza19idWZmICpz a2IpDQorew0KKwltcV9kdW1wX2NvbW1vbihzY2gsIHNrYik7DQogCXJldHVybiBtcV9vZmZsb2Fk X3N0YXRzKHNjaCk7DQogfQ0KIA0KQEAgLTE2NiwxMSArMTg3LDEyIEBAIHN0YXRpYyBzdHJ1Y3Qg bmV0ZGV2X3F1ZXVlICptcV9xdWV1ZV9nZXQoc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxv bmcgY2wpDQogCXJldHVybiBuZXRkZXZfZ2V0X3R4X3F1ZXVlKGRldiwgbnR4KTsNCiB9DQogDQot c3RhdGljIHN0cnVjdCBuZXRkZXZfcXVldWUgKm1xX3NlbGVjdF9xdWV1ZShzdHJ1Y3QgUWRpc2Mg KnNjaCwNCi0JCQkJCSAgICBzdHJ1Y3QgdGNtc2cgKnRjbSkNCitzdHJ1Y3QgbmV0ZGV2X3F1ZXVl ICptcV9zZWxlY3RfcXVldWUoc3RydWN0IFFkaXNjICpzY2gsDQorCQkJCSAgICAgc3RydWN0IHRj bXNnICp0Y20pDQogew0KIAlyZXR1cm4gbXFfcXVldWVfZ2V0KHNjaCwgVENfSF9NSU4odGNtLT50 Y21fcGFyZW50KSk7DQogfQ0KK0VYUE9SVF9TWU1CT0wobXFfc2VsZWN0X3F1ZXVlKTsNCiANCiBz dGF0aWMgaW50IG1xX2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLCBz dHJ1Y3QgUWRpc2MgKm5ldywNCiAJCSAgICBzdHJ1Y3QgUWRpc2MgKipvbGQsIHN0cnVjdCBuZXRs aW5rX2V4dF9hY2sgKmV4dGFjaykNCkBAIC0xOTgsMTQgKzIyMCwxNSBAQCBzdGF0aWMgaW50IG1x X2dyYWZ0KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLCBzdHJ1Y3QgUWRpc2Mg Km5ldywNCiAJcmV0dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyBzdHJ1Y3QgUWRpc2MgKm1xX2xlYWYo c3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2wpDQorc3RydWN0IFFkaXNjICptcV9s ZWFmKHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsKQ0KIHsNCiAJc3RydWN0IG5l dGRldl9xdWV1ZSAqZGV2X3F1ZXVlID0gbXFfcXVldWVfZ2V0KHNjaCwgY2wpOw0KIA0KIAlyZXR1 cm4gcnRubF9kZXJlZmVyZW5jZShkZXZfcXVldWUtPnFkaXNjX3NsZWVwaW5nKTsNCiB9DQorRVhQ T1JUX1NZTUJPTChtcV9sZWFmKTsNCiANCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBtcV9maW5kKHN0 cnVjdCBRZGlzYyAqc2NoLCB1MzIgY2xhc3NpZCkNCit1bnNpZ25lZCBsb25nIG1xX2ZpbmQoc3Ry dWN0IFFkaXNjICpzY2gsIHUzMiBjbGFzc2lkKQ0KIHsNCiAJdW5zaWduZWQgaW50IG50eCA9IFRD X0hfTUlOKGNsYXNzaWQpOw0KIA0KQEAgLTIxMyw5ICsyMzYsMTAgQEAgc3RhdGljIHVuc2lnbmVk IGxvbmcgbXFfZmluZChzdHJ1Y3QgUWRpc2MgKnNjaCwgdTMyIGNsYXNzaWQpDQogCQlyZXR1cm4g MDsNCiAJcmV0dXJuIG50eDsNCiB9DQorRVhQT1JUX1NZTUJPTChtcV9maW5kKTsNCiANCi1zdGF0 aWMgaW50IG1xX2R1bXBfY2xhc3Moc3RydWN0IFFkaXNjICpzY2gsIHVuc2lnbmVkIGxvbmcgY2ws DQotCQkJIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0Y21zZyAqdGNtKQ0KK2ludCBtcV9k dW1wX2NsYXNzKHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLA0KKwkJICBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGNtc2cgKnRjbSkNCiB7DQogCXN0cnVjdCBuZXRkZXZf cXVldWUgKmRldl9xdWV1ZSA9IG1xX3F1ZXVlX2dldChzY2gsIGNsKTsNCiANCkBAIC0yMjQsOSAr MjQ4LDEwIEBAIHN0YXRpYyBpbnQgbXFfZHVtcF9jbGFzcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5z aWduZWQgbG9uZyBjbCwNCiAJdGNtLT50Y21faW5mbyA9IHJ0bmxfZGVyZWZlcmVuY2UoZGV2X3F1 ZXVlLT5xZGlzY19zbGVlcGluZyktPmhhbmRsZTsNCiAJcmV0dXJuIDA7DQogfQ0KK0VYUE9SVF9T WU1CT0wobXFfZHVtcF9jbGFzcyk7DQogDQotc3RhdGljIGludCBtcV9kdW1wX2NsYXNzX3N0YXRz KHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIGNsLA0KLQkJCSAgICAgICBzdHJ1Y3Qg Z25ldF9kdW1wICpkKQ0KK2ludCBtcV9kdW1wX2NsYXNzX3N0YXRzKHN0cnVjdCBRZGlzYyAqc2No LCB1bnNpZ25lZCBsb25nIGNsLA0KKwkJCXN0cnVjdCBnbmV0X2R1bXAgKmQpDQogew0KIAlzdHJ1 Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVldWUgPSBtcV9xdWV1ZV9nZXQoc2NoLCBjbCk7DQogDQpA QCAtMjM2LDggKzI2MSw5IEBAIHN0YXRpYyBpbnQgbXFfZHVtcF9jbGFzc19zdGF0cyhzdHJ1Y3Qg UWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBjbCwNCiAJCXJldHVybiAtMTsNCiAJcmV0dXJuIDA7 DQogfQ0KK0VYUE9SVF9TWU1CT0wobXFfZHVtcF9jbGFzc19zdGF0cyk7DQogDQotc3RhdGljIHZv aWQgbXFfd2FsayhzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IHFkaXNjX3dhbGtlciAqYXJnKQ0K K3ZvaWQgbXFfd2FsayhzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IHFkaXNjX3dhbGtlciAqYXJn KQ0KIHsNCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHFkaXNjX2RldihzY2gpOw0KIAl1bnNp Z25lZCBpbnQgbnR4Ow0KQEAgLTI1MSw2ICsyNzcsNyBAQCBzdGF0aWMgdm9pZCBtcV93YWxrKHN0 cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgcWRpc2Nfd2Fsa2VyICphcmcpDQogCQkJYnJlYWs7DQog CX0NCiB9DQorRVhQT1JUX1NZTUJPTChtcV93YWxrKTsNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0 IFFkaXNjX2NsYXNzX29wcyBtcV9jbGFzc19vcHMgPSB7DQogCS5zZWxlY3RfcXVldWUJPSBtcV9z ZWxlY3RfcXVldWUsDQoNCi0tIA0KMi41Mi4wDQoNCg==