From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sharat Masetty Subject: [PATCH 2/2] drm/scheduler: Add drm_sched_suspend/resume_timeout() Date: Thu, 29 Nov 2018 15:35:20 +0530 Message-ID: <1543485920-28037-2-git-send-email-smasetty@codeaurora.org> References: <1543485920-28037-1-git-send-email-smasetty@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1543485920-28037-1-git-send-email-smasetty-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sharat Masetty , christian.koenig-5C7GfCeVMHo@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org VGhpcyBwYXRjaCBhZGRzIHR3byBuZXcgZnVuY3Rpb25zIHRvIGhlbHAgY2xpZW50IGRyaXZlcnMg c3VzcGVuZCBhbmQKcmVzdW1lIHRoZSBzY2hlZHVsZXIgam9iIHRpbWVvdXQuIFRoaXMgY2FuIGJl IHVzZWZ1bCBpbiBjYXNlcyB3aGVyZSB0aGUKaGFyZHdhcmUgaGFzIHByZWVtcHRpb24gc3VwcG9y dCBlbmFibGVkLiBVc2luZyB0aGlzLCBpdCBpcyBwb3NzaWJsZSB0byBoYXZlCnRoZSB0aW1lb3V0 IGFjdGl2ZSBvbmx5IGZvciB0aGUgcmluZyB3aGljaCBpcyBhY3RpdmUgb24gdGhlIHJpbmdidWZm ZXIuClRoaXMgcGF0Y2ggYWxzbyBtYWtlcyB0aGUgam9iX2xpc3RfbG9jayBJUlEgc2FmZS4KClN1 Z2dlc3RlZC1ieTogQ2hyaXN0aWFuIEtvZW5pZyA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPgpT aWduZWQtb2ZmLWJ5OiBTaGFyYXQgTWFzZXR0eSA8c21hc2V0dHlAY29kZWF1cm9yYS5vcmc+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMgfCAgOSArKy0tCiBkcml2 ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYyB8IDkxICsrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0KIGluY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaCAgICAgICAgICAg IHwgIDQgKysKIDMgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAuYwppbmRleCA5MTQ2ZTMwLi5m ZDZiYWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAuYwpAQCAtMTE4LDYg KzExOCw3IEBAIHZvaWQgZXRuYXZpdl9jb3JlX2R1bXAoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUp CiAJdW5zaWduZWQgaW50IG5fb2JqLCBuX2JvbWFwX3BhZ2VzOwogCXNpemVfdCBmaWxlX3NpemUs IG1tdV9zaXplOwogCV9fbGU2NCAqYm9tYXAsICpib21hcF9zdGFydDsKKwl1bnNpZ25lZCBsb25n IGZsYWdzOwogCiAJLyogT25seSBjYXRjaCB0aGUgZmlyc3QgZXZlbnQsIG9yIHdoZW4gbWFudWFs bHkgcmUtYXJtZWQgKi8KIAlpZiAoIWV0bmF2aXZfZHVtcF9jb3JlKQpAQCAtMTM0LDEzICsxMzUs MTMgQEAgdm9pZCBldG5hdml2X2NvcmVfZHVtcChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAkJ ICAgIG1tdV9zaXplICsgZ3B1LT5idWZmZXIuc2l6ZTsKIAogCS8qIEFkZCBpbiB0aGUgYWN0aXZl IGNvbW1hbmQgYnVmZmVycyAqLwotCXNwaW5fbG9jaygmZ3B1LT5zY2hlZC5qb2JfbGlzdF9sb2Nr KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKIAls aXN0X2Zvcl9lYWNoX2VudHJ5KHNfam9iLCAmZ3B1LT5zY2hlZC5yaW5nX21pcnJvcl9saXN0LCBu b2RlKSB7CiAJCXN1Ym1pdCA9IHRvX2V0bmF2aXZfc3VibWl0KHNfam9iKTsKIAkJZmlsZV9zaXpl ICs9IHN1Ym1pdC0+Y21kYnVmLnNpemU7CiAJCW5fb2JqKys7CiAJfQotCXNwaW5fdW5sb2NrKCZn cHUtPnNjaGVkLmpvYl9saXN0X2xvY2spOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVk LT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CiAKIAkvKiBBZGQgaW4gdGhlIGFjdGl2ZSBidWZmZXIg b2JqZWN0cyAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkodnJhbSwgJmdwdS0+bW11LT5tYXBwaW5n cywgbW11X25vZGUpIHsKQEAgLTE4MiwxNCArMTgzLDE0IEBAIHZvaWQgZXRuYXZpdl9jb3JlX2R1 bXAoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJCQkgICAgICBncHUtPmJ1ZmZlci5zaXplLAog CQkJICAgICAgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZncHUtPmJ1ZmZlcikpOwogCi0Jc3Bpbl9s b2NrKCZncHUtPnNjaGVkLmpvYl9saXN0X2xvY2spOworCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hl ZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoc19qb2IsICZn cHUtPnNjaGVkLnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsKIAkJc3VibWl0ID0gdG9fZXRuYXZp dl9zdWJtaXQoc19qb2IpOwogCQlldG5hdml2X2NvcmVfZHVtcF9tZW0oJml0ZXIsIEVURFVNUF9C VUZfQ01ELAogCQkJCSAgICAgIHN1Ym1pdC0+Y21kYnVmLnZhZGRyLCBzdWJtaXQtPmNtZGJ1Zi5z aXplLAogCQkJCSAgICAgIGV0bmF2aXZfY21kYnVmX2dldF92YSgmc3VibWl0LT5jbWRidWYpKTsK IAl9Ci0Jc3Bpbl91bmxvY2soJmdwdS0+c2NoZWQuam9iX2xpc3RfbG9jayk7CisJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKIAogCS8qIFJlc2Vy dmUgc3BhY2UgZm9yIHRoZSBib21hcCAqLwogCWlmIChuX2JvbWFwX3BhZ2VzKSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYyBiL2RyaXZlcnMvZ3B1 L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jCmluZGV4IGM5OTNkMTAuLmNhMDliNGUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jCkBAIC0xOTYsMTAgKzE5Niw2OCBAQCBz dGF0aWMgdm9pZCBkcm1fc2NoZWRfc3RhcnRfdGltZW91dChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVs ZXIgKnNjaGVkKQogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnNjaGVkLT53b3JrX3Rkciwgc2No ZWQtPnRpbWVvdXQpOwogfQogCisvKioKKyAqIGRybV9zY2hlZF9zdXNwZW5kX3RpbWVvdXQgLSBT dXNwZW5kIHNjaGVkdWxlciBqb2IgdGltZW91dAorICoKKyAqIEBzY2hlZDogc2NoZWR1bGVyIGlu c3RhbmNlIGZvciB3aGljaCB0byBzdXNwZW5kIHRoZSB0aW1lb3V0CisgKgorICogU3VzcGVuZCB0 aGUgZGVsYXllZCB3b3JrIHRpbWVvdXQgZm9yIHRoZSBzY2hlZHVsZXIuIFRoaXMgaXMgZG9uZSBi eQorICogbW9kaWZ5aW5nIHRoZSBkZWxheWVkIHdvcmsgdGltZW91dCB0byBhbiBhcmJpdHJhcnkg bGFyZ2UgdmFsdWUsCisgKiBNQVhfU0NIRURVTEVfVElNRU9VVCBpbiB0aGlzIGNhc2UuIE5vdGUg dGhhdCB0aGlzIGZ1bmN0aW9uIGNhbiBiZQorICogY2FsbGVkIGZyb20gYW4gSVJRIGNvbnRleHQu CisgKgorICogUmV0dXJucyB0aGUgdGltZW91dCByZW1haW5pbmcKKyAqCisgKi8KK3Vuc2lnbmVk IGxvbmcgZHJtX3NjaGVkX3N1c3BlbmRfdGltZW91dChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIg KnNjaGVkKQoreworCXVuc2lnbmVkIGxvbmcgc2NoZWRfdGltZW91dCwgbm93ID0gamlmZmllczsK KworCXNjaGVkX3RpbWVvdXQgPSBzY2hlZC0+d29ya190ZHIudGltZXIuZXhwaXJlczsKKworCS8q CisJICogTW9kaWZ5IHRoZSB0aW1lb3V0IHRvIGFuIGFyYml0cmFyaWx5IGxhcmdlIHZhbHVlLiBU aGlzIGFsc28gcHJldmVudHMKKwkgKiB0aGUgdGltZW91dCB0byBiZSByZXN0YXJ0ZWQgd2hlbiBu ZXcgc3VibWlzc2lvbnMgYXJyaXZlCisJICovCisJaWYgKG1vZF9kZWxheWVkX3dvcmsoc3lzdGVt X3dxLCAmc2NoZWQtPndvcmtfdGRyLCBNQVhfU0NIRURVTEVfVElNRU9VVCkKKwkJCSYmIHRpbWVf YWZ0ZXIoc2NoZWRfdGltZW91dCwgbm93KSkKKwkJcmV0dXJuIHNjaGVkX3RpbWVvdXQgLSBub3c7 CisJZWxzZQorCQlyZXR1cm4gc2NoZWQtPnRpbWVvdXQ7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9z Y2hlZF9zdXNwZW5kX3RpbWVvdXQpOworCisvKioKKyAqIGRybV9zY2hlZF9yZXN1bWVfdGltZW91 dCAtIFJlc3VtZSBzY2hlZHVsZXIgam9iIHRpbWVvdXQKKyAqCisgKiBAc2NoZWQ6IHNjaGVkdWxl ciBpbnN0YW5jZSBmb3Igd2hpY2ggdG8gcmVzdW1lIHRoZSB0aW1lb3V0CisgKiBAcmVtYWluaW5n OiByZW1haW5pbmcgdGltZW91dAorICoKKyAqIFJlc3VtZSB0aGUgZGVsYXllZCB3b3JrIHRpbWVv dXQgZm9yIHRoZSBzY2hlZHVsZXIuIE5vdGUgdGhhdAorICogdGhpcyBmdW5jdGlvbiBjYW4gYmUg Y2FsbGVkIGZyb20gYW4gSVJRIGNvbnRleHQuCisgKi8KK3ZvaWQgZHJtX3NjaGVkX3Jlc3VtZV90 aW1lb3V0KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsCisJCXVuc2lnbmVkIGxvbmcg cmVtYWluaW5nKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2 ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKKworCWlmIChsaXN0X2VtcHR5KCZzY2hl ZC0+cmluZ19taXJyb3JfbGlzdCkpCisJCWNhbmNlbF9kZWxheWVkX3dvcmsoJnNjaGVkLT53b3Jr X3Rkcik7CisJZWxzZQorCQltb2RfZGVsYXllZF93b3JrKHN5c3RlbV93cSwgJnNjaGVkLT53b3Jr X3RkciwgcmVtYWluaW5nKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2Jf bGlzdF9sb2NrLCBmbGFncyk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9yZXN1bWVfdGlt ZW91dCk7CisKIC8qIGpvYl9maW5pc2ggaXMgY2FsbGVkIGFmdGVyIGh3IGZlbmNlIHNpZ25hbGVk CiAgKi8KIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9qb2JfZmluaXNoKHN0cnVjdCB3b3JrX3N0cnVj dCAqd29yaykKIHsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCiAJc3RydWN0IGRybV9zY2hlZF9q b2IgKnNfam9iID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1fc2NoZWRfam9iLAogCQkJ CQkJICAgZmluaXNoX3dvcmspOwogCXN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQgPSBz X2pvYi0+c2NoZWQ7CkBAIC0yMTMsMTIgKzI3MSwxMiBAQCBzdGF0aWMgdm9pZCBkcm1fc2NoZWRf am9iX2ZpbmlzaChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJICovCiAJY2FuY2VsX2RlbGF5 ZWRfd29ya19zeW5jKCZzY2hlZC0+d29ya190ZHIpOwogCi0Jc3Bpbl9sb2NrKCZzY2hlZC0+am9i X2xpc3RfbG9jayk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBm bGFncyk7CiAJLyogcmVtb3ZlIGpvYiBmcm9tIHJpbmdfbWlycm9yX2xpc3QgKi8KIAlsaXN0X2Rl bCgmc19qb2ItPm5vZGUpOwogCS8qIHF1ZXVlIFREUiBmb3IgbmV4dCBqb2IgKi8KIAlkcm1fc2No ZWRfc3RhcnRfdGltZW91dChzY2hlZCk7Ci0Jc3Bpbl91bmxvY2soJnNjaGVkLT5qb2JfbGlzdF9s b2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxh Z3MpOwogCiAJZG1hX2ZlbmNlX3B1dCgmc19qb2ItPnNfZmVuY2UtPmZpbmlzaGVkKTsKIAlzY2hl ZC0+b3BzLT5mcmVlX2pvYihzX2pvYik7CkBAIC0yMzQsMTUgKzI5MiwxNyBAQCBzdGF0aWMgdm9p ZCBkcm1fc2NoZWRfam9iX2ZpbmlzaF9jYihzdHJ1Y3QgZG1hX2ZlbmNlICpmLAogCiBzdGF0aWMg dm9pZCBkcm1fc2NoZWRfam9iX2JlZ2luKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYikKIHsK Kwl1bnNpZ25lZCBsb25nIGZsYWdzOworCiAJc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hl ZCA9IHNfam9iLT5zY2hlZDsKIAogCWRtYV9mZW5jZV9hZGRfY2FsbGJhY2soJnNfam9iLT5zX2Zl bmNlLT5maW5pc2hlZCwgJnNfam9iLT5maW5pc2hfY2IsCiAJCQkgICAgICAgZHJtX3NjaGVkX2pv Yl9maW5pc2hfY2IpOwogCi0Jc3Bpbl9sb2NrKCZzY2hlZC0+am9iX2xpc3RfbG9jayk7CisJc3Bp bl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CiAJbGlzdF9hZGRf dGFpbCgmc19qb2ItPm5vZGUsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCk7CiAJZHJtX3NjaGVk X3N0YXJ0X3RpbWVvdXQoc2NoZWQpOwotCXNwaW5fdW5sb2NrKCZzY2hlZC0+am9iX2xpc3RfbG9j ayk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdz KTsKIH0KIAogc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCkBAIC0yNTAsMTAgKzMxMCwxMSBAQCBzdGF0aWMgdm9pZCBkcm1fc2NoZWRf am9iX3RpbWVkb3V0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlzdHJ1Y3QgZHJtX2dwdV9z Y2hlZHVsZXIgKnNjaGVkOwogCXN0cnVjdCBkcm1fc2NoZWRfam9iICpqb2I7CiAJaW50IHI7CisJ dW5zaWduZWQgbG9uZyBmbGFnczsKIAogCXNjaGVkID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVj dCBkcm1fZ3B1X3NjaGVkdWxlciwgd29ya190ZHIud29yayk7CiAKLQlzcGluX2xvY2soJnNjaGVk LT5qb2JfbGlzdF9sb2NrKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xv Y2ssIGZsYWdzKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JldmVyc2Uoam9iLCAmc2NoZWQtPnJp bmdfbWlycm9yX2xpc3QsIG5vZGUpIHsKIAkJc3RydWN0IGRybV9zY2hlZF9mZW5jZSAqZmVuY2Ug PSBqb2ItPnNfZmVuY2U7CiAKQEAgLTI2MywxMiArMzI0LDEyIEBAIHN0YXRpYyB2b2lkIGRybV9z Y2hlZF9qb2JfdGltZWRvdXQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJam9iID0gbGlz dF9maXJzdF9lbnRyeV9vcl9udWxsKCZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwKIAkJCQkgICAg ICAgc3RydWN0IGRybV9zY2hlZF9qb2IsIG5vZGUpOwotCXNwaW5fdW5sb2NrKCZzY2hlZC0+am9i X2xpc3RfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xv Y2ssIGZsYWdzKTsKIAogCWlmIChqb2IpCiAJCXNjaGVkLT5vcHMtPnRpbWVkb3V0X2pvYihqb2Ip OwogCi0Jc3Bpbl9sb2NrKCZzY2hlZC0+am9iX2xpc3RfbG9jayk7CisJc3Bpbl9sb2NrX2lycXNh dmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShq b2IsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwgbm9kZSkgewogCQlzdHJ1Y3QgZHJtX3NjaGVk X2ZlbmNlICpmZW5jZSA9IGpvYi0+c19mZW5jZTsKIApAQCAtMjgzLDcgKzM0NCw3IEBAIHN0YXRp YyB2b2lkIGRybV9zY2hlZF9qb2JfdGltZWRvdXQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQog YWxyZWFkeV9zaWduYWxlZDoKIAkJOwogCX0KLQlzcGluX3VubG9jaygmc2NoZWQtPmpvYl9saXN0 X2xvY2spOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBm bGFncyk7CiB9CiAKIC8qKgpAQCAtMjk4LDggKzM1OSw5IEBAIHZvaWQgZHJtX3NjaGVkX2h3X2pv Yl9yZXNldChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLCBzdHJ1Y3QgZHJtX3NjaGVk X2pvCiAJc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iOwogCXN0cnVjdCBkcm1fc2NoZWRfZW50 aXR5ICplbnRpdHksICp0bXA7CiAJaW50IGk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXNw aW5fbG9jaygmc2NoZWQtPmpvYl9saXN0X2xvY2spOworCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hl ZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfcmV2ZXJzZShz X2pvYiwgJnNjaGVkLT5yaW5nX21pcnJvcl9saXN0LCBub2RlKSB7CiAJCWlmIChzX2pvYi0+c19m ZW5jZS0+cGFyZW50ICYmCiAJCSAgICBkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNrKHNfam9iLT5z X2ZlbmNlLT5wYXJlbnQsCkBAIC0zMDksNyArMzcxLDcgQEAgdm9pZCBkcm1fc2NoZWRfaHdfam9i X3Jlc2V0KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsIHN0cnVjdCBkcm1fc2NoZWRf am8KIAkJCWF0b21pY19kZWMoJnNjaGVkLT5od19ycV9jb3VudCk7CiAJCX0KIAl9Ci0Jc3Bpbl91 bmxvY2soJnNjaGVkLT5qb2JfbGlzdF9sb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZz Y2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwogCiAJaWYgKGJhZCAmJiBiYWQtPnNfcHJpb3Jp dHkgIT0gRFJNX1NDSEVEX1BSSU9SSVRZX0tFUk5FTCkgewogCQlhdG9taWNfaW5jKCZiYWQtPmth cm1hKTsKQEAgLTM0OCw4ICs0MTAsOSBAQCB2b2lkIGRybV9zY2hlZF9qb2JfcmVjb3Zlcnkoc3Ry dWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKIAlzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19q b2IsICp0bXA7CiAJYm9vbCBmb3VuZF9ndWlsdHkgPSBmYWxzZTsKIAlpbnQgcjsKKwl1bnNpZ25l ZCBsb25nIGZsYWdzOwogCi0Jc3Bpbl9sb2NrKCZzY2hlZC0+am9iX2xpc3RfbG9jayk7CisJc3Bp bl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CiAJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKHNfam9iLCB0bXAsICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwgbm9k ZSkgewogCQlzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0gc19qb2ItPnNfZmVuY2U7 CiAJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwpAQCAtMzYzLDcgKzQyNiw3IEBAIHZvaWQgZHJt X3NjaGVkX2pvYl9yZWNvdmVyeShzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQogCQlp ZiAoZm91bmRfZ3VpbHR5ICYmIHNfam9iLT5zX2ZlbmNlLT5zY2hlZHVsZWQuY29udGV4dCA9PSBn dWlsdHlfY29udGV4dCkKIAkJCWRtYV9mZW5jZV9zZXRfZXJyb3IoJnNfZmVuY2UtPmZpbmlzaGVk LCAtRUNBTkNFTEVEKTsKIAotCQlzcGluX3VubG9jaygmc2NoZWQtPmpvYl9saXN0X2xvY2spOwor CQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwog CQlmZW5jZSA9IHNjaGVkLT5vcHMtPnJ1bl9qb2Ioc19qb2IpOwogCQlhdG9taWNfaW5jKCZzY2hl ZC0+aHdfcnFfY291bnQpOwogCkBAIC0zODAsMTAgKzQ0MywxMCBAQCB2b2lkIGRybV9zY2hlZF9q b2JfcmVjb3Zlcnkoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKIAkJfSBlbHNlIHsK IAkJCWRybV9zY2hlZF9wcm9jZXNzX2pvYihOVUxMLCAmc19mZW5jZS0+Y2IpOwogCQl9Ci0JCXNw aW5fbG9jaygmc2NoZWQtPmpvYl9saXN0X2xvY2spOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2No ZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKIAl9CiAJZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQo c2NoZWQpOwotCXNwaW5fdW5sb2NrKCZzY2hlZC0+am9iX2xpc3RfbG9jayk7CisJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKIH0KIEVYUE9SVF9T WU1CT0woZHJtX3NjaGVkX2pvYl9yZWNvdmVyeSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2dwdV9zY2hlZHVsZXIuaCBiL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaAppbmRleCBkODdi MjY4Li5jOTY1N2E4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgKKysr IGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCkBAIC0zMjYsNCArMzI2LDggQEAgc3RydWN0 IGRybV9zY2hlZF9mZW5jZSAqZHJtX3NjaGVkX2ZlbmNlX2NyZWF0ZSgKIHZvaWQgZHJtX3NjaGVk X2ZlbmNlX3NjaGVkdWxlZChzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpmZW5jZSk7CiB2b2lkIGRy bV9zY2hlZF9mZW5jZV9maW5pc2hlZChzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpmZW5jZSk7CiAK K3Vuc2lnbmVkIGxvbmcgZHJtX3NjaGVkX3N1c3BlbmRfdGltZW91dChzdHJ1Y3QgZHJtX2dwdV9z Y2hlZHVsZXIgKnNjaGVkKTsKK3ZvaWQgZHJtX3NjaGVkX3Jlc3VtZV90aW1lb3V0KHN0cnVjdCBk cm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsCisJCSAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n IHJlbWFpbmluZyk7CisKICNlbmRpZgotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5v QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=