Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1846247ybl; Sat, 1 Feb 2020 07:35:42 -0800 (PST) X-Google-Smtp-Source: APXvYqxXKjPlDRW69QdAwnYZr/Hz7zblCgYI2+XGPSXqQmgj59nJXkkYzwGo0hZs0nz5Tebs9wye X-Received: by 2002:aca:aa0e:: with SMTP id t14mr9868360oie.149.1580571342153; Sat, 01 Feb 2020 07:35:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580571342; cv=none; d=google.com; s=arc-20160816; b=vnQ/bCo7V7nn8JHFEImQH/QzfeLB3BkOhbvPdq1yQnFRbW0KdXL+mD2CVSfNo9k1mP gJahyV8nM+yAiEKs6wxIHU83j5jWHz6rvTSdvyF0c2LmtconTI84bmS7H1ZObWwRzz3c T6ltBjK2U6cdwD8v2pxhE2wXySZh80jKmFEPxmhjgCypdUUxXs6+m0Fgz9HV0GuF9Cbs VvVoKZG9of8Quno420QmpWcQJSFSQwAWgZodhDbNOZuL7wcK4MuESeHWFXZ8h3r71Vr0 Sm4hXgTQE07ljsO9q0Br4RxMasrs7x+ruJqzJtwCiSfitW1g55KN4ktxfse2gv05PmFa qsRg== 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=YIYgAeTsC2Ry43GhcJA+l8CP1UHKRxcsWstLgZaTaPY=; b=0ASnGeIulNSfOfL1q6+9QhxxtcJcjd/Apu6Wj8pN4M9zk1qNgKXZ2hK1cHc/BnOd70 /nvaNAHm1SONO1Pj+4/feDu1J+6LigABPCPQQc1Fn7/kL4CzepcyXz0iC1WNCOGLQdpx ngIADN2aTpGCOri2SzpFiBA9kH6gy4yD/XapYuQ0is2B2J4eaPf1Ujs6XPL8oBzxV9Li of5yu/tPj88gbtqrnbp0osJvYNS/CLFX6a0RlCBQXVAtEHk5CGJUGsjYXJNmkDKOlp5I 8ciT6W7KJO5g66pIH+tlFLVOEdX5/pfgVIS4YEaX0T+RYdDL3JKf5Ys84ahkfi92GKDa Gsmg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=NKZg7Evw; 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 d2si6336921oth.267.2020.02.01.07.35.31; Sat, 01 Feb 2020 07:35:42 -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=NKZg7Evw; 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 S1727063AbgBAPeQ (ORCPT + 99 others); Sat, 1 Feb 2020 10:34:16 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:21498 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727014AbgBAPeQ (ORCPT ); Sat, 1 Feb 2020 10:34:16 -0500 X-UUID: 48ec8e7bdeb0440da3fb70c61a85fd5b-20200201 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=YIYgAeTsC2Ry43GhcJA+l8CP1UHKRxcsWstLgZaTaPY=; b=NKZg7EvwW5+cosUhWsWIVaIsJnDn0iMvn6lgPKE21uMSdZ7q3zAJeaI5oIQGmVIbq4xRgzxMIdDQR15FTMsGAIT0QGNMozX/vnQonqpEBDpMKUUvmI9NmNK3UJVHmjtLjGfWumGHyBQVaXf95bf/DKzDGwzDCb9QMAUg2WwU4xM=; X-UUID: 48ec8e7bdeb0440da3fb70c61a85fd5b-20200201 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 388887682; Sat, 01 Feb 2020 23:34:02 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sat, 1 Feb 2020 23:33:00 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Sat, 1 Feb 2020 23:31:32 +0800 From: Ryder Lee To: Felix Fietkau , Lorenzo Bianconi CC: Shayne Chen , Roy Luo , Sean Wang , Josh Boyer , , , Ryder Lee Subject: [PATCH v2 2/7] mt76: mt7615: simplify mcu_set_sta flow Date: Sat, 1 Feb 2020 23:33:47 +0800 Message-ID: X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: D144270E9DF801DFAF3C565D9461BEA9BFF16EDB0D3BD6B6B2A3A687DE3FBA002000: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 TW92ZSBtY3VfYWRkX3d0YmwgYW5kIG1jdV9zZXRfaHRfY2FwIGludG8gbWN1X3NldF9zdGEgdG8g c2ltcGxpZnkgZmxvdy4NCg0KU2lnbmVkLW9mZi1ieTogUnlkZXIgTGVlIDxyeWRlci5sZWVAbWVk aWF0ZWsuY29tPg0KLS0tDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9t YWluLmMgIHwgICA5ICstDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9t Y3UuYyAgIHwgMzI2ICsrKysrKysrLS0tLS0tLS0tLQ0KIC4uLi93aXJlbGVzcy9tZWRpYXRlay9t dDc2L210NzYxNS9tdDc2MTUuaCAgICB8ICAgOSArLQ0KIDMgZmlsZXMgY2hhbmdlZCwgMTUzIGlu c2VydGlvbnMoKyksIDE5MSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYw0KaW5kZXggZGJmNjIwMDUyNWM0Li5jYThj NGY2ZmMyZGUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2 L210NzYxNS9tYWluLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3NjE1L21haW4uYw0KQEAgLTQ2NiwxMCArNDY2LDcgQEAgaW50IG10NzYxNV9tYWNfc3RhX2Fk ZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQogCW10 NzYxNV9tYWNfd3RibF91cGRhdGUoZGV2LCBpZHgsDQogCQkJICAgICAgIE1UX1dUQkxfVVBEQVRF X0FETV9DT1VOVF9DTEVBUik7DQogDQotCW10NzYxNV9tY3VfYWRkX3d0YmwoZGV2LCB2aWYsIHN0 YSk7DQotCW10NzYxNV9tY3Vfc2V0X3N0YV9yZWMoZGV2LCB2aWYsIHN0YSwgMSk7DQotCWlmIChz dGEtPmh0X2NhcC5odF9zdXBwb3J0ZWQpDQotCQltdDc2MTVfbWN1X3NldF9odF9jYXAoZGV2LCB2 aWYsIHN0YSk7DQorCW10NzYxNV9tY3Vfc2V0X3N0YShkZXYsIHZpZiwgc3RhLCAxKTsNCiANCiAJ cmV0dXJuIDA7DQogfQ0KQEAgLTQ4MCw5ICs0NzcsNyBAQCB2b2lkIG10NzYxNV9tYWNfc3RhX3Jl bW92ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQog CXN0cnVjdCBtdDc2MTVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYx NV9kZXYsIG10NzYpOw0KIAlzdHJ1Y3QgbXQ3NjE1X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3NjE1 X3N0YSAqKXN0YS0+ZHJ2X3ByaXY7DQogDQotCW10NzYxNV9tY3Vfc2V0X3N0YV9yZWMoZGV2LCB2 aWYsIHN0YSwgMCk7DQotCW10NzYxNV9tY3VfZGVsX3d0YmwoZGV2LCBzdGEpOw0KLQ0KKwltdDc2 MTVfbWN1X3NldF9zdGEoZGV2LCB2aWYsIHN0YSwgMCk7DQogCW10NzYxNV9tYWNfd3RibF91cGRh dGUoZGV2LCBtc3RhLT53Y2lkLmlkeCwNCiAJCQkgICAgICAgTVRfV1RCTF9VUERBVEVfQURNX0NP VU5UX0NMRUFSKTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRl ay9tdDc2L210NzYxNS9tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3NjE1L21jdS5jDQppbmRleCA3M2E1YmYxMWU5MDIuLjMwZmYwOGJjOWFmYyAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jDQorKysg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYw0KQEAgLTk3 OCw1NSArOTc4LDYgQEAgaW50IG10NzYxNV9tY3Vfc2V0X2Jzc19pbmZvKHN0cnVjdCBtdDc2MTVf ZGV2ICpkZXYsDQogCXJldHVybiByZXQ7DQogfQ0KIA0KLWludCBtdDc2MTVfbWN1X2FkZF93dGJs KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQotCQkJ c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSkNCi17DQotCXN0cnVjdCBtdDc2MTVfdmlmICptdmlm ID0gKHN0cnVjdCBtdDc2MTVfdmlmICopdmlmLT5kcnZfcHJpdjsNCi0Jc3RydWN0IG10NzYxNV9z dGEgKm1zdGEgPSAoc3RydWN0IG10NzYxNV9zdGEgKilzdGEtPmRydl9wcml2Ow0KLQlzdHJ1Y3Qg ew0KLQkJc3RydWN0IHd0YmxfcmVxX2hkciBoZHI7DQotCQlzdHJ1Y3Qgd3RibF9nZW5lcmljIGdf d3RibDsNCi0JCXN0cnVjdCB3dGJsX3J4IHJ4X3d0Ymw7DQotCX0gcmVxID0gew0KLQkJLmhkciA9 IHsNCi0JCQkud2xhbl9pZHggPSBtc3RhLT53Y2lkLmlkeCwNCi0JCQkub3BlcmF0aW9uID0gV1RC TF9SRVNFVF9BTkRfU0VULA0KLQkJCS50bHZfbnVtID0gY3B1X3RvX2xlMTYoMiksDQotCQl9LA0K LQkJLmdfd3RibCA9IHsNCi0JCQkudGFnID0gY3B1X3RvX2xlMTYoV1RCTF9HRU5FUklDKSwNCi0J CQkubGVuID0gY3B1X3RvX2xlMTYoc2l6ZW9mKHN0cnVjdCB3dGJsX2dlbmVyaWMpKSwNCi0JCQku bXVhcl9pZHggPSBtdmlmLT5vbWFjX2lkeCwNCi0JCQkucW9zID0gc3RhLT53bWUsDQotCQkJLnBh cnRpYWxfYWlkID0gY3B1X3RvX2xlMTYoc3RhLT5haWQpLA0KLQkJfSwNCi0JCS5yeF93dGJsID0g ew0KLQkJCS50YWcgPSBjcHVfdG9fbGUxNihXVEJMX1JYKSwNCi0JCQkubGVuID0gY3B1X3RvX2xl MTYoc2l6ZW9mKHN0cnVjdCB3dGJsX3J4KSksDQotCQkJLnJjYTEgPSB2aWYtPnR5cGUgIT0gTkw4 MDIxMV9JRlRZUEVfQVAsDQotCQkJLnJjYTIgPSAxLA0KLQkJCS5ydiA9IDEsDQotCQl9LA0KLQl9 Ow0KLQltZW1jcHkocmVxLmdfd3RibC5wZWVyX2FkZHIsIHN0YS0+YWRkciwgRVRIX0FMRU4pOw0K LQ0KLQlyZXR1cm4gX19tdDc2X21jdV9zZW5kX21zZygmZGV2LT5tdDc2LCBNQ1VfRVhUX0NNRF9X VEJMX1VQREFURSwNCi0JCQkJICAgJnJlcSwgc2l6ZW9mKHJlcSksIHRydWUpOw0KLX0NCi0NCi1p bnQgbXQ3NjE1X21jdV9kZWxfd3RibChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LA0KLQkJCXN0cnVj dCBpZWVlODAyMTFfc3RhICpzdGEpDQotew0KLQlzdHJ1Y3QgbXQ3NjE1X3N0YSAqbXN0YSA9IChz dHJ1Y3QgbXQ3NjE1X3N0YSAqKXN0YS0+ZHJ2X3ByaXY7DQotCXN0cnVjdCB3dGJsX3JlcV9oZHIg cmVxID0gew0KLQkJLndsYW5faWR4ID0gbXN0YS0+d2NpZC5pZHgsDQotCQkub3BlcmF0aW9uID0g V1RCTF9SRVNFVF9BTkRfU0VULA0KLQl9Ow0KLQ0KLQlyZXR1cm4gX19tdDc2X21jdV9zZW5kX21z ZygmZGV2LT5tdDc2LCBNQ1VfRVhUX0NNRF9XVEJMX1VQREFURSwNCi0JCQkJICAgJnJlcSwgc2l6 ZW9mKHJlcSksIHRydWUpOw0KLX0NCi0NCiBpbnQgbXQ3NjE1X21jdV9kZWxfd3RibF9hbGwoc3Ry dWN0IG10NzYxNV9kZXYgKmRldikNCiB7DQogCXN0cnVjdCB3dGJsX3JlcV9oZHIgcmVxID0gew0K QEAgLTExMTEsOCArMTA2Miw4IEBAIGludCBtdDc2MTVfbWN1X3NldF9ibWMoc3RydWN0IG10NzYx NV9kZXYgKmRldiwNCiAJCQkJICAgJnJlcSwgKHU4ICopd3RibF9oZHIgLSAodTggKikmcmVxLCB0 cnVlKTsNCiB9DQogDQotaW50IG10NzYxNV9tY3Vfc2V0X3N0YV9yZWMoc3RydWN0IG10NzYxNV9k ZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCi0JCQkgICBzdHJ1Y3QgaWVlZTgw MjExX3N0YSAqc3RhLCBib29sIGVuKQ0KK2ludCBtdDc2MTVfbWN1X3NldF9zdGEoc3RydWN0IG10 NzYxNV9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCisJCSAgICAgICBzdHJ1 Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBib29sIGVuKQ0KIHsNCiAJc3RydWN0IG10NzYxNV92aWYg Km12aWYgPSAoc3RydWN0IG10NzYxNV92aWYgKil2aWYtPmRydl9wcml2Ow0KIAlzdHJ1Y3QgbXQ3 NjE1X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3NjE1X3N0YSAqKXN0YS0+ZHJ2X3ByaXY7DQpAQCAt MTEyMCw3ICsxMDcxLDggQEAgaW50IG10NzYxNV9tY3Vfc2V0X3N0YV9yZWMoc3RydWN0IG10NzYx NV9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCiAJc3RydWN0IHsNCiAJCXN0 cnVjdCBzdGFfcmVxX2hkciBoZHI7DQogCQlzdHJ1Y3Qgc3RhX3JlY19iYXNpYyBiYXNpYzsNCi0J fSByZXEgPSB7DQorCQl1OCBidWZbTVQ3NjE1X1dUQkxfVVBEQVRFX01BWF9TSVpFXTsNCisJfSBf X3BhY2tlZCByZXEgPSB7DQogCQkuaGRyID0gew0KIAkJCS5ic3NfaWR4ID0gbXZpZi0+aWR4LA0K IAkJCS53bGFuX2lkeCA9IG1zdGEtPndjaWQuaWR4LA0KQEAgLTExMzUsNiArMTA4NywxMiBAQCBp bnQgbXQ3NjE1X21jdV9zZXRfc3RhX3JlYyhzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCBzdHJ1Y3Qg aWVlZTgwMjExX3ZpZiAqdmlmLA0KIAkJCS5haWQgPSBjcHVfdG9fbGUxNihzdGEtPmFpZCksDQog CQl9LA0KIAl9Ow0KKwlzdHJ1Y3Qgd3RibF9yZXFfaGRyICp3dGJsX2hkcjsNCisJc3RydWN0IHd0 YmxfZ2VuZXJpYyAqd3RibF9nOw0KKwlzdHJ1Y3Qgd3RibF9yeCAqd3RibF9yeDsNCisJdTggKmJ1 ZiA9IHJlcS5idWY7DQorCXU4IHd0bHYgPSAwLCBzdGx2ID0gMTsNCisNCiAJbWVtY3B5KHJlcS5i YXNpYy5wZWVyX2FkZHIsIHN0YS0+YWRkciwgRVRIX0FMRU4pOw0KIA0KIAlzd2l0Y2ggKHZpZi0+ dHlwZSkgew0KQEAgLTExNjAsMTAgKzExMTgsMTQ4IEBAIGludCBtdDc2MTVfbWN1X3NldF9zdGFf cmVjKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQog CX0gZWxzZSB7DQogCQlyZXEuYmFzaWMuY29ubl9zdGF0ZSA9IENPTk5fU1RBVEVfRElTQ09OTkVD VDsNCiAJCXJlcS5iYXNpYy5leHRyYV9pbmZvID0gY3B1X3RvX2xlMTYoRVhUUkFfSU5GT19WRVIp Ow0KKw0KKwkJLyogd3RibCByZXNldCAqLw0KKwkJd3RibF9oZHIgPSAoc3RydWN0IHd0YmxfcmVx X2hkciAqKWJ1ZjsNCisJCWJ1ZiArPSBzaXplb2YoKnd0YmxfaGRyKTsNCisJCXd0YmxfaGRyLT53 bGFuX2lkeCA9IG1zdGEtPndjaWQuaWR4Ow0KKwkJd3RibF9oZHItPm9wZXJhdGlvbiA9IFdUQkxf UkVTRVRfQU5EX1NFVDsNCisNCisJCV9fbXQ3Nl9tY3Vfc2VuZF9tc2coJmRldi0+bXQ3NiwgTUNV X0VYVF9DTURfU1RBX1JFQ19VUERBVEUsDQorCQkJCSAgICAmcmVxLCByZXEuYnVmIC0gKHU4ICop JnJlcSwgdHJ1ZSk7DQorDQorCQlyZXR1cm4gX19tdDc2X21jdV9zZW5kX21zZygmZGV2LT5tdDc2 LCBNQ1VfRVhUX0NNRF9XVEJMX1VQREFURSwNCisJCQkJCSAgIHJlcS5idWYsIGJ1ZiAtIHJlcS5i dWYsIHRydWUpOw0KIAl9DQogDQorCS8qIHN0YV9yZWMgaHQgKi8NCisJaWYgKHN0YS0+aHRfY2Fw Lmh0X3N1cHBvcnRlZCkgew0KKwkJc3RydWN0IHN0YV9yZWNfaHQgKnN0YV9odDsNCisNCisJCXN0 YV9odCA9IChzdHJ1Y3Qgc3RhX3JlY19odCAqKWJ1ZjsNCisJCWJ1ZiArPSBzaXplb2YoKnN0YV9o dCk7DQorCQlzdGFfaHQtPnRhZyA9IGNwdV90b19sZTE2KFNUQV9SRUNfSFQpOw0KKwkJc3RhX2h0 LT5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YoKnN0YV9odCkpOw0KKwkJc3RhX2h0LT5odF9jYXAg PSBjcHVfdG9fbGUxNihzdGEtPmh0X2NhcC5jYXApOw0KKwkJc3RsdisrOw0KKw0KKwkJLyogc3Rh X3JlYyB2aHQgKi8NCisJCWlmIChzdGEtPnZodF9jYXAudmh0X3N1cHBvcnRlZCkgew0KKwkJCXN0 cnVjdCBzdGFfcmVjX3ZodCAqc3RhX3ZodDsNCisNCisJCQlzdGFfdmh0ID0gKHN0cnVjdCBzdGFf cmVjX3ZodCAqKWJ1ZjsNCisJCQlidWYgKz0gc2l6ZW9mKCpzdGFfdmh0KTsNCisJCQlzdGFfdmh0 LT50YWcgPSBjcHVfdG9fbGUxNihTVEFfUkVDX1ZIVCk7DQorCQkJc3RhX3ZodC0+bGVuID0gY3B1 X3RvX2xlMTYoc2l6ZW9mKCpzdGFfdmh0KSk7DQorCQkJc3RhX3ZodC0+dmh0X2NhcCA9IGNwdV90 b19sZTMyKHN0YS0+dmh0X2NhcC5jYXApOw0KKwkJCXN0YV92aHQtPnZodF9yeF9tY3NfbWFwID0N CisJCQkJc3RhLT52aHRfY2FwLnZodF9tY3MucnhfbWNzX21hcDsNCisJCQlzdGFfdmh0LT52aHRf dHhfbWNzX21hcCA9DQorCQkJCXN0YS0+dmh0X2NhcC52aHRfbWNzLnR4X21jc19tYXA7DQorCQkJ c3RsdisrOw0KKwkJfQ0KKwl9DQorDQorCS8qIHd0YmwgKi8NCisJd3RibF9oZHIgPSAoc3RydWN0 IHd0YmxfcmVxX2hkciAqKWJ1ZjsNCisJYnVmICs9IHNpemVvZigqd3RibF9oZHIpOw0KKwl3dGJs X2hkci0+d2xhbl9pZHggPSBtc3RhLT53Y2lkLmlkeDsNCisJd3RibF9oZHItPm9wZXJhdGlvbiA9 IFdUQkxfUkVTRVRfQU5EX1NFVDsNCisNCisJd3RibF9nID0gKHN0cnVjdCB3dGJsX2dlbmVyaWMg KilidWY7DQorCWJ1ZiArPSBzaXplb2YoKnd0YmxfZyk7DQorCXd0YmxfZy0+dGFnID0gY3B1X3Rv X2xlMTYoV1RCTF9HRU5FUklDKTsNCisJd3RibF9nLT5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2Yo Knd0YmxfZykpOw0KKwl3dGJsX2ctPm11YXJfaWR4ID0gbXZpZi0+b21hY19pZHg7DQorCXd0Ymxf Zy0+cW9zID0gc3RhLT53bWU7DQorCXd0YmxfZy0+cGFydGlhbF9haWQgPSBjcHVfdG9fbGUxNihz dGEtPmFpZCk7DQorCW1lbWNweSh3dGJsX2ctPnBlZXJfYWRkciwgc3RhLT5hZGRyLCBFVEhfQUxF Tik7DQorCXd0bHYrKzsNCisNCisJd3RibF9yeCA9IChzdHJ1Y3Qgd3RibF9yeCAqKWJ1ZjsNCisJ YnVmICs9IHNpemVvZigqd3RibF9yeCk7DQorCXd0YmxfcngtPnRhZyA9IGNwdV90b19sZTE2KFdU QkxfUlgpOw0KKwl3dGJsX3J4LT5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YoKnd0YmxfcngpKTsN CisJd3RibF9yeC0+cnYgPSAxOw0KKwl3dGJsX3J4LT5yY2ExID0gdmlmLT50eXBlICE9IE5MODAy MTFfSUZUWVBFX0FQOw0KKwl3dGJsX3J4LT5yY2EyID0gMTsNCisJd3RsdisrOw0KKw0KKwkvKiB3 dGJsIGh0ICovDQorCWlmIChzdGEtPmh0X2NhcC5odF9zdXBwb3J0ZWQpIHsNCisJCXN0cnVjdCB3 dGJsX2h0ICp3dGJsX2h0Ow0KKwkJc3RydWN0IHd0YmxfcmF3ICp3dGJsX3JhdzsNCisJCXUzMiB2 YWwgPSAwLCBtc2s7DQorDQorCQl3dGJsX2h0ID0gKHN0cnVjdCB3dGJsX2h0ICopYnVmOw0KKwkJ YnVmICs9IHNpemVvZigqd3RibF9odCk7DQorCQl3dGJsX2h0LT50YWcgPSBjcHVfdG9fbGUxNihX VEJMX0hUKTsNCisJCXd0YmxfaHQtPmxlbiA9IGNwdV90b19sZTE2KHNpemVvZigqd3RibF9odCkp Ow0KKwkJd3RibF9odC0+aHQgPSAxOw0KKwkJd3RibF9odC0+bGRwYyA9IHN0YS0+aHRfY2FwLmNh cCAmIElFRUU4MDIxMV9IVF9DQVBfTERQQ19DT0RJTkc7DQorCQl3dGJsX2h0LT5hZiA9IHN0YS0+ aHRfY2FwLmFtcGR1X2ZhY3RvcjsNCisJCXd0YmxfaHQtPm1tID0gc3RhLT5odF9jYXAuYW1wZHVf ZGVuc2l0eTsNCisJCXd0bHYrKzsNCisNCisJCS8qIHd0Ymwgdmh0ICovDQorCQlpZiAoc3RhLT52 aHRfY2FwLnZodF9zdXBwb3J0ZWQpIHsNCisJCQlzdHJ1Y3Qgd3RibF92aHQgKnd0Ymxfdmh0Ow0K Kw0KKwkJCXd0Ymxfdmh0ID0gKHN0cnVjdCB3dGJsX3ZodCAqKWJ1ZjsNCisJCQlidWYgKz0gc2l6 ZW9mKCp3dGJsX3ZodCk7DQorCQkJd3RibF92aHQtPnRhZyA9IGNwdV90b19sZTE2KFdUQkxfVkhU KTsNCisJCQl3dGJsX3ZodC0+bGVuID0gY3B1X3RvX2xlMTYoc2l6ZW9mKCp3dGJsX3ZodCkpOw0K KwkJCXd0Ymxfdmh0LT52aHQgPSAxOw0KKwkJCXd0Ymxfdmh0LT5sZHBjID0gc3RhLT52aHRfY2Fw LmNhcCAmDQorCQkJCQkgSUVFRTgwMjExX1ZIVF9DQVBfUlhMRFBDOw0KKwkJCXd0bHYrKzsNCisN CisJCQlpZiAoc3RhLT52aHRfY2FwLmNhcCAmIElFRUU4MDIxMV9WSFRfQ0FQX1NIT1JUX0dJXzgw KQ0KKwkJCQl2YWwgfD0gTVRfV1RCTF9XNV9TSE9SVF9HSV84MDsNCisJCQlpZiAoc3RhLT52aHRf Y2FwLmNhcCAmIElFRUU4MDIxMV9WSFRfQ0FQX1NIT1JUX0dJXzE2MCkNCisJCQkJdmFsIHw9IE1U X1dUQkxfVzVfU0hPUlRfR0lfMTYwOw0KKwkJfQ0KKw0KKwkJLyogd3RibCBzbXBzICovDQorCQlp ZiAoc3RhLT5zbXBzX21vZGUgPT0gSUVFRTgwMjExX1NNUFNfRFlOQU1JQykgew0KKwkJCXN0cnVj dCB3dGJsX3NtcHMgKnd0Ymxfc21wczsNCisNCisJCQl3dGJsX3NtcHMgPSAoc3RydWN0IHd0Ymxf c21wcyAqKWJ1ZjsNCisJCQlidWYgKz0gc2l6ZW9mKCp3dGJsX3NtcHMpOw0KKwkJCXd0Ymxfc21w cy0+dGFnID0gY3B1X3RvX2xlMTYoV1RCTF9TTVBTKTsNCisJCQl3dGJsX3NtcHMtPmxlbiA9IGNw dV90b19sZTE2KHNpemVvZigqd3RibF9zbXBzKSk7DQorCQkJd3RibF9zbXBzLT5zbXBzID0gMTsN CisJCQl3dGx2Kys7DQorCQl9DQorDQorCQkvKiBzZ2kgKi8NCisJCW1zayA9IE1UX1dUQkxfVzVf U0hPUlRfR0lfMjAgfCBNVF9XVEJMX1c1X1NIT1JUX0dJXzQwIHwNCisJCQlNVF9XVEJMX1c1X1NI T1JUX0dJXzgwIHwgTVRfV1RCTF9XNV9TSE9SVF9HSV8xNjA7DQorDQorCQlpZiAoc3RhLT5odF9j YXAuY2FwICYgSUVFRTgwMjExX0hUX0NBUF9TR0lfMjApDQorCQkJdmFsIHw9IE1UX1dUQkxfVzVf U0hPUlRfR0lfMjA7DQorCQlpZiAoc3RhLT5odF9jYXAuY2FwICYgSUVFRTgwMjExX0hUX0NBUF9T R0lfNDApDQorCQkJdmFsIHw9IE1UX1dUQkxfVzVfU0hPUlRfR0lfNDA7DQorDQorCQl3dGJsX3Jh dyA9IChzdHJ1Y3Qgd3RibF9yYXcgKilidWY7DQorCQlidWYgKz0gc2l6ZW9mKCp3dGJsX3Jhdyk7 DQorCQl3dGJsX3Jhdy0+dGFnID0gY3B1X3RvX2xlMTYoV1RCTF9SQVdfREFUQSk7DQorCQl3dGJs X3Jhdy0+bGVuID0gY3B1X3RvX2xlMTYoc2l6ZW9mKCp3dGJsX3JhdykpOw0KKwkJd3RibF9yYXct Pnd0YmxfaWR4ID0gMTsNCisJCXd0YmxfcmF3LT5kdyA9IDU7DQorCQl3dGJsX3Jhdy0+bXNrID0g Y3B1X3RvX2xlMzIofm1zayk7DQorCQl3dGJsX3Jhdy0+dmFsID0gY3B1X3RvX2xlMzIodmFsKTsN CisJCXd0bHYrKzsNCisJfQ0KKw0KKwl3dGJsX2hkci0+dGx2X251bSA9IGNwdV90b19sZTE2KHd0 bHYpOw0KKwlyZXEuaGRyLnRsdl9udW0gPSBjcHVfdG9fbGUxNihzdGx2KTsNCisNCisJX19tdDc2 X21jdV9zZW5kX21zZygmZGV2LT5tdDc2LCBNQ1VfRVhUX0NNRF9XVEJMX1VQREFURSwgKHU4ICop d3RibF9oZHIsDQorCQkJICAgIGJ1ZiAtICh1OCAqKXd0YmxfaGRyLCB0cnVlKTsNCisNCiAJcmV0 dXJuIF9fbXQ3Nl9tY3Vfc2VuZF9tc2coJmRldi0+bXQ3NiwgTUNVX0VYVF9DTURfU1RBX1JFQ19V UERBVEUsDQotCQkJCSAgICZyZXEsIHNpemVvZihyZXEpLCB0cnVlKTsNCisJCQkJICAgJnJlcSwg KHU4ICopd3RibF9oZHIgLSAodTggKikmcmVxLCB0cnVlKTsNCiB9DQogDQogaW50IG10NzYxNV9t Y3Vfc2V0X2JjbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYg KnZpZiwNCkBAIC0xNDMyLDEzMCArMTUyOCw2IEBAIGludCBtdDc2MTVfbWN1X3NldF9jaGFubmVs KHN0cnVjdCBtdDc2MTVfcGh5ICpwaHkpDQogCQkJCSAgICZyZXEsIHNpemVvZihyZXEpLCB0cnVl KTsNCiB9DQogDQotaW50IG10NzYxNV9tY3Vfc2V0X2h0X2NhcChzdHJ1Y3QgbXQ3NjE1X2RldiAq ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KLQkJCSAgc3RydWN0IGllZWU4MDIxMV9z dGEgKnN0YSkNCi17DQotCXN0cnVjdCBtdDc2MTVfc3RhICptc3RhID0gKHN0cnVjdCBtdDc2MTVf c3RhICopc3RhLT5kcnZfcHJpdjsNCi0Jc3RydWN0IG10NzYxNV92aWYgKm12aWYgPSAoc3RydWN0 IG10NzYxNV92aWYgKil2aWYtPmRydl9wcml2Ow0KLQlzdHJ1Y3Qgd3RibF9yZXFfaGRyICp3dGJs X2hkcjsNCi0Jc3RydWN0IHN0YV9yZXFfaGRyICpzdGFfaGRyOw0KLQlzdHJ1Y3Qgd3RibF9yYXcg Knd0YmxfcmF3Ow0KLQlzdHJ1Y3Qgc3RhX3JlY19odCAqc3RhX2h0Ow0KLQlzdHJ1Y3Qgd3RibF9o dCAqd3RibF9odDsNCi0JaW50IGJ1Zl9sZW4sIHJldCwgbnRsdiA9IDI7DQotCXUzMiBtc2ssIHZh bCA9IDA7DQotCXU4ICpidWY7DQotDQotCWJ1ZiA9IGt6YWxsb2MoTVQ3NjE1X1dUQkxfVVBEQVRF X01BWF9TSVpFLCBHRlBfS0VSTkVMKTsNCi0JaWYgKCFidWYpDQotCQlyZXR1cm4gLUVOT01FTTsN Ci0NCi0Jd3RibF9oZHIgPSAoc3RydWN0IHd0YmxfcmVxX2hkciAqKWJ1ZjsNCi0Jd3RibF9oZHIt PndsYW5faWR4ID0gbXN0YS0+d2NpZC5pZHg7DQotCXd0YmxfaGRyLT5vcGVyYXRpb24gPSBXVEJM X1NFVDsNCi0JYnVmX2xlbiA9IHNpemVvZigqd3RibF9oZHIpOw0KLQ0KLQkvKiBodCBiYXNpYyAq Lw0KLQl3dGJsX2h0ID0gKHN0cnVjdCB3dGJsX2h0ICopKGJ1ZiArIGJ1Zl9sZW4pOw0KLQl3dGJs X2h0LT50YWcgPSBjcHVfdG9fbGUxNihXVEJMX0hUKTsNCi0Jd3RibF9odC0+bGVuID0gY3B1X3Rv X2xlMTYoc2l6ZW9mKCp3dGJsX2h0KSk7DQotCXd0YmxfaHQtPmh0ID0gMTsNCi0Jd3RibF9odC0+ bGRwYyA9IHN0YS0+aHRfY2FwLmNhcCAmIElFRUU4MDIxMV9IVF9DQVBfTERQQ19DT0RJTkc7DQot CXd0YmxfaHQtPmFmID0gc3RhLT5odF9jYXAuYW1wZHVfZmFjdG9yOw0KLQl3dGJsX2h0LT5tbSA9 IHN0YS0+aHRfY2FwLmFtcGR1X2RlbnNpdHk7DQotCWJ1Zl9sZW4gKz0gc2l6ZW9mKCp3dGJsX2h0 KTsNCi0NCi0JaWYgKHN0YS0+aHRfY2FwLmNhcCAmIElFRUU4MDIxMV9IVF9DQVBfU0dJXzIwKQ0K LQkJdmFsIHw9IE1UX1dUQkxfVzVfU0hPUlRfR0lfMjA7DQotCWlmIChzdGEtPmh0X2NhcC5jYXAg JiBJRUVFODAyMTFfSFRfQ0FQX1NHSV80MCkNCi0JCXZhbCB8PSBNVF9XVEJMX1c1X1NIT1JUX0dJ XzQwOw0KLQ0KLQkvKiB2aHQgYmFzaWMgKi8NCi0JaWYgKHN0YS0+dmh0X2NhcC52aHRfc3VwcG9y dGVkKSB7DQotCQlzdHJ1Y3Qgd3RibF92aHQgKnd0Ymxfdmh0Ow0KLQ0KLQkJd3RibF92aHQgPSAo c3RydWN0IHd0Ymxfdmh0ICopKGJ1ZiArIGJ1Zl9sZW4pOw0KLQkJYnVmX2xlbiArPSBzaXplb2Yo Knd0Ymxfdmh0KTsNCi0JCXd0Ymxfdmh0LT50YWcgPSBjcHVfdG9fbGUxNihXVEJMX1ZIVCk7DQot CQl3dGJsX3ZodC0+bGVuID0gY3B1X3RvX2xlMTYoc2l6ZW9mKCp3dGJsX3ZodCkpOw0KLQkJd3Ri bF92aHQtPmxkcGMgPSBzdGEtPnZodF9jYXAuY2FwICYgSUVFRTgwMjExX1ZIVF9DQVBfUlhMRFBD Ow0KLQkJd3RibF92aHQtPnZodCA9IDE7DQotCQludGx2Kys7DQotDQotCQlpZiAoc3RhLT52aHRf Y2FwLmNhcCAmIElFRUU4MDIxMV9WSFRfQ0FQX1NIT1JUX0dJXzgwKQ0KLQkJCXZhbCB8PSBNVF9X VEJMX1c1X1NIT1JUX0dJXzgwOw0KLQkJaWYgKHN0YS0+dmh0X2NhcC5jYXAgJiBJRUVFODAyMTFf VkhUX0NBUF9TSE9SVF9HSV8xNjApDQotCQkJdmFsIHw9IE1UX1dUQkxfVzVfU0hPUlRfR0lfMTYw Ow0KLQl9DQotDQotCS8qIHNtcHMgKi8NCi0JaWYgKHN0YS0+c21wc19tb2RlID09IElFRUU4MDIx MV9TTVBTX0RZTkFNSUMpIHsNCi0JCXN0cnVjdCB3dGJsX3NtcHMgKnd0Ymxfc21wczsNCi0NCi0J CXd0Ymxfc21wcyA9IChzdHJ1Y3Qgd3RibF9zbXBzICopKGJ1ZiArIGJ1Zl9sZW4pOw0KLQkJYnVm X2xlbiArPSBzaXplb2YoKnd0Ymxfc21wcyk7DQotCQl3dGJsX3NtcHMtPnRhZyA9IGNwdV90b19s ZTE2KFdUQkxfU01QUyk7DQotCQl3dGJsX3NtcHMtPmxlbiA9IGNwdV90b19sZTE2KHNpemVvZigq d3RibF9zbXBzKSk7DQotCQl3dGJsX3NtcHMtPnNtcHMgPSAxOw0KLQkJbnRsdisrOw0KLQl9DQot DQotCS8qIHNnaSAqLw0KLQltc2sgPSBNVF9XVEJMX1c1X1NIT1JUX0dJXzIwIHwgTVRfV1RCTF9X NV9TSE9SVF9HSV80MCB8DQotCSAgICAgIE1UX1dUQkxfVzVfU0hPUlRfR0lfODAgfCBNVF9XVEJM X1c1X1NIT1JUX0dJXzE2MDsNCi0NCi0Jd3RibF9yYXcgPSAoc3RydWN0IHd0YmxfcmF3ICopKGJ1 ZiArIGJ1Zl9sZW4pOw0KLQlidWZfbGVuICs9IHNpemVvZigqd3RibF9yYXcpOw0KLQl3dGJsX3Jh dy0+dGFnID0gY3B1X3RvX2xlMTYoV1RCTF9SQVdfREFUQSk7DQotCXd0YmxfcmF3LT5sZW4gPSBj cHVfdG9fbGUxNihzaXplb2YoKnd0YmxfcmF3KSk7DQotCXd0YmxfcmF3LT53dGJsX2lkeCA9IDE7 DQotCXd0YmxfcmF3LT5kdyA9IDU7DQotCXd0YmxfcmF3LT5tc2sgPSBjcHVfdG9fbGUzMih+bXNr KTsNCi0Jd3RibF9yYXctPnZhbCA9IGNwdV90b19sZTMyKHZhbCk7DQotDQotCXd0YmxfaGRyLT50 bHZfbnVtID0gY3B1X3RvX2xlMTYobnRsdik7DQotCXJldCA9IF9fbXQ3Nl9tY3Vfc2VuZF9tc2co JmRldi0+bXQ3NiwgTUNVX0VYVF9DTURfV1RCTF9VUERBVEUsDQotCQkJCSAgYnVmLCBidWZfbGVu LCB0cnVlKTsNCi0JaWYgKHJldCkNCi0JCWdvdG8gb3V0Ow0KLQ0KLQltZW1zZXQoYnVmLCAwLCBN VDc2MTVfV1RCTF9VUERBVEVfTUFYX1NJWkUpOw0KLQ0KLQlzdGFfaGRyID0gKHN0cnVjdCBzdGFf cmVxX2hkciAqKWJ1ZjsNCi0Jc3RhX2hkci0+YnNzX2lkeCA9IG12aWYtPmlkeDsNCi0Jc3RhX2hk ci0+d2xhbl9pZHggPSBtc3RhLT53Y2lkLmlkeDsNCi0Jc3RhX2hkci0+aXNfdGx2X2FwcGVuZCA9 IDE7DQotCW50bHYgPSBzdGEtPnZodF9jYXAudmh0X3N1cHBvcnRlZCA/IDIgOiAxOw0KLQlzdGFf aGRyLT50bHZfbnVtID0gY3B1X3RvX2xlMTYobnRsdik7DQotCXN0YV9oZHItPm11YXJfaWR4ID0g bXZpZi0+b21hY19pZHg7DQotCWJ1Zl9sZW4gPSBzaXplb2YoKnN0YV9oZHIpOw0KLQ0KLQlzdGFf aHQgPSAoc3RydWN0IHN0YV9yZWNfaHQgKikoYnVmICsgYnVmX2xlbik7DQotCXN0YV9odC0+dGFn ID0gY3B1X3RvX2xlMTYoU1RBX1JFQ19IVCk7DQotCXN0YV9odC0+bGVuID0gY3B1X3RvX2xlMTYo c2l6ZW9mKCpzdGFfaHQpKTsNCi0Jc3RhX2h0LT5odF9jYXAgPSBjcHVfdG9fbGUxNihzdGEtPmh0 X2NhcC5jYXApOw0KLQlidWZfbGVuICs9IHNpemVvZigqc3RhX2h0KTsNCi0NCi0JaWYgKHN0YS0+ dmh0X2NhcC52aHRfc3VwcG9ydGVkKSB7DQotCQlzdHJ1Y3Qgc3RhX3JlY192aHQgKnN0YV92aHQ7 DQotDQotCQlzdGFfdmh0ID0gKHN0cnVjdCBzdGFfcmVjX3ZodCAqKShidWYgKyBidWZfbGVuKTsN Ci0JCWJ1Zl9sZW4gKz0gc2l6ZW9mKCpzdGFfdmh0KTsNCi0JCXN0YV92aHQtPnRhZyA9IGNwdV90 b19sZTE2KFNUQV9SRUNfVkhUKTsNCi0JCXN0YV92aHQtPmxlbiA9IGNwdV90b19sZTE2KHNpemVv Zigqc3RhX3ZodCkpOw0KLQkJc3RhX3ZodC0+dmh0X2NhcCA9IGNwdV90b19sZTMyKHN0YS0+dmh0 X2NhcC5jYXApOw0KLQkJc3RhX3ZodC0+dmh0X3J4X21jc19tYXAgPSBzdGEtPnZodF9jYXAudmh0 X21jcy5yeF9tY3NfbWFwOw0KLQkJc3RhX3ZodC0+dmh0X3R4X21jc19tYXAgPSBzdGEtPnZodF9j YXAudmh0X21jcy50eF9tY3NfbWFwOw0KLQl9DQotDQotCXJldCA9IF9fbXQ3Nl9tY3Vfc2VuZF9t c2coJmRldi0+bXQ3NiwgTUNVX0VYVF9DTURfU1RBX1JFQ19VUERBVEUsDQotCQkJCSAgYnVmLCBi dWZfbGVuLCB0cnVlKTsNCi1vdXQ6DQotCWtmcmVlKGJ1Zik7DQotDQotCXJldHVybiByZXQ7DQot fQ0KLQ0KIGludCBtdDc2MTVfbWN1X3NldF90eF9iYShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LA0K IAkJCSBzdHJ1Y3QgaWVlZTgwMjExX2FtcGR1X3BhcmFtcyAqcGFyYW1zLA0KIAkJCSBib29sIGFk ZCkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYx NS9tdDc2MTUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210 NzYxNS5oDQppbmRleCA4NDk0OTI1NjYwMWYuLjliZDkyNmQ2OTYzZiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oDQorKysgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaA0KQEAgLTI0 MSwxNCArMjQxLDExIEBAIGludCBtdDc2MTVfbWN1X3NldF9ic3NfaW5mbyhzdHJ1Y3QgbXQ3NjE1 X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KIHZvaWQgbXQ3NjE1X21hY19z ZXRfcmF0ZXMoc3RydWN0IG10NzYxNV9waHkgKnBoeSwgc3RydWN0IG10NzYxNV9zdGEgKnN0YSwN CiAJCQkgIHN0cnVjdCBpZWVlODAyMTFfdHhfcmF0ZSAqcHJvYmVfcmF0ZSwNCiAJCQkgIHN0cnVj dCBpZWVlODAyMTFfdHhfcmF0ZSAqcmF0ZXMpOw0KLWludCBtdDc2MTVfbWN1X2FkZF93dGJsKHN0 cnVjdCBtdDc2MTVfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQotCQkJc3Ry dWN0IGllZWU4MDIxMV9zdGEgKnN0YSk7DQotaW50IG10NzYxNV9tY3VfZGVsX3d0Ymwoc3RydWN0 IG10NzYxNV9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSk7DQogaW50IG10NzYx NV9tY3VfZGVsX3d0YmxfYWxsKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpOw0KIGludCBtdDc2MTVf bWN1X3NldF9ibWMoc3RydWN0IG10NzYxNV9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYg KnZpZiwNCiAJCSAgICAgICBib29sIGVuKTsNCi1pbnQgbXQ3NjE1X21jdV9zZXRfc3RhX3JlYyhz dHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KLQkJCSAg IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIGJvb2wgZW4pOw0KK2ludCBtdDc2MTVfbWN1X3Nl dF9zdGEoc3RydWN0IG10NzYxNV9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwN CisJCSAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBib29sIGVuKTsNCiBpbnQgbXQ3 NjE1X21jdV9zZXRfYmNuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjEx X3ZpZiAqdmlmLA0KIAkJICAgICAgIGludCBlbik7DQogaW50IG10NzYxNV9tY3Vfc2V0X2NoYW5u ZWwoc3RydWN0IG10NzYxNV9waHkgKnBoeSk7DQpAQCAtMjYwLDggKzI1Nyw2IEBAIGludCBtdDc2 MTVfbWN1X3NldF90eF9iYShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LA0KIGludCBtdDc2MTVfbWN1 X3NldF9yeF9iYShzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LA0KIAkJCSBzdHJ1Y3QgaWVlZTgwMjEx X2FtcGR1X3BhcmFtcyAqcGFyYW1zLA0KIAkJCSBib29sIGFkZCk7DQotaW50IG10NzYxNV9tY3Vf c2V0X2h0X2NhcChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAq dmlmLA0KLQkJCSAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSk7DQogdm9pZCBtdDc2MTVfbWN1 X3J4X2V2ZW50KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpOw0K IGludCBtdDc2MTVfbWN1X3JkZF9jbWQoc3RydWN0IG10NzYxNV9kZXYgKmRldiwNCiAJCSAgICAg ICBlbnVtIG10NzYxNV9yZGRfY21kIGNtZCwgdTggaW5kZXgsDQotLSANCjIuMTguMA0K