From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH 2/4] drm/vmwgfx: Defer fence irq processing to a tasklet Date: Fri, 30 Oct 2015 02:42:44 -0700 Message-ID: <1446198166-3068-2-git-send-email-thellstrom@vmware.com> References: <1446198166-3068-1-git-send-email-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp-outbound-2.vmware.com (smtp-outbound-2.vmware.com [208.91.2.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 254766E692 for ; Fri, 30 Oct 2015 02:43:44 -0700 (PDT) Received: from sc9-mailhost3.vmware.com (sc9-mailhost3.vmware.com [10.113.161.73]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id A6D70285D0 for ; Fri, 30 Oct 2015 02:43:43 -0700 (PDT) Received: from EX13-CAS-001.vmware.com (ex13-cas-001.vmware.com [10.113.191.51]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id 3703A40453 for ; Fri, 30 Oct 2015 02:43:43 -0700 (PDT) In-Reply-To: <1446198166-3068-1-git-send-email-thellstrom@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Thomas Hellstrom List-Id: dri-devel@lists.freedesktop.org UmVkdWNlIHRoZSB0aW1lIGluIGhhcmR3YXJlIGlycSBjb250ZXh0IGFuZCBoYXJkd2FyZSBpcnEg bGF0ZW5jeS4KClNpZ25lZC1vZmYtYnk6IFRob21hcyBIZWxsc3Ryb20gPHRoZWxsc3Ryb21Adm13 YXJlLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbmNsYWlyIFllaCA8c3llaEB2bXdhcmUuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMgfCAxMDggKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVu Y2UuaCB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9pcnEuYyAgIHwgICA2 ICstCiAzIGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jCmluZGV4IDhlNjg5YjQuLmY0MGMzNmUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYwpAQCAtNDcsNiArNDcsNyBAQCBz dHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgewogCWJvb2wgc2Vxbm9fdmFsaWQ7IC8qIFByb3RlY3Rl ZCBieSBAbG9jaywgYW5kIG1heSBub3QgYmUgc2V0IHRvIHRydWUKIAkJCSAgICAgd2l0aG91dCB0 aGUgQGdvYWxfaXJxX211dGV4IGhlbGQuICovCiAJdW5zaWduZWQgY3R4OworCXN0cnVjdCB0YXNr bGV0X3N0cnVjdCB0YXNrbGV0OwogfTsKIAogc3RydWN0IHZtd191c2VyX2ZlbmNlIHsKQEAgLTgx LDYgKzgyLDggQEAgc3RydWN0IHZtd19ldmVudF9mZW5jZV9hY3Rpb24gewogCXVpbnQzMl90ICp0 dl91c2VjOwogfTsKIAorc3RhdGljIHZvaWQgdm13X2ZlbmNlX3Rhc2tsZXQodW5zaWduZWQgbG9u ZyBkYXRhKTsKKwogc3RhdGljIHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqCiBmbWFuX2Zyb21f ZmVuY2Uoc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlKQogewpAQCAtMTE1LDEyICsxMTgsMTEg QEAgc3RhdGljIHZvaWQgdm13X2ZlbmNlX29ial9kZXN0cm95KHN0cnVjdCBmZW5jZSAqZikKIAkJ Y29udGFpbmVyX29mKGYsIHN0cnVjdCB2bXdfZmVuY2Vfb2JqLCBiYXNlKTsKIAogCXN0cnVjdCB2 bXdfZmVuY2VfbWFuYWdlciAqZm1hbiA9IGZtYW5fZnJvbV9mZW5jZShmZW5jZSk7Ci0JdW5zaWdu ZWQgbG9uZyBpcnFfZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZm1hbi0+bG9jaywgaXJx X2ZsYWdzKTsKKwlzcGluX2xvY2tfYmgoJmZtYW4tPmxvY2spOwogCWxpc3RfZGVsX2luaXQoJmZl bmNlLT5oZWFkKTsKIAktLWZtYW4tPm51bV9mZW5jZV9vYmplY3RzOwotCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmZtYW4tPmxvY2ssIGlycV9mbGFncyk7CisJc3Bpbl91bmxvY2tfYmgoJmZtYW4t PmxvY2spOwogCWZlbmNlLT5kZXN0cm95KGZlbmNlKTsKIH0KIApAQCAtMTc3LDcgKzE3OSw2IEBA IHN0YXRpYyBsb25nIHZtd19mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRyLCBz aWduZWQgbG9uZyB0aW1lb3V0KQogCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSBmbWFu LT5kZXZfcHJpdjsKIAlzdHJ1Y3Qgdm13Z2Z4X3dhaXRfY2IgY2I7CiAJbG9uZyByZXQgPSB0aW1l b3V0OwotCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOwogCiAJaWYgKGxpa2VseSh2bXdfZmVuY2Vf b2JqX3NpZ25hbGVkKGZlbmNlKSkpCiAJCXJldHVybiB0aW1lb3V0OwpAQCAtMTg1LDcgKzE4Niw3 IEBAIHN0YXRpYyBsb25nIHZtd19mZW5jZV93YWl0KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRy LCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCXZtd19maWZvX3BpbmdfaG9zdChkZXZfcHJpdiwgU1ZH QV9TWU5DX0dFTkVSSUMpOwogCXZtd19zZXFub193YWl0ZXJfYWRkKGRldl9wcml2KTsKIAotCXNw aW5fbG9ja19pcnFzYXZlKGYtPmxvY2ssIGlycV9mbGFncyk7CisJc3Bpbl9sb2NrX2JoKGYtPmxv Y2spOwogCiAJaWYgKGludHIgJiYgc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKIAkJcmV0ID0g LUVSRVNUQVJUU1lTOwpAQCAtMjA1LDExICsyMDYsMTEgQEAgc3RhdGljIGxvbmcgdm13X2ZlbmNl X3dhaXQoc3RydWN0IGZlbmNlICpmLCBib29sIGludHIsIHNpZ25lZCBsb25nIHRpbWVvdXQpCiAJ CQlfX3NldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7CiAJCWVsc2UKIAkJCV9f c2V0X2N1cnJlbnRfc3RhdGUoVEFTS19VTklOVEVSUlVQVElCTEUpOwotCQlzcGluX3VubG9ja19p cnFyZXN0b3JlKGYtPmxvY2ssIGlycV9mbGFncyk7CisJCXNwaW5fdW5sb2NrX2JoKGYtPmxvY2sp OwogCiAJCXJldCA9IHNjaGVkdWxlX3RpbWVvdXQocmV0KTsKIAotCQlzcGluX2xvY2tfaXJxc2F2 ZShmLT5sb2NrLCBpcnFfZmxhZ3MpOworCQlzcGluX2xvY2tfYmgoZi0+bG9jayk7CiAJCWlmIChy ZXQgPiAwICYmIGludHIgJiYgc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCiAJCQlyZXQgPSAtRVJF U1RBUlRTWVM7CiAJfQpAQCAtMjE5LDcgKzIyMCw3IEBAIHN0YXRpYyBsb25nIHZtd19mZW5jZV93 YWl0KHN0cnVjdCBmZW5jZSAqZiwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0KQogCV9f c2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKIAogb3V0OgotCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoZi0+bG9jaywgaXJxX2ZsYWdzKTsKKwlzcGluX3VubG9ja19iaChmLT5sb2NrKTsK IAogCXZtd19zZXFub193YWl0ZXJfcmVtb3ZlKGRldl9wcml2KTsKIApAQCAtMzAwLDIxICszMDEs MjIgQEAgc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICp2bXdfZmVuY2VfbWFuYWdlcl9pbml0KHN0 cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXR0bV9yb3VuZF9wb3Qoc2l6ZW9mKHN0cnVj dCB2bXdfZXZlbnRfZmVuY2VfYWN0aW9uKSk7CiAJbXV0ZXhfaW5pdCgmZm1hbi0+Z29hbF9pcnFf bXV0ZXgpOwogCWZtYW4tPmN0eCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJdGFza2xldF9p bml0KCZmbWFuLT50YXNrbGV0LCB2bXdfZmVuY2VfdGFza2xldCwKKwkJICAgICAodW5zaWduZWQg bG9uZykgZm1hbik7CiAKIAlyZXR1cm4gZm1hbjsKIH0KIAogdm9pZCB2bXdfZmVuY2VfbWFuYWdl cl90YWtlZG93bihzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4pCiB7Ci0JdW5zaWduZWQg bG9uZyBpcnFfZmxhZ3M7CiAJYm9vbCBsaXN0c19lbXB0eTsKIAogCSh2b2lkKSBjYW5jZWxfd29y a19zeW5jKCZmbWFuLT53b3JrKTsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZmbWFuLT5sb2NrLCBp cnFfZmxhZ3MpOworCXNwaW5fbG9ja19iaCgmZm1hbi0+bG9jayk7CiAJbGlzdHNfZW1wdHkgPSBs aXN0X2VtcHR5KCZmbWFuLT5mZW5jZV9saXN0KSAmJgogCQlsaXN0X2VtcHR5KCZmbWFuLT5jbGVh bnVwX2xpc3QpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZtYW4tPmxvY2ssIGlycV9mbGFn cyk7CisJc3Bpbl91bmxvY2tfYmgoJmZtYW4tPmxvY2spOwogCiAJQlVHX09OKCFsaXN0c19lbXB0 eSk7CiAJa2ZyZWUoZm1hbik7CkBAIC0zMjQsNyArMzI2LDYgQEAgc3RhdGljIGludCB2bXdfZmVu Y2Vfb2JqX2luaXQoc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuLAogCQkJICAgICAgc3Ry dWN0IHZtd19mZW5jZV9vYmogKmZlbmNlLCB1MzIgc2Vxbm8sCiAJCQkgICAgICB2b2lkICgqZGVz dHJveSkgKHN0cnVjdCB2bXdfZmVuY2Vfb2JqICpmZW5jZSkpCiB7Ci0JdW5zaWduZWQgbG9uZyBp cnFfZmxhZ3M7CiAJaW50IHJldCA9IDA7CiAKIAlmZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJnZt d19mZW5jZV9vcHMsICZmbWFuLT5sb2NrLApAQCAtMzMyLDcgKzMzMyw3IEBAIHN0YXRpYyBpbnQg dm13X2ZlbmNlX29ial9pbml0KHN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbiwKIAlJTklU X0xJU1RfSEVBRCgmZmVuY2UtPnNlcV9wYXNzZWRfYWN0aW9ucyk7CiAJZmVuY2UtPmRlc3Ryb3kg PSBkZXN0cm95OwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmZtYW4tPmxvY2ssIGlycV9mbGFncyk7 CisJc3Bpbl9sb2NrX2JoKCZmbWFuLT5sb2NrKTsKIAlpZiAodW5saWtlbHkoZm1hbi0+Zmlmb19k b3duKSkgewogCQlyZXQgPSAtRUJVU1k7CiAJCWdvdG8gb3V0X3VubG9jazsKQEAgLTM0MSw3ICsz NDIsNyBAQCBzdGF0aWMgaW50IHZtd19mZW5jZV9vYmpfaW5pdChzdHJ1Y3Qgdm13X2ZlbmNlX21h bmFnZXIgKmZtYW4sCiAJKytmbWFuLT5udW1fZmVuY2Vfb2JqZWN0czsKIAogb3V0X3VubG9jazoK LQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmbWFuLT5sb2NrLCBpcnFfZmxhZ3MpOworCXNwaW5f dW5sb2NrX2JoKCZmbWFuLT5sb2NrKTsKIAlyZXR1cm4gcmV0OwogCiB9CkBAIC00OTAsMTEgKzQ5 MSw5IEBAIHJlcnVuOgogCiB2b2lkIHZtd19mZW5jZXNfdXBkYXRlKHN0cnVjdCB2bXdfZmVuY2Vf bWFuYWdlciAqZm1hbikKIHsKLQl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKLQotCXNwaW5fbG9j a19pcnFzYXZlKCZmbWFuLT5sb2NrLCBpcnFfZmxhZ3MpOworCXNwaW5fbG9ja19iaCgmZm1hbi0+ bG9jayk7CiAJX192bXdfZmVuY2VzX3VwZGF0ZShmbWFuKTsKLQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZmbWFuLT5sb2NrLCBpcnFfZmxhZ3MpOworCXNwaW5fdW5sb2NrX2JoKCZmbWFuLT5sb2Nr KTsKIH0KIAogYm9vbCB2bXdfZmVuY2Vfb2JqX3NpZ25hbGVkKHN0cnVjdCB2bXdfZmVuY2Vfb2Jq ICpmZW5jZSkKQEAgLTY5NCwxMSArNjkzLDkgQEAgdm9pZCB2bXdfZmVuY2VfZmlmb19kb3duKHN0 cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbikKIAogdm9pZCB2bXdfZmVuY2VfZmlmb191cChz dHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4pCiB7Ci0JdW5zaWduZWQgbG9uZyBpcnFfZmxh Z3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZm1hbi0+bG9jaywgaXJxX2ZsYWdzKTsKKwlzcGlu X2xvY2tfYmgoJmZtYW4tPmxvY2spOwogCWZtYW4tPmZpZm9fZG93biA9IGZhbHNlOwotCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmZtYW4tPmxvY2ssIGlycV9mbGFncyk7CisJc3Bpbl91bmxvY2tf YmgoJmZtYW4tPmxvY2spOwogfQogCiAKQEAgLTgyNSwxMCArODIyLDkgQEAgdm9pZCB2bXdfZXZl bnRfZmVuY2VfZnByaXZfZ29uZShzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4sCiB7CiAJ c3RydWN0IHZtd19ldmVudF9mZW5jZV9hY3Rpb24gKmVhY3Rpb247CiAJc3RydWN0IGRybV9wZW5k aW5nX2V2ZW50ICpldmVudDsKLQl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKIAogCXdoaWxlICgx KSB7Ci0JCXNwaW5fbG9ja19pcnFzYXZlKCZmbWFuLT5sb2NrLCBpcnFfZmxhZ3MpOworCQlzcGlu X2xvY2tfYmgoJmZtYW4tPmxvY2spOwogCQlpZiAobGlzdF9lbXB0eShldmVudF9saXN0KSkKIAkJ CWdvdG8gb3V0X3VubG9jazsKIAkJZWFjdGlvbiA9IGxpc3RfZmlyc3RfZW50cnkoZXZlbnRfbGlz dCwKQEAgLTgzNywxMSArODMzLDExIEBAIHZvaWQgdm13X2V2ZW50X2ZlbmNlX2Zwcml2X2dvbmUo c3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuLAogCQlsaXN0X2RlbF9pbml0KCZlYWN0aW9u LT5mcHJpdl9oZWFkKTsKIAkJZXZlbnQgPSBlYWN0aW9uLT5ldmVudDsKIAkJZWFjdGlvbi0+ZXZl bnQgPSBOVUxMOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmbWFuLT5sb2NrLCBpcnFfZmxh Z3MpOworCQlzcGluX3VubG9ja19iaCgmZm1hbi0+bG9jayk7CiAJCWV2ZW50LT5kZXN0cm95KGV2 ZW50KTsKIAl9CiBvdXRfdW5sb2NrOgotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZtYW4tPmxv Y2ssIGlycV9mbGFncyk7CisJc3Bpbl91bmxvY2tfYmgoJmZtYW4tPmxvY2spOwogfQogCiAKQEAg LTg1NCw3ICs4NTAsNyBAQCBvdXRfdW5sb2NrOgogICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg d2hlbiB0aGUgc2Vxbm8gb2YgdGhlIGZlbmNlIHdoZXJlIEBhY3Rpb24gaXMKICAqIGF0dGFjaGVk IGhhcyBwYXNzZWQuIEl0IHF1ZXVlcyB0aGUgZXZlbnQgb24gdGhlIHN1Ym1pdHRlcidzIGV2ZW50 IGxpc3QuCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsd2F5cyBjYWxsZWQgZnJvbSBhdG9taWMgY29u dGV4dCwgYW5kIG1heSBiZSBjYWxsZWQKLSAqIGZyb20gaXJxIGNvbnRleHQuCisgKiBmcm9tIHRh c2tsZXQgY29udGV4dC4KICAqLwogc3RhdGljIHZvaWQgdm13X2V2ZW50X2ZlbmNlX2FjdGlvbl9z ZXFfcGFzc2VkKHN0cnVjdCB2bXdfZmVuY2VfYWN0aW9uICphY3Rpb24pCiB7CkBAIC04NjMsMTMg Kzg1OSwxMiBAQCBzdGF0aWMgdm9pZCB2bXdfZXZlbnRfZmVuY2VfYWN0aW9uX3NlcV9wYXNzZWQo c3RydWN0IHZtd19mZW5jZV9hY3Rpb24gKmFjdGlvbikKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZWFjdGlvbi0+ZGV2OwogCXN0cnVjdCBkcm1fcGVuZGluZ19ldmVudCAqZXZlbnQgPSBlYWN0 aW9uLT5ldmVudDsKIAlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsKLQl1bnNpZ25lZCBsb25n IGlycV9mbGFnczsKIAogCWlmICh1bmxpa2VseShldmVudCA9PSBOVUxMKSkKIAkJcmV0dXJuOwog CiAJZmlsZV9wcml2ID0gZXZlbnQtPmZpbGVfcHJpdjsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2 LT5ldmVudF9sb2NrLCBpcnFfZmxhZ3MpOworCXNwaW5fbG9ja19iaCgmZGV2LT5ldmVudF9sb2Nr KTsKIAogCWlmIChsaWtlbHkoZWFjdGlvbi0+dHZfc2VjICE9IE5VTEwpKSB7CiAJCXN0cnVjdCB0 aW1ldmFsIHR2OwpAQCAtODgzLDcgKzg3OCw3IEBAIHN0YXRpYyB2b2lkIHZtd19ldmVudF9mZW5j ZV9hY3Rpb25fc2VxX3Bhc3NlZChzdHJ1Y3Qgdm13X2ZlbmNlX2FjdGlvbiAqYWN0aW9uKQogCWxp c3RfYWRkX3RhaWwoJmVhY3Rpb24tPmV2ZW50LT5saW5rLCAmZmlsZV9wcml2LT5ldmVudF9saXN0 KTsKIAllYWN0aW9uLT5ldmVudCA9IE5VTEw7CiAJd2FrZV91cF9hbGwoJmZpbGVfcHJpdi0+ZXZl bnRfd2FpdCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2NrLCBpcnFf ZmxhZ3MpOworCXNwaW5fdW5sb2NrX2JoKCZkZXYtPmV2ZW50X2xvY2spOwogfQogCiAvKioKQEAg LTkwMCwxMSArODk1LDEwIEBAIHN0YXRpYyB2b2lkIHZtd19ldmVudF9mZW5jZV9hY3Rpb25fY2xl YW51cChzdHJ1Y3Qgdm13X2ZlbmNlX2FjdGlvbiAqYWN0aW9uKQogCXN0cnVjdCB2bXdfZXZlbnRf ZmVuY2VfYWN0aW9uICplYWN0aW9uID0KIAkJY29udGFpbmVyX29mKGFjdGlvbiwgc3RydWN0IHZt d19ldmVudF9mZW5jZV9hY3Rpb24sIGFjdGlvbik7CiAJc3RydWN0IHZtd19mZW5jZV9tYW5hZ2Vy ICpmbWFuID0gZm1hbl9mcm9tX2ZlbmNlKGVhY3Rpb24tPmZlbmNlKTsKLQl1bnNpZ25lZCBsb25n IGlycV9mbGFnczsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZmbWFuLT5sb2NrLCBpcnFfZmxhZ3Mp OworCXNwaW5fbG9ja19iaCgmZm1hbi0+bG9jayk7CiAJbGlzdF9kZWwoJmVhY3Rpb24tPmZwcml2 X2hlYWQpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZtYW4tPmxvY2ssIGlycV9mbGFncyk7 CisJc3Bpbl91bmxvY2tfYmgoJmZtYW4tPmxvY2spOwogCiAJdm13X2ZlbmNlX29ial91bnJlZmVy ZW5jZSgmZWFjdGlvbi0+ZmVuY2UpOwogCWtmcmVlKGVhY3Rpb24pOwpAQCAtOTI0LDExICs5MTgs MTAgQEAgc3RhdGljIHZvaWQgdm13X2ZlbmNlX29ial9hZGRfYWN0aW9uKHN0cnVjdCB2bXdfZmVu Y2Vfb2JqICpmZW5jZSwKIAkJCSAgICAgIHN0cnVjdCB2bXdfZmVuY2VfYWN0aW9uICphY3Rpb24p CiB7CiAJc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuID0gZm1hbl9mcm9tX2ZlbmNlKGZl bmNlKTsKLQl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKIAlib29sIHJ1bl91cGRhdGUgPSBmYWxz ZTsKIAogCW11dGV4X2xvY2soJmZtYW4tPmdvYWxfaXJxX211dGV4KTsKLQlzcGluX2xvY2tfaXJx c2F2ZSgmZm1hbi0+bG9jaywgaXJxX2ZsYWdzKTsKKwlzcGluX2xvY2tfYmgoJmZtYW4tPmxvY2sp OwogCiAJZm1hbi0+cGVuZGluZ19hY3Rpb25zW2FjdGlvbi0+dHlwZV0rKzsKIAlpZiAoZmVuY2Vf aXNfc2lnbmFsZWRfbG9ja2VkKCZmZW5jZS0+YmFzZSkpIHsKQEAgLTk0Nyw3ICs5NDAsNyBAQCBz dGF0aWMgdm9pZCB2bXdfZmVuY2Vfb2JqX2FkZF9hY3Rpb24oc3RydWN0IHZtd19mZW5jZV9vYmog KmZlbmNlLAogCQlydW5fdXBkYXRlID0gdm13X2ZlbmNlX2dvYWxfY2hlY2tfbG9ja2VkKGZlbmNl KTsKIAl9CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmbWFuLT5sb2NrLCBpcnFfZmxhZ3Mp OworCXNwaW5fdW5sb2NrX2JoKCZmbWFuLT5sb2NrKTsKIAogCWlmIChydW5fdXBkYXRlKSB7CiAJ CWlmICghZm1hbi0+Z29hbF9pcnFfb24pIHsKQEAgLTk4NSw3ICs5NzgsNiBAQCBpbnQgdm13X2V2 ZW50X2ZlbmNlX2FjdGlvbl9xdWV1ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIAlzdHJ1 Y3Qgdm13X2V2ZW50X2ZlbmNlX2FjdGlvbiAqZWFjdGlvbjsKIAlzdHJ1Y3Qgdm13X2ZlbmNlX21h bmFnZXIgKmZtYW4gPSBmbWFuX2Zyb21fZmVuY2UoZmVuY2UpOwogCXN0cnVjdCB2bXdfZnByaXYg KnZtd19mcCA9IHZtd19mcHJpdihmaWxlX3ByaXYpOwotCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdz OwogCiAJZWFjdGlvbiA9IGt6YWxsb2Moc2l6ZW9mKCplYWN0aW9uKSwgR0ZQX0tFUk5FTCk7CiAJ aWYgKHVubGlrZWx5KGVhY3Rpb24gPT0gTlVMTCkpCkBAIC0xMDAyLDkgKzk5NCw5IEBAIGludCB2 bXdfZXZlbnRfZmVuY2VfYWN0aW9uX3F1ZXVlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAog CWVhY3Rpb24tPnR2X3NlYyA9IHR2X3NlYzsKIAllYWN0aW9uLT50dl91c2VjID0gdHZfdXNlYzsK IAotCXNwaW5fbG9ja19pcnFzYXZlKCZmbWFuLT5sb2NrLCBpcnFfZmxhZ3MpOworCXNwaW5fbG9j a19iaCgmZm1hbi0+bG9jayk7CiAJbGlzdF9hZGRfdGFpbCgmZWFjdGlvbi0+ZnByaXZfaGVhZCwg JnZtd19mcC0+ZmVuY2VfZXZlbnRzKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmbWFuLT5s b2NrLCBpcnFfZmxhZ3MpOworCXNwaW5fdW5sb2NrX2JoKCZmbWFuLT5sb2NrKTsKIAogCXZtd19m ZW5jZV9vYmpfYWRkX2FjdGlvbihmZW5jZSwgJmVhY3Rpb24tPmFjdGlvbik7CiAKQEAgLTEwMjUs MTYgKzEwMTcsMTUgQEAgc3RhdGljIGludCB2bXdfZXZlbnRfZmVuY2VfYWN0aW9uX2NyZWF0ZShz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIAlzdHJ1Y3Qgdm13X2V2ZW50X2ZlbmNlX3BlbmRp bmcgKmV2ZW50OwogCXN0cnVjdCB2bXdfZmVuY2VfbWFuYWdlciAqZm1hbiA9IGZtYW5fZnJvbV9m ZW5jZShmZW5jZSk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZtYW4tPmRldl9wcml2LT5k ZXY7Ci0JdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CiAJaW50IHJldDsKIAotCXNwaW5fbG9ja19p cnFzYXZlKCZkZXYtPmV2ZW50X2xvY2ssIGlycV9mbGFncyk7CisJc3Bpbl9sb2NrX2JoKCZkZXYt PmV2ZW50X2xvY2spOwogCiAJcmV0ID0gKGZpbGVfcHJpdi0+ZXZlbnRfc3BhY2UgPCBzaXplb2Yo ZXZlbnQtPmV2ZW50KSkgPyAtRUJVU1kgOiAwOwogCWlmIChsaWtlbHkocmV0ID09IDApKQogCQlm aWxlX3ByaXYtPmV2ZW50X3NwYWNlIC09IHNpemVvZihldmVudC0+ZXZlbnQpOwogCi0Jc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2NrLCBpcnFfZmxhZ3MpOworCXNwaW5fdW5s b2NrX2JoKCZkZXYtPmV2ZW50X2xvY2spOwogCiAJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewog CQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBldmVudCBzcGFjZSBmb3IgdGhpcyBmaWxl LlxuIik7CkBAIC0xMDc4LDkgKzEwNjksOSBAQCBzdGF0aWMgaW50IHZtd19ldmVudF9mZW5jZV9h Y3Rpb25fY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogb3V0X25vX3F1ZXVlOgog CWV2ZW50LT5iYXNlLmRlc3Ryb3koJmV2ZW50LT5iYXNlKTsKIG91dF9ub19ldmVudDoKLQlzcGlu X2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBpcnFfZmxhZ3MpOworCXNwaW5fbG9ja19i aCgmZGV2LT5ldmVudF9sb2NrKTsKIAlmaWxlX3ByaXYtPmV2ZW50X3NwYWNlICs9IHNpemVvZigq ZXZlbnQpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgaXJxX2Zs YWdzKTsKKwlzcGluX3VubG9ja19iaCgmZGV2LT5ldmVudF9sb2NrKTsKIG91dF9ub19zcGFjZToK IAlyZXR1cm4gcmV0OwogfQpAQCAtMTE3MiwzICsxMTYzLDMyIEBAIG91dF9ub19yZWZfb2JqOgog CXZtd19mZW5jZV9vYmpfdW5yZWZlcmVuY2UoJmZlbmNlKTsKIAlyZXR1cm4gcmV0OwogfQorCisv KioKKyAqIHZtd19mZW5jZV90YXNrbGV0IC0gRmVuY2UgbWFuYWdlciB0YXNrbGV0IGVudHJ5IHBv aW50CisgKgorICogQGRhdGE6IFRoZSB0YXNrbGV0IGNsb3N1cmUgLSBBIHBvaW50ZXIgdG8gdGhl IGZlbmNlIG1hbmFnZXIgY2FzdCB0byBhbgorICogdW5zaWduZWQgbG9uZy4KKyAqLworc3RhdGlj IHZvaWQgdm13X2ZlbmNlX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQoreworCXN0cnVjdCB2 bXdfZmVuY2VfbWFuYWdlciAqZm1hbiA9IChzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKikgZGF0 YTsKKworCXNwaW5fbG9jaygmZm1hbi0+bG9jayk7CisJX192bXdfZmVuY2VzX3VwZGF0ZShmbWFu KTsKKwlzcGluX3VubG9jaygmZm1hbi0+bG9jayk7CisJd2FrZV91cF9hbGwoJmZtYW4tPmRldl9w cml2LT5mZW5jZV9xdWV1ZSk7Cit9CisKKy8qKgorICogdm13X2ZlbmNlX3Rhc2tsZXRfc2NoZWR1 bGUgLSBTY2hlZHVsZSBhIGZlbmNlIG1hbmFnZXIgdGFza2xldCBydW4KKyAqCisgKiBAZm1hbjog UG9pbnRlciB0byBhIGZlbmNlIG1hbmFnZXIKKyAqLwordm9pZCB2bXdfZmVuY2VfdGFza2xldF9z Y2hlZHVsZShzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4pCit7CisJaWYgKCFmbWFuKQor CQlyZXR1cm47CisKKwl0YXNrbGV0X3NjaGVkdWxlKCZmbWFuLT50YXNrbGV0KTsKK30KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmggYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5oCmluZGV4IDhiZTZjMjkuLmU1NWIyYzkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuaApAQCAtMTI0LDQgKzEyNCw2IEBAIGV4dGVy biBpbnQgdm13X2V2ZW50X2ZlbmNlX2FjdGlvbl9xdWV1ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVl X3ByaXYsCiAJCQkJCXVpbnQzMl90ICp0dl9zZWMsCiAJCQkJCXVpbnQzMl90ICp0dl91c2VjLAog CQkJCQlib29sIGludGVycnVwdGlibGUpOworZXh0ZXJuIHZvaWQgdm13X2ZlbmNlX3Rhc2tsZXRf c2NoZWR1bGUoc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuKTsKKwogI2VuZGlmIC8qIF9W TVdHRlhfRkVOQ0VfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaXJxLmMKaW5kZXggYWMz ZWNjZC4uYjBhNmU2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf aXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaXJxLmMKQEAgLTQ4LDEw ICs0OCw4IEBAIGlycXJldHVybl90IHZtd19pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcp CiAJCXJldHVybiBJUlFfTk9ORTsKIAogCWlmIChtYXNrZWRfc3RhdHVzICYgKFNWR0FfSVJRRkxB R19BTllfRkVOQ0UgfAotCQkJICAgICBTVkdBX0lSUUZMQUdfRkVOQ0VfR09BTCkpIHsKLQkJdm13 X2ZlbmNlc191cGRhdGUoZGV2X3ByaXYtPmZtYW4pOwotCQl3YWtlX3VwX2FsbCgmZGV2X3ByaXYt PmZlbmNlX3F1ZXVlKTsKLQl9CisJCQkgICAgIFNWR0FfSVJRRkxBR19GRU5DRV9HT0FMKSkKKwkJ dm13X2ZlbmNlX3Rhc2tsZXRfc2NoZWR1bGUoZGV2X3ByaXYtPmZtYW4pOwogCiAJaWYgKG1hc2tl ZF9zdGF0dXMgJiBTVkdBX0lSUUZMQUdfRklGT19QUk9HUkVTUykKIAkJd2FrZV91cF9hbGwoJmRl dl9wcml2LT5maWZvX3F1ZXVlKTsKLS0gCjIuNC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=