Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp153505rwr; Wed, 19 Apr 2023 04:56:38 -0700 (PDT) X-Google-Smtp-Source: AKy350bm72+z7B5k3Q5jp4ksEmKE8vURsHwyL7IkMZ9zr1YxdVp4wIRqic8SC56yn5XLhHX5oab+ X-Received: by 2002:a05:6a20:4391:b0:da:8917:bdc5 with SMTP id i17-20020a056a20439100b000da8917bdc5mr3269331pzl.45.1681905398384; Wed, 19 Apr 2023 04:56:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681905398; cv=none; d=google.com; s=arc-20160816; b=DXyjpSdHjtw6vJwW9qeaF6b2At0ffYmclq9NIhQyp8fdo8l9UagXjPUYDoR88pak+H LRgyxvgLAr1DU/9qyJcDxdYu6VAcCqHdzWBMuTa7UWBlJz9vUMnYcYlxAP5TXnw1mjVH zuLJUCM+uXsZLJfpiHh6X64fXMcLniCxeSDTO0giZ5AKef6nM8xJRVUxhF1Wcm12OwHU mb9EOgq8iqUdNiJyo6XNPN253oLNwcMhENJiSlqnPxmASp5LNcKNM5KAimIKLj9IBe99 3bLyEFhJkWtaQuhKLdEMDRyzluUKkocBD7NNUdWxo7zSeuXe2bElFcMcqkkczNGdA0BK xhCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:user-agent:content-language:accept-language:message-id :date:thread-index:thread-topic:subject:cc:to:from:authenticated-by; bh=qbuFkbWHClTuw2KK1MuefJCcWIKHgYNKGjbvVQ69yG8=; b=LSPtaFBFABLJxIp9bKFUUMEjKNABUcJARUdzT85CFblVcxR0FdUL8eL6m0Y6HvrIH7 /tNm8WXqjHxtzt7CGCLXPSLBK1G6e9fZ8rcySl+NbEpwRT8OA9jVmCNWVflfnBetGsni BB5dRYWHTQPanmK50No6MN/LTFzdq54A6hrJ3+yRgfyVVxzZkcWivN+zLw88JrT6ozKX Bw5QSyYQp+lzu2zOlThYnqccwejuTxB7CfyLyGPlMdeKXDSRQ5UdH2wv/mIxInHmHKcx LUqT3pBMMkpK2xLmRbzDKZZGVnGFLI0TcTSM2rvhVr638cJweDvaT1r1/6gtOldOZxbh 2AMQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nh17-20020a17090b365100b002475951186asi1644091pjb.131.2023.04.19.04.56.29; Wed, 19 Apr 2023 04:56:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232966AbjDSLqT (ORCPT + 64 others); Wed, 19 Apr 2023 07:46:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232963AbjDSLqS (ORCPT ); Wed, 19 Apr 2023 07:46:18 -0400 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F344014448 for ; Wed, 19 Apr 2023 04:46:10 -0700 (PDT) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 33JBk4Ox9009766, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36505.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 33JBk4Ox9009766 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK); Wed, 19 Apr 2023 19:46:04 +0800 Received: from RTEXDAG02.realtek.com.tw (172.21.6.101) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.32; Wed, 19 Apr 2023 19:46:04 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXDAG02.realtek.com.tw (172.21.6.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Wed, 19 Apr 2023 19:46:04 +0800 Received: from RTEXMBS04.realtek.com.tw ([fe80::e138:e7f1:4709:ff4d]) by RTEXMBS04.realtek.com.tw ([fe80::e138:e7f1:4709:ff4d%5]) with mapi id 15.01.2375.007; Wed, 19 Apr 2023 19:46:04 +0800 From: Ping-Ke Shih To: "kvalo@kernel.org" CC: "linux-wireless@vger.kernel.org" , "Kevin Yang" Subject: [PATCH 5/5] wifi: rtw89: scan offload wait for FW done ACK Thread-Topic: [PATCH 5/5] wifi: rtw89: scan offload wait for FW done ACK Thread-Index: AQHZcrSFOUzH5yUYgka/E0Ds0PDTgg== Date: Wed, 19 Apr 2023 11:46:03 +0000 Message-ID: Accept-Language: en-US, zh-TW Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.1-2 x-originating-ip: [172.16.16.139] x-kse-serverinfo: RTEXDAG02.realtek.com.tw, 9 x-kse-antispam-interceptor-info: fallback x-kse-antivirus-interceptor-info: fallback Content-Type: text/plain; charset="utf-8" Content-ID: <176EEE7A24A20A4B91BEA2E412F8FA43@realtek.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-ServerInfo: RTEXH36505.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org RnJvbTogWm9uZy1aaGUgWWFuZyA8a2V2aW5feWFuZ0ByZWFsdGVrLmNvbT4NCg0KVGhlIGZvbGxv d2luZyBhcmUgc2NhbiBvZmZsb2FkIHJlbGF0ZWQgSDJDIChob3N0IHRvIGNoaXApIGZ1bmN0aW9u IHR5cGVzLg0KKiBIMkNfRlVOQ19BRERfU0NBTk9GTERfQ0gNCiogSDJDX0ZVTkNfU0NBTk9GTEQN CkJlZm9yZSBkb2luZyBGVyBzY2FuLCB3ZSB3aWxsIGNvbnRpbnVvdXNseSBzZW5kIG11bHRpcGxl IEgyQ3Mgd2l0aCBhYm92ZQ0KdHlwZXMgd2hpY2ggYXJlIHVzZWQgdG8gdGVsbCBGVyB0aGUgc2Nh biBjb25maWd1cmF0aW9uIG9mIHRoaXMgdGltZS4gQnV0LA0KaWYgRlcgZG9lc24ndCBoYW5kbGUg b25lIG9mIHRoZXNlIEgyQ3Mgd2VsbCwgdGhlIEZXIHNjYW4gcHJvY2VzcyBtaWdodA0Kbm90IHJ1 biBhcyBleHBlY3RlZCBhbmQgZHJpdmVyIHNob3VsZCBub3RpY2UgaXQgZWFybHkuDQoNClNvLCB0 aGlzIGNvbW1pdHMgbWFrZXMgc2NhbiBvZmZsb2FkIHJlbGF0ZWQgSDJDcyB3YWl0IGZvciBGVyBk b25lIEFDSyB2aWENCnJ0dzg5X3dhaXRfZm9yX2NvbmQoKSBhbmQgcnR3ODlfY29tcGxldGVfY29u ZCgpLiBBbmQsIHdlIGNoZWNrIHRoZSByZXR1cm4NCmNvZGUgb2YgdGhlc2UgSDJDcyBmcm9tIEZX Lg0KDQpTaWduZWQtb2ZmLWJ5OiBab25nLVpoZSBZYW5nIDxrZXZpbl95YW5nQHJlYWx0ZWsuY29t Pg0KU2lnbmVkLW9mZi1ieTogUGluZy1LZSBTaGloIDxwa3NoaWhAcmVhbHRlay5jb20+DQotLS0N CiBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMgIHwgMjggKysrKysrKyst LS0tLS0tLS0NCiBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmggIHwgMjEg KysrKysrKy0tLS0tLQ0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMg fCAzOSArKysrKysrKysrKysrKysrKysrKy0tLS0NCiAzIGZpbGVzIGNoYW5nZWQsIDU4IGluc2Vy dGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9y dHc4OS9mdy5jDQppbmRleCA4NGUwNGI1YTVmMDA0Li5mODVmOWNlMmE3YzE1IDEwMDY0NA0KLS0t IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5jDQorKysgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L2Z3LmMNCkBAIC0yNTMyLDkgKzI1MzIsMTEgQEAg aW50IHJ0dzg5X2Z3X2gyY19hZGRfcGt0X29mZmxvYWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2 LCB1OCAqaWQsDQogaW50IHJ0dzg5X2Z3X2gyY19zY2FuX2xpc3Rfb2ZmbG9hZChzdHJ1Y3QgcnR3 ODlfZGV2ICpydHdkZXYsIGludCBsZW4sDQogCQkJCSAgIHN0cnVjdCBsaXN0X2hlYWQgKmNoYW5f bGlzdCkNCiB7DQorCXN0cnVjdCBydHc4OV93YWl0X2luZm8gKndhaXQgPSAmcnR3ZGV2LT5tYWMu Zndfb2ZsZF93YWl0Ow0KIAlzdHJ1Y3QgcnR3ODlfbWFjX2NoaW5mbyAqY2hfaW5mbzsNCiAJc3Ry dWN0IHNrX2J1ZmYgKnNrYjsNCiAJaW50IHNrYl9sZW4gPSBIMkNfTEVOX1NDQU5fTElTVF9PRkZM T0FEICsgbGVuICogUlRXODlfTUFDX0NISU5GT19TSVpFOw0KKwl1bnNpZ25lZCBpbnQgY29uZDsN CiAJdTggKmNtZDsNCiAJaW50IHJldDsNCiANCkBAIC0yNTgxLDI3ICsyNTgzLDI3IEBAIGludCBy dHc4OV9md19oMmNfc2Nhbl9saXN0X29mZmxvYWQoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2LCBp bnQgbGVuLA0KIAkJCSAgICAgIEgyQ19DQVRfTUFDLCBIMkNfQ0xfTUFDX0ZXX09GTEQsDQogCQkJ ICAgICAgSDJDX0ZVTkNfQUREX1NDQU5PRkxEX0NILCAxLCAxLCBza2JfbGVuKTsNCiANCi0JcmV0 ID0gcnR3ODlfaDJjX3R4KHJ0d2Rldiwgc2tiLCBmYWxzZSk7DQorCWNvbmQgPSBSVFc4OV9GV19P RkxEX1dBSVRfQ09ORCgwLCBIMkNfRlVOQ19BRERfU0NBTk9GTERfQ0gpOw0KKw0KKwlyZXQgPSBy dHc4OV9oMmNfdHhfYW5kX3dhaXQocnR3ZGV2LCBza2IsIHdhaXQsIGNvbmQpOw0KIAlpZiAocmV0 KSB7DQotCQlydHc4OV9lcnIocnR3ZGV2LCAiZmFpbGVkIHRvIHNlbmQgaDJjXG4iKTsNCi0JCWdv dG8gZmFpbDsNCisJCXJ0dzg5X2RlYnVnKHJ0d2RldiwgUlRXODlfREJHX0ZXLCAiZmFpbGVkIHRv IGFkZCBzY2FuIG9mbGQgY2hcbiIpOw0KKwkJcmV0dXJuIHJldDsNCiAJfQ0KIA0KIAlyZXR1cm4g MDsNCi1mYWlsOg0KLQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOw0KLQ0KLQlyZXR1cm4gcmV0Ow0K IH0NCiANCiBpbnQgcnR3ODlfZndfaDJjX3NjYW5fb2ZmbG9hZChzdHJ1Y3QgcnR3ODlfZGV2ICpy dHdkZXYsDQogCQkJICAgICAgc3RydWN0IHJ0dzg5X3NjYW5fb3B0aW9uICpvcHRpb24sDQogCQkJ ICAgICAgc3RydWN0IHJ0dzg5X3ZpZiAqcnR3dmlmKQ0KIHsNCisJc3RydWN0IHJ0dzg5X3dhaXRf aW5mbyAqd2FpdCA9ICZydHdkZXYtPm1hYy5md19vZmxkX3dhaXQ7DQogCXN0cnVjdCBydHc4OV9j aGFuICpvcCA9ICZydHdkZXYtPnNjYW5faW5mby5vcF9jaGFuOw0KIAlzdHJ1Y3QgcnR3ODlfaDJj X3NjYW5vZmxkICpoMmM7DQogCXUzMiBsZW4gPSBzaXplb2YoKmgyYyk7DQogCXN0cnVjdCBza19i dWZmICpza2I7DQorCXVuc2lnbmVkIGludCBjb25kOw0KIAlpbnQgcmV0Ow0KIA0KIAlza2IgPSBy dHc4OV9md19oMmNfYWxsb2Nfc2tiX3dpdGhfaGRyKHJ0d2RldiwgbGVuKTsNCkBAIC0yNjQwLDE3 ICsyNjQyLDE1IEBAIGludCBydHc4OV9md19oMmNfc2Nhbl9vZmZsb2FkKHN0cnVjdCBydHc4OV9k ZXYgKnJ0d2RldiwNCiAJCQkgICAgICBIMkNfRlVOQ19TQ0FOT0ZMRCwgMSwgMSwNCiAJCQkgICAg ICBsZW4pOw0KIA0KLQlyZXQgPSBydHc4OV9oMmNfdHgocnR3ZGV2LCBza2IsIGZhbHNlKTsNCisJ Y29uZCA9IFJUVzg5X0ZXX09GTERfV0FJVF9DT05EKDAsIEgyQ19GVU5DX1NDQU5PRkxEKTsNCisN CisJcmV0ID0gcnR3ODlfaDJjX3R4X2FuZF93YWl0KHJ0d2Rldiwgc2tiLCB3YWl0LCBjb25kKTsN CiAJaWYgKHJldCkgew0KLQkJcnR3ODlfZXJyKHJ0d2RldiwgImZhaWxlZCB0byBzZW5kIGgyY1xu Iik7DQotCQlnb3RvIGZhaWw7DQorCQlydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19GVywg ImZhaWxlZCB0byBzY2FuIG9mbGRcbiIpOw0KKwkJcmV0dXJuIHJldDsNCiAJfQ0KIA0KIAlyZXR1 cm4gMDsNCi1mYWlsOg0KLQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOw0KLQ0KLQlyZXR1cm4gcmV0 Ow0KIH0NCiANCiBpbnQgcnR3ODlfZndfaDJjX3JmX3JlZyhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdk ZXYsDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5o IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9mdy5oDQppbmRleCBiN2M4ZjZm MDUwNmRlLi4yMmExODdlNDE5NjVmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv cmVhbHRlay9ydHc4OS9mdy5oDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0 dzg5L2Z3LmgNCkBAIC0zMjIxLDE2ICszMjIxLDE3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJ0 dzg5X2Z3X2MyaF9hdHRyICpSVFc4OV9TS0JfQzJIX0NCKHN0cnVjdCBza19idWZmICpza2IpDQog I2RlZmluZSBSVFc4OV9HRVRfQzJIX0xPR19TUlRfUFJUKGMyaCkgKGNoYXIgKikoKF9fbGUzMiAq KShjMmgpICsgMikNCiAjZGVmaW5lIFJUVzg5X0dFVF9DMkhfTE9HX0xFTihsZW4pICgobGVuKSAt IFJUVzg5X0MySF9IRUFERVJfTEVOKQ0KIA0KLSNkZWZpbmUgUlRXODlfR0VUX01BQ19DMkhfRE9O RV9BQ0tfQ0FUKGMyaCkgXA0KLQlsZTMyX2dldF9iaXRzKCooKGNvbnN0IF9fbGUzMiAqKShjMmgp ICsgMiksIEdFTk1BU0soMSwgMCkpDQotI2RlZmluZSBSVFc4OV9HRVRfTUFDX0MySF9ET05FX0FD S19DTEFTUyhjMmgpIFwNCi0JbGUzMl9nZXRfYml0cygqKChjb25zdCBfX2xlMzIgKikoYzJoKSAr IDIpLCBHRU5NQVNLKDcsIDIpKQ0KLSNkZWZpbmUgUlRXODlfR0VUX01BQ19DMkhfRE9ORV9BQ0tf RlVOQyhjMmgpIFwNCi0JbGUzMl9nZXRfYml0cygqKChjb25zdCBfX2xlMzIgKikoYzJoKSArIDIp LCBHRU5NQVNLKDE1LCA4KSkNCi0jZGVmaW5lIFJUVzg5X0dFVF9NQUNfQzJIX0RPTkVfQUNLX0gy Q19SRVRVUk4oYzJoKSBcDQotCWxlMzJfZ2V0X2JpdHMoKigoY29uc3QgX19sZTMyICopKGMyaCkg KyAyKSwgR0VOTUFTSygyMywgMTYpKQ0KLSNkZWZpbmUgUlRXODlfR0VUX01BQ19DMkhfRE9ORV9B Q0tfSDJDX1NFUShjMmgpIFwNCi0JbGUzMl9nZXRfYml0cygqKChjb25zdCBfX2xlMzIgKikoYzJo KSArIDIpLCBHRU5NQVNLKDMxLCAyNCkpDQorc3RydWN0IHJ0dzg5X2MyaF9kb25lX2FjayB7DQor CV9fbGUzMiB3MDsNCisJX19sZTMyIHcxOw0KKwlfX2xlMzIgdzI7DQorfSBfX3BhY2tlZDsNCisN CisjZGVmaW5lIFJUVzg5X0MySF9ET05FX0FDS19XMl9DQVQgR0VOTUFTSygxLCAwKQ0KKyNkZWZp bmUgUlRXODlfQzJIX0RPTkVfQUNLX1cyX0NMQVNTIEdFTk1BU0soNywgMikNCisjZGVmaW5lIFJU Vzg5X0MySF9ET05FX0FDS19XMl9GVU5DIEdFTk1BU0soMTUsIDgpDQorI2RlZmluZSBSVFc4OV9D MkhfRE9ORV9BQ0tfVzJfSDJDX1JFVFVSTiBHRU5NQVNLKDIzLCAxNikNCisjZGVmaW5lIFJUVzg5 X0MySF9ET05FX0FDS19XMl9IMkNfU0VRIEdFTk1BU0soMzEsIDI0KQ0KIA0KICNkZWZpbmUgUlRX ODlfR0VUX01BQ19DMkhfUkVWX0FDS19DQVQoYzJoKSBcDQogCWxlMzJfZ2V0X2JpdHMoKigoY29u c3QgX19sZTMyICopKGMyaCkgKyAyKSwgR0VOTUFTSygxLCAwKSkNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvcmVhbHRlay9ydHc4OS9tYWMuYw0KaW5kZXggMDAyYzRkYzJmNWQ1MC4uNzJmM2EyZTE1MDYz ZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMN CisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvbWFjLmMNCkBAIC00MzM0 LDE3ICs0MzM0LDQ0IEBAIHJ0dzg5X21hY19jMmhfcmVjX2FjayhzdHJ1Y3QgcnR3ODlfZGV2ICpy dHdkZXYsIHN0cnVjdCBza19idWZmICpjMmgsIHUzMiBsZW4pDQogfQ0KIA0KIHN0YXRpYyB2b2lk DQotcnR3ODlfbWFjX2MyaF9kb25lX2FjayhzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYsIHN0cnVj dCBza19idWZmICpjMmgsIHUzMiBsZW4pDQorcnR3ODlfbWFjX2MyaF9kb25lX2FjayhzdHJ1Y3Qg cnR3ODlfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2JfYzJoLCB1MzIgbGVuKQ0KIHsN CiAJLyogTi5CLiBUaGlzIHdpbGwgcnVuIGluIGludGVycnVwdCBjb250ZXh0LiAqLw0KKwlzdHJ1 Y3QgcnR3ODlfd2FpdF9pbmZvICpmd19vZmxkX3dhaXQgPSAmcnR3ZGV2LT5tYWMuZndfb2ZsZF93 YWl0Ow0KKwljb25zdCBzdHJ1Y3QgcnR3ODlfYzJoX2RvbmVfYWNrICpjMmggPQ0KKwkJKGNvbnN0 IHN0cnVjdCBydHc4OV9jMmhfZG9uZV9hY2sgKilza2JfYzJoLT5kYXRhOw0KKwl1OCBoMmNfY2F0 ID0gbGUzMl9nZXRfYml0cyhjMmgtPncyLCBSVFc4OV9DMkhfRE9ORV9BQ0tfVzJfQ0FUKTsNCisJ dTggaDJjX2NsYXNzID0gbGUzMl9nZXRfYml0cyhjMmgtPncyLCBSVFc4OV9DMkhfRE9ORV9BQ0tf VzJfQ0xBU1MpOw0KKwl1OCBoMmNfZnVuYyA9IGxlMzJfZ2V0X2JpdHMoYzJoLT53MiwgUlRXODlf QzJIX0RPTkVfQUNLX1cyX0ZVTkMpOw0KKwl1OCBoMmNfcmV0dXJuID0gbGUzMl9nZXRfYml0cyhj MmgtPncyLCBSVFc4OV9DMkhfRE9ORV9BQ0tfVzJfSDJDX1JFVFVSTik7DQorCXU4IGgyY19zZXEg PSBsZTMyX2dldF9iaXRzKGMyaC0+dzIsIFJUVzg5X0MySF9ET05FX0FDS19XMl9IMkNfU0VRKTsN CisJc3RydWN0IHJ0dzg5X2NvbXBsZXRpb25fZGF0YSBkYXRhID0ge307DQorCXVuc2lnbmVkIGlu dCBjb25kOw0KIA0KIAlydHc4OV9kZWJ1ZyhydHdkZXYsIFJUVzg5X0RCR19GVywNCiAJCSAgICAi QzJIIGRvbmUgYWNrIHJlY3YsIGNhdDogJWQsIGNsYXNzOiAlZCwgZnVuYzogJWQsIHJldDogJWQs IHNlcSA6ICVkXG4iLA0KLQkJICAgIFJUVzg5X0dFVF9NQUNfQzJIX0RPTkVfQUNLX0NBVChjMmgt PmRhdGEpLA0KLQkJICAgIFJUVzg5X0dFVF9NQUNfQzJIX0RPTkVfQUNLX0NMQVNTKGMyaC0+ZGF0 YSksDQotCQkgICAgUlRXODlfR0VUX01BQ19DMkhfRE9ORV9BQ0tfRlVOQyhjMmgtPmRhdGEpLA0K LQkJICAgIFJUVzg5X0dFVF9NQUNfQzJIX0RPTkVfQUNLX0gyQ19SRVRVUk4oYzJoLT5kYXRhKSwN Ci0JCSAgICBSVFc4OV9HRVRfTUFDX0MySF9ET05FX0FDS19IMkNfU0VRKGMyaC0+ZGF0YSkpOw0K KwkJICAgIGgyY19jYXQsIGgyY19jbGFzcywgaDJjX2Z1bmMsIGgyY19yZXR1cm4sIGgyY19zZXEp Ow0KKw0KKwlpZiAoaDJjX2NhdCAhPSBIMkNfQ0FUX01BQykNCisJCXJldHVybjsNCisNCisJc3dp dGNoIChoMmNfY2xhc3MpIHsNCisJZGVmYXVsdDoNCisJCXJldHVybjsNCisJY2FzZSBIMkNfQ0xf TUFDX0ZXX09GTEQ6DQorCQlzd2l0Y2ggKGgyY19mdW5jKSB7DQorCQlkZWZhdWx0Og0KKwkJCXJl dHVybjsNCisJCWNhc2UgSDJDX0ZVTkNfQUREX1NDQU5PRkxEX0NIOg0KKwkJY2FzZSBIMkNfRlVO Q19TQ0FOT0ZMRDoNCisJCQljb25kID0gUlRXODlfRldfT0ZMRF9XQUlUX0NPTkQoMCwgaDJjX2Z1 bmMpOw0KKwkJCWJyZWFrOw0KKwkJfQ0KKw0KKwkJZGF0YS5lcnIgPSAhIWgyY19yZXR1cm47DQor CQlydHc4OV9jb21wbGV0ZV9jb25kKGZ3X29mbGRfd2FpdCwgY29uZCwgJmRhdGEpOw0KKwkJcmV0 dXJuOw0KKwl9DQogfQ0KIA0KIHN0YXRpYyB2b2lkDQotLSANCjIuMjUuMQ0K