Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3738045ybl; Tue, 21 Jan 2020 06:14:39 -0800 (PST) X-Google-Smtp-Source: APXvYqwrFosA1lNu6f1PX/feJUKZ/zWvlEayKl9bcq6sXn3h5aJvGx8o3m/szb/jqBVDux5JtlkQ X-Received: by 2002:aca:4c9:: with SMTP id 192mr3271282oie.105.1579616079726; Tue, 21 Jan 2020 06:14:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579616079; cv=none; d=google.com; s=arc-20160816; b=Pu265Nn5b1HZU+f8aDXWnTps4KnBS5pjB0vmKyZuaAqAfAotQKU50Qfz8eBXQV7eW/ KPrUVS1yt2cpRjATy41Y4bEY3YqQo/V65HfNqXwJGz6l5EBhEoJwEN+CZdCQhs5ASzIF kw6O42ypqk8GdK5utsPOruIop+kDxb+WFDhmYt/4Rt6OIldW/HIplY97U439ij/OD300 nI8oy6XlkBIyTNNdxqUqNqmcgoBeWvYYUfgGtNir5QRU2mHI2UaxX+tp6IXSBLCbWCtr 7IdtRsy3a1MqW1r3LUhUn03Rlm7A4/5J5LXozpY5+Rxv6RP9phClRvyk2D1j5zMBKBMK AjlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=KtlNlbWIO3TE4VqPVhX1nuT/0fx5nAtjYuJTFyrYtfE=; b=CLRDYW1gCWDEBVCC/svmAg61pd5Gu7amTSphNQldOH0Wy0OQWwsnmZWbFMBigA/zfg sAe45W5s6oh2Z8zFsjcm7im3L4S5xpmAJkYQKK0MWrY8Gq+qf9dc7X23J7euZGTUwfc1 T+aCNRDHZD7MW/G5wJRdRc2m9haBcKV+GRoy/2X4flR1QA8IwKjlkT3x4ZzazZLqQxkw 2KNe2vKVlxEJJLbApTS+I0iQFWdx9hCTCtHEE/Tj0AjQJJTs2h9cASnrKUGJazY18QxG /i/x8ayO1ONWYuG66vqdYTfVCALyPHBRp+LOlvFVon6MiLcJieZTstFI/znX6yI6hfUc ZRLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=BNS5R7Lo; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q26si18152872otc.260.2020.01.21.06.14.09; Tue, 21 Jan 2020 06:14:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=BNS5R7Lo; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729336AbgAUON5 (ORCPT + 99 others); Tue, 21 Jan 2020 09:13:57 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:24833 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1729099AbgAUONz (ORCPT ); Tue, 21 Jan 2020 09:13:55 -0500 X-UUID: 610cad5f183843dc8dd9406ea60eb86e-20200121 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=KtlNlbWIO3TE4VqPVhX1nuT/0fx5nAtjYuJTFyrYtfE=; b=BNS5R7LofyOThSV09pRrJtMdtKMmrnEnUKeMctCs0sIFnTw6tV15Y/HntX1HhL1DDyFIGBPn80ncUsjNpf+mK83vTsmzdg5W6aaMYuIrJCWH1ZAlq2KFpYHl1UKNQ9WuLa/PFbbMeBvzjp1kyeQP6aXKxQl3VPP9q0Ps2+FPzeM=; X-UUID: 610cad5f183843dc8dd9406ea60eb86e-20200121 Received: from mtkcas09.mediatek.inc [(172.21.101.178)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 807001727; Tue, 21 Jan 2020 22:13:51 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 21 Jan 2020 22:13:49 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 21 Jan 2020 22:13:29 +0800 From: Ryder Lee To: Felix Fietkau , Lorenzo Bianconi CC: Shayne Chen , Roy Luo , Sean Wang , , , Ryder Lee Subject: [PATCH 3/7] mt76: mt7615: add a helper to encapsulate sta_rec operation Date: Tue, 21 Jan 2020 22:13:38 +0800 Message-ID: <21aa7ee4f30895a177e624de61d431a382664667.1579237414.git.ryder.lee@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 63F8B728CD1220762B672EA248788219B02C7EB59FEEF0A69A95EBA16847355D2000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org T3BlcmF0aW5nIGNvbW1hbmQgaXMgc2ltcGxlciBhbmQganVzdCBhcyBjbGVhcg0KDQpTaWduZWQt b2ZmLWJ5OiBSeWRlciBMZWUgPHJ5ZGVyLmxlZUBtZWRpYXRlay5jb20+DQpTaWduZWQtb2ZmLWJ5 OiBTaGF5bmUgQ2hlbiA8c2hheW5lLmNoZW5AbWVkaWF0ZWsuY29tPg0KVGVzdGVkLWJ5OiBTZWFu IFdhbmcgPHNlYW4ud2FuZ0BtZWRpYXRlay5jb20+DQotLS0NCiAuLi4vbmV0L3dpcmVsZXNzL21l ZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jICAgfCAxMTYgKysrKysrKysrLS0tLS0tLS0tDQogMSBm aWxlIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYw0KaW5kZXggMzBm ZjA4YmM5YWZjLi42YmVmMGRjYjgzYjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVz cy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMNCkBAIC05ODgsNiArOTg4LDI3IEBAIGludCBtdDc2 MTVfbWN1X2RlbF93dGJsX2FsbChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KQ0KIAkJCQkgICAmcmVx LCBzaXplb2YocmVxKSwgdHJ1ZSk7DQogfQ0KIA0KK3N0YXRpYyBpbnQNCittdDc2MTVfbWN1X3Nl bmRfc3RhX3JlYyhzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCB1OCAqcmVxLCB1OCAqd3JlcSwNCisJ CQl1OCB3bGVuLCBib29sIGVuYWJsZSkNCit7DQorCXUzMiBzbGVuID0gd3JlcSAtIHJlcTsNCisN CisJaWYgKCFlbmFibGUpIHsNCisJCV9fbXQ3Nl9tY3Vfc2VuZF9tc2coJmRldi0+bXQ3NiwgTUNV X0VYVF9DTURfU1RBX1JFQ19VUERBVEUsDQorCQkJCSAgICByZXEsIHNsZW4sIHRydWUpOw0KKw0K KwkJcmV0dXJuIF9fbXQ3Nl9tY3Vfc2VuZF9tc2coJmRldi0+bXQ3NiwgTUNVX0VYVF9DTURfV1RC TF9VUERBVEUsDQorCQkJCQkgICB3cmVxLCB3bGVuLCB0cnVlKTsNCisJfQ0KKw0KKwlfX210NzZf bWN1X3NlbmRfbXNnKCZkZXYtPm10NzYsIE1DVV9FWFRfQ01EX1dUQkxfVVBEQVRFLCB3cmVxLA0K KwkJCSAgICB3bGVuLCB0cnVlKTsNCisNCisJcmV0dXJuIF9fbXQ3Nl9tY3Vfc2VuZF9tc2coJmRl di0+bXQ3NiwgTUNVX0VYVF9DTURfU1RBX1JFQ19VUERBVEUsDQorCQkJCSAgIHJlcSwgc2xlbiwg dHJ1ZSk7DQorfQ0KKw0KIGludCBtdDc2MTVfbWN1X3NldF9ibWMoc3RydWN0IG10NzYxNV9kZXYg KmRldiwNCiAJCSAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGVuKQ0KIHsN CkBAIC0xMDI5LDEzICsxMDUwLDcgQEAgaW50IG10NzYxNV9tY3Vfc2V0X2JtYyhzdHJ1Y3QgbXQ3 NjE1X2RldiAqZGV2LA0KIAl9IGVsc2Ugew0KIAkJcmVxLmJhc2ljLmNvbm5fc3RhdGUgPSBDT05O X1NUQVRFX0RJU0NPTk5FQ1Q7DQogCQlyZXEuYmFzaWMuZXh0cmFfaW5mbyA9IGNwdV90b19sZTE2 KEVYVFJBX0lORk9fVkVSKTsNCi0NCi0JCV9fbXQ3Nl9tY3Vfc2VuZF9tc2coJmRldi0+bXQ3Niwg TUNVX0VYVF9DTURfU1RBX1JFQ19VUERBVEUsDQotCQkJCSAgICAmcmVxLCAodTggKil3dGJsX2hk ciAtICh1OCAqKSZyZXEsIHRydWUpOw0KLQ0KLQkJcmV0dXJuIF9fbXQ3Nl9tY3Vfc2VuZF9tc2co JmRldi0+bXQ3NiwgTUNVX0VYVF9DTURfV1RCTF9VUERBVEUsDQotCQkJCQkgICAodTggKil3dGJs X2hkciwgYnVmIC0gKHU4ICopd3RibF9oZHIsDQotCQkJCQkgICB0cnVlKTsNCisJCWdvdG8gb3V0 Ow0KIAl9DQogDQogCXd0YmxfZyA9IChzdHJ1Y3Qgd3RibF9nZW5lcmljICopYnVmOw0KQEAgLTEw NTUsMTEgKzEwNzAsOSBAQCBpbnQgbXQ3NjE1X21jdV9zZXRfYm1jKHN0cnVjdCBtdDc2MTVfZGV2 ICpkZXYsDQogDQogCXd0YmxfaGRyLT50bHZfbnVtID0gY3B1X3RvX2xlMTYoMik7DQogDQotCV9f bXQ3Nl9tY3Vfc2VuZF9tc2coJmRldi0+bXQ3NiwgTUNVX0VYVF9DTURfV1RCTF9VUERBVEUsDQot CQkJICAgICh1OCAqKXd0YmxfaGRyLCBidWYgLSAodTggKil3dGJsX2hkciwgdHJ1ZSk7DQotDQot CXJldHVybiBfX210NzZfbWN1X3NlbmRfbXNnKCZkZXYtPm10NzYsIE1DVV9FWFRfQ01EX1NUQV9S RUNfVVBEQVRFLA0KLQkJCQkgICAmcmVxLCAodTggKil3dGJsX2hkciAtICh1OCAqKSZyZXEsIHRy dWUpOw0KK291dDoNCisJcmV0dXJuIG10NzYxNV9tY3Vfc2VuZF9zdGFfcmVjKGRldiwgKHU4ICop JnJlcSwgKHU4ICopd3RibF9oZHIsDQorCQkJCSAgICAgICBidWYgLSAodTggKil3dGJsX2hkciwg ZW4pOw0KIH0NCiANCiBpbnQgbXQ3NjE1X21jdV9zZXRfc3RhKHN0cnVjdCBtdDc2MTVfZGV2ICpk ZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQpAQCAtMTA3Niw3ICsxMDg5LDYgQEAgaW50 IG10NzYxNV9tY3Vfc2V0X3N0YShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgw MjExX3ZpZiAqdmlmLA0KIAkJLmhkciA9IHsNCiAJCQkuYnNzX2lkeCA9IG12aWYtPmlkeCwNCiAJ CQkud2xhbl9pZHggPSBtc3RhLT53Y2lkLmlkeCwNCi0JCQkudGx2X251bSA9IGNwdV90b19sZTE2 KDEpLA0KIAkJCS5pc190bHZfYXBwZW5kID0gMSwNCiAJCQkubXVhcl9pZHggPSBtdmlmLT5vbWFj X2lkeCwNCiAJCX0sDQpAQCAtMTExNSw0OSArMTEyNywzOCBAQCBpbnQgbXQ3NjE1X21jdV9zZXRf c3RhKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQog CQlyZXEuYmFzaWMuY29ubl9zdGF0ZSA9IENPTk5fU1RBVEVfUE9SVF9TRUNVUkU7DQogCQlyZXEu YmFzaWMuZXh0cmFfaW5mbyA9IGNwdV90b19sZTE2KEVYVFJBX0lORk9fVkVSIHwNCiAJCQkJCQkg ICBFWFRSQV9JTkZPX05FVyk7DQotCX0gZWxzZSB7DQotCQlyZXEuYmFzaWMuY29ubl9zdGF0ZSA9 IENPTk5fU1RBVEVfRElTQ09OTkVDVDsNCi0JCXJlcS5iYXNpYy5leHRyYV9pbmZvID0gY3B1X3Rv X2xlMTYoRVhUUkFfSU5GT19WRVIpOw0KLQ0KLQkJLyogd3RibCByZXNldCAqLw0KLQkJd3RibF9o ZHIgPSAoc3RydWN0IHd0YmxfcmVxX2hkciAqKWJ1ZjsNCi0JCWJ1ZiArPSBzaXplb2YoKnd0Ymxf aGRyKTsNCi0JCXd0YmxfaGRyLT53bGFuX2lkeCA9IG1zdGEtPndjaWQuaWR4Ow0KLQkJd3RibF9o ZHItPm9wZXJhdGlvbiA9IFdUQkxfUkVTRVRfQU5EX1NFVDsNCiANCi0JCV9fbXQ3Nl9tY3Vfc2Vu ZF9tc2coJmRldi0+bXQ3NiwgTUNVX0VYVF9DTURfU1RBX1JFQ19VUERBVEUsDQotCQkJCSAgICAm cmVxLCByZXEuYnVmIC0gKHU4ICopJnJlcSwgdHJ1ZSk7DQorCQkvKiBzdGFfcmVjIGh0ICovDQor CQlpZiAoc3RhLT5odF9jYXAuaHRfc3VwcG9ydGVkKSB7DQorCQkJc3RydWN0IHN0YV9yZWNfaHQg KnN0YV9odDsNCiANCi0JCXJldHVybiBfX210NzZfbWN1X3NlbmRfbXNnKCZkZXYtPm10NzYsIE1D VV9FWFRfQ01EX1dUQkxfVVBEQVRFLA0KLQkJCQkJICAgcmVxLmJ1ZiwgYnVmIC0gcmVxLmJ1Ziwg dHJ1ZSk7DQotCX0NCi0NCi0JLyogc3RhX3JlYyBodCAqLw0KLQlpZiAoc3RhLT5odF9jYXAuaHRf c3VwcG9ydGVkKSB7DQotCQlzdHJ1Y3Qgc3RhX3JlY19odCAqc3RhX2h0Ow0KLQ0KLQkJc3RhX2h0 ID0gKHN0cnVjdCBzdGFfcmVjX2h0ICopYnVmOw0KLQkJYnVmICs9IHNpemVvZigqc3RhX2h0KTsN Ci0JCXN0YV9odC0+dGFnID0gY3B1X3RvX2xlMTYoU1RBX1JFQ19IVCk7DQotCQlzdGFfaHQtPmxl biA9IGNwdV90b19sZTE2KHNpemVvZigqc3RhX2h0KSk7DQotCQlzdGFfaHQtPmh0X2NhcCA9IGNw dV90b19sZTE2KHN0YS0+aHRfY2FwLmNhcCk7DQotCQlzdGx2Kys7DQotDQotCQkvKiBzdGFfcmVj IHZodCAqLw0KLQkJaWYgKHN0YS0+dmh0X2NhcC52aHRfc3VwcG9ydGVkKSB7DQotCQkJc3RydWN0 IHN0YV9yZWNfdmh0ICpzdGFfdmh0Ow0KLQ0KLQkJCXN0YV92aHQgPSAoc3RydWN0IHN0YV9yZWNf dmh0ICopYnVmOw0KLQkJCWJ1ZiArPSBzaXplb2YoKnN0YV92aHQpOw0KLQkJCXN0YV92aHQtPnRh ZyA9IGNwdV90b19sZTE2KFNUQV9SRUNfVkhUKTsNCi0JCQlzdGFfdmh0LT5sZW4gPSBjcHVfdG9f bGUxNihzaXplb2YoKnN0YV92aHQpKTsNCi0JCQlzdGFfdmh0LT52aHRfY2FwID0gY3B1X3RvX2xl MzIoc3RhLT52aHRfY2FwLmNhcCk7DQotCQkJc3RhX3ZodC0+dmh0X3J4X21jc19tYXAgPQ0KLQkJ CQlzdGEtPnZodF9jYXAudmh0X21jcy5yeF9tY3NfbWFwOw0KLQkJCXN0YV92aHQtPnZodF90eF9t Y3NfbWFwID0NCi0JCQkJc3RhLT52aHRfY2FwLnZodF9tY3MudHhfbWNzX21hcDsNCisJCQlzdGFf aHQgPSAoc3RydWN0IHN0YV9yZWNfaHQgKilidWY7DQorCQkJYnVmICs9IHNpemVvZigqc3RhX2h0 KTsNCisJCQlzdGFfaHQtPnRhZyA9IGNwdV90b19sZTE2KFNUQV9SRUNfSFQpOw0KKwkJCXN0YV9o dC0+bGVuID0gY3B1X3RvX2xlMTYoc2l6ZW9mKCpzdGFfaHQpKTsNCisJCQlzdGFfaHQtPmh0X2Nh cCA9IGNwdV90b19sZTE2KHN0YS0+aHRfY2FwLmNhcCk7DQogCQkJc3RsdisrOw0KKw0KKwkJCS8q IHN0YV9yZWMgdmh0ICovDQorCQkJaWYgKHN0YS0+dmh0X2NhcC52aHRfc3VwcG9ydGVkKSB7DQor CQkJCXN0cnVjdCBzdGFfcmVjX3ZodCAqc3RhX3ZodDsNCisNCisJCQkJc3RhX3ZodCA9IChzdHJ1 Y3Qgc3RhX3JlY192aHQgKilidWY7DQorCQkJCWJ1ZiArPSBzaXplb2YoKnN0YV92aHQpOw0KKwkJ CQlzdGFfdmh0LT50YWcgPSBjcHVfdG9fbGUxNihTVEFfUkVDX1ZIVCk7DQorCQkJCXN0YV92aHQt PmxlbiA9IGNwdV90b19sZTE2KHNpemVvZigqc3RhX3ZodCkpOw0KKwkJCQlzdGFfdmh0LT52aHRf Y2FwID0NCisJCQkJCWNwdV90b19sZTMyKHN0YS0+dmh0X2NhcC5jYXApOw0KKwkJCQlzdGFfdmh0 LT52aHRfcnhfbWNzX21hcCA9DQorCQkJCQlzdGEtPnZodF9jYXAudmh0X21jcy5yeF9tY3NfbWFw Ow0KKwkJCQlzdGFfdmh0LT52aHRfdHhfbWNzX21hcCA9DQorCQkJCQlzdGEtPnZodF9jYXAudmh0 X21jcy50eF9tY3NfbWFwOw0KKwkJCQlzdGx2Kys7DQorCQkJfQ0KIAkJfQ0KKwl9IGVsc2Ugew0K KwkJcmVxLmJhc2ljLmNvbm5fc3RhdGUgPSBDT05OX1NUQVRFX0RJU0NPTk5FQ1Q7DQorCQlyZXEu YmFzaWMuZXh0cmFfaW5mbyA9IGNwdV90b19sZTE2KEVYVFJBX0lORk9fVkVSKTsNCiAJfQ0KIA0K IAkvKiB3dGJsICovDQpAQCAtMTE2Niw2ICsxMTY3LDkgQEAgaW50IG10NzYxNV9tY3Vfc2V0X3N0 YShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KIAl3 dGJsX2hkci0+d2xhbl9pZHggPSBtc3RhLT53Y2lkLmlkeDsNCiAJd3RibF9oZHItPm9wZXJhdGlv biA9IFdUQkxfUkVTRVRfQU5EX1NFVDsNCiANCisJaWYgKCFlbikNCisJCWdvdG8gb3V0Ow0KKw0K IAl3dGJsX2cgPSAoc3RydWN0IHd0YmxfZ2VuZXJpYyAqKWJ1ZjsNCiAJYnVmICs9IHNpemVvZigq d3RibF9nKTsNCiAJd3RibF9nLT50YWcgPSBjcHVfdG9fbGUxNihXVEJMX0dFTkVSSUMpOw0KQEAg LTEyNTIsMTQgKzEyNTYsMTIgQEAgaW50IG10NzYxNV9tY3Vfc2V0X3N0YShzdHJ1Y3QgbXQ3NjE1 X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KIAkJd3RsdisrOw0KIAl9DQog DQorb3V0Og0KIAl3dGJsX2hkci0+dGx2X251bSA9IGNwdV90b19sZTE2KHd0bHYpOw0KIAlyZXEu aGRyLnRsdl9udW0gPSBjcHVfdG9fbGUxNihzdGx2KTsNCiANCi0JX19tdDc2X21jdV9zZW5kX21z ZygmZGV2LT5tdDc2LCBNQ1VfRVhUX0NNRF9XVEJMX1VQREFURSwgKHU4ICopd3RibF9oZHIsDQot CQkJICAgIGJ1ZiAtICh1OCAqKXd0YmxfaGRyLCB0cnVlKTsNCi0NCi0JcmV0dXJuIF9fbXQ3Nl9t Y3Vfc2VuZF9tc2coJmRldi0+bXQ3NiwgTUNVX0VYVF9DTURfU1RBX1JFQ19VUERBVEUsDQotCQkJ CSAgICZyZXEsICh1OCAqKXd0YmxfaGRyIC0gKHU4ICopJnJlcSwgdHJ1ZSk7DQorCXJldHVybiBt dDc2MTVfbWN1X3NlbmRfc3RhX3JlYyhkZXYsICh1OCAqKSZyZXEsICh1OCAqKXd0YmxfaGRyLA0K KwkJCQkgICAgICAgYnVmIC0gKHU4ICopd3RibF9oZHIsIGVuKTsNCiB9DQogDQogaW50IG10NzYx NV9tY3Vfc2V0X2JjbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92 aWYgKnZpZiwNCi0tIA0KMi4xOC4wDQo=