From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932401AbbDIAG1 (ORCPT ); Wed, 8 Apr 2015 20:06:27 -0400 Received: from mail-ig0-f169.google.com ([209.85.213.169]:33706 "EHLO mail-ig0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932372AbbDIAGV (ORCPT ); Wed, 8 Apr 2015 20:06:21 -0400 MIME-Version: 1.0 In-Reply-To: <1428527527.18187.28.camel@kernel.crashing.org> References: <1427857069-6789-1-git-send-email-yinghai@kernel.org> <1427857069-6789-4-git-send-email-yinghai@kernel.org> <20150406220638.GH10892@google.com> <20150406.203533.1356187749826485194.davem@davemloft.net> <20150408154759.GN10892@google.com> <1428527527.18187.28.camel@kernel.crashing.org> Date: Wed, 8 Apr 2015 17:06:19 -0700 X-Google-Sender-Auth: 3lY1ZgLrrx2b5xLGFP3Kay3x0VQ Message-ID: Subject: Re: [PATCH 3/3] PCI: Set pref for mem64 resource of pcie device From: Yinghai Lu To: Benjamin Herrenschmidt Cc: Bjorn Helgaas , David Miller , David Ahern , "linux-pci@vger.kernel.org" , "sparclinux@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" Content-Type: multipart/mixed; boundary=001a113e94b2da987f05133f6ab5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --001a113e94b2da987f05133f6ab5 Content-Type: text/plain; charset=UTF-8 On Wed, Apr 8, 2015 at 2:12 PM, Benjamin Herrenschmidt wrote: > Thanks Bjorn. We can fix Yinghai patch for 4.2, it would be indeed handy > even for us to be able to support putting 64-bit NP BARs in prefetch > windows (For some SR-IOV adapters for example) too, but we need to do it > right. Please check if you are ok with attached. Yinghai --001a113e94b2da987f05133f6ab5 Content-Type: text/x-patch; charset=US-ASCII; name="pcie_pref_64bit_mem_v3.patch" Content-Disposition: attachment; filename="pcie_pref_64bit_mem_v3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i89emcxs0 U3ViamVjdDogW1BBVENIIHYzXSBQQ0k6IFNldCB1bmRlcl9wcmVmIGZvciBtZW02NCByZXNvdXJj ZSBvZiBwY2llIGRldmljZQoKV2Ugc3RpbGwgZ2V0ICJubyBjb21wYXRpYmxlIGJyaWRnZSB3aW5k b3ciIHdhcm5pbmcgb24gc3BhcmMgVDUtOAphZnRlciB3ZSBhZGQgc3VwcG9ydCBmb3IgNjRiaXQg cmVzb3VyY2UgcGFyc2luZyBmb3Igcm9vdCBidXMuCgogUENJOiBzY2FuX2J1c1svcGNpQDMwMC9w Y2lAMS9wY2lAMC9wY2lANl0gYnVzIG5vIDgKIFBDSTogQ2xhaW1pbmcgMDAwMDowMDowMS4wOiBS ZXNvdXJjZSAxNTogMDAwMDgwMDEwMDAwMDAwMC4uMDAwMDgwMDRhZmZmZmZmZiBbMjIwY10KIFBD STogQ2xhaW1pbmcgMDAwMDowMTowMC4wOiBSZXNvdXJjZSAxNTogMDAwMDgwMDEwMDAwMDAwMC4u MDAwMDgwMDRhZmZmZmZmZiBbMjIwY10KIFBDSTogQ2xhaW1pbmcgMDAwMDowMjowNC4wOiBSZXNv dXJjZSAxNTogMDAwMDgwMDEwMDAwMDAwMC4uMDAwMDgwMDEyZmZmZmZmZiBbMjIwY10KIFBDSTog Q2xhaW1pbmcgMDAwMDowMzowMC4wOiBSZXNvdXJjZSAxNTogMDAwMDgwMDEwMDAwMDAwMC4uMDAw MDgwMDEyZmZmZmZmZiBbMjIwY10KIFBDSTogQ2xhaW1pbmcgMDAwMDowNDowNi4wOiBSZXNvdXJj ZSAxNDogMDAwMDgwMDEwMDAwMDAwMC4uMDAwMDgwMDEwZmZmZmZmZiBbMjIwY10KIFBDSTogQ2xh aW1pbmcgMDAwMDowNTowMC4wOiBSZXNvdXJjZSAwOiAwMDAwODAwMTAwMDAwMDAwLi4wMDAwODAw MTAwMDAxZmZmIFsyMDRdCiBwY2kgMDAwMDowNTowMC4wOiBjYW4ndCBjbGFpbSBCQVIgMCBbbWVt IDB4ODAwMTAwMDAwMDAwLTB4ODAwMTAwMDAxZmZmXTogbm8gY29tcGF0aWJsZSBicmlkZ2Ugd2lu ZG93CgpBbGwgdGhlIGJyaWRnZXMgNjQtYml0IHJlc291cmNlIGhhdmUgcHJlZiBiaXQsIGJ1dCB0 aGUgZGV2aWNlIHJlc291cmNlIGRvZXMgbm90CmhhdmUgcHJlZiBzZXQsIHRoZW4gd2UgY2FuIG5v dCBmaW5kIHBhcmVudCBmb3IgdGhlIGRldmljZSByZXNvdXJjZSwKYXMgd2UgY2FuIG5vdCBwdXQg bm9uLXByZWYgbWVtIHVuZGVyIHByZWYgbWVtLgoKQWNjb3JkaW5nIHRvIHBjaWUgc3BlYyBlcnJ0 YQpodHRwczovL3d3dy5wY2lzaWcuY29tL3NwZWNpZmljYXRpb25zL3BjaWV4cHJlc3MvYmFzZTIv UENJZV9CYXNlX3IyLjFfRXJyYXRhXzA4SnVuMTAucGRmCnBhZ2UgMTMsIGluIHNvbWUgY2FzZSBp dCBpcyBvayB0byBtYXJrIHNvbWUgYXMgcHJlZi4KCk9ubHkgc2V0IHByZWYgZm9yIDY0Yml0IG1t aW8gd2hlbiB0aGUgZW50aXJlIHBhdGggZnJvbSB0aGUgaG9zdCB0byB0aGUgYWRhcHRlciBpcwpv dmVyIFBDSSBFeHByZXNzLgoKRml4ZXM6IGNvbW1pdCBkNjNlMmUxZjNkZjkgKCJzcGFyYy9QQ0k6 IENsaXAgYnJpZGdlIHdpbmRvd3MgdG8gZml0IGluIHVwc3RyZWFtIHdpbmRvd3MiKQpMaW5rOiBo dHRwOi8vbGttbC5rZXJuZWwub3JnL3IvQ0FFOUZpUVUxZ0pZMUxZcnhzK21hNUxDVEVFZTR4bXRq UkcwYVhKOUtfVHN1K205V3V3QG1haWwuZ21haWwuY29tClJlcG9ydGVkLWJ5OiBEYXZpZCBBaGVy biA8ZGF2aWQuYWhlcm5Ab3JhY2xlLmNvbT4KVGVzdGVkLWJ5OiBEYXZpZCBBaGVybiA8ZGF2aWQu YWhlcm5Ab3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogWWluZ2hhaSBMdSA8eWluZ2hhaUBrZXJu ZWwub3JnPgpDYzogIDxzdGFibGVAdmdlci5rZXJuZWwub3JnPiAjMy4xOQoKLS0tCi12Mjogc2V0 IHByZWYgZm9yIG1taW8gNjQgd2hlbiB3aG9sZSBwYXRoIGlzIFBDSSBFeHByZXNzLCBhY2NvcmRp bmcgdG8gRGF2aWQgTWlsbGVyLgotdjM6IGRvbid0IHNldCBwcmVmIGRpcmVjdGx5LCBjaGFuZ2Ug dG8gVU5ERVJfUFJFRiwgYW5kIHNldCBQUkVGIGJlZm9yZQogICAgIHNpemluZyBhbmQgYXNzaWdu IHJlc291cmNlLCBhbmQgY2xlYXJ0IFBSRUYgYWZ0ZXJ3YXJkcy4gcmVxdWVzdGVkIGJ5IEJlbkgu Ci0tLQoKCi0tLQogZHJpdmVycy9wY2kvYnVzLmMgICAgICAgfCAgICA5ICsrKysrKystCiBkcml2 ZXJzL3BjaS9wY2kuaCAgICAgICB8ICAgMTEgKysrKysrKysrKwogZHJpdmVycy9wY2kvcHJvYmUu YyAgICAgfCAgIDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogZHJpdmVycy9wY2kvc2V0dXAtYnVzLmMgfCAgICA4ICsrKysrKy0KIGRyaXZlcnMvcGNp L3NldHVwLXJlcy5jIHwgICAxMCArKysrKysrKysKIGluY2x1ZGUvbGludXgvaW9wb3J0LmggIHwg ICAgMiArCiA2IGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpJbmRleDogbGludXgtMi42L2RyaXZlcnMvcGNpL2J1cy5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxpbnV4 LTIuNi5vcmlnL2RyaXZlcnMvcGNpL2J1cy5jCisrKyBsaW51eC0yLjYvZHJpdmVycy9wY2kvYnVz LmMKQEAgLTEzOSw2ICsxMzksOCBAQCBzdGF0aWMgaW50IHBjaV9idXNfYWxsb2NfZnJvbV9yZWdp b24oc3RyCiAKIAl0eXBlX21hc2sgfD0gSU9SRVNPVVJDRV9UWVBFX0JJVFM7CiAKKwlwY2lfc2V0 X3ByZWZfdW5kZXJfcHJlZihyZXMpOworCiAJcGNpX2J1c19mb3JfZWFjaF9yZXNvdXJjZShidXMs IHIsIGkpIHsKIAkJaWYgKCFyKQogCQkJY29udGludWU7CkBAIC0xNzAsOSArMTcyLDE0IEBAIHN0 YXRpYyBpbnQgcGNpX2J1c19hbGxvY19mcm9tX3JlZ2lvbihzdHIKIAkJLyogT2ssIHRyeSBpdCBv dXQuLiAqLwogCQlyZXQgPSBhbGxvY2F0ZV9yZXNvdXJjZShyLCByZXMsIHNpemUsIG1pbiwgbWF4 LAogCQkJCQlhbGlnbiwgYWxpZ25mLCBhbGlnbmZfZGF0YSk7Ci0JCWlmIChyZXQgPT0gMCkKKwkJ aWYgKHJldCA9PSAwKSB7CisJCQlwY2lfY2xlYXJfcHJlZl91bmRlcl9wcmVmKHJlcyk7CiAJCQly ZXR1cm4gMDsKKwkJfQogCX0KKworCXBjaV9jbGVhcl9wcmVmX3VuZGVyX3ByZWYocmVzKTsKKwog CXJldHVybiAtRU5PTUVNOwogfQogCkluZGV4OiBsaW51eC0yLjYvZHJpdmVycy9wY2kvcGNpLmgK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gbGludXgtMi42Lm9yaWcvZHJpdmVycy9wY2kvcGNpLmgKKysrIGxpbnV4 LTIuNi9kcml2ZXJzL3BjaS9wY2kuaApAQCAtMjE2LDYgKzIxNiwxNyBAQCB2b2lkIF9fcGNpX2J1 c19hc3NpZ25fcmVzb3VyY2VzKGNvbnN0IHN0CiAJCQkJc3RydWN0IGxpc3RfaGVhZCAqZmFpbF9o ZWFkKTsKIGJvb2wgcGNpX2J1c19jbGlwX3Jlc291cmNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGlu dCBpZHgpOwogCitzdGF0aWMgaW5saW5lIHZvaWQgcGNpX3NldF9wcmVmX3VuZGVyX3ByZWYoc3Ry dWN0IHJlc291cmNlICpyZXMpCit7CisJaWYgKHJlcy0+ZmxhZ3MgJiBJT1JFU09VUkNFX1VOREVS X1BSRUYpCisJCXJlcy0+ZmxhZ3MgfD0gSU9SRVNPVVJDRV9QUkVGRVRDSDsKK30KK3N0YXRpYyBp bmxpbmUgdm9pZCBwY2lfY2xlYXJfcHJlZl91bmRlcl9wcmVmKHN0cnVjdCByZXNvdXJjZSAqcmVz KQoreworCWlmIChyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9VTkRFUl9QUkVGKQorCQlyZXMtPmZs YWdzICY9IH5JT1JFU09VUkNFX1BSRUZFVENIOworfQorCiAvKioKICAqIHBjaV9hcmlfZW5hYmxl ZCAtIHF1ZXJ5IEFSSSBmb3J3YXJkaW5nIHN0YXR1cwogICogQGJ1czogdGhlIFBDSSBidXMKSW5k ZXg6IGxpbnV4LTIuNi9kcml2ZXJzL3BjaS9wcm9iZS5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxpbnV4LTIu Ni5vcmlnL2RyaXZlcnMvcGNpL3Byb2JlLmMKKysrIGxpbnV4LTIuNi9kcml2ZXJzL3BjaS9wcm9i ZS5jCkBAIC0xNTA4LDYgKzE1MDgsNTMgQEAgc3RhdGljIHZvaWQgcGNpX2luaXRfY2FwYWJpbGl0 aWVzKHN0cnVjdAogCXBjaV9lbmFibGVfYWNzKGRldik7CiB9CiAKK3N0YXRpYyBib29sIHBjaV91 cF9wYXRoX292ZXJfcGNpZShzdHJ1Y3QgcGNpX2J1cyAqYnVzKQoreworCWlmICghYnVzKQorCQly ZXR1cm4gdHJ1ZTsKKworCWlmIChidXMtPnNlbGYgJiYgIXBjaV9pc19wY2llKGJ1cy0+c2VsZikp CisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiBwY2lfdXBfcGF0aF9vdmVyX3BjaWUoYnVzLT5w YXJlbnQpOworfQorCisvKgorICogQWNjb3JkaW5nIHRvCisgKiBodHRwczovL3d3dy5wY2lzaWcu Y29tL3NwZWNpZmljYXRpb25zL3BjaWV4cHJlc3MvYmFzZTIvUENJZV9CYXNlX3IyLjFfRXJyYXRh XzA4SnVuMTAucGRmCisgKiBwYWdlIDEzLCBzeXN0ZW0gZmlybXdhcmUgY291bGQgcHV0IHNvbWUg NjRiaXQgbm9uLXByZWYgdW5kZXIgNjRiaXQgcHJlZiwKKyAqIG9uIHNvbWUgY2FzZXMuCisgKiBM ZXQncyBzZXQgcHJlZiBiaXQgZm9yIDY0Yml0IG1taW8gd2hlbiBlbnRpcmUgcGF0aCBmcm9tIHRo ZSBob3N0IHRvCisgKiB0aGUgYWRhcHRlciBpcyBvdmVyIFBDSSBFeHByZXNzLgorICovCitzdGF0 aWMgdm9pZCBzZXRfcGNpZV82NGJpdF91bmRlcl9wcmVmKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7 CisJaW50IGk7CisKKwlpZiAoIXBjaV9pc19wY2llKGRldikpCisJCXJldHVybjsKKworCWlmICgh cGNpX3VwX3BhdGhfb3Zlcl9wY2llKGRldi0+YnVzKSkKKwkJcmV0dXJuOworCisJZm9yIChpID0g MDsgaSA8IFBDSV9CUklER0VfUkVTT1VSQ0VTOyBpKyspIHsKKwkJc3RydWN0IHJlc291cmNlICpy ZXMgPSAmZGV2LT5yZXNvdXJjZVtpXTsKKwkJZW51bSBwY2lfYmFyX3R5cGUgdHlwZTsKKwkJaW50 IHJlZzsKKworCQlpZiAoIShyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9NRU1fNjQpKQorCQkJY29u dGludWU7CisKKwkJaWYgKHJlcy0+ZmxhZ3MgJiBJT1JFU09VUkNFX1BSRUZFVENIKQorCQkJY29u dGludWU7CisKKwkJcmVnID0gcGNpX3Jlc291cmNlX2JhcihkZXYsIGksICZ0eXBlKTsKKwkJZGV2 X3ByaW50ayhLRVJOX0RFQlVHLCAmZGV2LT5kZXYsICJyZWcgMHgleCAlcFIgKyB1bmRlcl9wcmVm XG4iLAorCQkJICAgcmVnLCByZXMpOworCQlyZXMtPmZsYWdzIHw9IElPUkVTT1VSQ0VfVU5ERVJf UFJFRjsKKwl9Cit9CisKIHZvaWQgcGNpX2RldmljZV9hZGQoc3RydWN0IHBjaV9kZXYgKmRldiwg c3RydWN0IHBjaV9idXMgKmJ1cykKIHsKIAlpbnQgcmV0OwpAQCAtMTUzOCw2ICsxNTg1LDkgQEAg dm9pZCBwY2lfZGV2aWNlX2FkZChzdHJ1Y3QgcGNpX2RldiAqZGV2LAogCS8qIEluaXRpYWxpemUg dmFyaW91cyBjYXBhYmlsaXRpZXMgKi8KIAlwY2lfaW5pdF9jYXBhYmlsaXRpZXMoZGV2KTsKIAor CS8qIEFmdGVyIHBjaWVfY2FwIGlzIGFzc2lnbmVkIGFuZCBzcmlvdiBiYXIgaXMgcHJvYmVkICov CisJc2V0X3BjaWVfNjRiaXRfdW5kZXJfcHJlZihkZXYpOworCiAJLyoKIAkgKiBBZGQgdGhlIGRl dmljZSB0byBvdXIgbGlzdCBvZiBkaXNjb3ZlcmVkIGRldmljZXMKIAkgKiBhbmQgdGhlIGJ1cyBs aXN0IGZvciBmaXh1cCBmdW5jdGlvbnMsIGV0Yy4KSW5kZXg6IGxpbnV4LTIuNi9kcml2ZXJzL3Bj aS9zZXR1cC1idXMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsaW51eC0yLjYub3JpZy9kcml2ZXJzL3BjaS9z ZXR1cC1idXMuYworKysgbGludXgtMi42L2RyaXZlcnMvcGNpL3NldHVwLWJ1cy5jCkBAIC05Nzcs MTAgKzk3NywxMyBAQCBzdGF0aWMgaW50IHBidXNfc2l6ZV9tZW0oc3RydWN0IHBjaV9idXMKIAkJ CXN0cnVjdCByZXNvdXJjZSAqciA9ICZkZXYtPnJlc291cmNlW2ldOwogCQkJcmVzb3VyY2Vfc2l6 ZV90IHJfc2l6ZTsKIAorCQkJcGNpX3NldF9wcmVmX3VuZGVyX3ByZWYocik7CiAJCQlpZiAoci0+ cGFyZW50IHx8ICgoci0+ZmxhZ3MgJiBtYXNrKSAhPSB0eXBlICYmCiAJCQkJCSAgKHItPmZsYWdz ICYgbWFzaykgIT0gdHlwZTIgJiYKLQkJCQkJICAoci0+ZmxhZ3MgJiBtYXNrKSAhPSB0eXBlMykp CisJCQkJCSAgKHItPmZsYWdzICYgbWFzaykgIT0gdHlwZTMpKSB7CisJCQkJcGNpX2NsZWFyX3By ZWZfdW5kZXJfcHJlZihyKTsKIAkJCQljb250aW51ZTsKKwkJCX0KIAkJCXJfc2l6ZSA9IHJlc291 cmNlX3NpemUocik7CiAjaWZkZWYgQ09ORklHX1BDSV9JT1YKIAkJCS8qIHB1dCBTUklPViByZXF1 ZXN0ZWQgcmVzIHRvIHRoZSBvcHRpb25hbCBsaXN0ICovCkBAIC05ODksNiArOTkyLDcgQEAgc3Rh dGljIGludCBwYnVzX3NpemVfbWVtKHN0cnVjdCBwY2lfYnVzCiAJCQkJci0+ZW5kID0gci0+c3Rh cnQgLSAxOwogCQkJCWFkZF90b19saXN0KHJlYWxsb2NfaGVhZCwgZGV2LCByLCByX3NpemUsIDAv KiBkb24ndCBjYXJlICovKTsKIAkJCQljaGlsZHJlbl9hZGRfc2l6ZSArPSByX3NpemU7CisJCQkJ cGNpX2NsZWFyX3ByZWZfdW5kZXJfcHJlZihyKTsKIAkJCQljb250aW51ZTsKIAkJCX0KICNlbmRp ZgpAQCAtMTAxOCw2ICsxMDIyLDggQEAgc3RhdGljIGludCBwYnVzX3NpemVfbWVtKHN0cnVjdCBw Y2lfYnVzCiAKIAkJCWlmIChyZWFsbG9jX2hlYWQpCiAJCQkJY2hpbGRyZW5fYWRkX3NpemUgKz0g Z2V0X3Jlc19hZGRfc2l6ZShyZWFsbG9jX2hlYWQsIHIpOworCisJCQlwY2lfY2xlYXJfcHJlZl91 bmRlcl9wcmVmKHIpOwogCQl9CiAJfQogCkluZGV4OiBsaW51eC0yLjYvZHJpdmVycy9wY2kvc2V0 dXAtcmVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gbGludXgtMi42Lm9yaWcvZHJpdmVycy9wY2kvc2V0dXAt cmVzLmMKKysrIGxpbnV4LTIuNi9kcml2ZXJzL3BjaS9zZXR1cC1yZXMuYwpAQCAtMTE2LDExICsx MTYsMTQgQEAgaW50IHBjaV9jbGFpbV9yZXNvdXJjZShzdHJ1Y3QgcGNpX2RldiAqZAogCQlyZXR1 cm4gLUVJTlZBTDsKIAl9CiAKKwlwY2lfc2V0X3ByZWZfdW5kZXJfcHJlZihyZXMpOworCiAJcm9v dCA9IHBjaV9maW5kX3BhcmVudF9yZXNvdXJjZShkZXYsIHJlcyk7CiAJaWYgKCFyb290KSB7CiAJ CWRldl9pbmZvKCZkZXYtPmRldiwgImNhbid0IGNsYWltIEJBUiAlZCAlcFI6IG5vIGNvbXBhdGli bGUgYnJpZGdlIHdpbmRvd1xuIiwKIAkJCSByZXNvdXJjZSwgcmVzKTsKIAkJcmVzLT5mbGFncyB8 PSBJT1JFU09VUkNFX1VOU0VUOworCQlwY2lfY2xlYXJfcHJlZl91bmRlcl9wcmVmKHJlcyk7CiAJ CXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAtMTI5LDkgKzEzMiwxMiBAQCBpbnQgcGNpX2NsYWlt X3Jlc291cmNlKHN0cnVjdCBwY2lfZGV2ICpkCiAJCWRldl9pbmZvKCZkZXYtPmRldiwgImNhbid0 IGNsYWltIEJBUiAlZCAlcFI6IGFkZHJlc3MgY29uZmxpY3Qgd2l0aCAlcyAlcFJcbiIsCiAJCQkg cmVzb3VyY2UsIHJlcywgY29uZmxpY3QtPm5hbWUsIGNvbmZsaWN0KTsKIAkJcmVzLT5mbGFncyB8 PSBJT1JFU09VUkNFX1VOU0VUOworCQlwY2lfY2xlYXJfcHJlZl91bmRlcl9wcmVmKHJlcyk7CiAJ CXJldHVybiAtRUJVU1k7CiAJfQogCisJcGNpX2NsZWFyX3ByZWZfdW5kZXJfcHJlZihyZXMpOwor CiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKHBjaV9jbGFpbV9yZXNvdXJjZSk7CkBAIC0y NTAsOSArMjU2LDExIEBAIHN0YXRpYyBpbnQgX19wY2lfYXNzaWduX3Jlc291cmNlKHN0cnVjdAog c3RhdGljIGludCBfcGNpX2Fzc2lnbl9yZXNvdXJjZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQg cmVzbm8sCiAJCQkJcmVzb3VyY2Vfc2l6ZV90IHNpemUsIHJlc291cmNlX3NpemVfdCBtaW5fYWxp Z24pCiB7CisJc3RydWN0IHJlc291cmNlICpyZXMgPSBkZXYtPnJlc291cmNlICsgcmVzbm87CiAJ c3RydWN0IHBjaV9idXMgKmJ1czsKIAlpbnQgcmV0OwogCisJcGNpX3NldF9wcmVmX3VuZGVyX3By ZWYocmVzKTsKIAlidXMgPSBkZXYtPmJ1czsKIAl3aGlsZSAoKHJldCA9IF9fcGNpX2Fzc2lnbl9y ZXNvdXJjZShidXMsIGRldiwgcmVzbm8sIHNpemUsIG1pbl9hbGlnbikpKSB7CiAJCWlmICghYnVz LT5wYXJlbnQgfHwgIWJ1cy0+c2VsZi0+dHJhbnNwYXJlbnQpCkBAIC0yNjAsNiArMjY4LDggQEAg c3RhdGljIGludCBfcGNpX2Fzc2lnbl9yZXNvdXJjZShzdHJ1Y3QgcAogCQlidXMgPSBidXMtPnBh cmVudDsKIAl9CiAKKwlwY2lfY2xlYXJfcHJlZl91bmRlcl9wcmVmKHJlcyk7CisKIAlyZXR1cm4g cmV0OwogfQogCkluZGV4OiBsaW51eC0yLjYvaW5jbHVkZS9saW51eC9pb3BvcnQuaAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBsaW51eC0yLjYub3JpZy9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCisrKyBsaW51eC0y LjYvaW5jbHVkZS9saW51eC9pb3BvcnQuaApAQCAtNDksNiArNDksOCBAQCBzdHJ1Y3QgcmVzb3Vy Y2UgewogI2RlZmluZSBJT1JFU09VUkNFX1dJTkRPVwkweDAwMjAwMDAwCS8qIGZvcndhcmRlZCBi eSBicmlkZ2UgKi8KICNkZWZpbmUgSU9SRVNPVVJDRV9NVVhFRAkweDAwNDAwMDAwCS8qIFJlc291 cmNlIGlzIHNvZnR3YXJlIG11eGVkICovCiAKKyNkZWZpbmUgSU9SRVNPVVJDRV9VTkRFUl9QUkVG CTB4MDA4MDAwMDAJLyogbm9uLXByZWYgY291bGQgdW5kZXIgcHJlZiAqLworCiAjZGVmaW5lIElP UkVTT1VSQ0VfRVhDTFVTSVZFCTB4MDgwMDAwMDAJLyogVXNlcmxhbmQgbWF5IG5vdCBtYXAgdGhp cyByZXNvdXJjZSAqLwogI2RlZmluZSBJT1JFU09VUkNFX0RJU0FCTEVECTB4MTAwMDAwMDAKICNk ZWZpbmUgSU9SRVNPVVJDRV9VTlNFVAkweDIwMDAwMDAwCS8qIE5vIGFkZHJlc3MgYXNzaWduZWQg eWV0ICovCg== --001a113e94b2da987f05133f6ab5--