From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: Re: Fail to boot Dom0 on Xen Arm64 after "dma-mapping: bypass indirect calls for dma-direct" Date: Wed, 16 Jan 2019 10:19:04 -0800 Message-ID: <20190116181904.GA6228@infradead.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Julien Grall Cc: Juergen Gross , Stefano Stabellini , Christoph Hellwig , iommu@lists.linux-foundation.org, xen-devel , Boris Ostrovsky , m.szyprowski@samsung.com List-Id: iommu@lists.linux-foundation.org RG9lcyB0aGlzIGZpeCB5b3VyIHByb2JsZW0/CgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVk ZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3hlbi9wYWdl LWNvaGVyZW50LmgKaW5kZXggYjNlZjA2MWQ4Yjc0Li4yYzQwM2U3Yzc4MmQgMTAwNjQ0Ci0tLSBh L2FyY2gvYXJtL2luY2x1ZGUvYXNtL3hlbi9wYWdlLWNvaGVyZW50LmgKKysrIGIvYXJjaC9hcm0v aW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaApAQCAtMSArMSw5NSBAQAorLyogU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKyNpZm5kZWYgX0FTTV9BUk1fWEVOX1BBR0Vf Q09IRVJFTlRfSAorI2RlZmluZSBfQVNNX0FSTV9YRU5fUEFHRV9DT0hFUkVOVF9ICisKKyNpbmNs dWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVk ZSA8eGVuL2FybS9wYWdlLWNvaGVyZW50Lmg+CisKK3N0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0 IGRtYV9tYXBfb3BzICp4ZW5fZ2V0X2RtYV9vcHMoc3RydWN0IGRldmljZSAqZGV2KQoreworCWlm IChkZXYgJiYgZGV2LT5hcmNoZGF0YS5kZXZfZG1hX29wcykKKwkJcmV0dXJuIGRldi0+YXJjaGRh dGEuZGV2X2RtYV9vcHM7CisJcmV0dXJuIGdldF9hcmNoX2RtYV9vcHMoTlVMTCk7Cit9CisKK3N0 YXRpYyBpbmxpbmUgdm9pZCAqeGVuX2FsbG9jX2NvaGVyZW50X3BhZ2VzKHN0cnVjdCBkZXZpY2Ug Kmh3ZGV2LCBzaXplX3Qgc2l6ZSwKKwkJZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSwgZ2ZwX3QgZmxh Z3MsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCit7CisJcmV0dXJuIHhlbl9nZXRfZG1hX29wcyhod2Rl diktPmFsbG9jKGh3ZGV2LCBzaXplLCBkbWFfaGFuZGxlLCBmbGFncywgYXR0cnMpOworfQorCitz dGF0aWMgaW5saW5lIHZvaWQgeGVuX2ZyZWVfY29oZXJlbnRfcGFnZXMoc3RydWN0IGRldmljZSAq aHdkZXYsIHNpemVfdCBzaXplLAorCQl2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfaGFu ZGxlLCB1bnNpZ25lZCBsb25nIGF0dHJzKQoreworCXhlbl9nZXRfZG1hX29wcyhod2RldiktPmZy ZWUoaHdkZXYsIHNpemUsIGNwdV9hZGRyLCBkbWFfaGFuZGxlLCBhdHRycyk7Cit9CisKK3N0YXRp YyBpbmxpbmUgdm9pZCB4ZW5fZG1hX21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzdHJ1 Y3QgcGFnZSAqcGFnZSwKKwkgICAgIGRtYV9hZGRyX3QgZGV2X2FkZHIsIHVuc2lnbmVkIGxvbmcg b2Zmc2V0LCBzaXplX3Qgc2l6ZSwKKwkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwg dW5zaWduZWQgbG9uZyBhdHRycykKK3sKKwl1bnNpZ25lZCBsb25nIHBhZ2VfcGZuID0gcGFnZV90 b194ZW5fcGZuKHBhZ2UpOworCXVuc2lnbmVkIGxvbmcgZGV2X3BmbiA9IFhFTl9QRk5fRE9XTihk ZXZfYWRkcik7CisJdW5zaWduZWQgbG9uZyBjb21wb3VuZF9wYWdlcyA9CisJCSgxPDxjb21wb3Vu ZF9vcmRlcihwYWdlKSkgKiBYRU5fUEZOX1BFUl9QQUdFOworCWJvb2wgbG9jYWwgPSAocGFnZV9w Zm4gPD0gZGV2X3BmbikgJiYKKwkJKGRldl9wZm4gLSBwYWdlX3BmbiA8IGNvbXBvdW5kX3BhZ2Vz KTsKKworCS8qCisJICogRG9tMCBpcyBtYXBwZWQgMToxLCB3aGlsZSB0aGUgTGludXggcGFnZSBj YW4gc3BhbiBhY3Jvc3MKKwkgKiBtdWx0aXBsZSBYZW4gcGFnZXMsIGl0J3Mgbm90IHBvc3NpYmxl IGZvciBpdCB0byBjb250YWluIGEKKwkgKiBtaXggb2YgbG9jYWwgYW5kIGZvcmVpZ24gWGVuIHBh Z2VzLiBTbyBpZiB0aGUgZmlyc3QgeGVuX3BmbgorCSAqID09IG1mbiB0aGUgcGFnZSBpcyBsb2Nh bCBvdGhlcndpc2UgaXQncyBhIGZvcmVpZ24gcGFnZQorCSAqIGdyYW50LW1hcHBlZCBpbiBkb20w LiBJZiB0aGUgcGFnZSBpcyBsb2NhbCB3ZSBjYW4gc2FmZWx5CisJICogY2FsbCB0aGUgbmF0aXZl IGRtYV9vcHMgZnVuY3Rpb24sIG90aGVyd2lzZSB3ZSBjYWxsIHRoZSB4ZW4KKwkgKiBzcGVjaWZp YyBmdW5jdGlvbi4KKwkgKi8KKwlpZiAobG9jYWwpCisJCXhlbl9nZXRfZG1hX29wcyhod2Rldikt Pm1hcF9wYWdlKGh3ZGV2LCBwYWdlLCBvZmZzZXQsIHNpemUsIGRpciwgYXR0cnMpOworCWVsc2UK KwkJX194ZW5fZG1hX21hcF9wYWdlKGh3ZGV2LCBwYWdlLCBkZXZfYWRkciwgb2Zmc2V0LCBzaXpl LCBkaXIsIGF0dHJzKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfdW5tYXBfcGFn ZShzdHJ1Y3QgZGV2aWNlICpod2RldiwgZG1hX2FkZHJfdCBoYW5kbGUsCisJCXNpemVfdCBzaXpl LCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCit7CisJ dW5zaWduZWQgbG9uZyBwZm4gPSBQRk5fRE9XTihoYW5kbGUpOworCS8qCisJICogRG9tMCBpcyBt YXBwZWQgMToxLCB3aGlsZSB0aGUgTGludXggcGFnZSBjYW4gYmUgc3Bhbm5lZCBhY2Nyb3NzCisJ ICogbXVsdGlwbGUgWGVuIHBhZ2UsIGl0J3Mgbm90IHBvc3NpYmxlIHRvIGhhdmUgYSBtaXggb2Yg bG9jYWwgYW5kCisJICogZm9yZWlnbiBYZW4gcGFnZS4gRG9tMCBpcyBtYXBwZWQgMToxLCBzbyBj YWxsaW5nIHBmbl92YWxpZCBvbiBhCisJICogZm9yZWlnbiBtZm4gd2lsbCBhbHdheXMgcmV0dXJu IGZhbHNlLiBJZiB0aGUgcGFnZSBpcyBsb2NhbCB3ZSBjYW4KKwkgKiBzYWZlbHkgY2FsbCB0aGUg bmF0aXZlIGRtYV9vcHMgZnVuY3Rpb24sIG90aGVyd2lzZSB3ZSBjYWxsIHRoZSB4ZW4KKwkgKiBz cGVjaWZpYyBmdW5jdGlvbi4KKwkgKi8KKwlpZiAocGZuX3ZhbGlkKHBmbikpIHsKKwkJaWYgKHhl bl9nZXRfZG1hX29wcyhod2RldiktPnVubWFwX3BhZ2UpCisJCQl4ZW5fZ2V0X2RtYV9vcHMoaHdk ZXYpLT51bm1hcF9wYWdlKGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpciwgYXR0cnMpOworCX0gZWxz ZQorCQlfX3hlbl9kbWFfdW5tYXBfcGFnZShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIsIGF0dHJz KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShz dHJ1Y3QgZGV2aWNlICpod2RldiwKKwkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCBl bnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCit7CisJdW5zaWduZWQgbG9uZyBwZm4gPSBQRk5f RE9XTihoYW5kbGUpOworCWlmIChwZm5fdmFsaWQocGZuKSkgeworCQlpZiAoeGVuX2dldF9kbWFf b3BzKGh3ZGV2KS0+c3luY19zaW5nbGVfZm9yX2NwdSkKKwkJCXhlbl9nZXRfZG1hX29wcyhod2Rl diktPnN5bmNfc2luZ2xlX2Zvcl9jcHUoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKKwl9IGVs c2UKKwkJX194ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUoaHdkZXYsIGhhbmRsZSwgc2l6ZSwg ZGlyKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfc3luY19zaW5nbGVfZm9yX2Rl dmljZShzdHJ1Y3QgZGV2aWNlICpod2RldiwKKwkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBz aXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCit7CisJdW5zaWduZWQgbG9uZyBwZm4g PSBQRk5fRE9XTihoYW5kbGUpOworCWlmIChwZm5fdmFsaWQocGZuKSkgeworCQlpZiAoeGVuX2dl dF9kbWFfb3BzKGh3ZGV2KS0+c3luY19zaW5nbGVfZm9yX2RldmljZSkKKwkJCXhlbl9nZXRfZG1h X29wcyhod2RldiktPnN5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwg ZGlyKTsKKwl9IGVsc2UKKwkJX194ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoaHdkZXYs IGhhbmRsZSwgc2l6ZSwgZGlyKTsKK30KKworI2VuZGlmIC8qIF9BU01fQVJNX1hFTl9QQUdFX0NP SEVSRU5UX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20veGVuL3BhZ2Ut Y29oZXJlbnQuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaApp bmRleCBiM2VmMDYxZDhiNzQuLjYxMDA2Mzg1YTQzNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9p bmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oCisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9h c20veGVuL3BhZ2UtY29oZXJlbnQuaApAQCAtMSArMSw4NCBAQAorLyogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAgKi8KKyNpZm5kZWYgX0FTTV9BUk02NF9YRU5fUEFHRV9DT0hFUkVO VF9ICisjZGVmaW5lIF9BU01fQVJNNjRfWEVOX1BBR0VfQ09IRVJFTlRfSAorCisjaW5jbHVkZSA8 bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPHhl bi9hcm0vcGFnZS1jb2hlcmVudC5oPgorCitzdGF0aWMgaW5saW5lIHZvaWQgKnhlbl9hbGxvY19j b2hlcmVudF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc2l6ZV90IHNpemUsCisJCWRtYV9h ZGRyX3QgKmRtYV9oYW5kbGUsIGdmcF90IGZsYWdzLCB1bnNpZ25lZCBsb25nIGF0dHJzKQorewor CXJldHVybiBkbWFfZGlyZWN0X2FsbG9jKGh3ZGV2LCBzaXplLCBkbWFfaGFuZGxlLCBmbGFncywg YXR0cnMpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2ZyZWVfY29oZXJlbnRfcGFnZXMo c3RydWN0IGRldmljZSAqaHdkZXYsIHNpemVfdCBzaXplLAorCQl2b2lkICpjcHVfYWRkciwgZG1h X2FkZHJfdCBkbWFfaGFuZGxlLCB1bnNpZ25lZCBsb25nIGF0dHJzKQoreworCWRtYV9kaXJlY3Rf ZnJlZShod2Rldiwgc2l6ZSwgY3B1X2FkZHIsIGRtYV9oYW5kbGUsIGF0dHJzKTsKK30KKworc3Rh dGljIGlubGluZSB2b2lkIHhlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIHN0 cnVjdCBwYWdlICpwYWdlLAorCSAgICAgZG1hX2FkZHJfdCBkZXZfYWRkciwgdW5zaWduZWQgbG9u ZyBvZmZzZXQsIHNpemVfdCBzaXplLAorCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGly LCB1bnNpZ25lZCBsb25nIGF0dHJzKQoreworCXVuc2lnbmVkIGxvbmcgcGFnZV9wZm4gPSBwYWdl X3RvX3hlbl9wZm4ocGFnZSk7CisJdW5zaWduZWQgbG9uZyBkZXZfcGZuID0gWEVOX1BGTl9ET1dO KGRldl9hZGRyKTsKKwl1bnNpZ25lZCBsb25nIGNvbXBvdW5kX3BhZ2VzID0KKwkJKDE8PGNvbXBv dW5kX29yZGVyKHBhZ2UpKSAqIFhFTl9QRk5fUEVSX1BBR0U7CisJYm9vbCBsb2NhbCA9IChwYWdl X3BmbiA8PSBkZXZfcGZuKSAmJgorCQkoZGV2X3BmbiAtIHBhZ2VfcGZuIDwgY29tcG91bmRfcGFn ZXMpOworCisJLyoKKwkgKiBEb20wIGlzIG1hcHBlZCAxOjEsIHdoaWxlIHRoZSBMaW51eCBwYWdl IGNhbiBzcGFuIGFjcm9zcyBtdWx0aXBsZSBYZW4KKwkgKiBwYWdlcywgaXQncyBub3QgcG9zc2li bGUgZm9yIGl0IHRvIGNvbnRhaW4gYSBtaXggb2YgbG9jYWwgYW5kIGZvcmVpZ24KKwkgKiBYZW4g cGFnZXMuIFNvIGlmIHRoZSBmaXJzdCB4ZW5fcGZuID09IG1mbiB0aGUgcGFnZSBpcyBsb2NhbCBv dGhlcndpc2UKKwkgKiBpdCdzIGEgZm9yZWlnbiBwYWdlIGdyYW50LW1hcHBlZCBpbiBkb20wLiBJ ZiB0aGUgcGFnZSBpcyBsb2NhbCB3ZSBjYW4KKwkgKiBzYWZlbHkgY2FsbCB0aGUgbmF0aXZlIGRt YV9vcHMgZnVuY3Rpb24sIG90aGVyd2lzZSB3ZSBjYWxsIHRoZSB4ZW4KKwkgKiBzcGVjaWZpYyBm dW5jdGlvbi4KKwkgKi8KKwlpZiAobG9jYWwpCisJCWRtYV9kaXJlY3RfbWFwX3BhZ2UoaHdkZXYs IHBhZ2UsIG9mZnNldCwgc2l6ZSwgZGlyLCBhdHRycyk7CisJZWxzZQorCQlfX3hlbl9kbWFfbWFw X3BhZ2UoaHdkZXYsIHBhZ2UsIGRldl9hZGRyLCBvZmZzZXQsIHNpemUsIGRpciwgYXR0cnMpOwor fQorCitzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2RtYV91bm1hcF9wYWdlKHN0cnVjdCBkZXZpY2Ug Kmh3ZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKKwkJc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFf ZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykKK3sKKwl1bnNpZ25lZCBsb25nIHBm biA9IFBGTl9ET1dOKGhhbmRsZSk7CisJLyoKKwkgKiBEb20wIGlzIG1hcHBlZCAxOjEsIHdoaWxl IHRoZSBMaW51eCBwYWdlIGNhbiBiZSBzcGFubmVkIGFjY3Jvc3MKKwkgKiBtdWx0aXBsZSBYZW4g cGFnZSwgaXQncyBub3QgcG9zc2libGUgdG8gaGF2ZSBhIG1peCBvZiBsb2NhbCBhbmQKKwkgKiBm b3JlaWduIFhlbiBwYWdlLiBEb20wIGlzIG1hcHBlZCAxOjEsIHNvIGNhbGxpbmcgcGZuX3ZhbGlk IG9uIGEKKwkgKiBmb3JlaWduIG1mbiB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UuIElmIHRoZSBw YWdlIGlzIGxvY2FsIHdlIGNhbgorCSAqIHNhZmVseSBjYWxsIHRoZSBuYXRpdmUgZG1hX29wcyBm dW5jdGlvbiwgb3RoZXJ3aXNlIHdlIGNhbGwgdGhlIHhlbgorCSAqIHNwZWNpZmljIGZ1bmN0aW9u LgorCSAqLworCWlmIChwZm5fdmFsaWQocGZuKSkKKwkJZG1hX2RpcmVjdF91bm1hcF9wYWdlKGh3 ZGV2LCBoYW5kbGUsIHNpemUsIGRpciwgYXR0cnMpOworCWVsc2UKKwkJX194ZW5fZG1hX3VubWFw X3BhZ2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyLCBhdHRycyk7Cit9CisKK3N0YXRpYyBpbmxp bmUgdm9pZCB4ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUoc3RydWN0IGRldmljZSAqaHdkZXYs CisJCWRtYV9hZGRyX3QgaGFuZGxlLCBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rp b24gZGlyKQoreworCXVuc2lnbmVkIGxvbmcgcGZuID0gUEZOX0RPV04oaGFuZGxlKTsKKwlpZiAo cGZuX3ZhbGlkKHBmbikpCisJCWRtYV9kaXJlY3Rfc3luY19zaW5nbGVfZm9yX2NwdShod2Rldiwg aGFuZGxlLCBzaXplLCBkaXIpOworCWVsc2UKKwkJX194ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9j cHUoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHhl bl9kbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShzdHJ1Y3QgZGV2aWNlICpod2RldiwKKwkJZG1h X2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIp Cit7CisJdW5zaWduZWQgbG9uZyBwZm4gPSBQRk5fRE9XTihoYW5kbGUpOworCWlmIChwZm5fdmFs aWQocGZuKSkKKwkJZG1hX2RpcmVjdF9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKGh3ZGV2LCBoYW5k bGUsIHNpemUsIGRpcik7CisJZWxzZQorCQlfX3hlbl9kbWFfc3luY19zaW5nbGVfZm9yX2Rldmlj ZShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIpOworfQorCisjZW5kaWYgLyogX0FTTV9BUk02NF9Y RU5fUEFHRV9DT0hFUkVOVF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9zd2lvdGxiLXhl bi5jIGIvZHJpdmVycy94ZW4vc3dpb3RsYi14ZW4uYwppbmRleCA5ODljZjg3MmI5OGMuLmJiNzg4 ODQyOWJlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vc3dpb3RsYi14ZW4uYworKysgYi9kcml2 ZXJzL3hlbi9zd2lvdGxiLXhlbi5jCkBAIC02NDUsNyArNjQ1LDcgQEAgeGVuX3N3aW90bGJfZG1h X21tYXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJ ICAgICB2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfYWRkciwgc2l6ZV90IHNpemUsCiAJ CSAgICAgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKLSNpZiBkZWZpbmVkKENPTkZJR19BUk0pIHx8 IGRlZmluZWQoQ09ORklHX0FSTTY0KQorI2lmZGVmIENPTkZJR19BUk0KIAlpZiAoeGVuX2dldF9k bWFfb3BzKGRldiktPm1tYXApCiAJCXJldHVybiB4ZW5fZ2V0X2RtYV9vcHMoZGV2KS0+bW1hcChk ZXYsIHZtYSwgY3B1X2FkZHIsCiAJCQkJCQkgICAgZG1hX2FkZHIsIHNpemUsIGF0dHJzKTsKQEAg LTY2Miw3ICs2NjIsNyBAQCB4ZW5fc3dpb3RsYl9nZXRfc2d0YWJsZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBzZ190YWJsZSAqc2d0LAogCQkJdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3Qg aGFuZGxlLCBzaXplX3Qgc2l6ZSwKIAkJCXVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7Ci0jaWYgZGVm aW5lZChDT05GSUdfQVJNKSB8fCBkZWZpbmVkKENPTkZJR19BUk02NCkKKyNpZmRlZiBDT05GSUdf QVJNCiAJaWYgKHhlbl9nZXRfZG1hX29wcyhkZXYpLT5nZXRfc2d0YWJsZSkgewogI2lmIDAKIAkv KgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vYXJtL3BhZ2UtY29oZXJlbnQuaCBiL2luY2x1ZGUv eGVuL2FybS9wYWdlLWNvaGVyZW50LmgKaW5kZXggNTlhMjYwNzEyYTU2Li5lNTdjYTU1NjQzYjEg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2FybS9wYWdlLWNvaGVyZW50LmgKKysrIGIvaW5jbHVk ZS94ZW4vYXJtL3BhZ2UtY29oZXJlbnQuaApAQCAtMSwxNyArMSw2IEBACiAvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwotI2lmbmRlZiBfQVNNX0FSTV9YRU5fUEFHRV9DT0hF UkVOVF9ICi0jZGVmaW5lIF9BU01fQVJNX1hFTl9QQUdFX0NPSEVSRU5UX0gKLQotI2luY2x1ZGUg PGFzbS9wYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2RtYS1tYXBwaW5nLmg+Ci0jaW5jbHVkZSA8bGlu dXgvZG1hLW1hcHBpbmcuaD4KLQotc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgZG1hX21hcF9v cHMgKnhlbl9nZXRfZG1hX29wcyhzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0JaWYgKGRldiAmJiBk ZXYtPmFyY2hkYXRhLmRldl9kbWFfb3BzKQotCQlyZXR1cm4gZGV2LT5hcmNoZGF0YS5kZXZfZG1h X29wczsKLQlyZXR1cm4gZ2V0X2FyY2hfZG1hX29wcyhOVUxMKTsKLX0KKyNpZm5kZWYgX1hFTl9B Uk1QQUdFX0NPSEVSRU5UX0gKKyNkZWZpbmUgX1hFTl9BUk1QQUdFX0NPSEVSRU5UX0gKIAogdm9p ZCBfX3hlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIHN0cnVjdCBwYWdlICpw YWdlLAogCSAgICAgZG1hX2FkZHJfdCBkZXZfYWRkciwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNp emVfdCBzaXplLApAQCAtMjEsODcgKzEwLDcgQEAgdm9pZCBfX3hlbl9kbWFfdW5tYXBfcGFnZShz dHJ1Y3QgZGV2aWNlICpod2RldiwgZG1hX2FkZHJfdCBoYW5kbGUsCiAJCXVuc2lnbmVkIGxvbmcg YXR0cnMpOwogdm9pZCBfX3hlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShzdHJ1Y3QgZGV2aWNl ICpod2RldiwKIAkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRh X2RpcmVjdGlvbiBkaXIpOwotCiB2b2lkIF9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNl KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAogCQlkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUs IGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCAqeGVu X2FsbG9jX2NvaGVyZW50X3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzaXplX3Qgc2l6ZSwK LQkJZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSwgZ2ZwX3QgZmxhZ3MsIHVuc2lnbmVkIGxvbmcgYXR0 cnMpCi17Ci0JcmV0dXJuIHhlbl9nZXRfZG1hX29wcyhod2RldiktPmFsbG9jKGh3ZGV2LCBzaXpl LCBkbWFfaGFuZGxlLCBmbGFncywgYXR0cnMpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgeGVu X2ZyZWVfY29oZXJlbnRfcGFnZXMoc3RydWN0IGRldmljZSAqaHdkZXYsIHNpemVfdCBzaXplLAot CQl2b2lkICpjcHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlLCB1bnNpZ25lZCBsb25nIGF0 dHJzKQotewotCXhlbl9nZXRfZG1hX29wcyhod2RldiktPmZyZWUoaHdkZXYsIHNpemUsIGNwdV9h ZGRyLCBkbWFfaGFuZGxlLCBhdHRycyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1h X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKLQkgICAg IGRtYV9hZGRyX3QgZGV2X2FkZHIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwK LQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykK LXsKLQl1bnNpZ25lZCBsb25nIHBhZ2VfcGZuID0gcGFnZV90b194ZW5fcGZuKHBhZ2UpOwotCXVu c2lnbmVkIGxvbmcgZGV2X3BmbiA9IFhFTl9QRk5fRE9XTihkZXZfYWRkcik7Ci0JdW5zaWduZWQg bG9uZyBjb21wb3VuZF9wYWdlcyA9Ci0JCSgxPDxjb21wb3VuZF9vcmRlcihwYWdlKSkgKiBYRU5f UEZOX1BFUl9QQUdFOwotCWJvb2wgbG9jYWwgPSAocGFnZV9wZm4gPD0gZGV2X3BmbikgJiYKLQkJ KGRldl9wZm4gLSBwYWdlX3BmbiA8IGNvbXBvdW5kX3BhZ2VzKTsKLQotCS8qCi0JICogRG9tMCBp cyBtYXBwZWQgMToxLCB3aGlsZSB0aGUgTGludXggcGFnZSBjYW4gc3BhbiBhY3Jvc3MKLQkgKiBt dWx0aXBsZSBYZW4gcGFnZXMsIGl0J3Mgbm90IHBvc3NpYmxlIGZvciBpdCB0byBjb250YWluIGEK LQkgKiBtaXggb2YgbG9jYWwgYW5kIGZvcmVpZ24gWGVuIHBhZ2VzLiBTbyBpZiB0aGUgZmlyc3Qg eGVuX3BmbgotCSAqID09IG1mbiB0aGUgcGFnZSBpcyBsb2NhbCBvdGhlcndpc2UgaXQncyBhIGZv cmVpZ24gcGFnZQotCSAqIGdyYW50LW1hcHBlZCBpbiBkb20wLiBJZiB0aGUgcGFnZSBpcyBsb2Nh bCB3ZSBjYW4gc2FmZWx5Ci0JICogY2FsbCB0aGUgbmF0aXZlIGRtYV9vcHMgZnVuY3Rpb24sIG90 aGVyd2lzZSB3ZSBjYWxsIHRoZSB4ZW4KLQkgKiBzcGVjaWZpYyBmdW5jdGlvbi4KLQkgKi8KLQlp ZiAobG9jYWwpCi0JCXhlbl9nZXRfZG1hX29wcyhod2RldiktPm1hcF9wYWdlKGh3ZGV2LCBwYWdl LCBvZmZzZXQsIHNpemUsIGRpciwgYXR0cnMpOwotCWVsc2UKLQkJX194ZW5fZG1hX21hcF9wYWdl KGh3ZGV2LCBwYWdlLCBkZXZfYWRkciwgb2Zmc2V0LCBzaXplLCBkaXIsIGF0dHJzKTsKLX0KLQot c3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2Rl diwgZG1hX2FkZHJfdCBoYW5kbGUsCi0JCXNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVj dGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCi17Ci0JdW5zaWduZWQgbG9uZyBwZm4gPSBQ Rk5fRE9XTihoYW5kbGUpOwotCS8qCi0JICogRG9tMCBpcyBtYXBwZWQgMToxLCB3aGlsZSB0aGUg TGludXggcGFnZSBjYW4gYmUgc3Bhbm5lZCBhY2Nyb3NzCi0JICogbXVsdGlwbGUgWGVuIHBhZ2Us IGl0J3Mgbm90IHBvc3NpYmxlIHRvIGhhdmUgYSBtaXggb2YgbG9jYWwgYW5kCi0JICogZm9yZWln biBYZW4gcGFnZS4gRG9tMCBpcyBtYXBwZWQgMToxLCBzbyBjYWxsaW5nIHBmbl92YWxpZCBvbiBh Ci0JICogZm9yZWlnbiBtZm4gd2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlLiBJZiB0aGUgcGFnZSBp cyBsb2NhbCB3ZSBjYW4KLQkgKiBzYWZlbHkgY2FsbCB0aGUgbmF0aXZlIGRtYV9vcHMgZnVuY3Rp b24sIG90aGVyd2lzZSB3ZSBjYWxsIHRoZSB4ZW4KLQkgKiBzcGVjaWZpYyBmdW5jdGlvbi4KLQkg Ki8KLQlpZiAocGZuX3ZhbGlkKHBmbikpIHsKLQkJaWYgKHhlbl9nZXRfZG1hX29wcyhod2Rldikt PnVubWFwX3BhZ2UpCi0JCQl4ZW5fZ2V0X2RtYV9vcHMoaHdkZXYpLT51bm1hcF9wYWdlKGh3ZGV2 LCBoYW5kbGUsIHNpemUsIGRpciwgYXR0cnMpOwotCX0gZWxzZQotCQlfX3hlbl9kbWFfdW5tYXBf cGFnZShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIsIGF0dHJzKTsKLX0KLQotc3RhdGljIGlubGlu ZSB2b2lkIHhlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShzdHJ1Y3QgZGV2aWNlICpod2RldiwK LQkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlv biBkaXIpCi17Ci0JdW5zaWduZWQgbG9uZyBwZm4gPSBQRk5fRE9XTihoYW5kbGUpOwotCWlmIChw Zm5fdmFsaWQocGZuKSkgewotCQlpZiAoeGVuX2dldF9kbWFfb3BzKGh3ZGV2KS0+c3luY19zaW5n bGVfZm9yX2NwdSkKLQkJCXhlbl9nZXRfZG1hX29wcyhod2RldiktPnN5bmNfc2luZ2xlX2Zvcl9j cHUoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKLQl9IGVsc2UKLQkJX194ZW5fZG1hX3N5bmNf c2luZ2xlX2Zvcl9jcHUoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKLX0KLQotc3RhdGljIGlu bGluZSB2b2lkIHhlbl9kbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShzdHJ1Y3QgZGV2aWNlICpo d2RldiwKLQkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2Rp cmVjdGlvbiBkaXIpCi17Ci0JdW5zaWduZWQgbG9uZyBwZm4gPSBQRk5fRE9XTihoYW5kbGUpOwot CWlmIChwZm5fdmFsaWQocGZuKSkgewotCQlpZiAoeGVuX2dldF9kbWFfb3BzKGh3ZGV2KS0+c3lu Y19zaW5nbGVfZm9yX2RldmljZSkKLQkJCXhlbl9nZXRfZG1hX29wcyhod2RldiktPnN5bmNfc2lu Z2xlX2Zvcl9kZXZpY2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKLQl9IGVsc2UKLQkJX194 ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsK LX0KLQotI2VuZGlmIC8qIF9BU01fQVJNX1hFTl9QQUdFX0NPSEVSRU5UX0ggKi8KKyNlbmRpZiAv KiBfWEVOX0FSTVBBR0VfQ09IRVJFTlRfSCAqLwoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xp c3RpbmZvL3hlbi1kZXZlbA==