From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D3A6AFCB62C for ; Fri, 6 Mar 2026 16:35:14 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0DEA410EDAC; Fri, 6 Mar 2026 16:35:05 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=igalia.com header.i=@igalia.com header.b="D97IDNad"; dkim-atps=neutral Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id 33B3E10EDAA; Fri, 6 Mar 2026 16:35:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=3gFwstd63vR0DfA5eDNJMaLajg0FuHt4X/x5UE1b6B0=; b=D97IDNadx0nCV7KsZNP+zkNJhA iCrrXBYPg2YNPISMigxB/jmxIHXsKDh0FVNlBm2uwAdFSC7hLDYlo9cC3GHK15QETJgBX6kXFWnpM lqX4yhZkehalCT4dpy6P/dgjxgwQyVvrtd4QUSK32mojJ/zqSOTaLFwIg1BZ68avikrra1+rEimxN apO9ymbNV+HkEZ2BB1t7y4zE63KTl38F7/Ri2x5DLWuIcH1NsY103bE0fgQeP6SyJIlXKAQprE4iy NvlPNc1XH3sjP3I4UfJ1/s510ecVQDoDWU+Y1dI4KNlc445qJdmiz0NZwqPL99A2+9jWNgitd13zp Xc/t9EyA==; Received: from [90.240.106.137] (helo=localhost) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1vyY8i-00APTw-8o; Fri, 06 Mar 2026 17:35:00 +0100 From: Tvrtko Ursulin To: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: kernel-dev@igalia.com, intel-xe@lists.freedesktop.org, Danilo Krummrich , Philipp Stanner , Tvrtko Ursulin , =?UTF-8?q?Christian=20K=C3=B6nig?= , Matthew Brost Subject: [PATCH v7 13/29] drm/sched: Remove FIFO and RR and simplify to a single run queue Date: Fri, 6 Mar 2026 16:34:29 +0000 Message-ID: <20260306163445.97243-14-tvrtko.ursulin@igalia.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260306163445.97243-1-tvrtko.ursulin@igalia.com> References: <20260306163445.97243-1-tvrtko.ursulin@igalia.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" U2luY2UgdGhlIG5ldyBGQUlSIHBvbGljeSBpcyBpbiBnZW5lcmFsIGJldHRlciB0aGFuIEZJRk8g YW5kIGFsbW9zdCBhcwpnb29kIGFzIHJvdW5kLXJvYmluIGluIGludGVyYWN0aXZlIHVzZSBjYXNl cywgcGx1cyB0aGUgbGF0dGVyIGhhcyBub3QgYmVlbgp0aGUgZGVmYXVsdCBwb2xpY3kgaW4gYSBs b25nIHRpbWUsIHdlIGNhbiBhZmZvcmQgdG8gcmVtb3ZlIGJvdGggYW5kIGxlYXZlCmp1c3QgRkFJ Ui4KCkJ5IGRvaW5nIHNvIHdlIGNhbiBzaW1wbGlmeSB0aGUgc2NoZWR1bGVyIGNvZGUgYnkgbWFr aW5nIHRoZSBzY2hlZHVsZXIgdG8KcnVuIHF1ZXVlIHJlbGF0aW9uc2hpcCBhbHdheXMgMToxIGFu ZCByZW1vdmUgc29tZSBjb2RlLgoKQWxzbywgbm93IHRoYXQgdGhlIEZJRk8gcG9saWN5IGlzIGdv bmUgdGhlIHRyZWUgb2YgZW50aXRpZXMgaXMgbm90IGEgRklGTwp0cmVlIGFueSBtb3JlIHNvIHJl bmFtZSBpdCB0byBqdXN0IHRoZSB0cmVlLgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGlnYWxpYS5jb20+CkNjOiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+CkNjOiBEYW5pbG8gS3J1bW1yaWNoIDxkYWtyQGtlcm5lbC5vcmc+ CkNjOiBNYXR0aGV3IEJyb3N0IDxtYXR0aGV3LmJyb3N0QGludGVsLmNvbT4KQ2M6IFBoaWxpcHAg U3Rhbm5lciA8cGhhc3RhQGtlcm5lbC5vcmc+CkFja2VkLWJ5OiBEYW5pbG8gS3J1bW1yaWNoIDxk YWtyQGtlcm5lbC5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2pv Yi5jICAgIHwgIDIzICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2VudGl0 eS5jICAgfCAgMjkgKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX2ludGVy bmFsLmggfCAgMTIgKy0tCiBkcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYyAg ICAgfCAxMDggKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVy L3NjaGVkX3JxLmMgICAgICAgfCAgNzMgKysrKy0tLS0tLS0tLS0KIGluY2x1ZGUvZHJtL2dwdV9z Y2hlZHVsZXIuaCAgICAgICAgICAgICAgICB8ICAzNiArLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQs IDU3IGluc2VydGlvbnMoKyksIDIyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfam9iLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfam9iLmMKaW5kZXggYWZmYzRhM2Y5OTViLi43ZDZmZjBiNmNhNGUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfam9iLmMKQEAgLTQ4MywyNSArNDgzLDIyIEBA IGRybV9zY2hlZF9lbnRpdHlfcXVldWVfcG9wKHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRp dHkpCiAKIHZvaWQgYW1kZ3B1X2pvYl9zdG9wX2FsbF9qb2JzX29uX3NjaGVkKHN0cnVjdCBkcm1f Z3B1X3NjaGVkdWxlciAqc2NoZWQpCiB7CisJc3RydWN0IGRybV9zY2hlZF9ycSAqcnEgPSBzY2hl ZC0+cnE7CisJc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKnNfZW50aXR5OwogCXN0cnVjdCBkcm1f c2NoZWRfam9iICpzX2pvYjsKLQlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqc19lbnRpdHkgPSBO VUxMOwotCWludCBpOwogCiAJLyogU2lnbmFsIGFsbCBqb2JzIG5vdCB5ZXQgc2NoZWR1bGVkICov Ci0JZm9yIChpID0gRFJNX1NDSEVEX1BSSU9SSVRZX0tFUk5FTDsgaSA8IHNjaGVkLT5udW1fcnFz OyBpKyspIHsKLQkJc3RydWN0IGRybV9zY2hlZF9ycSAqcnEgPSBzY2hlZC0+c2NoZWRfcnFbaV07 Ci0JCXNwaW5fbG9jaygmcnEtPmxvY2spOwotCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHNfZW50aXR5 LCAmcnEtPmVudGl0aWVzLCBsaXN0KSB7Ci0JCQl3aGlsZSAoKHNfam9iID0gZHJtX3NjaGVkX2Vu dGl0eV9xdWV1ZV9wb3Aoc19lbnRpdHkpKSkgewotCQkJCXN0cnVjdCBkcm1fc2NoZWRfZmVuY2Ug KnNfZmVuY2UgPSBzX2pvYi0+c19mZW5jZTsKKwlzcGluX2xvY2soJnJxLT5sb2NrKTsKKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5KHNfZW50aXR5LCAmcnEtPmVudGl0aWVzLCBsaXN0KSB7CisJCXdoaWxl ICgoc19qb2IgPSBkcm1fc2NoZWRfZW50aXR5X3F1ZXVlX3BvcChzX2VudGl0eSkpKSB7CisJCQlz dHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0gc19qb2ItPnNfZmVuY2U7CiAKLQkJCQlk bWFfZmVuY2Vfc2lnbmFsKCZzX2ZlbmNlLT5zY2hlZHVsZWQpOwotCQkJCWRtYV9mZW5jZV9zZXRf ZXJyb3IoJnNfZmVuY2UtPmZpbmlzaGVkLCAtRUhXUE9JU09OKTsKLQkJCQlkbWFfZmVuY2Vfc2ln bmFsKCZzX2ZlbmNlLT5maW5pc2hlZCk7Ci0JCQl9CisJCQlkbWFfZmVuY2Vfc2lnbmFsKCZzX2Zl bmNlLT5zY2hlZHVsZWQpOworCQkJZG1hX2ZlbmNlX3NldF9lcnJvcigmc19mZW5jZS0+ZmluaXNo ZWQsIC1FSFdQT0lTT04pOworCQkJZG1hX2ZlbmNlX3NpZ25hbCgmc19mZW5jZS0+ZmluaXNoZWQp OwogCQl9Ci0JCXNwaW5fdW5sb2NrKCZycS0+bG9jayk7CiAJfQorCXNwaW5fdW5sb2NrKCZycS0+ bG9jayk7CiAKIAkvKiBTaWduYWwgYWxsIGpvYnMgYWxyZWFkeSBzY2hlZHVsZWQgdG8gSFcgKi8K IAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHNfam9iLCAmc2NoZWQtPnBlbmRpbmdfbGlzdCwgbGlzdCkg ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9lbnRpdHkuYyBi L2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfZW50aXR5LmMKaW5kZXggYWRkOTljNjA5 ZmFmLi43MTNhZTQ2ZjdiYmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIv c2NoZWRfZW50aXR5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9lbnRp dHkuYwpAQCAtMTM0LDM3ICsxMzQsMTkgQEAgaW50IGRybV9zY2hlZF9lbnRpdHlfaW5pdChzdHJ1 Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LAogCWVudGl0eS0+Z3VpbHR5ID0gZ3VpbHR5Owog CWVudGl0eS0+cHJpb3JpdHkgPSBwcmlvcml0eTsKIAllbnRpdHktPmxhc3RfdXNlciA9IGN1cnJl bnQtPmdyb3VwX2xlYWRlcjsKLQllbnRpdHktPnJxX3ByaW9yaXR5ID0gZHJtX3NjaGVkX3BvbGlj eSA9PSBEUk1fU0NIRURfUE9MSUNZX0ZBSVIgPwotCQkJICAgICAgRFJNX1NDSEVEX1BSSU9SSVRZ X0tFUk5FTCA6IHByaW9yaXR5OwogCWVudGl0eS0+bnVtX3NjaGVkX2xpc3QgPSBudW1fc2NoZWRf bGlzdDsKIAllbnRpdHktPnNjaGVkX2xpc3QgPSBudW1fc2NoZWRfbGlzdCA+IDEgPyBzY2hlZF9s aXN0IDogTlVMTDsKIAlSQ1VfSU5JVF9QT0lOVEVSKGVudGl0eS0+bGFzdF9zY2hlZHVsZWQsIE5V TEwpOwogCVJCX0NMRUFSX05PREUoJmVudGl0eS0+cmJfdHJlZV9ub2RlKTsKIAotCWlmICghc2No ZWRfbGlzdFswXS0+c2NoZWRfcnEpIHsKKwlpZiAoIXNjaGVkX2xpc3RbMF0tPnJxKSB7CiAJCS8q IFNpbmNlIGV2ZXJ5IGVudHJ5IGNvdmVyZWQgYnkgbnVtX3NjaGVkX2xpc3QKIAkJICogc2hvdWxk IGJlIG5vbi1OVUxMIGFuZCB0aGVyZWZvcmUgd2Ugd2FybiBkcml2ZXJzCiAJCSAqIG5vdCB0byBk byB0aGlzIGFuZCB0byBmaXggdGhlaXIgRFJNIGNhbGxpbmcgb3JkZXIuCiAJCSAqLwogCQlwcl93 YXJuKCIlczogY2FsbGVkIHdpdGggdW5pbml0aWFsaXplZCBzY2hlZHVsZXJcbiIsIF9fZnVuY19f KTsKIAl9IGVsc2UgewotCQllbnVtIGRybV9zY2hlZF9wcmlvcml0eSBwID0gZW50aXR5LT5wcmlv cml0eTsKLQotCQkvKgotCQkgKiBUaGUgInByaW9yaXR5IiBvZiBhbiBlbnRpdHkgY2Fubm90IGV4 Y2VlZCB0aGUgbnVtYmVyIG9mCi0JCSAqIHJ1bi1xdWV1ZXMgb2YgYSBzY2hlZHVsZXIuIFByb3Rl Y3QgYWdhaW5zdCBudW1fcnFzIGJlaW5nIDAsCi0JCSAqIGJ5IGNvbnZlcnRpbmcgdG8gc2lnbmVk LiBDaG9vc2UgdGhlIGxvd2VzdCBwcmlvcml0eQotCQkgKiBhdmFpbGFibGUuCi0JCSAqLwotCQlp ZiAocCA+PSBzY2hlZF9saXN0WzBdLT5udW1fdXNlcl9ycXMpIHsKLQkJCWRldl9lcnIoc2NoZWRf bGlzdFswXS0+ZGV2LCAiZW50aXR5IHdpdGggb3V0LW9mLWJvdW5kcyBwcmlvcml0eToldSBudW1f dXNlcl9ycXM6JXVcbiIsCi0JCQkJcCwgc2NoZWRfbGlzdFswXS0+bnVtX3VzZXJfcnFzKTsKLQkJ CXAgPSBtYXhfdChzMzIsCi0JCQkJIChzMzIpc2NoZWRfbGlzdFswXS0+bnVtX3VzZXJfcnFzIC0g MSwKLQkJCQkgKHMzMilEUk1fU0NIRURfUFJJT1JJVFlfS0VSTkVMKTsKLQkJCWVudGl0eS0+cHJp b3JpdHkgPSBwOwotCQl9Ci0JCWVudGl0eS0+cnEgPSBzY2hlZF9saXN0WzBdLT5zY2hlZF9ycVtl bnRpdHktPnJxX3ByaW9yaXR5XTsKKwkJZW50aXR5LT5ycSA9IHNjaGVkX2xpc3RbMF0tPnJxOwog CX0KIAogCWluaXRfY29tcGxldGlvbigmZW50aXR5LT5lbnRpdHlfaWRsZSk7CkBAIC02MDEsNyAr NTgzLDcgQEAgdm9pZCBkcm1fc2NoZWRfZW50aXR5X3NlbGVjdF9ycShzdHJ1Y3QgZHJtX3NjaGVk X2VudGl0eSAqZW50aXR5KQogCiAJc3Bpbl9sb2NrKCZlbnRpdHktPmxvY2spOwogCXNjaGVkID0g ZHJtX3NjaGVkX3BpY2tfYmVzdChlbnRpdHktPnNjaGVkX2xpc3QsIGVudGl0eS0+bnVtX3NjaGVk X2xpc3QpOwotCXJxID0gc2NoZWQgPyBzY2hlZC0+c2NoZWRfcnFbZW50aXR5LT5ycV9wcmlvcml0 eV0gOiBOVUxMOworCXJxID0gc2NoZWQgPyBzY2hlZC0+cnEgOiBOVUxMOwogCWlmIChycSAhPSBl bnRpdHktPnJxKSB7CiAJCWRybV9zY2hlZF9ycV9yZW1vdmVfZW50aXR5KGVudGl0eS0+cnEsIGVu dGl0eSk7CiAJCWVudGl0eS0+cnEgPSBycTsKQEAgLTYyNiw3ICs2MDgsNiBAQCB2b2lkIGRybV9z Y2hlZF9lbnRpdHlfcHVzaF9qb2Ioc3RydWN0IGRybV9zY2hlZF9qb2IgKnNjaGVkX2pvYikKIHsK IAlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5ID0gc2NoZWRfam9iLT5lbnRpdHk7CiAJ Ym9vbCBmaXJzdDsKLQlrdGltZV90IHN1Ym1pdF90czsKIAogCXRyYWNlX2RybV9zY2hlZF9qb2Jf cXVldWUoc2NoZWRfam9iLCBlbnRpdHkpOwogCkBAIC02NDMsMTYgKzYyNCwxNCBAQCB2b2lkIGRy bV9zY2hlZF9lbnRpdHlfcHVzaF9qb2Ioc3RydWN0IGRybV9zY2hlZF9qb2IgKnNjaGVkX2pvYikK IAkvKgogCSAqIEFmdGVyIHRoZSBzY2hlZF9qb2IgaXMgcHVzaGVkIGludG8gdGhlIGVudGl0eSBx dWV1ZSwgaXQgbWF5IGJlCiAJICogY29tcGxldGVkIGFuZCBmcmVlZCB1cCBhdCBhbnkgdGltZS4g V2UgY2FuIG5vIGxvbmdlciBhY2Nlc3MgaXQuCi0JICogTWFrZSBzdXJlIHRvIHNldCB0aGUgc3Vi bWl0X3RzIGZpcnN0LCB0byBhdm9pZCBhIHJhY2UuCiAJICovCi0Jc2NoZWRfam9iLT5zdWJtaXRf dHMgPSBzdWJtaXRfdHMgPSBrdGltZV9nZXQoKTsKIAlmaXJzdCA9IHNwc2NfcXVldWVfcHVzaCgm ZW50aXR5LT5qb2JfcXVldWUsICZzY2hlZF9qb2ItPnF1ZXVlX25vZGUpOwogCiAJLyogZmlyc3Qg am9iIHdha2VzIHVwIHNjaGVkdWxlciAqLwogCWlmIChmaXJzdCkgewogCQlzdHJ1Y3QgZHJtX2dw dV9zY2hlZHVsZXIgKnNjaGVkOwogCi0JCXNjaGVkID0gZHJtX3NjaGVkX3JxX2FkZF9lbnRpdHko ZW50aXR5LCBzdWJtaXRfdHMpOworCQlzY2hlZCA9IGRybV9zY2hlZF9ycV9hZGRfZW50aXR5KGVu dGl0eSk7CiAJCWlmIChzY2hlZCkKIAkJCWRybV9zY2hlZF93YWtldXAoc2NoZWQpOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfaW50ZXJuYWwuaCBiL2Ry aXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfaW50ZXJuYWwuaAppbmRleCBiYTVhOWQ5Nzg2 ZTEuLjUyMGE0MjFjYmY4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9z Y2hlZF9pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfaW50 ZXJuYWwuaApAQCAtMzEsMTMgKzMxLDYgQEAgc3RydWN0IGRybV9zY2hlZF9lbnRpdHlfc3RhdHMg ewogCXN0cnVjdCBld21hX2RybV9zY2hlZF9hdmd0aW1lICAgYXZnX2pvYl91czsKIH07CiAKLS8q IFVzZWQgdG8gY2hvb3NlIGJldHdlZW4gRklGTyBhbmQgUlIgam9iLXNjaGVkdWxpbmcgKi8KLWV4 dGVybiBpbnQgZHJtX3NjaGVkX3BvbGljeTsKLQotI2RlZmluZSBEUk1fU0NIRURfUE9MSUNZX1JS ICAgIDAKLSNkZWZpbmUgRFJNX1NDSEVEX1BPTElDWV9GSUZPICAxCi0jZGVmaW5lIERSTV9TQ0hF RF9QT0xJQ1lfRkFJUiAgMgotCiBib29sIGRybV9zY2hlZF9jYW5fcXVldWUoc3RydWN0IGRybV9n cHVfc2NoZWR1bGVyICpzY2hlZCwKIAkJCSBzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5 KTsKIHZvaWQgZHJtX3NjaGVkX3dha2V1cChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVk KTsKQEAgLTQ2LDE0ICszOSwxMyBAQCB2b2lkIGRybV9zY2hlZF9ycV9pbml0KHN0cnVjdCBkcm1f Z3B1X3NjaGVkdWxlciAqc2NoZWQsCiAJCSAgICAgICBzdHJ1Y3QgZHJtX3NjaGVkX3JxICpycSk7 CiAKIHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqCi1kcm1fc2NoZWRfcnFfYWRkX2VudGl0eShz dHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LCBrdGltZV90IHRzKTsKK2RybV9zY2hlZF9y cV9hZGRfZW50aXR5KHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHkpOwogdm9pZCBkcm1f c2NoZWRfcnFfcmVtb3ZlX2VudGl0eShzdHJ1Y3QgZHJtX3NjaGVkX3JxICpycSwKIAkJCQlzdHJ1 Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5KTsKIHZvaWQgZHJtX3NjaGVkX3JxX3BvcF9lbnRp dHkoc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSk7CiAKIHN0cnVjdCBkcm1fc2NoZWRf ZW50aXR5ICoKLWRybV9zY2hlZF9ycV9zZWxlY3RfZW50aXR5KHN0cnVjdCBkcm1fZ3B1X3NjaGVk dWxlciAqc2NoZWQsCi0JCQkgICBzdHJ1Y3QgZHJtX3NjaGVkX3JxICpycSk7Citkcm1fc2NoZWRf c2VsZWN0X2VudGl0eShzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKTsKIAogdm9pZCBk cm1fc2NoZWRfZW50aXR5X3NlbGVjdF9ycShzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5 KTsKIHN0cnVjdCBkcm1fc2NoZWRfam9iICpkcm1fc2NoZWRfZW50aXR5X3BvcF9qb2Ioc3RydWN0 IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c2NoZWR1bGVyL3NjaGVkX21haW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRf bWFpbi5jCmluZGV4IDgxMjdjOTNhMTcxOC4uNzllNDRjY2VmZGM5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v c2NoZWR1bGVyL3NjaGVkX21haW4uYwpAQCAtODQsMTUgKzg0LDYgQEAKICNkZWZpbmUgQ1JFQVRF X1RSQUNFX1BPSU5UUwogI2luY2x1ZGUgImdwdV9zY2hlZHVsZXJfdHJhY2UuaCIKIAotaW50IGRy bV9zY2hlZF9wb2xpY3kgPSBEUk1fU0NIRURfUE9MSUNZX0ZBSVI7Ci0KLS8qKgotICogRE9DOiBz Y2hlZF9wb2xpY3kgKGludCkKLSAqIFVzZWQgdG8gb3ZlcnJpZGUgZGVmYXVsdCBlbnRpdGllcyBz Y2hlZHVsaW5nIHBvbGljeSBpbiBhIHJ1biBxdWV1ZS4KLSAqLwotTU9EVUxFX1BBUk1fREVTQyhz Y2hlZF9wb2xpY3ksICJTcGVjaWZ5IHRoZSBzY2hlZHVsaW5nIHBvbGljeSBmb3IgZW50aXRpZXMg b24gYSBydW4tcXVldWUsICIgX19zdHJpbmdpZnkoRFJNX1NDSEVEX1BPTElDWV9SUikgIiA9IFJv dW5kIFJvYmluLCAiIF9fc3RyaW5naWZ5KERSTV9TQ0hFRF9QT0xJQ1lfRklGTykgIiA9IEZJRk8s ICIgX19zdHJpbmdpZnkoRFJNX1NDSEVEX1BPTElDWV9GQUlSKSAiID0gRmFpciAoZGVmYXVsdCku Iik7Ci1tb2R1bGVfcGFyYW1fbmFtZWQoc2NoZWRfcG9saWN5LCBkcm1fc2NoZWRfcG9saWN5LCBp bnQsIDA0NDQpOwotCiBzdGF0aWMgdTMyIGRybV9zY2hlZF9hdmFpbGFibGVfY3JlZGl0cyhzdHJ1 Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQogewogCXUzMiBjcmVkaXRzOwpAQCAtODgwLDM0 ICs4NzEsNiBAQCB2b2lkIGRybV9zY2hlZF93YWtldXAoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVy ICpzY2hlZCkKIAlkcm1fc2NoZWRfcnVuX2pvYl9xdWV1ZShzY2hlZCk7CiB9CiAKLS8qKgotICog ZHJtX3NjaGVkX3NlbGVjdF9lbnRpdHkgLSBTZWxlY3QgbmV4dCBlbnRpdHkgdG8gcHJvY2Vzcwot ICoKLSAqIEBzY2hlZDogc2NoZWR1bGVyIGluc3RhbmNlCi0gKgotICogUmV0dXJuIGFuIGVudGl0 eSB0byBwcm9jZXNzIG9yIE5VTEwgaWYgbm9uZSBhcmUgZm91bmQuCi0gKgotICogTm90ZSwgdGhh dCB3ZSBicmVhayBvdXQgb2YgdGhlIGZvci1sb29wIHdoZW4gImVudGl0eSIgaXMgbm9uLW51bGws IHdoaWNoIGNhbgotICogYWxzbyBiZSBhbiBlcnJvci1wb2ludGVyLS10aGlzIGFzc3VyZXMgd2Ug ZG9uJ3QgcHJvY2VzcyBsb3dlciBwcmlvcml0eQotICogcnVuLXF1ZXVlcy4gU2VlIGNvbW1lbnRz IGluIHRoZSByZXNwZWN0aXZlbHkgY2FsbGVkIGZ1bmN0aW9ucy4KLSAqLwotc3RhdGljIHN0cnVj dCBkcm1fc2NoZWRfZW50aXR5ICoKLWRybV9zY2hlZF9zZWxlY3RfZW50aXR5KHN0cnVjdCBkcm1f Z3B1X3NjaGVkdWxlciAqc2NoZWQpCi17Ci0Jc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0 eSA9IE5VTEw7Ci0JaW50IGk7Ci0KLQkvKiBTdGFydCB3aXRoIHRoZSBoaWdoZXN0IHByaW9yaXR5 LgotCSAqLwotCWZvciAoaSA9IERSTV9TQ0hFRF9QUklPUklUWV9LRVJORUw7IGkgPCBzY2hlZC0+ bnVtX3JxczsgaSsrKSB7Ci0JCWVudGl0eSA9IGRybV9zY2hlZF9ycV9zZWxlY3RfZW50aXR5KHNj aGVkLCBzY2hlZC0+c2NoZWRfcnFbaV0pOwotCQlpZiAoZW50aXR5KQotCQkJYnJlYWs7Ci0JfQot Ci0JcmV0dXJuIElTX0VSUihlbnRpdHkpID8gTlVMTCA6IGVudGl0eTsKLX0KLQogLyoqCiAgKiBk cm1fc2NoZWRfZ2V0X2ZpbmlzaGVkX2pvYiAtIGZldGNoIHRoZSBuZXh0IGZpbmlzaGVkIGpvYiB0 byBiZSBkZXN0cm95ZWQKICAqCkBAIC0xMDMzLDcgKzk5Niw3IEBAIHN0YXRpYyB2b2lkIGRybV9z Y2hlZF9ydW5fam9iX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KQogCiAJLyogRmluZCBlbnRp dHkgd2l0aCBhIHJlYWR5IGpvYiAqLwogCWVudGl0eSA9IGRybV9zY2hlZF9zZWxlY3RfZW50aXR5 KHNjaGVkKTsKLQlpZiAoIWVudGl0eSkgeworCWlmIChJU19FUlJfT1JfTlVMTChlbnRpdHkpKSB7 CiAJCS8qCiAJCSAqIEVpdGhlciBubyBtb3JlIHdvcmsgdG8gZG8sIG9yIHRoZSBuZXh0IHJlYWR5 IGpvYiBuZWVkcyBtb3JlCiAJCSAqIGNyZWRpdHMgdGhhbiB0aGUgc2NoZWR1bGVyIGhhcyBjdXJy ZW50bHkgYXZhaWxhYmxlLgpAQCAtMTEwOSw4ICsxMDcyLDYgQEAgc3RhdGljIHN0cnVjdCB3b3Jr cXVldWVfc3RydWN0ICpkcm1fc2NoZWRfYWxsb2Nfd3EoY29uc3QgY2hhciAqbmFtZSkKICAqLwog aW50IGRybV9zY2hlZF9pbml0KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsIGNvbnN0 IHN0cnVjdCBkcm1fc2NoZWRfaW5pdF9hcmdzICphcmdzKQogewotCWludCBpOwotCiAJc2NoZWQt Pm9wcyA9IGFyZ3MtPm9wczsKIAlzY2hlZC0+Y3JlZGl0X2xpbWl0ID0gYXJncy0+Y3JlZGl0X2xp bWl0OwogCXNjaGVkLT5uYW1lID0gYXJncy0+bmFtZTsKQEAgLTExMjAsMTMgKzEwODEsNyBAQCBp bnQgZHJtX3NjaGVkX2luaXQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgY29uc3Qg c3RydWN0IGRybV9zY2hlZF9pbml0XwogCXNjaGVkLT5zY29yZSA9IGFyZ3MtPnNjb3JlID8gYXJn cy0+c2NvcmUgOiAmc2NoZWQtPl9zY29yZTsKIAlzY2hlZC0+ZGV2ID0gYXJncy0+ZGV2OwogCi0J aWYgKGFyZ3MtPm51bV9ycXMgPiBEUk1fU0NIRURfUFJJT1JJVFlfQ09VTlQpIHsKLQkJLyogVGhp cyBpcyBhIGdyb3NzIHZpb2xhdGlvbi0tdGVsbCBkcml2ZXJzIHdoYXQgdGhlICBwcm9ibGVtIGlz LgotCQkgKi8KLQkJZGV2X2VycihzY2hlZC0+ZGV2LCAiJXM6IG51bV9ycXMgY2Fubm90IGJlIGdy ZWF0ZXIgdGhhbiBEUk1fU0NIRURfUFJJT1JJVFlfQ09VTlRcbiIsCi0JCQlfX2Z1bmNfXyk7Ci0J CXJldHVybiAtRUlOVkFMOwotCX0gZWxzZSBpZiAoc2NoZWQtPnNjaGVkX3JxKSB7CisJaWYgKHNj aGVkLT5ycSkgewogCQkvKiBOb3QgYW4gZXJyb3IsIGJ1dCB3YXJuIGFueXdheSBzbyBkcml2ZXJz IGNhbgogCQkgKiBmaW5lLXR1bmUgdGhlaXIgRFJNIGNhbGxpbmcgb3JkZXIsIGFuZCByZXR1cm4g YWxsCiAJCSAqIGlzIGdvb2QuCkBAIC0xMTQ2LDE5ICsxMTAxLDExIEBAIGludCBkcm1fc2NoZWRf aW5pdChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLCBjb25zdCBzdHJ1Y3QgZHJtX3Nj aGVkX2luaXRfCiAJCXNjaGVkLT5vd25fc3VibWl0X3dxID0gdHJ1ZTsKIAl9CiAKLQlzY2hlZC0+ bnVtX3VzZXJfcnFzID0gYXJncy0+bnVtX3JxczsKLQlzY2hlZC0+bnVtX3JxcyA9IGRybV9zY2hl ZF9wb2xpY3kgIT0gRFJNX1NDSEVEX1BPTElDWV9GQUlSID8KLQkJCSBhcmdzLT5udW1fcnFzIDog MTsKLQlzY2hlZC0+c2NoZWRfcnEgPSBremFsbG9jX29ianMoKnNjaGVkLT5zY2hlZF9ycSwgYXJn cy0+bnVtX3Jxcyk7Ci0JaWYgKCFzY2hlZC0+c2NoZWRfcnEpCisJc2NoZWQtPnJxID0ga3phbGxv Y19vYmooKnNjaGVkLT5ycSk7CisJaWYgKCFzY2hlZC0+cnEpCiAJCWdvdG8gT3V0X2NoZWNrX293 bjsKIAotCWZvciAoaSA9IERSTV9TQ0hFRF9QUklPUklUWV9LRVJORUw7IGkgPCBzY2hlZC0+bnVt X3JxczsgaSsrKSB7Ci0JCXNjaGVkLT5zY2hlZF9ycVtpXSA9IGt6YWxsb2Nfb2JqKCpzY2hlZC0+ c2NoZWRfcnFbaV0pOwotCQlpZiAoIXNjaGVkLT5zY2hlZF9ycVtpXSkKLQkJCWdvdG8gT3V0X3Vu cm9sbDsKLQkJZHJtX3NjaGVkX3JxX2luaXQoc2NoZWQsIHNjaGVkLT5zY2hlZF9ycVtpXSk7Ci0J fQorCWRybV9zY2hlZF9ycV9pbml0KHNjaGVkLCBzY2hlZC0+cnEpOwogCiAJaW5pdF93YWl0cXVl dWVfaGVhZCgmc2NoZWQtPmpvYl9zY2hlZHVsZWQpOwogCUlOSVRfTElTVF9IRUFEKCZzY2hlZC0+ cGVuZGluZ19saXN0KTsKQEAgLTExNzQsMTIgKzExMjEsNyBAQCBpbnQgZHJtX3NjaGVkX2luaXQo c3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgY29uc3Qgc3RydWN0IGRybV9zY2hlZF9p bml0XwogCiAJc2NoZWQtPnJlYWR5ID0gdHJ1ZTsKIAlyZXR1cm4gMDsKLU91dF91bnJvbGw6Ci0J Zm9yICgtLWkgOyBpID49IERSTV9TQ0hFRF9QUklPUklUWV9LRVJORUw7IGktLSkKLQkJa2ZyZWUo c2NoZWQtPnNjaGVkX3JxW2ldKTsKIAotCWtmcmVlKHNjaGVkLT5zY2hlZF9ycSk7Ci0Jc2NoZWQt PnNjaGVkX3JxID0gTlVMTDsKIE91dF9jaGVja19vd246CiAJaWYgKHNjaGVkLT5vd25fc3VibWl0 X3dxKQogCQlkZXN0cm95X3dvcmtxdWV1ZShzY2hlZC0+c3VibWl0X3dxKTsKQEAgLTEyMTUsMTMg KzExNTcsOCBAQCBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfY2FuY2VsX3JlbWFpbmluZ19qb2JzKHN0 cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpCiAgKi8KIHZvaWQgZHJtX3NjaGVkX2Zpbmko c3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKIHsKLQlpbnQgaTsKLQogCWRybV9zY2hl ZF93cXVldWVfc3RvcChzY2hlZCk7CiAKLQlmb3IgKGkgPSBEUk1fU0NIRURfUFJJT1JJVFlfS0VS TkVMOyBpIDwgc2NoZWQtPm51bV9ycXM7IGkrKykKLQkJa2ZyZWUoc2NoZWQtPnNjaGVkX3JxW2ld KTsKLQogCS8qIFdha2V1cCBldmVyeW9uZSBzdHVjayBpbiBkcm1fc2NoZWRfZW50aXR5X2ZsdXNo IGZvciB0aGlzIHNjaGVkdWxlciAqLwogCXdha2VfdXBfYWxsKCZzY2hlZC0+am9iX3NjaGVkdWxl ZCk7CiAKQEAgLTEyMzUsOCArMTE3Miw4IEBAIHZvaWQgZHJtX3NjaGVkX2Zpbmkoc3RydWN0IGRy bV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKIAlpZiAoc2NoZWQtPm93bl9zdWJtaXRfd3EpCiAJCWRl c3Ryb3lfd29ya3F1ZXVlKHNjaGVkLT5zdWJtaXRfd3EpOwogCXNjaGVkLT5yZWFkeSA9IGZhbHNl OwotCWtmcmVlKHNjaGVkLT5zY2hlZF9ycSk7Ci0Jc2NoZWQtPnNjaGVkX3JxID0gTlVMTDsKKwlr ZnJlZShzY2hlZC0+cnEpOworCXNjaGVkLT5ycSA9IE5VTEw7CiAKIAlpZiAoIWxpc3RfZW1wdHko JnNjaGVkLT5wZW5kaW5nX2xpc3QpKQogCQlkZXZfd2FybihzY2hlZC0+ZGV2LCAiVGVhcmluZyBk b3duIHNjaGVkdWxlciB3aGlsZSBqb2JzIGFyZSBwZW5kaW5nIVxuIik7CkBAIC0xMjU0LDM1ICsx MTkxLDI4IEBAIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX2ZpbmkpOwogICovCiB2b2lkIGRybV9z Y2hlZF9pbmNyZWFzZV9rYXJtYShzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqYmFkKQogewotCWludCBp OwotCXN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICp0bXA7Ci0Jc3RydWN0IGRybV9zY2hlZF9lbnRp dHkgKmVudGl0eTsKIAlzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkID0gYmFkLT5zY2hl ZDsKKwlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LCAqdG1wOworCXN0cnVjdCBkcm1f c2NoZWRfcnEgKnJxID0gc2NoZWQtPnJxOwogCiAJLyogZG9uJ3QgY2hhbmdlIEBiYWQncyBrYXJt YSBpZiBpdCdzIGZyb20gS0VSTkVMIFJRLAogCSAqIGJlY2F1c2Ugc29tZXRpbWVzIEdQVSBoYW5n IHdvdWxkIGNhdXNlIGtlcm5lbCBqb2JzIChsaWtlIFZNIHVwZGF0aW5nIGpvYnMpCiAJICogY29y cnVwdCBidXQga2VlcCBpbiBtaW5kIHRoYXQga2VybmVsIGpvYnMgYWx3YXlzIGNvbnNpZGVyZWQg Z29vZC4KIAkgKi8KLQlpZiAoYmFkLT5zX3ByaW9yaXR5ICE9IERSTV9TQ0hFRF9QUklPUklUWV9L RVJORUwpIHsKLQkJYXRvbWljX2luYygmYmFkLT5rYXJtYSk7CisJaWYgKGJhZC0+c19wcmlvcml0 eSA9PSBEUk1fU0NIRURfUFJJT1JJVFlfS0VSTkVMKQorCQlyZXR1cm47CiAKLQkJZm9yIChpID0g RFJNX1NDSEVEX1BSSU9SSVRZX0tFUk5FTDsgaSA8IHNjaGVkLT5udW1fcnFzOyBpKyspIHsKLQkJ CXN0cnVjdCBkcm1fc2NoZWRfcnEgKnJxID0gc2NoZWQtPnNjaGVkX3JxW2ldOworCWF0b21pY19p bmMoJmJhZC0+a2FybWEpOwogCi0JCQlzcGluX2xvY2soJnJxLT5sb2NrKTsKLQkJCWxpc3RfZm9y X2VhY2hfZW50cnlfc2FmZShlbnRpdHksIHRtcCwgJnJxLT5lbnRpdGllcywgbGlzdCkgewotCQkJ CWlmIChiYWQtPnNfZmVuY2UtPnNjaGVkdWxlZC5jb250ZXh0ID09Ci0JCQkJICAgIGVudGl0eS0+ ZmVuY2VfY29udGV4dCkgewotCQkJCQlpZiAoZW50aXR5LT5ndWlsdHkpCi0JCQkJCQlhdG9taWNf c2V0KGVudGl0eS0+Z3VpbHR5LCAxKTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJfQotCQkJc3Bp bl91bmxvY2soJnJxLT5sb2NrKTsKLQkJCWlmICgmZW50aXR5LT5saXN0ICE9ICZycS0+ZW50aXRp ZXMpCi0JCQkJYnJlYWs7CisJc3Bpbl9sb2NrKCZycS0+bG9jayk7CisJbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlKGVudGl0eSwgdG1wLCAmcnEtPmVudGl0aWVzLCBsaXN0KSB7CisJCWlmIChiYWQt PnNfZmVuY2UtPnNjaGVkdWxlZC5jb250ZXh0ID09IGVudGl0eS0+ZmVuY2VfY29udGV4dCkgewor CQkJaWYgKGVudGl0eS0+Z3VpbHR5KQorCQkJCWF0b21pY19zZXQoZW50aXR5LT5ndWlsdHksIDEp OworCQkJYnJlYWs7CiAJCX0KIAl9CisJc3Bpbl91bmxvY2soJnJxLT5sb2NrKTsKIH0KIEVYUE9S VF9TWU1CT0woZHJtX3NjaGVkX2luY3JlYXNlX2thcm1hKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9ycS5jIGIvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxl ci9zY2hlZF9ycS5jCmluZGV4IGY4YmM2MDAyNmE3My4uOGRmMDQwYzU4YjBhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX3JxLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3NjaGVkdWxlci9zY2hlZF9ycS5jCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIGRy bV9zY2hlZF9ycV91cGRhdGVfcHJpbyhzdHJ1Y3QgZHJtX3NjaGVkX3JxICpycSkKIAlycS0+aGVh ZF9wcmlvID0gcHJpbzsKIH0KIAotc3RhdGljIHZvaWQgZHJtX3NjaGVkX3JxX3JlbW92ZV9maWZv X2xvY2tlZChzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LAorc3RhdGljIHZvaWQgZHJt X3NjaGVkX3JxX3JlbW92ZV90cmVlX2xvY2tlZChzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50 aXR5LAogCQkJCQkgICAgc3RydWN0IGRybV9zY2hlZF9ycSAqcnEpCiB7CiAJbG9ja2RlcF9hc3Nl cnRfaGVsZCgmZW50aXR5LT5sb2NrKTsKQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIHZvaWQgZHJt X3NjaGVkX3JxX3JlbW92ZV9maWZvX2xvY2tlZChzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50 aXR5LAogCX0KIH0KIAotc3RhdGljIHZvaWQgZHJtX3NjaGVkX3JxX3VwZGF0ZV9maWZvX2xvY2tl ZChzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LAorc3RhdGljIHZvaWQgZHJtX3NjaGVk X3JxX3VwZGF0ZV90cmVlX2xvY2tlZChzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LAog CQkJCQkgICAgc3RydWN0IGRybV9zY2hlZF9ycSAqcnEsCiAJCQkJCSAgICBrdGltZV90IHRzKQog ewpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfcnFfdXBkYXRlX2ZpZm9f bG9ja2VkKHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHksCiAJbG9ja2RlcF9hc3NlcnRf aGVsZCgmZW50aXR5LT5sb2NrKTsKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZycS0+bG9jayk7CiAK LQlkcm1fc2NoZWRfcnFfcmVtb3ZlX2ZpZm9fbG9ja2VkKGVudGl0eSwgcnEpOworCWRybV9zY2hl ZF9ycV9yZW1vdmVfdHJlZV9sb2NrZWQoZW50aXR5LCBycSk7CiAKIAllbnRpdHktPm9sZGVzdF9q b2Jfd2FpdGluZyA9IHRzOwogCkBAIC0yMzUsMTUgKzIzNSw5IEBAIHN0YXRpYyBrdGltZV90IGRy bV9zY2hlZF9lbnRpdHlfdXBkYXRlX3ZydW50aW1lKHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICpl bnRpdHkpCiAJcmV0dXJuIHJ1bnRpbWU7CiB9CiAKLXN0YXRpYyBrdGltZV90IGRybV9zY2hlZF9l bnRpdHlfZ2V0X2pvYl90cyhzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5KQotewotCXJl dHVybiBkcm1fc2NoZWRfZW50aXR5X3VwZGF0ZV92cnVudGltZShlbnRpdHkpOwotfQotCiAvKioK ICAqIGRybV9zY2hlZF9ycV9hZGRfZW50aXR5IC0gYWRkIGFuIGVudGl0eQogICogQGVudGl0eTog c2NoZWR1bGVyIGVudGl0eQotICogQHRzOiBzdWJtaXNzaW9uIHRpbWVzdGFtcAogICoKICAqIEFk ZHMgYSBzY2hlZHVsZXIgZW50aXR5IHRvIHRoZSBydW4gcXVldWUuCiAgKgpAQCAtMjUxLDEwICsy NDUsMTEgQEAgc3RhdGljIGt0aW1lX3QgZHJtX3NjaGVkX2VudGl0eV9nZXRfam9iX3RzKHN0cnVj dCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHkpCiAgKiBiZWVuIHN0b3BwZWQgYW5kIGNhbm5vdCBi ZSBzdWJtaXR0ZWQgdG8uCiAgKi8KIHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqCi1kcm1fc2No ZWRfcnFfYWRkX2VudGl0eShzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LCBrdGltZV90 IHRzKQorZHJtX3NjaGVkX3JxX2FkZF9lbnRpdHkoc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVu dGl0eSkKIHsKIAlzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkOwogCXN0cnVjdCBkcm1f c2NoZWRfcnEgKnJxOworCWt0aW1lX3QgdHM7CiAKIAkvKiBBZGQgdGhlIGVudGl0eSB0byB0aGUg cnVuIHF1ZXVlICovCiAJc3Bpbl9sb2NrKCZlbnRpdHktPmxvY2spOwpAQCAtMjc0LDE1ICsyNjks OSBAQCBkcm1fc2NoZWRfcnFfYWRkX2VudGl0eShzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50 aXR5LCBrdGltZV90IHRzKQogCQlsaXN0X2FkZF90YWlsKCZlbnRpdHktPmxpc3QsICZycS0+ZW50 aXRpZXMpOwogCX0KIAotCWlmIChkcm1fc2NoZWRfcG9saWN5ID09IERSTV9TQ0hFRF9QT0xJQ1lf RkFJUikgewotCQl0cyA9IGRybV9zY2hlZF9ycV9nZXRfbWluX3ZydW50aW1lKHJxKTsKLQkJdHMg PSBkcm1fc2NoZWRfZW50aXR5X3Jlc3RvcmVfdnJ1bnRpbWUoZW50aXR5LCB0cywKLQkJCQkJCSAg ICAgICBycS0+aGVhZF9wcmlvKTsKLQl9IGVsc2UgaWYgKGRybV9zY2hlZF9wb2xpY3kgPT0gRFJN X1NDSEVEX1BPTElDWV9SUikgewotCQl0cyA9IGVudGl0eS0+cnJfdHM7Ci0JfQotCi0JZHJtX3Nj aGVkX3JxX3VwZGF0ZV9maWZvX2xvY2tlZChlbnRpdHksIHJxLCB0cyk7CisJdHMgPSBkcm1fc2No ZWRfcnFfZ2V0X21pbl92cnVudGltZShycSk7CisJdHMgPSBkcm1fc2NoZWRfZW50aXR5X3Jlc3Rv cmVfdnJ1bnRpbWUoZW50aXR5LCB0cywgcnEtPmhlYWRfcHJpbyk7CisJZHJtX3NjaGVkX3JxX3Vw ZGF0ZV90cmVlX2xvY2tlZChlbnRpdHksIHJxLCB0cyk7CiAKIAlzcGluX3VubG9jaygmcnEtPmxv Y2spOwogCXNwaW5fdW5sb2NrKCZlbnRpdHktPmxvY2spOwpAQCAtMzEwLDI3ICsyOTksMTEgQEAg dm9pZCBkcm1fc2NoZWRfcnFfcmVtb3ZlX2VudGl0eShzdHJ1Y3QgZHJtX3NjaGVkX3JxICpycSwK IAlhdG9taWNfZGVjKHJxLT5zY2hlZC0+c2NvcmUpOwogCWxpc3RfZGVsX2luaXQoJmVudGl0eS0+ bGlzdCk7CiAKLQlkcm1fc2NoZWRfcnFfcmVtb3ZlX2ZpZm9fbG9ja2VkKGVudGl0eSwgcnEpOwor CWRybV9zY2hlZF9ycV9yZW1vdmVfdHJlZV9sb2NrZWQoZW50aXR5LCBycSk7CiAKIAlzcGluX3Vu bG9jaygmcnEtPmxvY2spOwogfQogCi1zdGF0aWMga3RpbWVfdAotZHJtX3NjaGVkX3JxX25leHRf cnJfdHMoc3RydWN0IGRybV9zY2hlZF9ycSAqcnEsCi0JCQlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0 eSAqZW50aXR5KQotewotCWt0aW1lX3QgdHM7Ci0KLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbnRp dHktPmxvY2spOwotCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnJxLT5sb2NrKTsKLQotCXRzID0ga3Rp bWVfYWRkX25zKHJxLT5ycl90cywgMSk7Ci0JZW50aXR5LT5ycl90cyA9IHRzOwotCXJxLT5ycl90 cyA9IHRzOwotCi0JcmV0dXJuIHRzOwotfQotCiAvKioKICAqIGRybV9zY2hlZF9ycV9wb3BfZW50 aXR5IC0gcG9wcyBhbiBlbnRpdHkKICAqIEBlbnRpdHk6IHNjaGVkdWxlciBlbnRpdHkKQEAgLTM1 MywzMiArMzI2LDIyIEBAIHZvaWQgZHJtX3NjaGVkX3JxX3BvcF9lbnRpdHkoc3RydWN0IGRybV9z Y2hlZF9lbnRpdHkgKmVudGl0eSkKIAlpZiAobmV4dF9qb2IpIHsKIAkJa3RpbWVfdCB0czsKIAot CQlpZiAoZHJtX3NjaGVkX3BvbGljeSA9PSBEUk1fU0NIRURfUE9MSUNZX0ZBSVIpCi0JCQl0cyA9 IGRybV9zY2hlZF9lbnRpdHlfZ2V0X2pvYl90cyhlbnRpdHkpOwotCQllbHNlIGlmIChkcm1fc2No ZWRfcG9saWN5ID09IERSTV9TQ0hFRF9QT0xJQ1lfRklGTykKLQkJCXRzID0gbmV4dF9qb2ItPnN1 Ym1pdF90czsKLQkJZWxzZQotCQkJdHMgPSBkcm1fc2NoZWRfcnFfbmV4dF9ycl90cyhycSwgZW50 aXR5KTsKLQotCQlkcm1fc2NoZWRfcnFfdXBkYXRlX2ZpZm9fbG9ja2VkKGVudGl0eSwgcnEsIHRz KTsKKwkJdHMgPSBkcm1fc2NoZWRfZW50aXR5X3VwZGF0ZV92cnVudGltZShlbnRpdHkpOworCQlk cm1fc2NoZWRfcnFfdXBkYXRlX3RyZWVfbG9ja2VkKGVudGl0eSwgcnEsIHRzKTsKIAl9IGVsc2Ug ewotCQlkcm1fc2NoZWRfcnFfcmVtb3ZlX2ZpZm9fbG9ja2VkKGVudGl0eSwgcnEpOworCQlrdGlt ZV90IG1pbl92cnVudGltZTsKIAotCQlpZiAoZHJtX3NjaGVkX3BvbGljeSA9PSBEUk1fU0NIRURf UE9MSUNZX0ZBSVIpIHsKLQkJCWt0aW1lX3QgbWluX3ZydW50aW1lOwotCi0JCQltaW5fdnJ1bnRp bWUgPSBkcm1fc2NoZWRfcnFfZ2V0X21pbl92cnVudGltZShycSk7Ci0JCQlkcm1fc2NoZWRfZW50 aXR5X3NhdmVfdnJ1bnRpbWUoZW50aXR5LCBtaW5fdnJ1bnRpbWUpOwotCQl9CisJCWRybV9zY2hl ZF9ycV9yZW1vdmVfdHJlZV9sb2NrZWQoZW50aXR5LCBycSk7CisJCW1pbl92cnVudGltZSA9IGRy bV9zY2hlZF9ycV9nZXRfbWluX3ZydW50aW1lKHJxKTsKKwkJZHJtX3NjaGVkX2VudGl0eV9zYXZl X3ZydW50aW1lKGVudGl0eSwgbWluX3ZydW50aW1lKTsKIAl9CiAJc3Bpbl91bmxvY2soJnJxLT5s b2NrKTsKIAlzcGluX3VubG9jaygmZW50aXR5LT5sb2NrKTsKIH0KIAogLyoqCi0gKiBkcm1fc2No ZWRfcnFfc2VsZWN0X2VudGl0eSAtIFNlbGVjdCBhbiBlbnRpdHkgd2hpY2ggcHJvdmlkZXMgYSBq b2IgdG8gcnVuCisgKiBkcm1fc2NoZWRfc2VsZWN0X2VudGl0eSAtIFNlbGVjdCBhbiBlbnRpdHkg d2hpY2ggcHJvdmlkZXMgYSBqb2IgdG8gcnVuCiAgKiBAc2NoZWQ6IHRoZSBncHUgc2NoZWR1bGVy Ci0gKiBAcnE6IHNjaGVkdWxlciBydW4gcXVldWUgdG8gY2hlY2suCiAgKgogICogRmluZCBvbGRl c3Qgd2FpdGluZyByZWFkeSBlbnRpdHkuCiAgKgpAQCAtMzg3LDkgKzM1MCw5IEBAIHZvaWQgZHJt X3NjaGVkX3JxX3BvcF9lbnRpdHkoc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSkKICAq IGl0cyBqb2I7IHJldHVybiBOVUxMLCBpZiBubyByZWFkeSBlbnRpdHkgd2FzIGZvdW5kLgogICov CiBzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqCi1kcm1fc2NoZWRfcnFfc2VsZWN0X2VudGl0eShz dHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLAotCQkJICAgc3RydWN0IGRybV9zY2hlZF9y cSAqcnEpCitkcm1fc2NoZWRfc2VsZWN0X2VudGl0eShzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIg KnNjaGVkKQogeworCXN0cnVjdCBkcm1fc2NoZWRfcnEgKnJxID0gc2NoZWQtPnJxOwogCXN0cnVj dCByYl9ub2RlICpyYjsKIAogCXNwaW5fbG9jaygmcnEtPmxvY2spOwpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oIGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCmlu ZGV4IDgyNmRlNGNiYmYyZC4uYWU1NGU5NTk5NzBjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9n cHVfc2NoZWR1bGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCkBAIC0xMDAs OCArMTAwLDcgQEAgc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgewogCSAqIEBsb2NrOgogCSAqCiAJ ICogTG9jayBwcm90ZWN0aW5nIHRoZSBydW4tcXVldWUgKEBycSkgdG8gd2hpY2ggdGhpcyBlbnRp dHkgYmVsb25ncywKLQkgKiBAcHJpb3JpdHksIHRoZSBsaXN0IG9mIHNjaGVkdWxlcnMgKEBzY2hl ZF9saXN0LCBAbnVtX3NjaGVkX2xpc3QpIGFuZAotCSAqIHRoZSBAcnJfdHMgZmllbGQuCisJICog QHByaW9yaXR5IGFuZCB0aGUgbGlzdCBvZiBzY2hlZHVsZXJzIChAc2NoZWRfbGlzdCwgQG51bV9z Y2hlZF9saXN0KS4KIAkgKi8KIAlzcGlubG9ja190CQkJbG9jazsKIApAQCAtMTU0LDE4ICsxNTMs NiBAQCBzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSB7CiAJICovCiAJZW51bSBkcm1fc2NoZWRfcHJp b3JpdHkgICAgICAgICBwcmlvcml0eTsKIAotCS8qKgotCSAqIEBycV9wcmlvcml0eTogUnVuLXF1 ZXVlIHByaW9yaXR5Ci0JICovCi0JZW51bSBkcm1fc2NoZWRfcHJpb3JpdHkgICAgICAgICBycV9w cmlvcml0eTsKLQotCS8qKgotCSAqIEBycl90czoKLQkgKgotCSAqIEZha2UgdGltZXN0YW1wIG9m IHRoZSBsYXN0IHBvcHBlZCBqb2IgZnJvbSB0aGUgZW50aXR5LgotCSAqLwotCWt0aW1lX3QJCQkJ cnJfdHM7Ci0KIAkvKioKIAkgKiBAam9iX3F1ZXVlOiB0aGUgbGlzdCBvZiBqb2JzIG9mIHRoaXMg ZW50aXR5LgogCSAqLwpAQCAtMjYzLDggKzI1MCw3IEBAIHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5 IHsKICAqIHN0cnVjdCBkcm1fc2NoZWRfcnEgLSBxdWV1ZSBvZiBlbnRpdGllcyB0byBiZSBzY2hl ZHVsZWQuCiAgKgogICogQHNjaGVkOiB0aGUgc2NoZWR1bGVyIHRvIHdoaWNoIHRoaXMgcnEgYmVs b25ncyB0by4KLSAqIEBsb2NrOiBwcm90ZWN0cyBAZW50aXRpZXMsIEByYl90cmVlX3Jvb3QsIEBy cl90cyBhbmQgQGhlYWRfcHJpby4KLSAqIEBycl90czogbW9ub3RvbmljYWxseSBpbmNyZW1lbnRp bmcgZmFrZSB0aW1lc3RhbXAgZm9yIFJSIG1vZGUuCisgKiBAbG9jazogcHJvdGVjdHMgQGVudGl0 aWVzLCBAcmJfdHJlZV9yb290IGFuZCBAaGVhZF9wcmlvLgogICogQGVudGl0aWVzOiBsaXN0IG9m IHRoZSBlbnRpdGllcyB0byBiZSBzY2hlZHVsZWQuCiAgKiBAcmJfdHJlZV9yb290OiByb290IG9m IHRpbWUgYmFzZWQgcHJpb3JpdHkgcXVldWUgb2YgZW50aXRpZXMgZm9yIEZJRk8gc2NoZWR1bGlu ZwogICogQGhlYWRfcHJpbzogcHJpb3JpdHkgb2YgdGhlIHRvcCB0cmVlIGVsZW1lbnQuCkBAIC0y NzgsNyArMjY0LDYgQEAgc3RydWN0IGRybV9zY2hlZF9ycSB7CiAKIAlzcGlubG9ja190CQkJbG9j azsKIAkvKiBGb2xsb3dpbmcgbWVtYmVycyBhcmUgcHJvdGVjdGVkIGJ5IHRoZSBAbG9jazogKi8K LQlrdGltZV90CQkJCXJyX3RzOwogCXN0cnVjdCBsaXN0X2hlYWQJCWVudGl0aWVzOwogCXN0cnVj dCByYl9yb290X2NhY2hlZAkJcmJfdHJlZV9yb290OwogCWVudW0gZHJtX3NjaGVkX3ByaW9yaXR5 CQloZWFkX3ByaW87CkBAIC0zNjQsMTMgKzM0OSw2IEBAIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2Ug KnRvX2RybV9zY2hlZF9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKTsKICAqIHRvIHNjaGVkdWxl IHRoZSBqb2IuCiAgKi8KIHN0cnVjdCBkcm1fc2NoZWRfam9iIHsKLQkvKioKLQkgKiBAc3VibWl0 X3RzOgotCSAqCi0JICogV2hlbiB0aGUgam9iIHdhcyBwdXNoZWQgaW50byB0aGUgZW50aXR5IHF1 ZXVlLgotCSAqLwotCWt0aW1lX3QgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0X3RzOwot CiAJLyoqCiAJICogQHNjaGVkOgogCSAqCkBAIC01NzQsMTEgKzU1Miw3IEBAIHN0cnVjdCBkcm1f c2NoZWRfYmFja2VuZF9vcHMgewogICogQGNyZWRpdF9jb3VudDogdGhlIGN1cnJlbnQgY3JlZGl0 IGNvdW50IG9mIHRoaXMgc2NoZWR1bGVyCiAgKiBAdGltZW91dDogdGhlIHRpbWUgYWZ0ZXIgd2hp Y2ggYSBqb2IgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzY2hlZHVsZXIuCiAgKiBAbmFtZTogbmFtZSBv ZiB0aGUgcmluZyBmb3Igd2hpY2ggdGhpcyBzY2hlZHVsZXIgaXMgYmVpbmcgdXNlZC4KLSAqIEBu dW1fdXNlcl9ycXM6IE51bWJlciBvZiBydW4tcXVldWVzLiBUaGlzIGlzIGF0IG1vc3QKLSAqICAg ICAgICAgICAgICAgIERSTV9TQ0hFRF9QUklPUklUWV9DT1VOVCwgYXMgdGhlcmUncyB1c3VhbGx5 IG9uZSBydW4tcXVldWUgcGVyCi0gKiAgICAgICAgICAgICAgICBwcmlvcml0eSwgYnV0IGNvdWxk IGJlIGxlc3MuCi0gKiBAbnVtX3JxczogRXF1YWwgdG8gQG51bV91c2VyX3JxcyBmb3IgRklGTyBh bmQgUlIgYW5kIDEgZm9yIHRoZSBGQUlSIHBvbGljeS4KLSAqIEBzY2hlZF9ycTogQW4gYWxsb2Nh dGVkIGFycmF5IG9mIHJ1bi1xdWV1ZXMgb2Ygc2l6ZSBAbnVtX3JxczsKKyAqIEBycTogU2NoZWR1 bGVyIHJ1biBxdWV1ZS4KICAqIEBqb2Jfc2NoZWR1bGVkOiBvbmNlIGRybV9zY2hlZF9lbnRpdHlf Zmx1c2goKSBpcyBjYWxsZWQgdGhlIHNjaGVkdWxlcgogICogICAgICAgICAgICAgICAgIHdhaXRz IG9uIHRoaXMgd2FpdCBxdWV1ZSB1bnRpbCBhbGwgdGhlIHNjaGVkdWxlZCBqb2JzIGFyZQogICog ICAgICAgICAgICAgICAgIGZpbmlzaGVkLgpAQCAtNjEwLDkgKzU4NCw3IEBAIHN0cnVjdCBkcm1f Z3B1X3NjaGVkdWxlciB7CiAJYXRvbWljX3QJCQljcmVkaXRfY291bnQ7CiAJbG9uZwkJCQl0aW1l b3V0OwogCWNvbnN0IGNoYXIJCQkqbmFtZTsKLQl1MzIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG51bV9ycXM7Ci0JdTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fdXNlcl9y cXM7Ci0Jc3RydWN0IGRybV9zY2hlZF9ycSAgICAgICAgICAgICAqKnNjaGVkX3JxOworCXN0cnVj dCBkcm1fc2NoZWRfcnEgICAgICAgICAgICAgKnJxOwogCXdhaXRfcXVldWVfaGVhZF90CQlqb2Jf c2NoZWR1bGVkOwogCWF0b21pYzY0X3QJCQlqb2JfaWRfY291bnQ7CiAJc3RydWN0IHdvcmtxdWV1 ZV9zdHJ1Y3QJCSpzdWJtaXRfd3E7Ci0tIAoyLjUyLjAKCg==