Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp397890pxk; Fri, 11 Sep 2020 09:50:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz/zBBpzthNIq/G7M2ZQds4cV/S/vHIrSAx9A9c+lv7lXiURLikY29HgnCTBt4IOioFjB3J X-Received: by 2002:a50:9b5e:: with SMTP id a30mr3039842edj.49.1599843003642; Fri, 11 Sep 2020 09:50:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599843003; cv=none; d=google.com; s=arc-20160816; b=v/8rEJpNnEiBQtIbaMxNPY3JLRgmDVbboEuRX7rs4xGPIThV8bf4XhDlt9t1cK8wYL T22riKkk4LPQK2VOFt2Z8xIQcHvLM0mvDMlHLm9FNs00fmwumeyXGLQNUMSDUnHPbOzQ ir/ppU99mWF/Eb8o9hAthm1lUJWL2MoOVngOHWxVRojbObrTxUwSqfukkGDN3yOpy1I3 xBBg2+UeF5/iHTpgXzE40u34EG5FRjjV7GMhAI4CbrIic3V3iQgIzHy5YqCErSaJNTQq dI56zFxsAGy4dFq2DutATosWwubmM0BZdRb9OQEvMEM4qeTC432xXG2o9rlEl218LypO YRUg== 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=hdLgl5qYb7csFXTSLNcMefKqwSUXSPIFrjgHweGeq/I=; b=jNhgI55nl4uA13G34dsHqCoIZXzX1Mdbsl6KrynYN/Ll9SH3E6LYk7g8ont6drxjmJ FEczXDjqQ8J1gjahdxKHM9I5Y4taVrtFbLFqR35FyN0871wlUmbQEVFDJiJ8/Uz9KN4A YL/PeLhAly8YJC9ebdxXSbTaSuJMMihnEPU7VH88trtFX9+Pnmwc/hsyhgxTxc9Rd8Iw Ribjb1+eUPkM0a+MbrKe76giB0fMR7NYXm9R2ZIjkx0ChHgG5JRTANjD8Gl1tUsSLfgQ pYUHfrgWN0gakN9MfXCZmdg0cLzMaa1/9DyFTCHlfe5yj7/gL5tfi0jEQa/pxjzjP8SM NeEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b="Cz/O9uux"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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. [23.128.96.18]) by mx.google.com with ESMTP id u21si1498947ejy.112.2020.09.11.09.49.40; Fri, 11 Sep 2020 09:50:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b="Cz/O9uux"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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 S1726414AbgIKQtH (ORCPT + 99 others); Fri, 11 Sep 2020 12:49:07 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:13306 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726351AbgIKPGa (ORCPT ); Fri, 11 Sep 2020 11:06:30 -0400 X-UUID: f8afbc17fb6949aab102c7378d61476b-20200911 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=hdLgl5qYb7csFXTSLNcMefKqwSUXSPIFrjgHweGeq/I=; b=Cz/O9uuxo11bPPShYt0QOvE7A1nGjyMTUwfGSN3pccprUGAP54ydy6zp6+sl6j0HHA2IebbXUo61uQ0/pteExmRrBgyr4ZYO2TtNLB2lO0/uA/M1grwKvUuKn7QUvwIXn17wIZYlv+ni4+4rM0sFyKUCut7MvuVB9EoHdoMEXaU=; X-UUID: f8afbc17fb6949aab102c7378d61476b-20200911 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1634923234; Fri, 11 Sep 2020 21:49:16 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 11 Sep 2020 21:49:12 +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.1497.2 via Frontend Transport; Fri, 11 Sep 2020 21:49:12 +0800 From: Landen Chao To: Andrew Lunn , Vivien Didelot , Florian Fainelli , "David S . Miller" , Jakub Kicinski , Rob Herring , Matthias Brugger , Sean Wang , Philipp Zabel , Russell King CC: , , , , , , , , Landen Chao Subject: [PATCH net-next v5 2/6] net: dsa: mt7530: Extend device data ready for adding a new hardware Date: Fri, 11 Sep 2020 21:48:52 +0800 Message-ID: <163f6a4cd8d2a801e7372b3ff57ebb470b646e5b.1599829696.git.landen.chao@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org QWRkIGEgc3RydWN0dXJlIGhvbGRpbmcgcmVxdWlyZWQgb3BlcmF0aW9ucyBmb3IgZWFjaCBkZXZp Y2Ugc3VjaCBhcyBkZXZpY2UNCmluaXRpYWxpemF0aW9uLCBQSFkgcG9ydCByZWFkIG9yIHdyaXRl LCBhIGNoZWNrZXIgd2hldGhlciBQSFkgaW50ZXJmYWNlIGlzDQpzdXBwb3J0ZWQgb24gYSBjZXJ0 YWluIHBvcnQsIE1BQyBwb3J0IHNldHVwIGZvciBlaXRoZXIgYnVzIHBhZCBvciBhDQpzcGVjaWZp YyBQSFkgaW50ZXJmYWNlLg0KDQpUaGUgcGF0Y2ggaXMgZG9uZSBmb3IgcmVhZHkgYWRkaW5nIGEg bmV3IGhhcmR3YXJlIE1UNzUzMSwgYW5kIGtlZXAgdGhlDQpzYW1lIHNldHVwIGxvZ2ljIG9mIGV4 aXN0aW5nIGhhcmR3YXJlLg0KDQpTaWduZWQtb2ZmLWJ5OiBMYW5kZW4gQ2hhbyA8bGFuZGVuLmNo YW9AbWVkaWF0ZWsuY29tPg0KU2lnbmVkLW9mZi1ieTogU2VhbiBXYW5nIDxzZWFuLndhbmdAbWVk aWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy9uZXQvZHNhL210NzUzMC5jIHwgMjcxICsrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQ0KIGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAu aCB8ICAzNyArKysrKy0NCiAyIGZpbGVzIGNoYW5nZWQsIDIzNCBpbnNlcnRpb25zKCspLCA3NCBk ZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYyBiL2Ry aXZlcnMvbmV0L2RzYS9tdDc1MzAuYw0KaW5kZXggMjM4NDE3ZGIyNmY5Li45YzZmODBiM2U1ZjUg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMNCisrKyBiL2RyaXZlcnMvbmV0 L2RzYS9tdDc1MzAuYw0KQEAgLTM3Miw4ICszNzIsOSBAQCBtdDc1MzBfZmRiX3dyaXRlKHN0cnVj dCBtdDc1MzBfcHJpdiAqcHJpdiwgdTE2IHZpZCwNCiAJCW10NzUzMF93cml0ZShwcml2LCBNVDc1 MzBfQVRBMSArIChpICogNCksIHJlZ1tpXSk7DQogfQ0KIA0KKy8qIFNldHVwIFRYIGNpcmN1aXQg aW5jbHVkaW5nIHJlbGV2YW50IFBBRCBhbmQgZHJpdmluZyAqLw0KIHN0YXRpYyBpbnQNCi1tdDc1 MzBfcGFkX2Nsa19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBtb2RlKQ0KK210NzUz MF9wYWRfY2xrX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgcGh5X2ludGVyZmFjZV90IGlu dGVyZmFjZSkNCiB7DQogCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KIAl1 MzIgbmNwbzEsIHNzY19kZWx0YSwgdHJnaW50LCBpLCB4dGFsOw0KQEAgLTM4Nyw3ICszODgsNyBA QCBtdDc1MzBfcGFkX2Nsa19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBtb2RlKQ0K IAkJcmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCi0Jc3dpdGNoIChtb2RlKSB7DQorCXN3aXRjaCAo aW50ZXJmYWNlKSB7DQogCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOg0KIAkJdHJnaW50 ID0gMDsNCiAJCS8qIFBMTCBmcmVxdWVuY3k6IDEyNU1IeiAqLw0KQEAgLTQwOSw3ICs0MTAsOCBA QCBtdDc1MzBfcGFkX2Nsa19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBtb2RlKQ0K IAkJfQ0KIAkJYnJlYWs7DQogCWRlZmF1bHQ6DQotCQlkZXZfZXJyKHByaXYtPmRldiwgInhNSUkg bW9kZSAlZCBub3Qgc3VwcG9ydGVkXG4iLCBtb2RlKTsNCisJCWRldl9lcnIocHJpdi0+ZGV2LCAi eE1JSSBpbnRlcmZhY2UgJWQgbm90IHN1cHBvcnRlZFxuIiwNCisJCQlpbnRlcmZhY2UpOw0KIAkJ cmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCkBAIC0xMzQ5LDQ3ICsxMzUxLDExNiBAQCBtdDc1MzBf c2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKQ0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3RhdGlj IHZvaWQgbXQ3NTMwX3BoeWxpbmtfbWFjX2NvbmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGlu dCBwb3J0LA0KLQkJCQkgICAgICB1bnNpZ25lZCBpbnQgbW9kZSwNCi0JCQkJICAgICAgY29uc3Qg c3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpDQorc3RhdGljIGJvb2wNCittdDc1MzBf cGh5X21vZGVfc3VwcG9ydGVkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsDQorCQkJ ICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkNCiB7DQogCXN0cnVjdCBt dDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KLQl1MzIgbWNyX2N1ciwgbWNyX25ldzsNCiAN CiAJc3dpdGNoIChwb3J0KSB7DQotCWNhc2UgMDogLyogSW50ZXJuYWwgcGh5ICovDQotCWNhc2Ug MToNCi0JY2FzZSAyOg0KLQljYXNlIDM6DQotCWNhc2UgNDoNCisJY2FzZSAwIC4uLiA0OiAvKiBJ bnRlcm5hbCBwaHkgKi8NCiAJCWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0Vf TU9ERV9HTUlJKQ0KLQkJCXJldHVybjsNCisJCQlyZXR1cm4gZmFsc2U7DQogCQlicmVhazsNCiAJ Y2FzZSA1OiAvKiAybmQgY3B1IHBvcnQgd2l0aCBwaHkgb2YgcG9ydCAwIG9yIDQgLyBleHRlcm5h bCBwaHkgKi8NCi0JCWlmIChwcml2LT5wNV9pbnRlcmZhY2UgPT0gc3RhdGUtPmludGVyZmFjZSkN Ci0JCQlicmVhazsNCiAJCWlmICghcGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHN0YXRlLT5p bnRlcmZhY2UpICYmDQogCQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01P REVfTUlJICYmDQogCQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVf R01JSSkNCi0JCQlyZXR1cm47DQorCQkJcmV0dXJuIGZhbHNlOw0KKwkJYnJlYWs7DQorCWNhc2Ug NjogLyogMXN0IGNwdSBwb3J0ICovDQorCQlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5U RVJGQUNFX01PREVfUkdNSUkgJiYNCisJCSAgICBzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRF UkZBQ0VfTU9ERV9UUkdNSUkpDQorCQkJcmV0dXJuIGZhbHNlOw0KKwkJYnJlYWs7DQorCWRlZmF1 bHQ6DQorCQlkZXZfZXJyKHByaXYtPmRldiwgIiVzOiB1bnN1cHBvcnRlZCBwb3J0OiAlaVxuIiwg X19mdW5jX18sDQorCQkJcG9ydCk7DQorCQlyZXR1cm4gZmFsc2U7DQorCX0NCisNCisJcmV0dXJu IHRydWU7DQorfQ0KKw0KK3N0YXRpYyBib29sDQorbXQ3NTN4X3BoeV9tb2RlX3N1cHBvcnRlZChz dHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LA0KKwkJCSAgY29uc3Qgc3RydWN0IHBoeWxp bmtfbGlua19zdGF0ZSAqc3RhdGUpDQorew0KKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBk cy0+cHJpdjsNCisNCisJcmV0dXJuIHByaXYtPmluZm8tPnBoeV9tb2RlX3N1cHBvcnRlZChkcywg cG9ydCwgc3RhdGUpOw0KK30NCisNCitzdGF0aWMgaW50DQorbXQ3NTN4X3BhZF9zZXR1cChzdHJ1 Y3QgZHNhX3N3aXRjaCAqZHMsIGNvbnN0IHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRl KQ0KK3sNCisJc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0gZHMtPnByaXY7DQorDQorCXJldHVy biBwcml2LT5pbmZvLT5wYWRfc2V0dXAoZHMsIHN0YXRlLT5pbnRlcmZhY2UpOw0KK30NCisNCitz dGF0aWMgaW50DQorbXQ3NTMwX21hY19jb25maWcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQg cG9ydCwgdW5zaWduZWQgaW50IG1vZGUsDQorCQkgIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2Up DQorew0KKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsNCisNCisJLyogT25s eSBuZWVkIHRvIHNldHVwIHBvcnQ1LiAqLw0KKwlpZiAocG9ydCAhPSA1KQ0KKwkJcmV0dXJuIDA7 DQorDQorCW10NzUzMF9zZXR1cF9wb3J0NShwcml2LT5kcywgaW50ZXJmYWNlKTsNCisNCisJcmV0 dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCittdDc1M3hfbWFjX2NvbmZpZyhzdHJ1Y3QgZHNh X3N3aXRjaCAqZHMsIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9kZSwNCisJCSAgY29uc3Qgc3Ry dWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpDQorew0KKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYg KnByaXYgPSBkcy0+cHJpdjsNCisNCisJcmV0dXJuIHByaXYtPmluZm8tPm1hY19wb3J0X2NvbmZp ZyhkcywgcG9ydCwgbW9kZSwgc3RhdGUtPmludGVyZmFjZSk7DQorfQ0KKw0KK3N0YXRpYyB2b2lk DQorbXQ3NTN4X3BoeWxpbmtfbWFjX2NvbmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBw b3J0LCB1bnNpZ25lZCBpbnQgbW9kZSwNCisJCQkgIGNvbnN0IHN0cnVjdCBwaHlsaW5rX2xpbmtf c3RhdGUgKnN0YXRlKQ0KK3sNCisJc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0gZHMtPnByaXY7 DQorCXUzMiBtY3JfY3VyLCBtY3JfbmV3Ow0KKw0KKwlpZiAoIW10NzUzeF9waHlfbW9kZV9zdXBw b3J0ZWQoZHMsIHBvcnQsIHN0YXRlKSkNCisJCWdvdG8gdW5zdXBwb3J0ZWQ7DQorDQorCXN3aXRj aCAocG9ydCkgew0KKwljYXNlIDAgLi4uIDQ6IC8qIEludGVybmFsIHBoeSAqLw0KKwkJaWYgKHN0 YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUkpDQorCQkJZ290byB1bnN1 cHBvcnRlZDsNCisJCWJyZWFrOw0KKwljYXNlIDU6IC8qIDJuZCBjcHUgcG9ydCB3aXRoIHBoeSBv ZiBwb3J0IDAgb3IgNCAvIGV4dGVybmFsIHBoeSAqLw0KKwkJaWYgKHByaXYtPnA1X2ludGVyZmFj ZSA9PSBzdGF0ZS0+aW50ZXJmYWNlKQ0KKwkJCWJyZWFrOw0KKw0KKwkJaWYgKG10NzUzeF9tYWNf Y29uZmlnKGRzLCBwb3J0LCBtb2RlLCBzdGF0ZSkgPCAwKQ0KKwkJCWdvdG8gdW5zdXBwb3J0ZWQ7 DQogDQotCQltdDc1MzBfc2V0dXBfcG9ydDUoZHMsIHN0YXRlLT5pbnRlcmZhY2UpOw0KIAkJYnJl YWs7DQogCWNhc2UgNjogLyogMXN0IGNwdSBwb3J0ICovDQogCQlpZiAocHJpdi0+cDZfaW50ZXJm YWNlID09IHN0YXRlLT5pbnRlcmZhY2UpDQogCQkJYnJlYWs7DQogDQotCQlpZiAoc3RhdGUtPmlu dGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUkgJiYNCi0JCSAgICBzdGF0ZS0+aW50 ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9UUkdNSUkpDQotCQkJcmV0dXJuOw0KKwkJbXQ3 NTN4X3BhZF9zZXR1cChkcywgc3RhdGUpOw0KIA0KLQkJLyogU2V0dXAgVFggY2lyY3VpdCBpbmNs dWluZyByZWxldmFudCBQQUQgYW5kIGRyaXZpbmcgKi8NCi0JCW10NzUzMF9wYWRfY2xrX3NldHVw KGRzLCBzdGF0ZS0+aW50ZXJmYWNlKTsNCisJCWlmIChtdDc1M3hfbWFjX2NvbmZpZyhkcywgcG9y dCwgbW9kZSwgc3RhdGUpIDwgMCkNCisJCQlnb3RvIHVuc3VwcG9ydGVkOw0KIA0KIAkJcHJpdi0+ cDZfaW50ZXJmYWNlID0gc3RhdGUtPmludGVyZmFjZTsNCiAJCWJyZWFrOw0KIAlkZWZhdWx0Og0K LQkJZGV2X2Vycihkcy0+ZGV2LCAiJXM6IHVuc3VwcG9ydGVkIHBvcnQ6ICVpXG4iLCBfX2Z1bmNf XywgcG9ydCk7DQordW5zdXBwb3J0ZWQ6DQorCQlkZXZfZXJyKGRzLT5kZXYsICIlczogdW5zdXBw b3J0ZWQgJXMgcG9ydDogJWlcbiIsDQorCQkJX19mdW5jX18sIHBoeV9tb2RlcyhzdGF0ZS0+aW50 ZXJmYWNlKSwgcG9ydCk7DQogCQlyZXR1cm47DQogCX0NCiANCkBAIC0xNDUzLDYxICsxNTI0LDQ0 IEBAIHN0YXRpYyB2b2lkIG10NzUzMF9waHlsaW5rX21hY19saW5rX3VwKHN0cnVjdCBkc2Ffc3dp dGNoICpkcywgaW50IHBvcnQsDQogCW10NzUzMF9zZXQocHJpdiwgTVQ3NTMwX1BNQ1JfUChwb3J0 KSwgbWNyKTsNCiB9DQogDQotc3RhdGljIHZvaWQgbXQ3NTMwX3BoeWxpbmtfdmFsaWRhdGUoc3Ry dWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwNCi0JCQkJICAgIHVuc2lnbmVkIGxvbmcgKnN1 cHBvcnRlZCwNCi0JCQkJICAgIHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKQ0KK3N0 YXRpYyB2b2lkDQorbXQ3NTMwX21hY19wb3J0X3ZhbGlkYXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpk cywgaW50IHBvcnQsDQorCQkJIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZCkNCit7DQorCWlmIChw b3J0ID09IDUpDQorCQlwaHlsaW5rX3NldChzdXBwb3J0ZWQsIDEwMDBiYXNlWF9GdWxsKTsNCit9 DQorDQorc3RhdGljIHZvaWQNCittdDc1M3hfcGh5bGlua192YWxpZGF0ZShzdHJ1Y3QgZHNhX3N3 aXRjaCAqZHMsIGludCBwb3J0LA0KKwkJCXVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZCwNCisJCQlz dHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkNCiB7DQogCV9fRVRIVE9PTF9ERUNMQVJF X0xJTktfTU9ERV9NQVNLKG1hc2spID0geyAwLCB9Ow0KKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnBy aXYgPSBkcy0+cHJpdjsNCiANCi0Jc3dpdGNoIChwb3J0KSB7DQotCWNhc2UgMDogLyogSW50ZXJu YWwgcGh5ICovDQotCWNhc2UgMToNCi0JY2FzZSAyOg0KLQljYXNlIDM6DQotCWNhc2UgNDoNCi0J CWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQSAmJg0KLQkJICAg IHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUkpDQotCQkJZ290byB1 bnN1cHBvcnRlZDsNCi0JCWJyZWFrOw0KLQljYXNlIDU6IC8qIDJuZCBjcHUgcG9ydCB3aXRoIHBo eSBvZiBwb3J0IDAgb3IgNCAvIGV4dGVybmFsIHBoeSAqLw0KLQkJaWYgKHN0YXRlLT5pbnRlcmZh Y2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX05BICYmDQotCQkgICAgIXBoeV9pbnRlcmZhY2VfbW9k ZV9pc19yZ21paShzdGF0ZS0+aW50ZXJmYWNlKSAmJg0KLQkJICAgIHN0YXRlLT5pbnRlcmZhY2Ug IT0gUEhZX0lOVEVSRkFDRV9NT0RFX01JSSAmJg0KLQkJICAgIHN0YXRlLT5pbnRlcmZhY2UgIT0g UEhZX0lOVEVSRkFDRV9NT0RFX0dNSUkpDQotCQkJZ290byB1bnN1cHBvcnRlZDsNCi0JCWJyZWFr Ow0KLQljYXNlIDY6IC8qIDFzdCBjcHUgcG9ydCAqLw0KLQkJaWYgKHN0YXRlLT5pbnRlcmZhY2Ug IT0gUEhZX0lOVEVSRkFDRV9NT0RFX05BICYmDQotCQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQ SFlfSU5URVJGQUNFX01PREVfUkdNSUkgJiYNCi0JCSAgICBzdGF0ZS0+aW50ZXJmYWNlICE9IFBI WV9JTlRFUkZBQ0VfTU9ERV9UUkdNSUkpDQotCQkJZ290byB1bnN1cHBvcnRlZDsNCi0JCWJyZWFr Ow0KLQlkZWZhdWx0Og0KLQkJZGV2X2Vycihkcy0+ZGV2LCAiJXM6IHVuc3VwcG9ydGVkIHBvcnQ6 ICVpXG4iLCBfX2Z1bmNfXywgcG9ydCk7DQotdW5zdXBwb3J0ZWQ6DQorCWlmIChzdGF0ZS0+aW50 ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQSAmJg0KKwkgICAgIW10NzUzeF9waHlfbW9k ZV9zdXBwb3J0ZWQoZHMsIHBvcnQsIHN0YXRlKSkgew0KIAkJbGlua21vZGVfemVybyhzdXBwb3J0 ZWQpOw0KIAkJcmV0dXJuOw0KIAl9DQogDQogCXBoeWxpbmtfc2V0X3BvcnRfbW9kZXMobWFzayk7 DQotCXBoeWxpbmtfc2V0KG1hc2ssIEF1dG9uZWcpOw0KIA0KLQlpZiAoc3RhdGUtPmludGVyZmFj ZSA9PSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKSB7DQotCQlwaHlsaW5rX3NldChtYXNrLCAx MDAwYmFzZVRfRnVsbCk7DQotCX0gZWxzZSB7DQorCWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9IFBI WV9JTlRFUkZBQ0VfTU9ERV9UUkdNSUkpIHsNCiAJCXBoeWxpbmtfc2V0KG1hc2ssIDEwYmFzZVRf SGFsZik7DQogCQlwaHlsaW5rX3NldChtYXNrLCAxMGJhc2VUX0Z1bGwpOw0KIAkJcGh5bGlua19z ZXQobWFzaywgMTAwYmFzZVRfSGFsZik7DQogCQlwaHlsaW5rX3NldChtYXNrLCAxMDBiYXNlVF9G dWxsKTsNCi0NCi0JCWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9N SUkpIHsNCi0JCQkvKiBUaGlzIHN3aXRjaCBvbmx5IHN1cHBvcnRzIDFHIGZ1bGwtZHVwbGV4LiAq Lw0KLQkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDBiYXNlVF9GdWxsKTsNCi0JCQlpZiAocG9ydCA9 PSA1KQ0KLQkJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFzZVhfRnVsbCk7DQotCQl9DQorCQlw aHlsaW5rX3NldChtYXNrLCBBdXRvbmVnKTsNCiAJfQ0KIA0KKwkvKiBUaGlzIHN3aXRjaCBvbmx5 IHN1cHBvcnRzIDFHIGZ1bGwtZHVwbGV4LiAqLw0KKwlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQ SFlfSU5URVJGQUNFX01PREVfTUlJKQ0KKwkJcGh5bGlua19zZXQobWFzaywgMTAwMGJhc2VUX0Z1 bGwpOw0KKw0KKwlwcml2LT5pbmZvLT5tYWNfcG9ydF92YWxpZGF0ZShkcywgcG9ydCwgbWFzayk7 DQorDQogCXBoeWxpbmtfc2V0KG1hc2ssIFBhdXNlKTsNCiAJcGh5bGlua19zZXQobWFzaywgQXN5 bV9QYXVzZSk7DQogDQpAQCAtMTU1NSwxMiArMTYwOSw0NSBAQCBtdDc1MzBfcGh5bGlua19tYWNf bGlua19zdGF0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LA0KIAlyZXR1cm4gMTsN CiB9DQogDQorc3RhdGljIGludA0KK210NzUzeF9waHlsaW5rX21hY19saW5rX3N0YXRlKHN0cnVj dCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsDQorCQkJICAgICAgc3RydWN0IHBoeWxpbmtfbGlu a19zdGF0ZSAqc3RhdGUpDQorew0KKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJp djsNCisNCisJcmV0dXJuIHByaXYtPmluZm8tPm1hY19wb3J0X2dldF9zdGF0ZShkcywgcG9ydCwg c3RhdGUpOw0KK30NCisNCitzdGF0aWMgaW50DQorbXQ3NTN4X3NldHVwKHN0cnVjdCBkc2Ffc3dp dGNoICpkcykNCit7DQorCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KKw0K KwlyZXR1cm4gcHJpdi0+aW5mby0+c3dfc2V0dXAoZHMpOw0KK30NCisNCitzdGF0aWMgaW50DQor bXQ3NTN4X3BoeV9yZWFkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCByZWdu dW0pDQorew0KKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsNCisNCisJcmV0 dXJuIHByaXYtPmluZm8tPnBoeV9yZWFkKGRzLCBwb3J0LCByZWdudW0pOw0KK30NCisNCitzdGF0 aWMgaW50DQorbXQ3NTN4X3BoeV93cml0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0 LCBpbnQgcmVnbnVtLCB1MTYgdmFsKQ0KK3sNCisJc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0g ZHMtPnByaXY7DQorDQorCXJldHVybiBwcml2LT5pbmZvLT5waHlfd3JpdGUoZHMsIHBvcnQsIHJl Z251bSwgdmFsKTsNCit9DQorDQogc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBt dDc1MzBfc3dpdGNoX29wcyA9IHsNCiAJLmdldF90YWdfcHJvdG9jb2wJPSBtdGtfZ2V0X3RhZ19w cm90b2NvbCwNCi0JLnNldHVwCQkJPSBtdDc1MzBfc2V0dXAsDQorCS5zZXR1cAkJCT0gbXQ3NTN4 X3NldHVwLA0KIAkuZ2V0X3N0cmluZ3MJCT0gbXQ3NTMwX2dldF9zdHJpbmdzLA0KLQkucGh5X3Jl YWQJCT0gbXQ3NTMwX3BoeV9yZWFkLA0KLQkucGh5X3dyaXRlCQk9IG10NzUzMF9waHlfd3JpdGUs DQorCS5waHlfcmVhZAkJPSBtdDc1M3hfcGh5X3JlYWQsDQorCS5waHlfd3JpdGUJCT0gbXQ3NTN4 X3BoeV93cml0ZSwNCiAJLmdldF9ldGh0b29sX3N0YXRzCT0gbXQ3NTMwX2dldF9ldGh0b29sX3N0 YXRzLA0KIAkuZ2V0X3NzZXRfY291bnQJCT0gbXQ3NTMwX2dldF9zc2V0X2NvdW50LA0KIAkucG9y dF9lbmFibGUJCT0gbXQ3NTMwX3BvcnRfZW5hYmxlLA0KQEAgLTE1NzcsMTYgKzE2NjQsNDEgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBtdDc1MzBfc3dpdGNoX29wcyA9IHsN CiAJLnBvcnRfdmxhbl9kZWwJCT0gbXQ3NTMwX3BvcnRfdmxhbl9kZWwsDQogCS5wb3J0X21pcnJv cl9hZGQJPSBtdDc1MzBfcG9ydF9taXJyb3JfYWRkLA0KIAkucG9ydF9taXJyb3JfZGVsCT0gbXQ3 NTMwX3BvcnRfbWlycm9yX2RlbCwNCi0JLnBoeWxpbmtfdmFsaWRhdGUJPSBtdDc1MzBfcGh5bGlu a192YWxpZGF0ZSwNCi0JLnBoeWxpbmtfbWFjX2xpbmtfc3RhdGUgPSBtdDc1MzBfcGh5bGlua19t YWNfbGlua19zdGF0ZSwNCi0JLnBoeWxpbmtfbWFjX2NvbmZpZwk9IG10NzUzMF9waHlsaW5rX21h Y19jb25maWcsDQorCS5waHlsaW5rX3ZhbGlkYXRlCT0gbXQ3NTN4X3BoeWxpbmtfdmFsaWRhdGUs DQorCS5waHlsaW5rX21hY19saW5rX3N0YXRlCT0gbXQ3NTN4X3BoeWxpbmtfbWFjX2xpbmtfc3Rh dGUsDQorCS5waHlsaW5rX21hY19jb25maWcJPSBtdDc1M3hfcGh5bGlua19tYWNfY29uZmlnLA0K IAkucGh5bGlua19tYWNfbGlua19kb3duCT0gbXQ3NTMwX3BoeWxpbmtfbWFjX2xpbmtfZG93biwN CiAJLnBoeWxpbmtfbWFjX2xpbmtfdXAJPSBtdDc1MzBfcGh5bGlua19tYWNfbGlua191cCwNCiB9 Ow0KIA0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gbXQ3NTN4X3RhYmxlW10gPSB7 DQorCVtJRF9NVDc2MjFdID0gew0KKwkJLmlkID0gSURfTVQ3NjIxLA0KKwkJLnN3X3NldHVwID0g bXQ3NTMwX3NldHVwLA0KKwkJLnBoeV9yZWFkID0gbXQ3NTMwX3BoeV9yZWFkLA0KKwkJLnBoeV93 cml0ZSA9IG10NzUzMF9waHlfd3JpdGUsDQorCQkucGFkX3NldHVwID0gbXQ3NTMwX3BhZF9jbGtf c2V0dXAsDQorCQkucGh5X21vZGVfc3VwcG9ydGVkID0gbXQ3NTMwX3BoeV9tb2RlX3N1cHBvcnRl ZCwNCisJCS5tYWNfcG9ydF92YWxpZGF0ZSA9IG10NzUzMF9tYWNfcG9ydF92YWxpZGF0ZSwNCisJ CS5tYWNfcG9ydF9nZXRfc3RhdGUgPSBtdDc1MzBfcGh5bGlua19tYWNfbGlua19zdGF0ZSwNCisJ CS5tYWNfcG9ydF9jb25maWcgPSBtdDc1MzBfbWFjX2NvbmZpZywNCisJfSwNCisJW0lEX01UNzUz MF0gPSB7DQorCQkuaWQgPSBJRF9NVDc1MzAsDQorCQkuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAs DQorCQkucGh5X3JlYWQgPSBtdDc1MzBfcGh5X3JlYWQsDQorCQkucGh5X3dyaXRlID0gbXQ3NTMw X3BoeV93cml0ZSwNCisJCS5wYWRfc2V0dXAgPSBtdDc1MzBfcGFkX2Nsa19zZXR1cCwNCisJCS5w aHlfbW9kZV9zdXBwb3J0ZWQgPSBtdDc1MzBfcGh5X21vZGVfc3VwcG9ydGVkLA0KKwkJLm1hY19w b3J0X3ZhbGlkYXRlID0gbXQ3NTMwX21hY19wb3J0X3ZhbGlkYXRlLA0KKwkJLm1hY19wb3J0X2dl dF9zdGF0ZSA9IG10NzUzMF9waHlsaW5rX21hY19saW5rX3N0YXRlLA0KKwkJLm1hY19wb3J0X2Nv bmZpZyA9IG10NzUzMF9tYWNfY29uZmlnLA0KKwl9LA0KK307DQorDQogc3RhdGljIGNvbnN0IHN0 cnVjdCBvZl9kZXZpY2VfaWQgbXQ3NTMwX29mX21hdGNoW10gPSB7DQotCXsgLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQ3NjIxIiwgLmRhdGEgPSAodm9pZCAqKUlEX01UNzYyMSwgfSwNCi0JeyAu Y29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDc1MzAiLCAuZGF0YSA9ICh2b2lkICopSURfTVQ3NTMw LCB9LA0KKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzYyMSIsIC5kYXRhID0gJm10NzUz eF90YWJsZVtJRF9NVDc2MjFdLCB9LA0KKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzUz MCIsIC5kYXRhID0gJm10NzUzeF90YWJsZVtJRF9NVDc1MzBdLCB9LA0KIAl7IC8qIHNlbnRpbmVs ICovIH0sDQogfTsNCiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdDc1MzBfb2ZfbWF0Y2gpOw0K QEAgLTE2MjcsOCArMTczOSwyMSBAQCBtdDc1MzBfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICpt ZGlvZGV2KQ0KIAkvKiBHZXQgdGhlIGhhcmR3YXJlIGlkZW50aWZpZXIgZnJvbSB0aGUgZGV2aWNl dHJlZSBub2RlLg0KIAkgKiBXZSB3aWxsIG5lZWQgaXQgZm9yIHNvbWUgb2YgdGhlIGNsb2NrIGFu ZCByZWd1bGF0b3Igc2V0dXAuDQogCSAqLw0KLQlwcml2LT5pZCA9ICh1bnNpZ25lZCBpbnQpKHVu c2lnbmVkIGxvbmcpDQotCQlvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJm1kaW9kZXYtPmRldik7 DQorCXByaXYtPmluZm8gPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoJm1kaW9kZXYtPmRldik7 DQorCWlmICghcHJpdi0+aW5mbykNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwkvKiBTYW5pdHkg Y2hlY2sgaWYgdGhlc2UgcmVxdWlyZWQgZGV2aWNlIG9wZXJhdGlvbnMgYXJlIGZpbGxlZA0KKwkg KiBwcm9wZXJseS4NCisJICovDQorCWlmICghcHJpdi0+aW5mby0+c3dfc2V0dXAgfHwgIXByaXYt PmluZm8tPnBhZF9zZXR1cCB8fA0KKwkgICAgIXByaXYtPmluZm8tPnBoeV9yZWFkIHx8ICFwcml2 LT5pbmZvLT5waHlfd3JpdGUgfHwNCisJICAgICFwcml2LT5pbmZvLT5waHlfbW9kZV9zdXBwb3J0 ZWQgfHwNCisJICAgICFwcml2LT5pbmZvLT5tYWNfcG9ydF92YWxpZGF0ZSB8fA0KKwkgICAgIXBy aXYtPmluZm8tPm1hY19wb3J0X2dldF9zdGF0ZSB8fCAhcHJpdi0+aW5mby0+bWFjX3BvcnRfY29u ZmlnKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCXByaXYtPmlkID0gcHJpdi0+aW5mby0+aWQ7 DQogDQogCWlmIChwcml2LT5pZCA9PSBJRF9NVDc1MzApIHsNCiAJCXByaXYtPmNvcmVfcHdyID0g ZGV2bV9yZWd1bGF0b3JfZ2V0KCZtZGlvZGV2LT5kZXYsICJjb3JlIik7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZHNhL210NzUzMC5oIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oDQppbmRl eCAxNGRlNjBkMGI5Y2EuLjQ0YWM1NTQzMzA4OSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2Rz YS9tdDc1MzAuaA0KKysrIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oDQpAQCAtMTEsNyArMTEs NyBAQA0KICNkZWZpbmUgTVQ3NTMwX05VTV9GREJfUkVDT1JEUwkJMjA0OA0KICNkZWZpbmUgTVQ3 NTMwX0FMTF9NRU1CRVJTCQkweGZmDQogDQotZW51bSB7DQorZW51bSBtdDc1M3hfaWQgew0KIAlJ RF9NVDc1MzAgPSAwLA0KIAlJRF9NVDc2MjEgPSAxLA0KIH07DQpAQCAtNDQzLDYgKzQ0Myw0MCBA QCBzdGF0aWMgY29uc3QgY2hhciAqcDVfaW50Zl9tb2Rlcyh1bnNpZ25lZCBpbnQgcDVfaW50ZXJm YWNlKQ0KIAl9DQogfQ0KIA0KKy8qIHN0cnVjdCBtdDc1M3hfaW5mbyAtCVRoaXMgaXMgdGhlIG1h aW4gZGF0YSBzdHJ1Y3R1cmUgZm9yIGhvbGRpbmcgdGhlIHNwZWNpZmljDQorICoJCQlwYXJ0IGZv ciBlYWNoIHN1cHBvcnRlZCBkZXZpY2UNCisgKiBAc3dfc2V0dXA6CQlIb2xkaW5nIHRoZSBoYW5k bGVyIHRvIGEgZGV2aWNlIGluaXRpYWxpemF0aW9uDQorICogQHBoeV9yZWFkOgkJSG9sZGluZyB0 aGUgd2F5IHJlYWRpbmcgUEhZIHBvcnQNCisgKiBAcGh5X3dyaXRlOgkJSG9sZGluZyB0aGUgd2F5 IHdyaXRpbmcgUEhZIHBvcnQNCisgKiBAcGFkX3NldHVwOgkJSG9sZGluZyB0aGUgd2F5IHNldHRp bmcgdXAgdGhlIGJ1cyBwYWQgZm9yIGEgY2VydGFpbg0KKyAqCQkJTUFDIHBvcnQNCisgKiBAcGh5 X21vZGVfc3VwcG9ydGVkOglDaGVjayBpZiB0aGUgUEhZIHR5cGUgaXMgYmVpbmcgc3VwcG9ydGVk IG9uIGEgY2VydGFpbg0KKyAqCQkJcG9ydA0KKyAqIEBtYWNfcG9ydF92YWxpZGF0ZToJSG9sZGlu ZyB0aGUgd2F5IHRvIHNldCBhZGRpdGlvbiB2YWxpZGF0ZSB0eXBlIGZvciBhDQorICoJCQljZXJ0 YW4gTUFDIHBvcnQNCisgKiBAbWFjX3BvcnRfZ2V0X3N0YXRlOiBIb2xkaW5nIHRoZSB3YXkgZ2V0 dGluZyB0aGUgTUFDL1BDUyBzdGF0ZSBmb3IgYSBjZXJ0YWluDQorICoJCQlNQUMgcG9ydA0KKyAq IEBtYWNfcG9ydF9jb25maWc6CUhvbGRpbmcgdGhlIHdheSBzZXR0aW5nIHVwIHRoZSBQSFkgYXR0 cmlidXRlIHRvIGENCisgKgkJCWNlcnRhaW4gTUFDIHBvcnQNCisgKi8NCitzdHJ1Y3QgbXQ3NTN4 X2luZm8gew0KKwllbnVtIG10NzUzeF9pZCBpZDsNCisNCisJaW50ICgqc3dfc2V0dXApKHN0cnVj dCBkc2Ffc3dpdGNoICpkcyk7DQorCWludCAoKnBoeV9yZWFkKShzdHJ1Y3QgZHNhX3N3aXRjaCAq ZHMsIGludCBwb3J0LCBpbnQgcmVnbnVtKTsNCisJaW50ICgqcGh5X3dyaXRlKShzdHJ1Y3QgZHNh X3N3aXRjaCAqZHMsIGludCBwb3J0LCBpbnQgcmVnbnVtLCB1MTYgdmFsKTsNCisJaW50ICgqcGFk X3NldHVwKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2Up Ow0KKwlib29sICgqcGh5X21vZGVfc3VwcG9ydGVkKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGlu dCBwb3J0LA0KKwkJCQkgICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSk7 DQorCXZvaWQgKCptYWNfcG9ydF92YWxpZGF0ZSkoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQg cG9ydCwNCisJCQkJICB1bnNpZ25lZCBsb25nICpzdXBwb3J0ZWQpOw0KKwlpbnQgKCptYWNfcG9y dF9nZXRfc3RhdGUpKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsDQorCQkJCSAgc3Ry dWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpOw0KKwlpbnQgKCptYWNfcG9ydF9jb25maWcp KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsDQorCQkJICAgICAgIHVuc2lnbmVkIGlu dCBtb2RlLA0KKwkJCSAgICAgICBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKTsNCit9Ow0KKw0K IC8qIHN0cnVjdCBtdDc1MzBfcHJpdiAtCVRoaXMgaXMgdGhlIG1haW4gZGF0YSBzdHJ1Y3R1cmUg Zm9yIGhvbGRpbmcgdGhlIHN0YXRlDQogICoJCQlvZiB0aGUgZHJpdmVyDQogICogQGRldjoJCVRo ZSBkZXZpY2UgcG9pbnRlcg0KQEAgLTQ2OCw2ICs1MDIsNyBAQCBzdHJ1Y3QgbXQ3NTMwX3ByaXYg ew0KIAlzdHJ1Y3QgcmVndWxhdG9yCSpjb3JlX3B3cjsNCiAJc3RydWN0IHJlZ3VsYXRvcgkqaW9f cHdyOw0KIAlzdHJ1Y3QgZ3Bpb19kZXNjCSpyZXNldDsNCisJY29uc3Qgc3RydWN0IG10NzUzeF9p bmZvICppbmZvOw0KIAl1bnNpZ25lZCBpbnQJCWlkOw0KIAlib29sCQkJbWNtOw0KIAlwaHlfaW50 ZXJmYWNlX3QJCXA2X2ludGVyZmFjZTsNCi0tIA0KMi4xNy4xDQo=