Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp1249070ybi; Fri, 31 May 2019 16:47:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqzogIbpuE+0csC6uXDhhTIX5hv4kDAs9wBY4rkCdkzbY/CQgc/Qq/EeYJBM1kPWb3i/xyXr X-Received: by 2002:a63:1d14:: with SMTP id d20mr12372575pgd.281.1559346431587; Fri, 31 May 2019 16:47:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559346431; cv=none; d=google.com; s=arc-20160816; b=byN3jJBDW7rDcTj8bfXoDAhPidUIqq4JHcZmRHOMGZ/xRe6rs6VtYv/IZvFQoqBshC rhbcvAurvYvwEYgdulAOHSOnesN/xLx0qwTjkD0XHmrhapHeph3Az6wnI/lyZ6MWo23x XkBqEmHrmUU7uLJeX1Q2sBrN2wLKpK7LJXzKvV/4plSQNGOdkUHhDgc2lm70XSvg+Lcn AF7+bWA98erS5eKNnfMM0VJF6ChXzW2JS5M2KgQD2l+a+Cih2KkG90e5xu9OWPxgOts+ ISLJVzZfl8x7GmLCWKFCnWf3N08DZg6KIV3cQ14svJZqTFdxJgH/Rka5aaAVvmUqa4pl D8HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=WjlXfYHYEJ9UZmbo78xOIv4jaEW9+/sgQWsaJ/Czqas=; b=bmf2tm5VvpSusyvkPfhT7bNosN8Qa2nu6OJRBqNAdlxFRq79w8nwGWWhWBVdMwLFQO WIebJMXEJ5vh8gn3Ot3nongnvoj/dIj4W9fU2NhUUOAQGcZVg5l7IHVE2f4jpIAnNykd lhTV421ZZHO8Bmp9G1MawLepDTvzgw4mYJIxKTPqLvMUjCwNqNZdppy0K3L9dZTXylm2 O0Ru2mt8nUCXRICuUJhdA8Rpe72CHRybkxNZxIYb3lHUX3hq2WrTisGLlsWYJzHS/6m+ ytk2tS5B1nhLBRuTH2kRZIbBY6Ls//JTW6mv7iPTVwBJdDxy4DyEYbxSN87Qqtsf599I MrWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amdcloud-onmicrosoft-com header.b=zBp2OdZb; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q19si7822082pgj.42.2019.05.31.16.46.56; Fri, 31 May 2019 16:47:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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=@amdcloud.onmicrosoft.com header.s=selector1-amdcloud-onmicrosoft-com header.b=zBp2OdZb; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726988AbfEaXpm (ORCPT + 99 others); Fri, 31 May 2019 19:45:42 -0400 Received: from mail-eopbgr680060.outbound.protection.outlook.com ([40.107.68.60]:10465 "EHLO NAM04-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726899AbfEaXpV (ORCPT ); Fri, 31 May 2019 19:45:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WjlXfYHYEJ9UZmbo78xOIv4jaEW9+/sgQWsaJ/Czqas=; b=zBp2OdZbvdrNAmDRqtvu0FX8tUMLyc1CtkR6mupDHjbkySaW3msHEZmieqTlpXHDyJUT8kyHXBioQxjyw0xQPSTwbNmCP2uSgayA3Y4to17Xja14YWMy55/8v6u8E8UolVqR5ck+fniTIOWe02jq5+7lsEYiEE55hqKVvtXXI3Y= Received: from SN6PR12MB2639.namprd12.prod.outlook.com (52.135.103.16) by SN6PR12MB2671.namprd12.prod.outlook.com (52.135.103.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1943.17; Fri, 31 May 2019 23:45:13 +0000 Received: from SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::69b5:19ac:b63d:2b82]) by SN6PR12MB2639.namprd12.prod.outlook.com ([fe80::69b5:19ac:b63d:2b82%3]) with mapi id 15.20.1922.021; Fri, 31 May 2019 23:45:13 +0000 From: "Ghannam, Yazen" To: "linux-edac@vger.kernel.org" CC: "Ghannam, Yazen" , "linux-kernel@vger.kernel.org" , "bp@alien8.de" Subject: [PATCH 2/8] EDAC/amd64: Support more than two controllers for chip selects handling Thread-Topic: [PATCH 2/8] EDAC/amd64: Support more than two controllers for chip selects handling Thread-Index: AQHVGArjP8ASCZySEUyWj7FP348Uiw== Date: Fri, 31 May 2019 23:45:12 +0000 Message-ID: <20190531234501.32826-3-Yazen.Ghannam@amd.com> References: <20190531234501.32826-1-Yazen.Ghannam@amd.com> In-Reply-To: <20190531234501.32826-1-Yazen.Ghannam@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN6PR05CA0032.namprd05.prod.outlook.com (2603:10b6:805:de::45) To SN6PR12MB2639.namprd12.prod.outlook.com (2603:10b6:805:6f::16) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Yazen.Ghannam@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [165.204.78.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 683937e1-fd7b-466a-06a6-08d6e62205c6 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020);SRVR:SN6PR12MB2671; x-ms-traffictypediagnostic: SN6PR12MB2671: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:390; x-forefront-prvs: 00540983E2 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(346002)(376002)(136003)(366004)(396003)(189003)(199004)(5640700003)(25786009)(14444005)(6506007)(256004)(72206003)(2906002)(54906003)(6512007)(14454004)(186003)(86362001)(3846002)(6116002)(486006)(2501003)(71200400001)(6486002)(386003)(76176011)(2351001)(478600001)(71190400001)(52116002)(36756003)(6436002)(26005)(68736007)(6916009)(99286004)(446003)(66476007)(476003)(73956011)(66066001)(66946007)(2616005)(81156014)(305945005)(81166006)(1076003)(8936002)(316002)(7736002)(4326008)(8676002)(66446008)(64756008)(50226002)(53936002)(11346002)(5660300002)(66556008)(102836004);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR12MB2671;H:SN6PR12MB2639.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: bNQcTPtWUqVmvN3BzewChvpkuDU/9k50rBfykQ13u4UkbzzfjkDFoaxNYEoo8OPCK8a68Hmlp1YvTUFCCwC8lOpnLekQ+pcRyiec9DNw1SbLFfRpIc8XsZGLeuT15OJU/M786ciygN7uDa1JDTp3S25GWeqaTfomZkvy1kGKPde2gXMDXHKXb2tq4v3+BtO/JKSnOUMm4lgiFsLmOiNs6mdCIEg1HsPu6nPvj6o+TG1SvAPB2AdSV1TjEA7VwqQWchBGV6Z+LM20aUMya3As+ZK5Lanq+T94dFc1VCOpLC/BWlTOQ7ySoB+SGGEbzgjM15EzncJLZzmkaZS7ws6QoaGoxF/msERrucl21BRc0tRSuX/Wk9prReU4K5YMvA8XXrXJufduUFXaVyTN7x9W2nZ2JpGQi0ZUceOFNDrtAcU= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 683937e1-fd7b-466a-06a6-08d6e62205c6 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 May 2019 23:45:12.3032 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yghannam@amd.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR12MB2671 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPg0KDQpUaGUgc3RydWN0 IGNoaXBfc2VsZWN0IGFycmF5IHRoYXQncyB1c2VkIGZvciBzYXZpbmcgY2hpcCBzZWxlY3QgYmFz ZXMNCmFuZCBtYXNrcyBpcyBmaXhlZCBhdCBsZW5ndGggb2YgdHdvLiBUaGVyZSBzaG91bGQgYmUg b25lIHN0cnVjdA0KY2hpcF9zZWxlY3QgZm9yIGVhY2ggY29udHJvbGxlciwgc28gdGhpcyBhcnJh eSBzaG91bGQgYmUgaW5jcmVhc2VkIHRvDQpzdXBwb3J0IHN5c3RlbXMgdGhhdCBtYXkgaGF2ZSBt b3JlIHRoYW4gdHdvIGNvbnRyb2xsZXJzLg0KDQpJbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgc3Ry dWN0IGNoaXBfc2VsZWN0IGFycmF5IHRvIGVpZ2h0LCB3aGljaCBpcyB0aGUNCmxhcmdlc3QgbnVt YmVyIG9mIGNvbnRyb2xsZXJzIHBlciBkaWUgY3VycmVudGx5IHN1cHBvcnRlZCBvbiBBTUQNCnN5 c3RlbXMuDQoNCkFsc28sIGNhcnZlIG91dCB0aGUgRmFtaWx5IDE3aCsgcmVhZGluZyBvZiB0aGUg YmFzZXMvbWFza3MgaW50byBhDQpzZXBhcmF0ZSBmdW5jdGlvbi4gVGhpcyBlZmZlY3RpdmVseSBy ZXZlcnRzIHRoZSBvcmlnaW5hbCBiYXNlcy9tYXNrcw0KcmVhZGluZyBjb2RlIHRvIGJlZm9yZSBG YW1pbHkgMTdoIHN1cHBvcnQgd2FzIGFkZGVkLg0KDQpUaGlzIGlzIGEgc2Vjb25kIHZlcnNpb24g b2YgYSBjb21taXQgdGhhdCB3YXMgcmV2ZXJ0ZWQuDQoNCkZpeGVzOiA4ZGU5OTMwYTQ2MTggKCJS ZXZlcnQgIkVEQUMvYW1kNjQ6IFN1cHBvcnQgbW9yZSB0aGFuIHR3byBjb250cm9sbGVycyBmb3Ig Y2hpcCBzZWxlY3QgaGFuZGxpbmciIikNClNpZ25lZC1vZmYtYnk6IFlhemVuIEdoYW5uYW0gPHlh emVuLmdoYW5uYW1AYW1kLmNvbT4NCi0tLQ0KIGRyaXZlcnMvZWRhYy9hbWQ2NF9lZGFjLmMgfCAx MjIgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0NCiBkcml2ZXJzL2VkYWMv YW1kNjRfZWRhYy5oIHwgICA1ICstDQogMiBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCsp LCA1OCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9hbWQ2NF9lZGFj LmMgYi9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5jDQppbmRleCA5ZmEyZjIwNWYwNWMuLmRkNjBj ZjVhM2Q5NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZWRhYy9hbWQ2NF9lZGFjLmMNCisrKyBiL2Ry aXZlcnMvZWRhYy9hbWQ2NF9lZGFjLmMNCkBAIC05NDMsOTEgKzk0MywxMDEgQEAgc3RhdGljIHZv aWQgcHJlcF9jaGlwX3NlbGVjdHMoc3RydWN0IGFtZDY0X3B2dCAqcHZ0KQ0KIAkJcHZ0LT5jc2Vs c1swXS5iX2NudCA9IHB2dC0+Y3NlbHNbMV0uYl9jbnQgPSA0Ow0KIAkJcHZ0LT5jc2Vsc1swXS5t X2NudCA9IHB2dC0+Y3NlbHNbMV0ubV9jbnQgPSAyOw0KIAl9IGVsc2UgaWYgKHB2dC0+ZmFtID49 IDB4MTcpIHsNCi0JCXB2dC0+Y3NlbHNbMF0uYl9jbnQgPSBwdnQtPmNzZWxzWzFdLmJfY250ID0g NDsNCi0JCXB2dC0+Y3NlbHNbMF0ubV9jbnQgPSBwdnQtPmNzZWxzWzFdLm1fY250ID0gMjsNCisJ CWludCB1bWM7DQorDQorCQlmb3JfZWFjaF91bWModW1jKSB7DQorCQkJcHZ0LT5jc2Vsc1t1bWNd LmJfY250ID0gNDsNCisJCQlwdnQtPmNzZWxzW3VtY10ubV9jbnQgPSAyOw0KKwkJfQ0KKw0KIAl9 IGVsc2Ugew0KIAkJcHZ0LT5jc2Vsc1swXS5iX2NudCA9IHB2dC0+Y3NlbHNbMV0uYl9jbnQgPSA4 Ow0KIAkJcHZ0LT5jc2Vsc1swXS5tX2NudCA9IHB2dC0+Y3NlbHNbMV0ubV9jbnQgPSA0Ow0KIAl9 DQogfQ0KIA0KK3N0YXRpYyB2b2lkIHJlYWRfdW1jX2Jhc2VfbWFzayhzdHJ1Y3QgYW1kNjRfcHZ0 ICpwdnQpDQorew0KKwl1MzIgdW1jX2Jhc2VfcmVnLCB1bWNfbWFza19yZWc7DQorCXUzMiBiYXNl X3JlZywgbWFza19yZWc7DQorCXUzMiAqYmFzZSwgKm1hc2s7DQorCWludCBjcywgdW1jOw0KKw0K Kwlmb3JfZWFjaF91bWModW1jKSB7DQorCQl1bWNfYmFzZV9yZWcgPSBnZXRfdW1jX2Jhc2UodW1j KSArIFVNQ0NIX0JBU0VfQUREUjsNCisNCisJCWZvcl9lYWNoX2NoaXBfc2VsZWN0KGNzLCB1bWMs IHB2dCkgew0KKwkJCWJhc2UgPSAmcHZ0LT5jc2Vsc1t1bWNdLmNzYmFzZXNbY3NdOw0KKw0KKwkJ CWJhc2VfcmVnID0gdW1jX2Jhc2VfcmVnICsgKGNzICogNCk7DQorDQorCQkJaWYgKCFhbWRfc21u X3JlYWQocHZ0LT5tY19ub2RlX2lkLCBiYXNlX3JlZywgYmFzZSkpDQorCQkJCWVkYWNfZGJnKDAs ICIgIERDU0IlZFslZF09MHglMDh4IHJlZzogMHgleFxuIiwNCisJCQkJCSB1bWMsIGNzLCAqYmFz ZSwgYmFzZV9yZWcpOw0KKwkJfQ0KKw0KKwkJdW1jX21hc2tfcmVnID0gZ2V0X3VtY19iYXNlKHVt YykgKyBVTUNDSF9BRERSX01BU0s7DQorDQorCQlmb3JfZWFjaF9jaGlwX3NlbGVjdF9tYXNrKGNz LCB1bWMsIHB2dCkgew0KKwkJCW1hc2sgPSAmcHZ0LT5jc2Vsc1t1bWNdLmNzbWFza3NbY3NdOw0K Kw0KKwkJCW1hc2tfcmVnID0gdW1jX21hc2tfcmVnICsgKGNzICogNCk7DQorDQorCQkJaWYgKCFh bWRfc21uX3JlYWQocHZ0LT5tY19ub2RlX2lkLCBtYXNrX3JlZywgbWFzaykpDQorCQkJCWVkYWNf ZGJnKDAsICIgIERDU00lZFslZF09MHglMDh4IHJlZzogMHgleFxuIiwNCisJCQkJCSB1bWMsIGNz LCAqbWFzaywgbWFza19yZWcpOw0KKwkJfQ0KKwl9DQorfQ0KKw0KIC8qDQogICogRnVuY3Rpb24g MiBPZmZzZXQgRjEwX0RDU0IwOyByZWFkIGluIHRoZSBEQ1MgQmFzZSBhbmQgRENTIE1hc2sgcmVn aXN0ZXJzDQogICovDQogc3RhdGljIHZvaWQgcmVhZF9kY3RfYmFzZV9tYXNrKHN0cnVjdCBhbWQ2 NF9wdnQgKnB2dCkNCiB7DQotCWludCBiYXNlX3JlZzAsIGJhc2VfcmVnMSwgbWFza19yZWcwLCBt YXNrX3JlZzEsIGNzOw0KKwlpbnQgY3M7DQogDQogCXByZXBfY2hpcF9zZWxlY3RzKHB2dCk7DQog DQotCWlmIChwdnQtPnVtYykgew0KLQkJYmFzZV9yZWcwID0gZ2V0X3VtY19iYXNlKDApICsgVU1D Q0hfQkFTRV9BRERSOw0KLQkJYmFzZV9yZWcxID0gZ2V0X3VtY19iYXNlKDEpICsgVU1DQ0hfQkFT RV9BRERSOw0KLQkJbWFza19yZWcwID0gZ2V0X3VtY19iYXNlKDApICsgVU1DQ0hfQUREUl9NQVNL Ow0KLQkJbWFza19yZWcxID0gZ2V0X3VtY19iYXNlKDEpICsgVU1DQ0hfQUREUl9NQVNLOw0KLQl9 IGVsc2Ugew0KLQkJYmFzZV9yZWcwID0gRENTQjA7DQotCQliYXNlX3JlZzEgPSBEQ1NCMTsNCi0J CW1hc2tfcmVnMCA9IERDU00wOw0KLQkJbWFza19yZWcxID0gRENTTTE7DQotCX0NCisJaWYgKHB2 dC0+dW1jKQ0KKwkJcmV0dXJuIHJlYWRfdW1jX2Jhc2VfbWFzayhwdnQpOw0KIA0KIAlmb3JfZWFj aF9jaGlwX3NlbGVjdChjcywgMCwgcHZ0KSB7DQotCQlpbnQgcmVnMCAgID0gYmFzZV9yZWcwICsg KGNzICogNCk7DQotCQlpbnQgcmVnMSAgID0gYmFzZV9yZWcxICsgKGNzICogNCk7DQorCQlpbnQg cmVnMCAgID0gRENTQjAgKyAoY3MgKiA0KTsNCisJCWludCByZWcxICAgPSBEQ1NCMSArIChjcyAq IDQpOw0KIAkJdTMyICpiYXNlMCA9ICZwdnQtPmNzZWxzWzBdLmNzYmFzZXNbY3NdOw0KIAkJdTMy ICpiYXNlMSA9ICZwdnQtPmNzZWxzWzFdLmNzYmFzZXNbY3NdOw0KIA0KLQkJaWYgKHB2dC0+dW1j KSB7DQotCQkJaWYgKCFhbWRfc21uX3JlYWQocHZ0LT5tY19ub2RlX2lkLCByZWcwLCBiYXNlMCkp DQotCQkJCWVkYWNfZGJnKDAsICIgIERDU0IwWyVkXT0weCUwOHggcmVnOiAweCV4XG4iLA0KLQkJ CQkJIGNzLCAqYmFzZTAsIHJlZzApOw0KLQ0KLQkJCWlmICghYW1kX3Ntbl9yZWFkKHB2dC0+bWNf bm9kZV9pZCwgcmVnMSwgYmFzZTEpKQ0KLQkJCQllZGFjX2RiZygwLCAiICBEQ1NCMVslZF09MHgl MDh4IHJlZzogMHgleFxuIiwNCi0JCQkJCSBjcywgKmJhc2UxLCByZWcxKTsNCi0JCX0gZWxzZSB7 DQotCQkJaWYgKCFhbWQ2NF9yZWFkX2RjdF9wY2lfY2ZnKHB2dCwgMCwgcmVnMCwgYmFzZTApKQ0K LQkJCQllZGFjX2RiZygwLCAiICBEQ1NCMFslZF09MHglMDh4IHJlZzogRjJ4JXhcbiIsDQotCQkJ CQkgY3MsICpiYXNlMCwgcmVnMCk7DQorCQlpZiAoIWFtZDY0X3JlYWRfZGN0X3BjaV9jZmcocHZ0 LCAwLCByZWcwLCBiYXNlMCkpDQorCQkJZWRhY19kYmcoMCwgIiAgRENTQjBbJWRdPTB4JTA4eCBy ZWc6IEYyeCV4XG4iLA0KKwkJCQkgY3MsICpiYXNlMCwgcmVnMCk7DQogDQotCQkJaWYgKHB2dC0+ ZmFtID09IDB4ZikNCi0JCQkJY29udGludWU7DQorCQlpZiAocHZ0LT5mYW0gPT0gMHhmKQ0KKwkJ CWNvbnRpbnVlOw0KIA0KLQkJCWlmICghYW1kNjRfcmVhZF9kY3RfcGNpX2NmZyhwdnQsIDEsIHJl ZzAsIGJhc2UxKSkNCi0JCQkJZWRhY19kYmcoMCwgIiAgRENTQjFbJWRdPTB4JTA4eCByZWc6IEYy eCV4XG4iLA0KLQkJCQkJIGNzLCAqYmFzZTEsIChwdnQtPmZhbSA9PSAweDEwKSA/IHJlZzENCi0J CQkJCQkJCTogcmVnMCk7DQotCQl9DQorCQlpZiAoIWFtZDY0X3JlYWRfZGN0X3BjaV9jZmcocHZ0 LCAxLCByZWcwLCBiYXNlMSkpDQorCQkJZWRhY19kYmcoMCwgIiAgRENTQjFbJWRdPTB4JTA4eCBy ZWc6IEYyeCV4XG4iLA0KKwkJCQkgY3MsICpiYXNlMSwgKHB2dC0+ZmFtID09IDB4MTApID8gcmVn MQ0KKwkJCQkJCQk6IHJlZzApOw0KIAl9DQogDQogCWZvcl9lYWNoX2NoaXBfc2VsZWN0X21hc2so Y3MsIDAsIHB2dCkgew0KLQkJaW50IHJlZzAgICA9IG1hc2tfcmVnMCArIChjcyAqIDQpOw0KLQkJ aW50IHJlZzEgICA9IG1hc2tfcmVnMSArIChjcyAqIDQpOw0KKwkJaW50IHJlZzAgICA9IERDU00w ICsgKGNzICogNCk7DQorCQlpbnQgcmVnMSAgID0gRENTTTEgKyAoY3MgKiA0KTsNCiAJCXUzMiAq bWFzazAgPSAmcHZ0LT5jc2Vsc1swXS5jc21hc2tzW2NzXTsNCiAJCXUzMiAqbWFzazEgPSAmcHZ0 LT5jc2Vsc1sxXS5jc21hc2tzW2NzXTsNCiANCi0JCWlmIChwdnQtPnVtYykgew0KLQkJCWlmICgh YW1kX3Ntbl9yZWFkKHB2dC0+bWNfbm9kZV9pZCwgcmVnMCwgbWFzazApKQ0KLQkJCQllZGFjX2Ri ZygwLCAiICAgIERDU00wWyVkXT0weCUwOHggcmVnOiAweCV4XG4iLA0KLQkJCQkJIGNzLCAqbWFz azAsIHJlZzApOw0KLQ0KLQkJCWlmICghYW1kX3Ntbl9yZWFkKHB2dC0+bWNfbm9kZV9pZCwgcmVn MSwgbWFzazEpKQ0KLQkJCQllZGFjX2RiZygwLCAiICAgIERDU00xWyVkXT0weCUwOHggcmVnOiAw eCV4XG4iLA0KLQkJCQkJIGNzLCAqbWFzazEsIHJlZzEpOw0KLQkJfSBlbHNlIHsNCi0JCQlpZiAo IWFtZDY0X3JlYWRfZGN0X3BjaV9jZmcocHZ0LCAwLCByZWcwLCBtYXNrMCkpDQotCQkJCWVkYWNf ZGJnKDAsICIgICAgRENTTTBbJWRdPTB4JTA4eCByZWc6IEYyeCV4XG4iLA0KLQkJCQkJIGNzLCAq bWFzazAsIHJlZzApOw0KKwkJaWYgKCFhbWQ2NF9yZWFkX2RjdF9wY2lfY2ZnKHB2dCwgMCwgcmVn MCwgbWFzazApKQ0KKwkJCWVkYWNfZGJnKDAsICIgICAgRENTTTBbJWRdPTB4JTA4eCByZWc6IEYy eCV4XG4iLA0KKwkJCQkgY3MsICptYXNrMCwgcmVnMCk7DQogDQotCQkJaWYgKHB2dC0+ZmFtID09 IDB4ZikNCi0JCQkJY29udGludWU7DQorCQlpZiAocHZ0LT5mYW0gPT0gMHhmKQ0KKwkJCWNvbnRp bnVlOw0KIA0KLQkJCWlmICghYW1kNjRfcmVhZF9kY3RfcGNpX2NmZyhwdnQsIDEsIHJlZzAsIG1h c2sxKSkNCi0JCQkJZWRhY19kYmcoMCwgIiAgICBEQ1NNMVslZF09MHglMDh4IHJlZzogRjJ4JXhc biIsDQotCQkJCQkgY3MsICptYXNrMSwgKHB2dC0+ZmFtID09IDB4MTApID8gcmVnMQ0KLQkJCQkJ CQkJOiByZWcwKTsNCi0JCX0NCisJCWlmICghYW1kNjRfcmVhZF9kY3RfcGNpX2NmZyhwdnQsIDEs IHJlZzAsIG1hc2sxKSkNCisJCQllZGFjX2RiZygwLCAiICAgIERDU00xWyVkXT0weCUwOHggcmVn OiBGMngleFxuIiwNCisJCQkJIGNzLCAqbWFzazEsIChwdnQtPmZhbSA9PSAweDEwKSA/IHJlZzEN CisJCQkJCQkJOiByZWcwKTsNCiAJfQ0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMv YW1kNjRfZWRhYy5oIGIvZHJpdmVycy9lZGFjL2FtZDY0X2VkYWMuaA0KaW5kZXggOGY2NjQ3MmY3 YWRjLi40ZGNlNmEyYWM3NWYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5o DQorKysgYi9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5oDQpAQCAtOTYsNiArOTYsNyBAQA0KIC8q IEhhcmR3YXJlIGxpbWl0IG9uIENoaXBTZWxlY3Qgcm93cyBwZXIgTUMgYW5kIHByb2Nlc3NvcnMg cGVyIHN5c3RlbSAqLw0KICNkZWZpbmUgTlVNX0NISVBTRUxFQ1RTCQkJOA0KICNkZWZpbmUgRFJB TV9SQU5HRVMJCQk4DQorI2RlZmluZSBOVU1fQ09OVFJPTExFUlMJCQk4DQogDQogI2RlZmluZSBP TiB0cnVlDQogI2RlZmluZSBPRkYgZmFsc2UNCkBAIC0zNTEsOCArMzUyLDggQEAgc3RydWN0IGFt ZDY0X3B2dCB7DQogCXUzMiBkYmFtMDsJCS8qIERSQU0gQmFzZSBBZGRyZXNzIE1hcHBpbmcgcmVn IGZvciBEQ1QwICovDQogCXUzMiBkYmFtMTsJCS8qIERSQU0gQmFzZSBBZGRyZXNzIE1hcHBpbmcg cmVnIGZvciBEQ1QxICovDQogDQotCS8qIG9uZSBmb3IgZWFjaCBEQ1QgKi8NCi0Jc3RydWN0IGNo aXBfc2VsZWN0IGNzZWxzWzJdOw0KKwkvKiBvbmUgZm9yIGVhY2ggRENUL1VNQyAqLw0KKwlzdHJ1 Y3QgY2hpcF9zZWxlY3QgY3NlbHNbTlVNX0NPTlRST0xMRVJTXTsNCiANCiAJLyogRFJBTSBiYXNl IGFuZCBsaW1pdCBwYWlycyBGMXhbNzgsNzAsNjgsNjAsNTgsNTAsNDgsNDBdICovDQogCXN0cnVj dCBkcmFtX3JhbmdlIHJhbmdlc1tEUkFNX1JBTkdFU107DQotLSANCjIuMTcuMQ0KDQo=