From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from m16.mail.163.com (m16.mail.163.com [117.135.210.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA0133112D2; Thu, 18 Dec 2025 09:11:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=117.135.210.5 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766049105; cv=none; b=WE8OHr1gHib7UO2uOFxu69YvE1xxIqM8MS18GEffFrrmWaQJ1Q8mbI+N1cV8e173x7UKFo766gDZE6uB8JMJ4qo4lcxwN0Zk10HndXugkQXBR1mUnSKiKWB61KYUk9O+Vy9VgwfXA8UXjyS5KOgqaezasTcRptfjbrA6fr9CXFk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766049105; c=relaxed/simple; bh=W1hZv3gGarOOYbZRUPS94ppd3YUhqzx3N9cMFr8aKCY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ffw3GJ143pffom8tzwNPTIPBBz3JnivYlM8DpHXP293R7sy3PjymrU5sAxQ3mljhDONJNvqTHYOF9wNf3BZfhbeiar5ib4+Ks00edwsg1wRuhfo37IaM/SmZuG8h6IojnPp7g6rReG+DJXKt4b5XL21KCr86r2Pk2wK2z94RdLM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b=IMNF5B4b; arc=none smtp.client-ip=117.135.210.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="IMNF5B4b" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:To:Subject:Date:Message-ID:MIME-Version; bh=W1 hZv3gGarOOYbZRUPS94ppd3YUhqzx3N9cMFr8aKCY=; b=IMNF5B4be//838JXib 3xep05bGRPdFEUiyXcTO9eycFWC5yX0wcUGg2ImqupDUZ9T/4MkhV9Tvrf48dRIR sqeAa7+0oMClHFaLJQrLwh5MrJ0Rxs+tO1h0XS5lCgRCCDtMbs0i41wOAk3ITaQD UN1szgUYw90vfDCw/JJ+1CoVQ= Received: from xwm-TianYi510Pro-14IMB.. (unknown []) by gzga-smtp-mtada-g0-4 (Coremail) with SMTP id _____wC3U84cxUNpI7dcBA--.210S8; Thu, 18 Dec 2025 17:10:59 +0800 (CST) From: Xiong Weimin <15927021679@163.com> To: "Michael S . Tsirkin" , David Hildenbrand , Jason Wang , Stefano Garzarella , Thomas Monjalon , David Marchand , Luca Boccassi , Kevin Traynor , Christian Ehrhardt , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Xueming Li , Maxime Coquelin , Chenbo Xia , Bruce Richardson Cc: kvm@vger.kernel.org, virtualization@lists.linux.dev, netdev@vger.kernel.org, xiongweimin Subject: [PATCH 06/10] drivers/infiniband/hw/virtio: Implement port management and QP modification verbs Date: Thu, 18 Dec 2025 17:09:46 +0800 Message-ID: <20251218091050.55047-7-15927021679@163.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251218091050.55047-1-15927021679@163.com> References: <20251218091050.55047-1-15927021679@163.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-CM-TRANSID:_____wC3U84cxUNpI7dcBA--.210S8 X-Coremail-Antispam: 1Uf129KBjvJXoW3tw4fCF4rtw13CFy8GFy5XFb_yoWkAFW3pa yxtFyUK3yDJ3W3W3Z7Ga1UZa9a9wn0yry7Gry3t343CF1jyryxZFyvyF13tFyUAry7Zryf WayUtrZ8Ga13ZrJanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jcfHUUUUUU= X-CM-SenderInfo: jprvmjixqsilmxzbiqqrwthudrp/xtbC0gOkLWlDxSMFUQAA3A RnJvbTogeGlvbmd3ZWltaW4gPHhpb25nd2VpbWluQGt5bGlub3MuY24+CgpUaGlzIGNvbW1pdCBh ZGRzIGVzc2VudGlhbCBSRE1BIHZlcmJzIGltcGxlbWVudGF0aW9uIGZvciB0aGUgdmlydGlvIFJE TUEgZHJpdmVyOgoKMS4gUG9ydCBtb2RpZmljYXRpb24gc3VwcG9ydCAodnJkbWFfbW9kaWZ5X3Bv cnQpOgogICAtIEFkZHMgSUJfUE9SVF9TSFVURE9XTiBmbGFnIGhhbmRsaW5nIGZvciBwb3J0IGRl YWN0aXZhdGlvbgogICAtIE1haW50YWlucyBwb3J0IGNhcGFiaWxpdHkgbWFzayBzdGF0ZQogICAt IEVuZm9yY2VzIHN0cmljdCBhdHRyaWJ1dGUgbWFzayB2YWxpZGF0aW9uCiAgIC0gUHJvdmlkZXMg cHJvcGVyIGxvY2tpbmcgd2l0aCBwb3J0X211dGV4CgoyLiBRdWV1ZSBQYWlyIG1vZGlmaWNhdGlv biBzdXBwb3J0ICh2cmRtYV9tb2RpZnlfcXApOgogICAtIEltcGxlbWVudHMgZnVsbCBRUCBhdHRy aWJ1dGUgdHJhbnNsYXRpb24gdG8gdmlydGlvIGNvbW1hbmRzCiAgIC0gSGFuZGxlcyBhbGwgc3Rh bmRhcmQgSUJfUVBfKiBhdHRyaWJ1dGUgbWFza3MgKDIxIGJpdHMpCiAgIC0gVXNlcyBlZmZpY2ll bnQgdHdvLWJ1ZmZlciBzY2hlbWUgZm9yIGRldmljZSBjb21tdW5pY2F0aW9uCiAgIC0gSW5jbHVk ZXMgY29tcHJlaGVuc2l2ZSBlcnJvciBoYW5kbGluZwoKS2V5IGZlYXR1cmVzOgotIE1pbmltYWwg cG9ydCBtb2RpZmljYXRpb24gc3VwcG9ydCBmb2N1c2VkIG9uIHNodXRkb3duIGNhcGFiaWxpdHkK LSBDb21wbGV0ZSBRUCBzdGF0ZSB0cmFuc2l0aW9uIGhhbmRsaW5nCi0gQXR0cmlidXRlLWJ5LWF0 dHJpYnV0ZSB0cmFuc2xhdGlvbiB3aXRoIDMyKyBmaWVsZHMgY292ZXJlZAotIFNhZmUgbWVtb3J5 IG1hbmFnZW1lbnQgd2l0aCBndWFyYW50ZWVkIGNsZWFudXAKLSBWZXJib3NlIGVycm9yIGxvZ2dp bmcgZm9yIGRlYnVnZ2luZwoKU2lnbmVkLW9mZi1ieTogWGlvbmcgV2VpbWluIDx4aW9uZ3dlaW1p bkBreWxpbm9zLmNuPgotLS0KIC4uLi9pbmZpbmliYW5kL2h3L3ZpcnRpby92cmRtYV9kZXZfYXBp LmggICAgICB8ICAxMiArCiAuLi4vZHJpdmVycy9pbmZpbmliYW5kL2h3L3ZpcnRpby92cmRtYV9p Yi5jICAgfCAyMjMgKysrKysrKysrKysrKysrKystCiAuLi4vZHJpdmVycy9pbmZpbmliYW5kL2h3 L3ZpcnRpby92cmRtYV9pYi5oICAgfCAgNTQgKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjg4IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saW51eC02LjE2LjgvZHJp dmVycy9pbmZpbmliYW5kL2h3L3ZpcnRpby92cmRtYV9kZXZfYXBpLmggYi9saW51eC02LjE2Ljgv ZHJpdmVycy9pbmZpbmliYW5kL2h3L3ZpcnRpby92cmRtYV9kZXZfYXBpLmgKaW5kZXggODRkYzA1 YTk2Li5kMGNlMDI2MDEgMTAwNjQ0Ci0tLSBhL2xpbnV4LTYuMTYuOC9kcml2ZXJzL2luZmluaWJh bmQvaHcvdmlydGlvL3ZyZG1hX2Rldl9hcGkuaAorKysgYi9saW51eC02LjE2LjgvZHJpdmVycy9p bmZpbmliYW5kL2h3L3ZpcnRpby92cmRtYV9kZXZfYXBpLmgKQEAgLTE0LDYgKzE0LDggQEAKIAog I2luY2x1ZGUgPHJkbWEvdnJkbWFfYWJpLmg+CiAKKyNpbmNsdWRlICJ2cmRtYV9pYi5oIgorCiAv KioKICAqIHN0cnVjdCB2cmRtYV9jb25maWcgLSBWaXJ0aW8gUkRNQSBkZXZpY2UgY29uZmlndXJh dGlvbgogICoKQEAgLTIxMyw2ICsyMTUsMTYgQEAgc3RydWN0IHZyZG1hX3JzcF9tYXBfbXJfc2cg ewogCV9fdTMyIG5wYWdlczsKIH07CiAKK3N0cnVjdCB2cmRtYV9jbWRfbW9kaWZ5X3FwIHsKKyAg ICBfX3UzMiBxcG47CisgICAgX191MzIgYXR0cl9tYXNrOworICAgIHN0cnVjdCB2cmRtYV9xcF9h dHRyIGF0dHJzOworfTsKKworc3RydWN0IHZyZG1hX3JzcF9tb2RpZnlfcXAgeworICAgIF9fdTMy IHFwbjsKK307CisKICNkZWZpbmUgVlJETUFfQ1RSTF9PSwkwCiAjZGVmaW5lIFZSRE1BX0NUUkxf RVJSCTEKIApkaWZmIC0tZ2l0IGEvbGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9ody92 aXJ0aW8vdnJkbWFfaWIuYyBiL2xpbnV4LTYuMTYuOC9kcml2ZXJzL2luZmluaWJhbmQvaHcvdmly dGlvL3ZyZG1hX2liLmMKaW5kZXggNzM4OTM1ZTNkLi4yZDlhNjEyZjMgMTAwNjQ0Ci0tLSBhL2xp bnV4LTYuMTYuOC9kcml2ZXJzL2luZmluaWJhbmQvaHcvdmlydGlvL3ZyZG1hX2liLmMKKysrIGIv bGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9ody92aXJ0aW8vdnJkbWFfaWIuYwpAQCAt NTUsNiArNTUsMzcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjbWRfc3RyW10gPSB7CiAJ W1ZJUlRJT19SRE1BX0NNRF9SRVFfTk9USUZZX0NRXQk9ICJSRVFfTk9USUZZX0NRIiwKIH07CiAK K3N0YXRpYyB2b2lkIGliX3FwX2NhcF90b192cmRtYShzdHJ1Y3QgdnJkbWFfcXBfY2FwICpkc3Qs IGNvbnN0IHN0cnVjdCBpYl9xcF9jYXAgKnNyYykKK3sKKwkvL2RzdC0+bWF4X3NlbmRfd3IgPSBz cmMtPm1heF9zZW5kX3dyOworCWRzdC0+bWF4X3NlbmRfd3IgPSBzcmMtPm1heF9zZW5kX3dyOwor CWRzdC0+bWF4X3JlY3Zfd3IgPSBzcmMtPm1heF9yZWN2X3dyOworCWRzdC0+bWF4X3NlbmRfc2dl ID0gc3JjLT5tYXhfc2VuZF9zZ2U7CisJZHN0LT5tYXhfcmVjdl9zZ2UgPSBzcmMtPm1heF9yZWN2 X3NnZTsKKwlkc3QtPm1heF9pbmxpbmVfZGF0YSA9IHNyYy0+bWF4X2lubGluZV9kYXRhOworfQor CitzdGF0aWMgdm9pZCBpYl9nbG9iYWxfcm91dGVfdG9fdnJkbWEoc3RydWN0IHZyZG1hX2dsb2Jh bF9yb3V0ZSAqZHN0LAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpYl9nbG9iYWxfcm91dGUgKnNy YykKK3sKKwlkc3QtPmRnaWQgPSBzcmMtPmRnaWQ7CisJZHN0LT5mbG93X2xhYmVsID0gc3JjLT5m bG93X2xhYmVsOworCWRzdC0+c2dpZF9pbmRleCA9IHNyYy0+c2dpZF9pbmRleDsKKwlkc3QtPmhv cF9saW1pdCA9IHNyYy0+aG9wX2xpbWl0OworCWRzdC0+dHJhZmZpY19jbGFzcyA9IHNyYy0+dHJh ZmZpY19jbGFzczsKK30KKworc3RhdGljIHZvaWQgcmRtYV9haF9hdHRyX3RvX3ZyZG1hKHN0cnVj dCB2cmRtYV9haF9hdHRyICpkc3QsCisJCQkgICAgY29uc3Qgc3RydWN0IHJkbWFfYWhfYXR0ciAq c3JjKQoreworCWliX2dsb2JhbF9yb3V0ZV90b192cmRtYSgmZHN0LT5ncmgsIHJkbWFfYWhfcmVh ZF9ncmgoc3JjKSk7CisJZHN0LT5zbCA9IHJkbWFfYWhfZ2V0X3NsKHNyYyk7CisJZHN0LT5zdGF0 aWNfcmF0ZSA9IHJkbWFfYWhfZ2V0X3N0YXRpY19yYXRlKHNyYyk7CisJZHN0LT5wb3J0X251bSA9 IHJkbWFfYWhfZ2V0X3BvcnRfbnVtKHNyYyk7CisJZHN0LT5haF9mbGFncyA9IHJkbWFfYWhfZ2V0 X2FoX2ZsYWdzKHNyYyk7CisJbWVtY3B5KCZkc3QtPnJvY2UsICZzcmMtPnJvY2UsIHNpemVvZihz dHJ1Y3Qgcm9jZV9haF9hdHRyKSk7Cit9CisKIC8qKgogICogdnJkbWFfZXhlY192ZXJic19jbWQg LSBFeGVjdXRlIGEgdmVyYnMgY29tbWFuZCB2aWEgY29udHJvbCB2aXJ0cXVldWUKICAqIEB2cmRl djogVlJETUEgZGV2aWNlCkBAIC0xOTIyLDYgKzE5NTMsMTk0IEBAIHZvaWQgdnJkbWFfbW1hcF9m cmVlKHN0cnVjdCByZG1hX3VzZXJfbW1hcF9lbnRyeSAqcmRtYV9lbnRyeSkKIAlrZnJlZShlbnRy eSk7CiB9CiAKKy8qKgorICogdnJkbWFfbW9kaWZ5X3BvcnQgLSBNb2RpZnkgcG9ydCBhdHRyaWJ1 dGVzIChsaW1pdGVkIHN1cHBvcnQpCisgKiBAaWJkZXY6CVZlcmJzIGRldmljZQorICogQHBvcnQ6 CVBvcnQgbnVtYmVyICgxLWluZGV4ZWQpCisgKiBAbWFzazoJQml0bWFzayBvZiBhdHRyaWJ1dGVz IHRvIG1vZGlmeQorICogQHByb3BzOglOZXcgcG9ydCBwcm9wZXJ0aWVzCisgKgorICogQ3VycmVu dGx5IG9ubHkgc3VwcG9ydHMgSUJfUE9SVF9TSFVURE9XTiBmbGFnLgorICogT3RoZXIgZmxhZ3Mg YXJlIHJlamVjdGVkIHdpdGggLUVPUE5PVFNVUFAuCisgKgorICogQ29udGV4dDogQ2FuIHNsZWVw IChob2xkcyBtdXRleCkuCisgKiBSZXR1cm46CisgKiAqIDAgb24gc3VjY2VzcworICogKiAtRU9Q Tk9UU1VQUCBpZiB1bnN1cHBvcnRlZCBtYXNrIGJpdHMgc2V0CisgKiAqIGVycm9yIGNvZGUgZnJv bSBpYl9xdWVyeV9wb3J0KCkgb24gZmFpbHVyZQorICovCitzdGF0aWMgaW50IHZyZG1hX21vZGlm eV9wb3J0KHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LCB1MzIgcG9ydCwgaW50IG1hc2ssCisJCQkg ICAgIHN0cnVjdCBpYl9wb3J0X21vZGlmeSAqcHJvcHMpCit7CisJc3RydWN0IHZyZG1hX2RldiAq dmRldiA9IHRvX3ZkZXYoaWJkZXYpOworCXN0cnVjdCBpYl9wb3J0X2F0dHIgYXR0cjsKKwlpbnQg cmV0OworCisJLyogT25seSBhbGxvdyBJQl9QT1JUX1NIVVRET1dOOyByZWplY3QgYWxsIG90aGVy cyAqLworCWlmIChtYXNrICYgfklCX1BPUlRfU0hVVERPV04pIHsKKwkJcHJfd2FybigidlJETUE6 IHVuc3VwcG9ydGVkIHBvcnQgbW9kaWZ5IG1hc2sgJSN4XG4iLCBtYXNrKTsKKwkJcmV0dXJuIC1F T1BOT1RTVVBQOworCX0KKworCW11dGV4X2xvY2soJnZkZXYtPnBvcnRfbXV0ZXgpOworCisJLyog UXVlcnkgY3VycmVudCBwb3J0IHN0YXRlIChyZXF1aXJlZCBieSBzcGVjIGJlZm9yZSBtb2RpZnkg aW4gc29tZSBjYXNlcykgKi8KKwlyZXQgPSBpYl9xdWVyeV9wb3J0KGliZGV2LCBwb3J0LCAmYXR0 cik7CisJaWYgKHJldCkgeworCQlwcl9lcnIoInZSRE1BOiBmYWlsZWQgdG8gcXVlcnkgcG9ydCAl dTogJWRcbiIsIHBvcnQsIHJldCk7CisJCWdvdG8gb3V0X3VubG9jazsKKwl9CisKKwkvKiBBcHBs eSBjYXBhYmlsaXR5IG1hc2sgY2hhbmdlcyAqLworCXZkZXYtPnBvcnRfY2FwX21hc2sgfD0gcHJv cHMtPnNldF9wb3J0X2NhcF9tYXNrOworCXZkZXYtPnBvcnRfY2FwX21hc2sgJj0gfnByb3BzLT5j bHJfcG9ydF9jYXBfbWFzazsKKworCS8qIEhhbmRsZSBzaHV0ZG93biByZXF1ZXN0ICovCisJaWYg KG1hc2sgJiBJQl9QT1JUX1NIVVRET1dOKSB7CisJCXZkZXYtPmliX2FjdGl2ZSA9IGZhbHNlOwor CQlwcl9pbmZvKCJ2UkRNQTogcG9ydCAldSBtYXJrZWQgYXMgaW5hY3RpdmVcbiIsIHBvcnQpOwor CX0KKworCXJldCA9IDA7ICAvKiBTdWNjZXNzICovCisKK291dF91bmxvY2s6CisJbXV0ZXhfdW5s b2NrKCZ2ZGV2LT5wb3J0X211dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIHZyZG1h X21vZGlmeV9xcCAtIE1vZGlmeSBRUCBhdHRyaWJ1dGVzIHZpYSBiYWNrZW5kCisgKiBAaWJxcDoJ UXVldWUgcGFpciB0byBtb2RpZnkKKyAqIEBhdHRyOglOZXcgUVAgYXR0cmlidXRlcworICogQGF0 dHJfbWFzazoJV2hpY2ggZmllbGRzIGluIEBhdHRyIGFyZSB2YWxpZAorICogQHVkYXRhOglVc2Vy IGRhdGEgKHVudXNlZCBoZXJlKQorICoKKyAqIFNlbmRzIGEgVklSVElPX1JETUFfQ01EX01PRElG WV9RUCBjb21tYW5kIHRvIHRoZSBob3N0IGJhY2tlbmQKKyAqIHRvIHVwZGF0ZSB0aGUgUVAncyBz dGF0ZSBhbmQgcGFyYW1ldGVycy4KKyAqCisgKiBDb250ZXh0OiBQcm9jZXNzIGNvbnRleHQgKG1h eSBzbGVlcCBkdWUgdG8gbWVtb3J5IGFsbG9jYXRpb24pLgorICogUmV0dXJuOgorICogKiAwIG9u IHN1Y2Nlc3MKKyAqICogLUVOT01FTSBpZiBjb21tYW5kIGJ1ZmZlciBhbGxvY2F0aW9uIGZhaWxz CisgKiAqIC1FSU8gb3Igb3RoZXIgbmVnYXRpdmUgZXJybm8gb24gY29tbXVuaWNhdGlvbiBmYWls dXJlCisgKi8KK3N0YXRpYyBpbnQgdnJkbWFfbW9kaWZ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwg c3RydWN0IGliX3FwX2F0dHIgKmF0dHIsCisJCSAgICBpbnQgYXR0cl9tYXNrLCBzdHJ1Y3QgaWJf dWRhdGEgKnVkYXRhKQoreworCXN0cnVjdCB2cmRtYV9kZXYgKnZkZXYgPSB0b192ZGV2KGlicXAt PmRldmljZSk7CisJc3RydWN0IHZyZG1hX2NtZF9tb2RpZnlfcXAgKmNtZDsKKwlzdHJ1Y3QgdnJk bWFfcnNwX21vZGlmeV9xcCAqcnNwOworCXN0cnVjdCBzY2F0dGVybGlzdCBpbiwgb3V0OworCWlu dCByYzsKKworCS8qIEFsbG9jYXRlIGNvbW1hbmQgYW5kIHJlc3BvbnNlIGJ1ZmZlcnMgKi8KKwlj bWQgPSBremFsbG9jKHNpemVvZigqY21kKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjbWQpCisJCXJl dHVybiAtRU5PTUVNOworCisJcnNwID0ga3phbGxvYyhzaXplb2YoKnJzcCksIEdGUF9LRVJORUwp OworCWlmICghcnNwKSB7CisJCWtmcmVlKGNtZCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwor CS8qIEZpbGwgY29tbWFuZCBoZWFkZXIgKi8KKwljbWQtPnFwbiA9IHRvX3ZxcChpYnFwKS0+cXBf aGFuZGxlOworCWNtZC0+YXR0cl9tYXNrID0gYXR0cl9tYXNrICYgKCgxVSA8PCAyMSkgLSAxKTsg IC8qIExpbWl0IHRvIDIxIGJpdHMgKi8KKworCS8qIENvbmRpdGlvbmFsbHkgY29weSBmaWVsZHMg YmFzZWQgb24gYXR0cl9tYXNrICovCisJaWYgKGF0dHJfbWFzayAmIElCX1FQX1NUQVRFKQorCQlj bWQtPmF0dHJzLnFwX3N0YXRlID0gYXR0ci0+cXBfc3RhdGU7CisKKwlpZiAoYXR0cl9tYXNrICYg SUJfUVBfQ1VSX1NUQVRFKQorCQljbWQtPmF0dHJzLmN1cl9xcF9zdGF0ZSA9IGF0dHItPmN1cl9x cF9zdGF0ZTsKKworCWlmIChhdHRyX21hc2sgJiBJQl9RUF9FTl9TUURfQVNZTkNfTk9USUZZKQor CQljbWQtPmF0dHJzLmVuX3NxZF9hc3luY19ub3RpZnkgPSBhdHRyLT5lbl9zcWRfYXN5bmNfbm90 aWZ5OworCisJaWYgKGF0dHJfbWFzayAmIElCX1FQX0FDQ0VTU19GTEFHUykKKwkJY21kLT5hdHRy cy5xcF9hY2Nlc3NfZmxhZ3MgPSBhdHRyLT5xcF9hY2Nlc3NfZmxhZ3M7CisKKwlpZiAoYXR0cl9t YXNrICYgSUJfUVBfUEtFWV9JTkRFWCkKKwkJY21kLT5hdHRycy5wa2V5X2luZGV4ID0gYXR0ci0+ cGtleV9pbmRleDsKKworCWlmIChhdHRyX21hc2sgJiBJQl9RUF9QT1JUKQorCQljbWQtPmF0dHJz LnBvcnRfbnVtID0gYXR0ci0+cG9ydF9udW07CisKKwlpZiAoYXR0cl9tYXNrICYgSUJfUVBfUUtF WSkKKwkJY21kLT5hdHRycy5xa2V5ID0gYXR0ci0+cWtleTsKKworCWlmIChhdHRyX21hc2sgJiBJ Ql9RUF9BVikKKwkJcmRtYV9haF9hdHRyX3RvX3ZyZG1hKCZjbWQtPmF0dHJzLmFoX2F0dHIsICZh dHRyLT5haF9hdHRyKTsKKworCWlmIChhdHRyX21hc2sgJiBJQl9RUF9BTFRfUEFUSCkKKwkJcmRt YV9haF9hdHRyX3RvX3ZyZG1hKCZjbWQtPmF0dHJzLmFsdF9haF9hdHRyLCAmYXR0ci0+YWx0X2Fo X2F0dHIpOworCisJaWYgKGF0dHJfbWFzayAmIElCX1FQX1BBVEhfTVRVKQorCQljbWQtPmF0dHJz LnBhdGhfbXR1ID0gYXR0ci0+cGF0aF9tdHU7CisKKwlpZiAoYXR0cl9tYXNrICYgSUJfUVBfVElN RU9VVCkKKwkJY21kLT5hdHRycy50aW1lb3V0ID0gYXR0ci0+dGltZW91dDsKKworCWlmIChhdHRy X21hc2sgJiBJQl9RUF9SRVRSWV9DTlQpCisJCWNtZC0+YXR0cnMucmV0cnlfY250ID0gYXR0ci0+ cmV0cnlfY250OworCisJaWYgKGF0dHJfbWFzayAmIElCX1FQX1JOUl9SRVRSWSkKKwkJY21kLT5h dHRycy5ybnJfcmV0cnkgPSBhdHRyLT5ybnJfcmV0cnk7CisKKwlpZiAoYXR0cl9tYXNrICYgSUJf UVBfTUlOX1JOUl9USU1FUikKKwkJY21kLT5hdHRycy5taW5fcm5yX3RpbWVyID0gYXR0ci0+bWlu X3Jucl90aW1lcjsKKworCWlmIChhdHRyX21hc2sgJiBJQl9RUF9NQVhfUVBfUkRfQVRPTUlDKQor CQljbWQtPmF0dHJzLm1heF9yZF9hdG9taWMgPSBhdHRyLT5tYXhfcmRfYXRvbWljOworCisJaWYg KGF0dHJfbWFzayAmIElCX1FQX01BWF9ERVNUX1JEX0FUT01JQykKKwkJY21kLT5hdHRycy5tYXhf ZGVzdF9yZF9hdG9taWMgPSBhdHRyLT5tYXhfZGVzdF9yZF9hdG9taWM7CisKKwlpZiAoYXR0cl9t YXNrICYgSUJfUVBfUEFUSF9NSUdfU1RBVEUpCisJCWNtZC0+YXR0cnMucGF0aF9taWdfc3RhdGUg PSBhdHRyLT5wYXRoX21pZ19zdGF0ZTsKKworCWlmIChhdHRyX21hc2sgJiBJQl9RUF9DQVApCisJ CWliX3FwX2NhcF90b192cmRtYSgmY21kLT5hdHRycy5jYXAsICZhdHRyLT5jYXApOworCisJaWYg KGF0dHJfbWFzayAmIElCX1FQX0RFU1RfUVBOKQorCQljbWQtPmF0dHJzLmRlc3RfcXBfbnVtID0g YXR0ci0+ZGVzdF9xcF9udW07CisKKwlpZiAoYXR0cl9tYXNrICYgSUJfUVBfUlFfUFNOKQorCQlj bWQtPmF0dHJzLnJxX3BzbiA9IGF0dHItPnJxX3BzbjsKKworCWlmIChhdHRyX21hc2sgJiBJQl9R UF9TUV9QU04pCisJCWNtZC0+YXR0cnMuc3FfcHNuID0gYXR0ci0+c3FfcHNuOworCisJY21kLT5h dHRycy5hbHRfcGtleV9pbmRleCA9IGF0dHItPmFsdF9wa2V5X2luZGV4OworCWNtZC0+YXR0cnMu YWx0X3BvcnRfbnVtID0gYXR0ci0+YWx0X3BvcnRfbnVtOworCWNtZC0+YXR0cnMuYWx0X3RpbWVv dXQgPSBhdHRyLT5hbHRfdGltZW91dDsKKworCWlmIChhdHRyX21hc2sgJiBJQl9RUF9SQVRFX0xJ TUlUKQorCQljbWQtPmF0dHJzLnJhdGVfbGltaXQgPSBhdHRyLT5yYXRlX2xpbWl0OworCisJLyog UHJlcGFyZSBzY2F0dGVybGlzdHMgZm9yIHZpcnRxdWV1ZSBJL08gKi8KKwlzZ19pbml0X29uZSgm aW4sIGNtZCwgc2l6ZW9mKCpjbWQpKTsKKwlzZ19pbml0X29uZSgmb3V0LCByc3AsIHNpemVvZigq cnNwKSk7CisKKwkvKiBTZW5kIGNvbW1hbmQgdG8gYmFja2VuZCAqLworCXJjID0gdnJkbWFfZXhl Y192ZXJic19jbWQodmRldiwgVklSVElPX1JETUFfQ01EX01PRElGWV9RUCwgJmluLCAmb3V0KTsK KwlpZiAocmMpIHsKKwkJZGV2X2VycigmdmRldi0+dmRldi0+ZGV2LAorCQkJIlZJUlRJT19SRE1B X0NNRF9NT0RJRllfUVAgZmFpbGVkOiBxcG49MHgleCwgZXJyPSVkXG4iLAorCQkJY21kLT5xcG4s IHJjKTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisKKwkvKiBPcHRpb25hbDogVXBkYXRlIGxvY2Fs IFFQIHN0YXRlIGJhc2VkIG9uIHJlc3BvbnNlIGlmIG5lZWRlZCAqLworCS8vIGUuZy4sIHRvX3Zx cChpYnFwKS0+c3RhdGUgPSByc3AtPm5ld19zdGF0ZTsKKworb3V0X2ZyZWU6CisJa2ZyZWUocnNw KTsKKwlrZnJlZShjbWQpOworCXJldHVybiByYzsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBp Yl9kZXZpY2Vfb3BzIHZyZG1hX2Rldl9vcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJ LnV2ZXJic19hYmlfdmVyID0gVklSVElPX1JETUFfQUJJX1ZFUlNJT04sCkBAIC0xOTUwLDcgKzIx NjksOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGliX2RldmljZV9vcHMgdnJkbWFfZGV2X29wcyA9 IHsKIAkuZ2V0X2xpbmtfbGF5ZXIgPSB2cmRtYV9wb3J0X2xpbmtfbGF5ZXIsCiAJLm1hcF9tcl9z ZyA9IHZyZG1hX21hcF9tcl9zZywKIAkubW1hcCA9IHZyZG1hX21tYXAsCi0JLm1tYXBfZnJlZSA9 IHZyZG1hX21tYXBfZnJlZSwJCQorCS5tbWFwX2ZyZWUgPSB2cmRtYV9tbWFwX2ZyZWUsCisJLm1v ZGlmeV9wb3J0ID0gdnJkbWFfbW9kaWZ5X3BvcnQsCisJLm1vZGlmeV9xcCA9IHZyZG1hX21vZGlm eV9xcCwJCQkKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvbGludXgtNi4xNi44L2RyaXZlcnMvaW5m aW5pYmFuZC9ody92aXJ0aW8vdnJkbWFfaWIuaCBiL2xpbnV4LTYuMTYuOC9kcml2ZXJzL2luZmlu aWJhbmQvaHcvdmlydGlvL3ZyZG1hX2liLmgKaW5kZXggNjc1OWM0MzQ5Li5lYWZmMzdjM2MgMTAw NjQ0Ci0tLSBhL2xpbnV4LTYuMTYuOC9kcml2ZXJzL2luZmluaWJhbmQvaHcvdmlydGlvL3ZyZG1h X2liLmgKKysrIGIvbGludXgtNi4xNi44L2RyaXZlcnMvaW5maW5pYmFuZC9ody92aXJ0aW8vdnJk bWFfaWIuaApAQCAtMTczLDYgKzE3Myw2MCBAQCBzdHJ1Y3QgdnJkbWFfcXAgewogCXN0cnVjdCB2 cmRtYV91c2VyX21tYXBfZW50cnkgKnJxX2VudHJ5OyAvKiBNbWFwIGVudHJ5IGZvciBSUSBidWZm ZXIgKi8KIH07CiAKK3N0cnVjdCB2cmRtYV9nbG9iYWxfcm91dGUgeworCXVuaW9uIGliX2dpZAkJ ZGdpZDsKKwl1aW50MzJfdAkJZmxvd19sYWJlbDsKKwl1aW50OF90CQkJc2dpZF9pbmRleDsKKwl1 aW50OF90CQkJaG9wX2xpbWl0OworCXVpbnQ4X3QJCQl0cmFmZmljX2NsYXNzOworfTsKKworc3Ry dWN0IHZyZG1hX2FoX2F0dHIgeworCXN0cnVjdCB2cmRtYV9nbG9iYWxfcm91dGUJZ3JoOworCXVp bnQ4X3QJCXNsOworCXVpbnQ4X3QJCXN0YXRpY19yYXRlOworCXVpbnQ4X3QJCXBvcnRfbnVtOwor CXVpbnQ4X3QJCWFoX2ZsYWdzOworCXN0cnVjdCByb2NlX2FoX2F0dHIgcm9jZTsKK307CisKK3N0 cnVjdCB2cmRtYV9xcF9jYXAgeworCXVpbnQzMl90CQltYXhfc2VuZF93cjsKKwl1aW50MzJfdAkJ bWF4X3JlY3Zfd3I7CisJdWludDMyX3QJCW1heF9zZW5kX3NnZTsKKwl1aW50MzJfdAkJbWF4X3Jl Y3Zfc2dlOworCXVpbnQzMl90CQltYXhfaW5saW5lX2RhdGE7Cit9OworCitzdHJ1Y3QgdnJkbWFf cXBfYXR0ciB7CisJZW51bSBpYl9xcF9zdGF0ZQlxcF9zdGF0ZTsKKwllbnVtIGliX3FwX3N0YXRl CWN1cl9xcF9zdGF0ZTsKKwllbnVtIGliX210dQkJcGF0aF9tdHU7CisJZW51bSBpYl9taWdfc3Rh dGUJcGF0aF9taWdfc3RhdGU7CisJdWludDMyX3QJCQlxa2V5OworCXVpbnQzMl90CQkJcnFfcHNu OworCXVpbnQzMl90CQkJc3FfcHNuOworCXVpbnQzMl90CQkJZGVzdF9xcF9udW07CisJdWludDMy X3QJCQlxcF9hY2Nlc3NfZmxhZ3M7CisJdWludDE2X3QJCQlwa2V5X2luZGV4OworCXVpbnQxNl90 CQkJYWx0X3BrZXlfaW5kZXg7CisJdWludDhfdAkJCWVuX3NxZF9hc3luY19ub3RpZnk7CisJdWlu dDhfdAkJCXNxX2RyYWluaW5nOworCXVpbnQ4X3QJCQltYXhfcmRfYXRvbWljOworCXVpbnQ4X3QJ CQltYXhfZGVzdF9yZF9hdG9taWM7CisJdWludDhfdAkJCW1pbl9ybnJfdGltZXI7CisJdWludDhf dAkJCXBvcnRfbnVtOworCXVpbnQ4X3QJCQl0aW1lb3V0OworCXVpbnQ4X3QJCQlyZXRyeV9jbnQ7 CisJdWludDhfdAkJCXJucl9yZXRyeTsKKwl1aW50OF90CQkJYWx0X3BvcnRfbnVtOworCXVpbnQ4 X3QJCQlhbHRfdGltZW91dDsKKwl1aW50MzJfdAkJCXJhdGVfbGltaXQ7CisJc3RydWN0IHZyZG1h X3FwX2NhcAljYXA7CisJc3RydWN0IHZyZG1hX2FoX2F0dHIJYWhfYXR0cjsKKwlzdHJ1Y3QgdnJk bWFfYWhfYXR0cglhbHRfYWhfYXR0cjsKK307CisKIC8qKgogICogc3RydWN0IHZyZG1hX21yIC0g U29mdHdhcmUgc3RhdGUgb2YgYSBWaXJ0aW8tUkRNQSBNZW1vcnkgUmVnaW9uIChNUikKICAqIEBp Ym1yOgkJSW5maW5pQmFuZCBjb3JlIE1SIG9iamVjdCAoY29udGFpbnMgcmtleSwgbGtleSwgZXRj LikKLS0gCjIuNDMuMAoK