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 D0D3EEDEC1B for ; Wed, 4 Mar 2026 07:13:22 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 42AF210E668; Wed, 4 Mar 2026 07:13:22 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="fsVIuT9B"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by gabe.freedesktop.org (Postfix) with ESMTPS id 710C410E660; Wed, 4 Mar 2026 07:13:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772608400; x=1804144400; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=9I7w/uGsTGZQnCCl79vrnv8q2zD76hbd7qHSNCNi6Jo=; b=fsVIuT9BzlkQJbsBq3g2yCgLDcbMcZ2/UoN3/Pa+c8os/a8T6BDZ2Bi9 pZ7RtRmlt7vJwltOz3BZLVsru87MdMHjwmLgf8MdrnjT1jKurhHxYTVOd 2v4fWL1t+SdOeYPD5qA195w0ZRYv4pFQ14UMdiI3TxasKnYnUhE8vUXrq SANCul1OZIh951ckxUseXUy8tearOtk7Rh2dlP9nHSiwYE3m0T7zd8TkE rFFS1+Jr+QAAD5LvKhceYT9J3bf8pXf4jtRhAIHXtRCgQt4UA3ZjA7IJn fWgqwj/2Y/OobnLDBtCoPpdmwNT2gIYPhLtTeRfgXTJFkoAATI7naJtGH w==; X-CSE-ConnectionGUID: GU5bheCZR4WRJL6iWoTmIw== X-CSE-MsgGUID: C2QmE+LST5+J2qxiE+IvnA== X-IronPort-AV: E=McAfee;i="6800,10657,11718"; a="61236969" X-IronPort-AV: E=Sophos;i="6.21,323,1763452800"; d="scan'208";a="61236969" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2026 23:13:20 -0800 X-CSE-ConnectionGUID: oCWgrZrYR5ao8YW5ntGstg== X-CSE-MsgGUID: hMVhMceWRyC8tD7ZE1DvEA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,323,1763452800"; d="scan'208";a="256141154" Received: from rtauro-desk.iind.intel.com ([10.190.238.50]) by smtpauth.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2026 23:13:15 -0800 From: Riana Tauro To: intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: aravind.iddamsetty@linux.intel.com, anshuman.gupta@intel.com, rodrigo.vivi@intel.com, joonas.lahtinen@linux.intel.com, simona.vetter@ffwll.ch, airlied@gmail.com, pratik.bari@intel.com, joshua.santosh.ranjan@intel.com, ashwin.kumar.kulkarni@intel.com, shubham.kumar@intel.com, ravi.kishore.koppuravuri@intel.com, raag.jadav@intel.com, anvesh.bakwad@intel.com, Riana Tauro Subject: [PATCH v10 2/5] drm/xe/xe_drm_ras: Add support for XE DRM RAS Date: Wed, 4 Mar 2026 13:14:09 +0530 Message-ID: <20260304074412.464435-9-riana.tauro@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260304074412.464435-7-riana.tauro@intel.com> References: <20260304074412.464435-7-riana.tauro@intel.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" QWxsb2NhdGUgY29ycmVjdGFibGUsIHVuY29ycmVjdGFibGUgbm9kZXMgZm9yIGV2ZXJ5IHhlIGRl dmljZS4gRWFjaCBub2RlCmNvbnRhaW5zIGVycm9yIGNvbXBvbmVudCwgY291bnRlcnMgYW5kIHJl c3BlY3RpdmUgcXVlcnkgY291bnRlciBmdW5jdGlvbnMuCgpBZGQgYmFzaWMgZnVuY3Rpb25hbGl0 eSB0byBjcmVhdGUgYW5kIHJlZ2lzdGVyIGRybSBub2Rlcy4KCkJlbG93IG9wZXJhdGlvbnMgY2Fu IGJlIHBlcmZvcm1lZCB1c2luZyBHZW5lcmljIG5ldGxpbmsgRFJNIFJBUyBpbnRlcmZhY2U6Cgox KSBMaXN0IE5vZGVzOgoKICAgICQgc3VkbyB5bmwgLS1mYW1pbHkgZHJtX3JhcyAtLWR1bXAgbGlz dC1ub2RlcwogICAgW3snZGV2aWNlLW5hbWUnOiAnMDAwMDowMzowMC4wJywKICAgICAgJ25vZGUt aWQnOiAwLAogICAgICAnbm9kZS1uYW1lJzogJ2NvcnJlY3RhYmxlLWVycm9ycycsCiAgICAgICdu b2RlLXR5cGUnOiAnZXJyb3ItY291bnRlcid9LAogICAgIHsnZGV2aWNlLW5hbWUnOiAnMDAwMDow MzowMC4wJywKICAgICAgJ25vZGUtaWQnOiAxLAogICAgICAnbm9kZS1uYW1lJzogJ3VuY29ycmVj dGFibGUtZXJyb3JzJywKICAgICAgJ25vZGUtdHlwZSc6ICdlcnJvci1jb3VudGVyJ31dCgoyKSBH ZXQgRXJyb3IgY291bnRlcnM6CgogICAgJCBzdWRvIHlubCAtLWZhbWlseSBkcm1fcmFzIC0tZHVt cCBnZXQtZXJyb3ItY291bnRlciAtLWpzb24gJ3sibm9kZS1pZCI6MH0nCiAgICBbeydlcnJvci1p ZCc6IDEsICdlcnJvci1uYW1lJzogJ2NvcmUtY29tcHV0ZScsICdlcnJvci12YWx1ZSc6IDB9LAog ICAgeydlcnJvci1pZCc6IDIsICdlcnJvci1uYW1lJzogJ3NvYy1pbnRlcm5hbCcsICdlcnJvci12 YWx1ZSc6IDB9XQoKMykgR2V0IHNwZWNpZmljIEVycm9yIGNvdW50ZXI6CgogICAgJCBzdWRvIHlu bCAtLWZhbWlseSBkcm1fcmFzIC0tZG8gZ2V0LWVycm9yLWNvdW50ZXIgLS1qc29uICd7Im5vZGUt aWQiOjAsICJlcnJvci1pZCI6MX0nCiAgICB7J2Vycm9yLWlkJzogMSwgJ2Vycm9yLW5hbWUnOiAn Y29yZS1jb21wdXRlJywgJ2Vycm9yLXZhbHVlJzogMH0KClNpZ25lZC1vZmYtYnk6IFJpYW5hIFRh dXJvIDxyaWFuYS50YXVyb0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBSYWFnIEphZGF2IDxyYWFn LmphZGF2QGludGVsLmNvbT4KLS0tCnYyOiBBZGQgSUQncyBhbmQgbmFtZXMgYXMgdUFQSSAoUm9k cmlnbykKICAgIEFkZCBkb2N1bWVudGF0aW9uCiAgICBNb2RpZnkgY29tbWl0IG1lc3NhZ2UKCnYz OiByZW1vdmUgJ2Vycm9yJyBmcm9tIGNvdW50ZXJzCiAgICB1c2UgZHJtbV9rY2FsbG9jCiAgICBh ZGQgYSBmb3JfZWFjaCBmb3Igc2V2ZXJpdHkKICAgIGRpZmZlcmVudGl0YXRlIGVycm9yIGNsYXNz ZXMgYW5kIHNldmVyaXR5IGluIHVhcGkgKFJhYWcpCiAgICBVc2UgY29ycmVjdGFibGUgYW5kIHVu Y29ycmVjdGFibGUgaW4gdWFwaSAoUHJhdGlrIC8gQXJhdmluZCkKCnY0OiBjaGFuZ2UgVUFQSSBl bnVtcwogICAgc3BsaXQgcGF0Y2hlcwogICAgbWFrZSBkcm1fa2NhbGxvYyByb2J1c3QKICAgIGZp eCBmdW5jdGlvbiBuYW1lcyBhbmQgbWVtb3J5IGxlYWsgKFJhYWcpCiAgICBhZGQgbnVsbCBwb2lu dGVyIGNoZWNrIGZvciBkZXZpY2VfbmFtZQogICAgc3RhcnQgbG9vcCBjb3VudGVyIGZyb20gMQoK djU6IHJlb3JkZXIgbGludXggaW5jbHVkZXMKICAgIHJlbmFtZSB0byBlcnJvcl9jb21wb25lbnRz CiAgICB1c2UgZHJtbV9hY3Rpb24gZm9yIGRlLXJlZ2lzdGVyYXRpb24KICAgIHJlbmFtZSB4ZV9k cm1fcmFzX2FsbG9jYXRlX25vZGVzIHRvIHhlX2RybV9yYXNfaW5pdAogICAgZnJlZSBpbmZvIGlm IERSTSBSQVMgcmVnaXN0ZXJhdGlvbiBmYWlscyAoUmFhZykKCnY2OiBjbGVhbnVwIG5vZGUgcGFy YW1ldGVycyBpbiBMSUZPIG9yZGVyCiAgICBwcmludCBlcnJvcnMgZm9yIGZhaWx1cmVzIChSYWFn KQotLS0KIGRyaXZlcnMvZ3B1L2RybS94ZS9NYWtlZmlsZSAgICAgICAgICAgfCAgIDEgKwogZHJp dmVycy9ncHUvZHJtL3hlL3hlX2RldmljZV90eXBlcy5oICB8ICAgNCArCiBkcml2ZXJzL2dwdS9k cm0veGUveGVfZHJtX3Jhcy5jICAgICAgIHwgMTg2ICsrKysrKysrKysrKysrKysrKysrKysrKysr CiBkcml2ZXJzL2dwdS9kcm0veGUveGVfZHJtX3Jhcy5oICAgICAgIHwgIDE1ICsrKwogZHJpdmVy cy9ncHUvZHJtL3hlL3hlX2RybV9yYXNfdHlwZXMuaCB8ICA0MCArKysrKysKIGluY2x1ZGUvdWFw aS9kcm0veGVfZHJtLmggICAgICAgICAgICAgfCAgNzkgKysrKysrKysrKysKIDYgZmlsZXMgY2hh bmdlZCwgMzI1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0veGUveGVfZHJtX3Jhcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hl L3hlX2RybV9yYXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZS94ZV9k cm1fcmFzX3R5cGVzLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUvTWFrZWZpbGUg Yi9kcml2ZXJzL2dwdS9kcm0veGUvTWFrZWZpbGUKaW5kZXggZmY3NzhmYjJkNGZmLi5mNjNmZGY4 MDA1NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS9NYWtlZmlsZQorKysgYi9kcml2 ZXJzL2dwdS9kcm0veGUvTWFrZWZpbGUKQEAgLTQxLDYgKzQxLDcgQEAgeGUteSArPSB4ZV9iYi5v IFwKIAl4ZV9kZXZpY2Vfc3lzZnMubyBcCiAJeGVfZG1hX2J1Zi5vIFwKIAl4ZV9kcm1fY2xpZW50 Lm8gXAorCXhlX2RybV9yYXMubyBcCiAJeGVfZXVfc3RhbGwubyBcCiAJeGVfZXhlYy5vIFwKIAl4 ZV9leGVjX3F1ZXVlLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2Rldmlj ZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmljZV90eXBlcy5oCmluZGV4IGNh YThmMzRhNjc0NC4uZGU2ZTZmZTlkYzE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUv eGVfZGV2aWNlX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmljZV90eXBl cy5oCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fZGV2aWNlLmg+CiAK ICNpbmNsdWRlICJ4ZV9kZXZjb3JlZHVtcF90eXBlcy5oIgorI2luY2x1ZGUgInhlX2RybV9yYXNf dHlwZXMuaCIKICNpbmNsdWRlICJ4ZV9oZWNpX2dzYy5oIgogI2luY2x1ZGUgInhlX2xhdGVfYmlu ZF9md190eXBlcy5oIgogI2luY2x1ZGUgInhlX29hX3R5cGVzLmgiCkBAIC01MDksNiArNTEwLDkg QEAgc3RydWN0IHhlX2RldmljZSB7CiAJLyoqIEBwbXU6IHBlcmZvcm1hbmNlIG1vbml0b3Jpbmcg dW5pdCAqLwogCXN0cnVjdCB4ZV9wbXUgcG11OwogCisJLyoqIEByYXM6IFJBUyBzdHJ1Y3R1cmUg Zm9yIGRldmljZSAqLworCXN0cnVjdCB4ZV9kcm1fcmFzIHJhczsKKwogCS8qKiBAaTJjOiBJMkMg aG9zdCBjb250cm9sbGVyICovCiAJc3RydWN0IHhlX2kyYyAqaTJjOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0veGUveGVfZHJtX3Jhcy5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2Ry bV9yYXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmUwN2RjMjNh MTU1ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kcm1fcmFzLmMK QEAgLTAsMCArMSwxODYgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisg KiBDb3B5cmlnaHQgwqkgMjAyNiBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlIDxs aW51eC9iaXRtYXAuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fbWFuYWdlZC5oPgorI2luY2x1ZGUg PGRybS9kcm1fcHJpbnQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3Jhcy5oPgorCisjaW5jbHVkZSAi eGVfZGV2aWNlX3R5cGVzLmgiCisjaW5jbHVkZSAieGVfZHJtX3Jhcy5oIgorCitzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IGVycm9yX2NvbXBvbmVudHNbXSA9IERSTV9YRV9SQVNfRVJST1JfQ09N UE9ORU5UX05BTUVTOworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcnJvcl9zZXZlcml0eVtd ID0gRFJNX1hFX1JBU19FUlJPUl9TRVZFUklUWV9OQU1FUzsKKworc3RhdGljIGludCBod19xdWVy eV9lcnJvcl9jb3VudGVyKHN0cnVjdCB4ZV9kcm1fcmFzX2NvdW50ZXIgKmluZm8sCisJCQkJICB1 MzIgZXJyb3JfaWQsIGNvbnN0IGNoYXIgKipuYW1lLCB1MzIgKnZhbCkKK3sKKwlpZiAoIWluZm8g fHwgIWluZm9bZXJyb3JfaWRdLm5hbWUpCisJCXJldHVybiAtRU5PRU5UOworCisJKm5hbWUgPSBp bmZvW2Vycm9yX2lkXS5uYW1lOworCSp2YWwgPSBhdG9taWNfcmVhZCgmaW5mb1tlcnJvcl9pZF0u Y291bnRlcik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBxdWVyeV91bmNvcnJlY3Rh YmxlX2Vycm9yX2NvdW50ZXIoc3RydWN0IGRybV9yYXNfbm9kZSAqZXAsIHUzMiBlcnJvcl9pZCwK KwkJCQkJICAgICBjb25zdCBjaGFyICoqbmFtZSwgdTMyICp2YWwpCit7CisJc3RydWN0IHhlX2Rl dmljZSAqeGUgPSBlcC0+cHJpdjsKKwlzdHJ1Y3QgeGVfZHJtX3JhcyAqcmFzID0gJnhlLT5yYXM7 CisJc3RydWN0IHhlX2RybV9yYXNfY291bnRlciAqaW5mbyA9IHJhcy0+aW5mb1tEUk1fWEVfUkFT X0VSUl9TRVZfVU5DT1JSRUNUQUJMRV07CisKKwlyZXR1cm4gaHdfcXVlcnlfZXJyb3JfY291bnRl cihpbmZvLCBlcnJvcl9pZCwgbmFtZSwgdmFsKTsKK30KKworc3RhdGljIGludCBxdWVyeV9jb3Jy ZWN0YWJsZV9lcnJvcl9jb3VudGVyKHN0cnVjdCBkcm1fcmFzX25vZGUgKmVwLCB1MzIgZXJyb3Jf aWQsCisJCQkJCSAgIGNvbnN0IGNoYXIgKipuYW1lLCB1MzIgKnZhbCkKK3sKKwlzdHJ1Y3QgeGVf ZGV2aWNlICp4ZSA9IGVwLT5wcml2OworCXN0cnVjdCB4ZV9kcm1fcmFzICpyYXMgPSAmeGUtPnJh czsKKwlzdHJ1Y3QgeGVfZHJtX3Jhc19jb3VudGVyICppbmZvID0gcmFzLT5pbmZvW0RSTV9YRV9S QVNfRVJSX1NFVl9DT1JSRUNUQUJMRV07CisKKwlyZXR1cm4gaHdfcXVlcnlfZXJyb3JfY291bnRl cihpbmZvLCBlcnJvcl9pZCwgbmFtZSwgdmFsKTsKK30KKworc3RhdGljIHN0cnVjdCB4ZV9kcm1f cmFzX2NvdW50ZXIgKmFsbG9jYXRlX2FuZF9jb3B5X2NvdW50ZXJzKHN0cnVjdCB4ZV9kZXZpY2Ug KnhlKQoreworCXN0cnVjdCB4ZV9kcm1fcmFzX2NvdW50ZXIgKmNvdW50ZXI7CisJaW50IGk7CisK Kwljb3VudGVyID0ga2NhbGxvYyhEUk1fWEVfUkFTX0VSUl9DT01QX01BWCwgc2l6ZW9mKCpjb3Vu dGVyKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjb3VudGVyKQorCQlyZXR1cm4gRVJSX1BUUigtRU5P TUVNKTsKKworCWZvciAoaSA9IERSTV9YRV9SQVNfRVJSX0NPTVBfQ09SRV9DT01QVVRFOyBpIDwg RFJNX1hFX1JBU19FUlJfQ09NUF9NQVg7IGkrKykgeworCQlpZiAoIWVycm9yX2NvbXBvbmVudHNb aV0pCisJCQljb250aW51ZTsKKworCQljb3VudGVyW2ldLm5hbWUgPSBlcnJvcl9jb21wb25lbnRz W2ldOworCQlhdG9taWNfc2V0KCZjb3VudGVyW2ldLmNvdW50ZXIsIDApOworCX0KKworCXJldHVy biBjb3VudGVyOworfQorCitzdGF0aWMgaW50IGFzc2lnbl9ub2RlX3BhcmFtcyhzdHJ1Y3QgeGVf ZGV2aWNlICp4ZSwgc3RydWN0IGRybV9yYXNfbm9kZSAqbm9kZSwKKwkJCSAgICAgIGNvbnN0IGVu dW0gZHJtX3hlX3Jhc19lcnJvcl9zZXZlcml0eSBzZXZlcml0eSkKK3sKKwlzdHJ1Y3QgcGNpX2Rl diAqcGRldiA9IHRvX3BjaV9kZXYoeGUtPmRybS5kZXYpOworCXN0cnVjdCB4ZV9kcm1fcmFzICpy YXMgPSAmeGUtPnJhczsKKwljb25zdCBjaGFyICpkZXZpY2VfbmFtZTsKKworCWRldmljZV9uYW1l ID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICIlMDR4OiUwMng6JTAyeC4lZCIsCisJCQkJcGNpX2Rv bWFpbl9ucihwZGV2LT5idXMpLCBwZGV2LT5idXMtPm51bWJlciwKKwkJCQlQQ0lfU0xPVChwZGV2 LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYtPmRldmZuKSk7CisKKwlpZiAoIWRldmljZV9uYW1lKQor CQlyZXR1cm4gLUVOT01FTTsKKworCW5vZGUtPmRldmljZV9uYW1lID0gZGV2aWNlX25hbWU7CisJ bm9kZS0+bm9kZV9uYW1lID0gZXJyb3Jfc2V2ZXJpdHlbc2V2ZXJpdHldOworCW5vZGUtPnR5cGUg PSBEUk1fUkFTX05PREVfVFlQRV9FUlJPUl9DT1VOVEVSOworCW5vZGUtPmVycm9yX2NvdW50ZXJf cmFuZ2UuZmlyc3QgPSBEUk1fWEVfUkFTX0VSUl9DT01QX0NPUkVfQ09NUFVURTsKKwlub2RlLT5l cnJvcl9jb3VudGVyX3JhbmdlLmxhc3QgPSBEUk1fWEVfUkFTX0VSUl9DT01QX01BWCAtIDE7CisJ bm9kZS0+cHJpdiA9IHhlOworCisJcmFzLT5pbmZvW3NldmVyaXR5XSA9IGFsbG9jYXRlX2FuZF9j b3B5X2NvdW50ZXJzKHhlKTsKKwlpZiAoSVNfRVJSKHJhcy0+aW5mb1tzZXZlcml0eV0pKQorCQly ZXR1cm4gUFRSX0VSUihyYXMtPmluZm9bc2V2ZXJpdHldKTsKKworCWlmIChzZXZlcml0eSA9PSBE Uk1fWEVfUkFTX0VSUl9TRVZfQ09SUkVDVEFCTEUpCisJCW5vZGUtPnF1ZXJ5X2Vycm9yX2NvdW50 ZXIgPSBxdWVyeV9jb3JyZWN0YWJsZV9lcnJvcl9jb3VudGVyOworCWVsc2UKKwkJbm9kZS0+cXVl cnlfZXJyb3JfY291bnRlciA9IHF1ZXJ5X3VuY29ycmVjdGFibGVfZXJyb3JfY291bnRlcjsKKwor CXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjbGVhbnVwX25vZGVfcGFyYW0oc3RydWN0IHhl X2RybV9yYXMgKnJhcywgY29uc3QgZW51bSBkcm1feGVfcmFzX2Vycm9yX3NldmVyaXR5IHNldmVy aXR5KQoreworCXN0cnVjdCBkcm1fcmFzX25vZGUgKm5vZGUgPSAmcmFzLT5ub2RlW3NldmVyaXR5 XTsKKworCWtmcmVlKHJhcy0+aW5mb1tzZXZlcml0eV0pOworCXJhcy0+aW5mb1tzZXZlcml0eV0g PSBOVUxMOworCisJa2ZyZWUobm9kZS0+ZGV2aWNlX25hbWUpOworCW5vZGUtPmRldmljZV9uYW1l ID0gTlVMTDsKK30KKworc3RhdGljIGludCByZWdpc3Rlcl9ub2RlcyhzdHJ1Y3QgeGVfZGV2aWNl ICp4ZSkKK3sKKwlzdHJ1Y3QgeGVfZHJtX3JhcyAqcmFzID0gJnhlLT5yYXM7CisJaW50IGk7CisK Kwlmb3JfZWFjaF9lcnJvcl9zZXZlcml0eShpKSB7CisJCXN0cnVjdCBkcm1fcmFzX25vZGUgKm5v ZGUgPSAmcmFzLT5ub2RlW2ldOworCQlpbnQgcmV0OworCisJCXJldCA9IGFzc2lnbl9ub2RlX3Bh cmFtcyh4ZSwgbm9kZSwgaSk7CisJCWlmIChyZXQpIHsKKwkJCWNsZWFudXBfbm9kZV9wYXJhbShy YXMsIGkpOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCXJldCA9IGRybV9yYXNfbm9kZV9yZWdp c3Rlcihub2RlKTsKKwkJaWYgKHJldCkgeworCQkJY2xlYW51cF9ub2RlX3BhcmFtKHJhcywgaSk7 CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lk IHhlX2RybV9yYXNfdW5yZWdpc3Rlcl9ub2RlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2aWNlLCB2 b2lkICphcmcpCit7CisJc3RydWN0IHhlX2RldmljZSAqeGUgPSBhcmc7CisJc3RydWN0IHhlX2Ry bV9yYXMgKnJhcyA9ICZ4ZS0+cmFzOworCWludCBpOworCisJZm9yX2VhY2hfZXJyb3Jfc2V2ZXJp dHkoaSkgeworCQlzdHJ1Y3QgZHJtX3Jhc19ub2RlICpub2RlID0gJnJhcy0+bm9kZVtpXTsKKwor CQlkcm1fcmFzX25vZGVfdW5yZWdpc3Rlcihub2RlKTsKKwkJY2xlYW51cF9ub2RlX3BhcmFtKHJh cywgaSk7CisJfQorfQorCisvKioKKyAqIHhlX2RybV9yYXNfaW5pdCgpIC0gSW5pdGlhbGl6ZSBE Uk0gUkFTCisgKiBAeGU6IHhlIGRldmljZSBpbnN0YW5jZQorICoKKyAqIEFsbG9jYXRlIGFuZCBy ZWdpc3RlciBEUk0gUkFTIG5vZGVzIHBlciBkZXZpY2UKKyAqCisgKiBSZXR1cm46IDAgb24gc3Vj Y2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvdGhlcndpc2UuCisgKi8KK2ludCB4ZV9kcm1fcmFz X2luaXQoc3RydWN0IHhlX2RldmljZSAqeGUpCit7CisJc3RydWN0IHhlX2RybV9yYXMgKnJhcyA9 ICZ4ZS0+cmFzOworCXN0cnVjdCBkcm1fcmFzX25vZGUgKm5vZGU7CisJaW50IGVycjsKKworCW5v ZGUgPSBkcm1tX2tjYWxsb2MoJnhlLT5kcm0sIERSTV9YRV9SQVNfRVJSX1NFVl9NQVgsIHNpemVv Zigqbm9kZSksIEdGUF9LRVJORUwpOworCWlmICghbm9kZSkKKwkJcmV0dXJuIC1FTk9NRU07CisK KwlyYXMtPm5vZGUgPSBub2RlOworCisJZXJyID0gcmVnaXN0ZXJfbm9kZXMoeGUpOworCWlmIChl cnIpIHsKKwkJZHJtX2VycigmeGUtPmRybSwgIkZhaWxlZCB0byByZWdpc3RlciBEUk0gUkFTIG5v ZGVzICglcGUpXG4iLCBFUlJfUFRSKGVycikpOworCQlyZXR1cm4gZXJyOworCX0KKworCWVyciA9 IGRybW1fYWRkX2FjdGlvbl9vcl9yZXNldCgmeGUtPmRybSwgeGVfZHJtX3Jhc191bnJlZ2lzdGVy X25vZGVzLCB4ZSk7CisJaWYgKGVycikgeworCQlkcm1fZXJyKCZ4ZS0+ZHJtLCAiRmFpbGVkIHRv IGFkZCBhY3Rpb24gZm9yIFhlIERSTSBSQVMgKCVwZSlcbiIsIEVSUl9QVFIoZXJyKSk7CisJCXJl dHVybiBlcnI7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0veGUveGVfZHJtX3Jhcy5oIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RybV9yYXMuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVjYzhmMDEyNDQxMQotLS0gL2Rl di9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kcm1fcmFzLmgKQEAgLTAsMCArMSwx NSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLworLyoKKyAqIENvcHlyaWdo dCDCqSAyMDI2IEludGVsIENvcnBvcmF0aW9uCisgKi8KKyNpZm5kZWYgWEVfRFJNX1JBU19IXwor I2RlZmluZSBYRV9EUk1fUkFTX0hfCisKK3N0cnVjdCB4ZV9kZXZpY2U7CisKKyNkZWZpbmUgZm9y X2VhY2hfZXJyb3Jfc2V2ZXJpdHkoaSkJXAorCWZvciAoaSA9IDA7IGkgPCBEUk1fWEVfUkFTX0VS Ul9TRVZfTUFYOyBpKyspCisKK2ludCB4ZV9kcm1fcmFzX2luaXQoc3RydWN0IHhlX2RldmljZSAq eGUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kcm1fcmFz X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZHJtX3Jhc190eXBlcy5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2FjYzVlNzM3N2IyCi0tLSAvZGV2L251 bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RybV9yYXNfdHlwZXMuaApAQCAtMCwwICsx LDQwIEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCisvKgorICogQ29weXJp Z2h0IMKpIDIwMjYgSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9YRV9EUk1fUkFT X1RZUEVTX0hfCisjZGVmaW5lIF9YRV9EUk1fUkFTX1RZUEVTX0hfCisKKyNpbmNsdWRlIDxsaW51 eC9hdG9taWMuaD4KKyNpbmNsdWRlIDxkcm0veGVfZHJtLmg+CisKK3N0cnVjdCBkcm1fcmFzX25v ZGU7CisKKy8qKgorICogc3RydWN0IHhlX2RybV9yYXNfY291bnRlciAtIFhFIFJBUyBjb3VudGVy CisgKgorICogVGhpcyBzdHJ1Y3R1cmUgY29udGFpbnMgZXJyb3IgY29tcG9uZW50IGFuZCBjb3Vu dGVyIGluZm9ybWF0aW9uCisgKi8KK3N0cnVjdCB4ZV9kcm1fcmFzX2NvdW50ZXIgeworCS8qKiBA bmFtZTogZXJyb3IgY29tcG9uZW50IG5hbWUgKi8KKwljb25zdCBjaGFyICpuYW1lOworCisJLyoq IEBjb3VudGVyOiBjb3VudCBvZiBlcnJvciAqLworCWF0b21pY190IGNvdW50ZXI7Cit9OworCisv KioKKyAqIHN0cnVjdCB4ZV9kcm1fcmFzIC0gWEUgRFJNIFJBUyBzdHJ1Y3R1cmUKKyAqCisgKiBU aGlzIHN0cnVjdHVyZSBoYXMgZGV0YWlscyBvZiBlcnJvciBjb3VudGVycworICovCitzdHJ1Y3Qg eGVfZHJtX3JhcyB7CisJLyoqIEBub2RlOiBEUk0gUkFTIG5vZGUgKi8KKwlzdHJ1Y3QgZHJtX3Jh c19ub2RlICpub2RlOworCisJLyoqIEBpbmZvOiBpbmZvIGFycmF5IGZvciBhbGwgdHlwZXMgb2Yg ZXJyb3JzICovCisJc3RydWN0IHhlX2RybV9yYXNfY291bnRlciAqaW5mb1tEUk1fWEVfUkFTX0VS Ul9TRVZfTUFYXTsKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS94 ZV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0veGVfZHJtLmgKaW5kZXggZWYyNTY1MDQ4YmRmLi5i MDI2NGMzMmNlYjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0veGVfZHJtLmgKKysrIGIv aW5jbHVkZS91YXBpL2RybS94ZV9kcm0uaApAQCAtMjM1Nyw2ICsyMzU3LDg1IEBAIHN0cnVjdCBk cm1feGVfZXhlY19xdWV1ZV9zZXRfcHJvcGVydHkgewogCV9fdTY0IHJlc2VydmVkWzJdOwogfTsK IAorLyoqCisgKiBET0M6IFhlIERSTSBSQVMKKyAqCisgKiBUaGUgZW51bXMgYW5kIHN0cmluZ3Mg ZGVmaW5lZCBiZWxvdyBtYXAgdG8gdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIERSTSBSQVMgTmV0bGlu ayBJbnRlcmZhY2UuCisgKiBSZWZlciB0byBEb2N1bWVudGF0aW9uL25ldGxpbmsvc3BlY3MvZHJt X3Jhcy55YW1sIGZvciBjb21wbGV0ZSBpbnRlcmZhY2Ugc3BlY2lmaWNhdGlvbi4KKyAqCisgKiBO b2RlIFJlZ2lzdHJhdGlvbgorICogPT09PT09PT09PT09PT09PT0KKyAqCisgKiBUaGUgZHJpdmVy IHJlZ2lzdGVycyBEUk0gUkFTIG5vZGVzIGZvciBlYWNoIGVycm9yIHNldmVyaXR5IGxldmVsLgor ICogZW51bSBkcm1feGVfcmFzX2Vycm9yX3NldmVyaXR5IGRlZmluZXMgdGhlIG5vZGUtaWQsIHdo aWxlIERSTV9YRV9SQVNfRVJST1JfU0VWRVJJVFlfTkFNRVMgbWFwcworICogbm9kZS1pZCB0byBu b2RlLW5hbWUuCisgKgorICogRXJyb3IgQ2xhc3NpZmljYXRpb24KKyAqID09PT09PT09PT09PT09 PT09PT09CisgKgorICogRWFjaCBub2RlIGNvbnRhaW5zIGEgbGlzdCBvZiBlcnJvciBjb3VudGVy cy4gRWFjaCBlcnJvciBpcyBpZGVudGlmaWVkIGJ5IGEgZXJyb3ItaWQgYW5kCisgKiBhbiBlcnJv ci1uYW1lLiBlbnVtIGRybV94ZV9yYXNfZXJyb3JfY29tcG9uZW50IGRlZmluZXMgdGhlIGVycm9y LWlkLCB3aGlsZQorICogRFJNX1hFX1JBU19FUlJPUl9DT01QT05FTlRfTkFNRVMgbWFwcyBlcnJv ci1pZCB0byBlcnJvci1uYW1lLgorICoKKyAqIFVzZXIgSW50ZXJmYWNlCisgKiA9PT09PT09PT09 PT09PQorICoKKyAqIFRvIHJldHJpZXZlIGVycm9yIHZhbHVlcyBvZiBhIGVycm9yIGNvdW50ZXIs IHVzZXJzcGFjZSBhcHBsaWNhdGlvbnMgc2hvdWxkCisgKiBmb2xsb3cgdGhlIGJlbG93IHN0ZXBz OgorICoKKyAqIDEuIFVzZSBjb21tYW5kIExJU1RfTk9ERVMgdG8gZW51bWVyYXRlIGFsbCBhdmFp bGFibGUgbm9kZXMKKyAqIDIuIFNlbGVjdCBub2RlIGJ5IG5vZGUtaWQgb3Igbm9kZS1uYW1lCisg KiAzLiBVc2UgY29tbWFuZCBHRVRfRVJST1JfQ09VTlRFUlMgdG8gbGlzdCBlcnJvcnMgb2Ygc3Bl Y2lmaWMgbm9kZQorICogNC4gUXVlcnkgc3BlY2lmaWMgZXJyb3IgdmFsdWVzIHVzaW5nIGVpdGhl ciBlcnJvci1pZCBvciBlcnJvci1uYW1lCisgKgorICogLi4gY29kZS1ibG9jazo6IEMKKyAqCisg KgkvLyBMb29rdXAgdGFibGVzIGZvciBJRC10by1uYW1lIHJlc29sdXRpb24KKyAqCXN0YXRpYyBj b25zdCBjaGFyICpub2Rlc1tdID0gRFJNX1hFX1JBU19FUlJPUl9TRVZFUklUWV9OQU1FUzsKKyAq CXN0YXRpYyBjb25zdCBjaGFyICplcnJvcnNbXSA9IERSTV9YRV9SQVNfRVJST1JfQ09NUE9ORU5U X05BTUVTOworICoKKyAqLworCisvKioKKyAqIGVudW0gZHJtX3hlX3Jhc19lcnJvcl9zZXZlcml0 eSAtIERSTSBSQVMgZXJyb3Igc2V2ZXJpdHkuCisgKi8KK2VudW0gZHJtX3hlX3Jhc19lcnJvcl9z ZXZlcml0eSB7CisJLyoqIEBEUk1fWEVfUkFTX0VSUl9TRVZfQ09SUkVDVEFCTEU6IENvcnJlY3Rh YmxlIEVycm9yICovCisJRFJNX1hFX1JBU19FUlJfU0VWX0NPUlJFQ1RBQkxFID0gMCwKKwkvKiog QERSTV9YRV9SQVNfRVJSX1NFVl9VTkNPUlJFQ1RBQkxFOiBVbmNvcnJlY3RhYmxlIEVycm9yICov CisJRFJNX1hFX1JBU19FUlJfU0VWX1VOQ09SUkVDVEFCTEUsCisJLyoqIEBEUk1fWEVfUkFTX0VS Ul9TRVZfTUFYOiBNYXggc2V2ZXJpdHkgKi8KKwlEUk1fWEVfUkFTX0VSUl9TRVZfTUFYIC8qIG5v bi1BQkkgKi8KK307CisKKy8qKgorICogZW51bSBkcm1feGVfcmFzX2Vycm9yX2NvbXBvbmVudCAt IERSTSBSQVMgZXJyb3IgY29tcG9uZW50LgorICovCitlbnVtIGRybV94ZV9yYXNfZXJyb3JfY29t cG9uZW50IHsKKwkvKiogQERSTV9YRV9SQVNfRVJSX0NPTVBfQ09SRV9DT01QVVRFOiBDb3JlIENv bXB1dGUgRXJyb3IgKi8KKwlEUk1fWEVfUkFTX0VSUl9DT01QX0NPUkVfQ09NUFVURSA9IDEsCisJ LyoqIEBEUk1fWEVfUkFTX0VSUl9DT01QX1NPQ19JTlRFUk5BTDogU29DIEludGVybmFsIEVycm9y ICovCisJRFJNX1hFX1JBU19FUlJfQ09NUF9TT0NfSU5URVJOQUwsCisJLyoqIEBEUk1fWEVfUkFT X0VSUl9DT01QX01BWDogTWF4IEVycm9yICovCisJRFJNX1hFX1JBU19FUlJfQ09NUF9NQVgJLyog bm9uLUFCSSAqLworfTsKKworLyoKKyAqIEVycm9yIHNldmVyaXR5IHRvIG5hbWUgbWFwcGluZy4K KyAqLworI2RlZmluZSBEUk1fWEVfUkFTX0VSUk9SX1NFVkVSSVRZX05BTUVTIHsJCQkJXAorCVtE Uk1fWEVfUkFTX0VSUl9TRVZfQ09SUkVDVEFCTEVdID0gImNvcnJlY3RhYmxlLWVycm9ycyIsCVwK KwlbRFJNX1hFX1JBU19FUlJfU0VWX1VOQ09SUkVDVEFCTEVdID0gInVuY29ycmVjdGFibGUtZXJy b3JzIiwJXAorfQorCisvKgorICogRXJyb3IgY29tcG9uZW50IHRvIG5hbWUgbWFwcGluZy4KKyAq LworI2RlZmluZSBEUk1fWEVfUkFTX0VSUk9SX0NPTVBPTkVOVF9OQU1FUyB7CQkJCVwKKwlbRFJN X1hFX1JBU19FUlJfQ09NUF9DT1JFX0NPTVBVVEVdID0gImNvcmUtY29tcHV0ZSIsCQlcCisJW0RS TV9YRV9SQVNfRVJSX0NPTVBfU09DX0lOVEVSTkFMXSA9ICJzb2MtaW50ZXJuYWwiCQlcCit9CisK ICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQogI2VuZGlmCi0tIAoyLjQ3LjEKCg==