From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 1/4] dma-buf: change DMA-buf locking convention Date: Thu, 29 Aug 2019 16:29:14 +0200 Message-ID: <20190829142917.13058-2-christian.koenig@amd.com> References: <20190829142917.13058-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190829142917.13058-1-christian.koenig@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: daniel@ffwll.ch, dri-devel@lists.freedesktop.org, sumit.semwal@linaro.org, linaro-mm-sig@lists.linaro.org, linux-media@vger.kernel.org, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBpcyBhIHN0cmlwcGVkIGRvd24gdmVyc2lvbiBvZiB0aGUgbG9ja2luZyBjaGFu Z2VzCm5lY2Vzc2FyeSB0byBzdXBwb3J0IGR5bmFtaWMgRE1BLWJ1ZiBoYW5kbGluZy4KCkZvciBj b21wYXRpYmlsaXR5IHdlIGNhY2hlIHRoZSBETUEtYnVmIG1hcHBpbmcgYXMgc29vbiBhcwpleHBv cnRlci9pbXBvcnRlciBkaXNhZ3JlZSBvbiB0aGUgZHluYW1pYyBoYW5kbGluZy4KClNpZ25lZC1v ZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KLS0tCiBk cml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jIHwgOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tCiBpbmNsdWRlL2xpbnV4L2RtYS1idWYuaCAgIHwgNTEgKysrKysrKysrKysr KysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9k bWEtYnVmL2RtYS1idWYuYwppbmRleCA0MzNkOTFkNzEwZTQuLjY1MDUyZDUyNjAyYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYworKysgYi9kcml2ZXJzL2RtYS1idWYvZG1h LWJ1Zi5jCkBAIC01MjUsNiArNTI1LDEwIEBAIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmX2V4cG9y dChjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mbyAqZXhwX2luZm8pCiAJCXJldHVybiBF UlJfUFRSKC1FSU5WQUwpOwogCX0KIAorCWlmIChXQVJOX09OKGV4cF9pbmZvLT5vcHMtPmNhY2hl X3NndF9tYXBwaW5nICYmCisJCSAgICBleHBfaW5mby0+b3BzLT5keW5hbWljX21hcHBpbmcpKQor CQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwogCWlmICghdHJ5X21vZHVsZV9nZXQoZXhwX2lu Zm8tPm93bmVyKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT0VOVCk7CiAKQEAgLTY0NSwxMCArNjQ5 LDExIEBAIHZvaWQgZG1hX2J1Zl9wdXQoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZikKIEVYUE9SVF9T WU1CT0xfR1BMKGRtYV9idWZfcHV0KTsKIAogLyoqCi0gKiBkbWFfYnVmX2F0dGFjaCAtIEFkZCB0 aGUgZGV2aWNlIHRvIGRtYV9idWYncyBhdHRhY2htZW50cyBsaXN0OyBvcHRpb25hbGx5LAorICog ZG1hX2J1Zl9keW5hbWljX2F0dGFjaCAtIEFkZCB0aGUgZGV2aWNlIHRvIGRtYV9idWYncyBhdHRh Y2htZW50cyBsaXN0OyBvcHRpb25hbGx5LAogICogY2FsbHMgYXR0YWNoKCkgb2YgZG1hX2J1Zl9v cHMgdG8gYWxsb3cgZGV2aWNlLXNwZWNpZmljIGF0dGFjaCBmdW5jdGlvbmFsaXR5Ci0gKiBAZG1h YnVmOglbaW5dCWJ1ZmZlciB0byBhdHRhY2ggZGV2aWNlIHRvLgotICogQGRldjoJW2luXQlkZXZp Y2UgdG8gYmUgYXR0YWNoZWQuCisgKiBAZG1hYnVmOgkJW2luXQlidWZmZXIgdG8gYXR0YWNoIGRl dmljZSB0by4KKyAqIEBkZXY6CQlbaW5dCWRldmljZSB0byBiZSBhdHRhY2hlZC4KKyAqIEBkeW5h bWljX21hcHBpbmc6CVtpbl0JY2FsbGluZyBjb252ZW50aW9uIGZvciBtYXAvdW5tYXAKICAqCiAg KiBSZXR1cm5zIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgcG9pbnRlciBmb3IgdGhpcyBhdHRh Y2htZW50LiBBdHRhY2htZW50cwogICogbXVzdCBiZSBjbGVhbmVkIHVwIGJ5IGNhbGxpbmcgZG1h X2J1Zl9kZXRhY2goKS4KQEAgLTY2Miw4ICs2NjcsOSBAQCBFWFBPUlRfU1lNQk9MX0dQTChkbWFf YnVmX3B1dCk7CiAgKiBhY2Nlc3NpYmxlIHRvIEBkZXYsIGFuZCBjYW5ub3QgYmUgbW92ZWQgdG8g YSBtb3JlIHN1aXRhYmxlIHBsYWNlLiBUaGlzIGlzCiAgKiBpbmRpY2F0ZWQgd2l0aCB0aGUgZXJy b3IgY29kZSAtRUJVU1kuCiAgKi8KLXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmRtYV9idWZf YXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsCi0JCQkJCSAgc3RydWN0IGRldmljZSAqZGV2 KQorc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqCitkbWFfYnVmX2R5bmFtaWNfYXR0YWNoKHN0 cnVjdCBkbWFfYnVmICpkbWFidWYsIHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJICAgICAgIGJvb2wg ZHluYW1pY19tYXBwaW5nKQogewogCXN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaDsK IAlpbnQgcmV0OwpAQCAtNjc3LDYgKzY4Myw3IEBAIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQg KmRtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsCiAKIAlhdHRhY2gtPmRldiA9 IGRldjsKIAlhdHRhY2gtPmRtYWJ1ZiA9IGRtYWJ1ZjsKKwlhdHRhY2gtPmR5bmFtaWNfbWFwcGlu ZyA9IGR5bmFtaWNfbWFwcGluZzsKIAogCW11dGV4X2xvY2soJmRtYWJ1Zi0+bG9jayk7CiAKQEAg LTY4NSwxNiArNjkyLDY0IEBAIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmRtYV9idWZfYXR0 YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsCiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycl9hdHRh Y2g7CiAJfQorCWRtYV9yZXN2X2xvY2soZG1hYnVmLT5yZXN2LCBOVUxMKTsKIAlsaXN0X2FkZCgm YXR0YWNoLT5ub2RlLCAmZG1hYnVmLT5hdHRhY2htZW50cyk7CisJZG1hX3Jlc3ZfdW5sb2NrKGRt YWJ1Zi0+cmVzdik7CiAKIAltdXRleF91bmxvY2soJmRtYWJ1Zi0+bG9jayk7CiAKKwkvKiBXaGVu IGVpdGhlciB0aGUgaW1wb3J0ZXIgb3IgdGhlIGV4cG9ydGVyIGNhbid0IGhhbmRsZSBkeW5hbWlj CisJICogbWFwcGluZ3Mgd2UgY2FjaGUgdGhlIG1hcHBpbmcgaGVyZSB0byBhdm9pZCBpc3N1ZXMg d2l0aCB0aGUKKwkgKiByZXNlcnZhdGlvbiBvYmplY3QgbG9jay4KKwkgKi8KKwlpZiAoZG1hX2J1 Zl9hdHRhY2htZW50X2lzX2R5bmFtaWMoYXR0YWNoKSAhPQorCSAgICBkbWFfYnVmX2lzX2R5bmFt aWMoZG1hYnVmKSkgeworCQlzdHJ1Y3Qgc2dfdGFibGUgKnNndDsKKworCQlpZiAoZG1hX2J1Zl9p c19keW5hbWljKGF0dGFjaC0+ZG1hYnVmKSkKKwkJCWRtYV9yZXN2X2xvY2soYXR0YWNoLT5kbWFi dWYtPnJlc3YsIE5VTEwpOworCisJCXNndCA9IGRtYWJ1Zi0+b3BzLT5tYXBfZG1hX2J1ZihhdHRh Y2gsIERNQV9CSURJUkVDVElPTkFMKTsKKwkJaWYgKCFzZ3QpCisJCQlzZ3QgPSBFUlJfUFRSKC1F Tk9NRU0pOworCQlpZiAoSVNfRVJSKHNndCkpIHsKKwkJCXJldCA9IFBUUl9FUlIoc2d0KTsKKwkJ CWdvdG8gZXJyX3VubG9jazsKKwkJfQorCQlpZiAoZG1hX2J1Zl9pc19keW5hbWljKGF0dGFjaC0+ ZG1hYnVmKSkKKwkJCWRtYV9yZXN2X3VubG9jayhhdHRhY2gtPmRtYWJ1Zi0+cmVzdik7CisJCWF0 dGFjaC0+c2d0ID0gc2d0OworCQlhdHRhY2gtPmRpciA9IERNQV9CSURJUkVDVElPTkFMOworCX0K KwogCXJldHVybiBhdHRhY2g7CiAKIGVycl9hdHRhY2g6CiAJa2ZyZWUoYXR0YWNoKTsKIAltdXRl eF91bmxvY2soJmRtYWJ1Zi0+bG9jayk7CiAJcmV0dXJuIEVSUl9QVFIocmV0KTsKKworZXJyX3Vu bG9jazoKKwlpZiAoZG1hX2J1Zl9pc19keW5hbWljKGF0dGFjaC0+ZG1hYnVmKSkKKwkJZG1hX3Jl c3ZfdW5sb2NrKGF0dGFjaC0+ZG1hYnVmLT5yZXN2KTsKKworCWRtYV9idWZfZGV0YWNoKGRtYWJ1 ZiwgYXR0YWNoKTsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOworfQorRVhQT1JUX1NZTUJPTF9HUEwo ZG1hX2J1Zl9keW5hbWljX2F0dGFjaCk7CisKKy8qKgorICogZG1hX2J1Zl9hdHRhY2ggLSBXcmFw cGVyIGZvciBkbWFfYnVmX2R5bmFtaWNfYXR0YWNoCisgKiBAZG1hYnVmOglbaW5dCWJ1ZmZlciB0 byBhdHRhY2ggZGV2aWNlIHRvLgorICogQGRldjoJW2luXQlkZXZpY2UgdG8gYmUgYXR0YWNoZWQu CisgKgorICogV3JhcHBlciB0byBjYWxsIGRtYV9idWZfZHluYW1pY19hdHRhY2goKSBmb3IgZHJp dmVycyB3aGljaCBzdGlsbCB1c2UgYSBzdGF0aWMKKyAqIG1hcHBpbmcuCisgKi8KK3N0cnVjdCBk bWFfYnVmX2F0dGFjaG1lbnQgKmRtYV9idWZfYXR0YWNoKHN0cnVjdCBkbWFfYnVmICpkbWFidWYs CisJCQkJCSAgc3RydWN0IGRldmljZSAqZGV2KQoreworCXJldHVybiBkbWFfYnVmX2R5bmFtaWNf YXR0YWNoKGRtYWJ1ZiwgZGV2LCBmYWxzZSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChkbWFfYnVm X2F0dGFjaCk7CiAKQEAgLTcxMSwxMSArNzY2LDIwIEBAIHZvaWQgZG1hX2J1Zl9kZXRhY2goc3Ry dWN0IGRtYV9idWYgKmRtYWJ1Ziwgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoKQog CWlmIChXQVJOX09OKCFkbWFidWYgfHwgIWF0dGFjaCkpCiAJCXJldHVybjsKIAotCWlmIChhdHRh Y2gtPnNndCkKKwlpZiAoYXR0YWNoLT5zZ3QpIHsKKwkJaWYgKGRtYV9idWZfaXNfZHluYW1pYyhh dHRhY2gtPmRtYWJ1ZikpCisJCQlkbWFfcmVzdl9sb2NrKGF0dGFjaC0+ZG1hYnVmLT5yZXN2LCBO VUxMKTsKKwogCQlkbWFidWYtPm9wcy0+dW5tYXBfZG1hX2J1ZihhdHRhY2gsIGF0dGFjaC0+c2d0 LCBhdHRhY2gtPmRpcik7CiAKKwkJaWYgKGRtYV9idWZfaXNfZHluYW1pYyhhdHRhY2gtPmRtYWJ1 ZikpCisJCQlkbWFfcmVzdl91bmxvY2soYXR0YWNoLT5kbWFidWYtPnJlc3YpOworCX0KKwogCW11 dGV4X2xvY2soJmRtYWJ1Zi0+bG9jayk7CisJZG1hX3Jlc3ZfbG9jayhkbWFidWYtPnJlc3YsIE5V TEwpOwogCWxpc3RfZGVsKCZhdHRhY2gtPm5vZGUpOworCWRtYV9yZXN2X3VubG9jayhkbWFidWYt PnJlc3YpOwogCWlmIChkbWFidWYtPm9wcy0+ZGV0YWNoKQogCQlkbWFidWYtPm9wcy0+ZGV0YWNo KGRtYWJ1ZiwgYXR0YWNoKTsKIApAQCAtNzQ5LDYgKzgxMyw5IEBAIHN0cnVjdCBzZ190YWJsZSAq ZG1hX2J1Zl9tYXBfYXR0YWNobWVudChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gs CiAJaWYgKFdBUk5fT04oIWF0dGFjaCB8fCAhYXR0YWNoLT5kbWFidWYpKQogCQlyZXR1cm4gRVJS X1BUUigtRUlOVkFMKTsKIAorCWlmIChkbWFfYnVmX2F0dGFjaG1lbnRfaXNfZHluYW1pYyhhdHRh Y2gpKQorCQlkbWFfcmVzdl9hc3NlcnRfaGVsZChhdHRhY2gtPmRtYWJ1Zi0+cmVzdik7CisKIAlp ZiAoYXR0YWNoLT5zZ3QpIHsKIAkJLyoKIAkJICogVHdvIG1hcHBpbmdzIHdpdGggZGlmZmVyZW50 IGRpcmVjdGlvbnMgZm9yIHRoZSBzYW1lCkBAIC03NjEsNiArODI4LDkgQEAgc3RydWN0IHNnX3Rh YmxlICpkbWFfYnVmX21hcF9hdHRhY2htZW50KHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0 dGFjaCwKIAkJcmV0dXJuIGF0dGFjaC0+c2d0OwogCX0KIAorCWlmIChkbWFfYnVmX2lzX2R5bmFt aWMoYXR0YWNoLT5kbWFidWYpKQorCQlkbWFfcmVzdl9hc3NlcnRfaGVsZChhdHRhY2gtPmRtYWJ1 Zi0+cmVzdik7CisKIAlzZ190YWJsZSA9IGF0dGFjaC0+ZG1hYnVmLT5vcHMtPm1hcF9kbWFfYnVm KGF0dGFjaCwgZGlyZWN0aW9uKTsKIAlpZiAoIXNnX3RhYmxlKQogCQlzZ190YWJsZSA9IEVSUl9Q VFIoLUVOT01FTSk7CkBAIC03OTMsOSArODYzLDE1IEBAIHZvaWQgZG1hX2J1Zl91bm1hcF9hdHRh Y2htZW50KHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKIAlpZiAoV0FSTl9PTigh YXR0YWNoIHx8ICFhdHRhY2gtPmRtYWJ1ZiB8fCAhc2dfdGFibGUpKQogCQlyZXR1cm47CiAKKwlp ZiAoZG1hX2J1Zl9hdHRhY2htZW50X2lzX2R5bmFtaWMoYXR0YWNoKSkKKwkJZG1hX3Jlc3ZfYXNz ZXJ0X2hlbGQoYXR0YWNoLT5kbWFidWYtPnJlc3YpOworCiAJaWYgKGF0dGFjaC0+c2d0ID09IHNn X3RhYmxlKQogCQlyZXR1cm47CiAKKwlpZiAoZG1hX2J1Zl9pc19keW5hbWljKGF0dGFjaC0+ZG1h YnVmKSkKKwkJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYXR0YWNoLT5kbWFidWYtPnJlc3YpOworCiAJ YXR0YWNoLT5kbWFidWYtPm9wcy0+dW5tYXBfZG1hX2J1ZihhdHRhY2gsIHNnX3RhYmxlLCBkaXJl Y3Rpb24pOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KTsK QEAgLTEyMTksMTAgKzEyOTUsMTIgQEAgc3RhdGljIGludCBkbWFfYnVmX2RlYnVnX3Nob3coc3Ry dWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpCiAJCXNlcV9wdXRzKHMsICJcdEF0dGFjaGVk IERldmljZXM6XG4iKTsKIAkJYXR0YWNoX2NvdW50ID0gMDsKIAorCQlkbWFfcmVzdl9sb2NrKGJ1 Zl9vYmotPnJlc3YsIE5VTEwpOwogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGF0dGFjaF9vYmosICZi dWZfb2JqLT5hdHRhY2htZW50cywgbm9kZSkgewogCQkJc2VxX3ByaW50ZihzLCAiXHQlc1xuIiwg ZGV2X25hbWUoYXR0YWNoX29iai0+ZGV2KSk7CiAJCQlhdHRhY2hfY291bnQrKzsKIAkJfQorCQlk bWFfcmVzdl91bmxvY2soYnVmX29iai0+cmVzdik7CiAKIAkJc2VxX3ByaW50ZihzLCAiVG90YWwg JWQgZGV2aWNlcyBhdHRhY2hlZFxuXG4iLAogCQkJCWF0dGFjaF9jb3VudCk7CmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaCBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oCmluZGV4 IGVjMjEyY2IyN2ZkYy4uYThmOGIyYjgxMmZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Rt YS1idWYuaAorKysgYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaApAQCAtNDIsNiArNDIsMTcgQEAg c3RydWN0IGRtYV9idWZfb3BzIHsKIAkgICovCiAJYm9vbCBjYWNoZV9zZ3RfbWFwcGluZzsKIAor CS8qKgorCSAqIEBkeW5hbWljX21hcHBpbmc6CisJICoKKwkgKiBJZiB0cnVlIHRoZSBmcmFtZXdv cmsgbWFrZXMgc3VyZSB0aGF0IHRoZSBtYXAvdW5tYXBfZG1hX2J1ZgorCSAqIGNhbGxiYWNrcyBh cmUgYWx3YXlzIGNhbGxlZCB3aXRoIHRoZSBkbWFfcmVzdiBvYmplY3QgbG9ja2VkLgorCSAqCisJ ICogSWYgZmFsc2UgdGhlIGZyYW1ld29yayBtYWtlcyB1cmUgdGhhdCB0aGUgbWFwL3VubWFwX2Rt YV9idWYKKwkgKiBjYWxsYmFja3MgYXJlIGFsd2F5cyBjYWxsZWQgd2l0aG91dCB0aGUgZG1hX3Jl c3Ygb2JqZWN0IGxvY2tlZC4KKwkgKi8KKwlib29sIGR5bmFtaWNfbWFwcGluZzsKKwogCS8qKgog CSAqIEBhdHRhY2g6CiAJICoKQEAgLTEwOSw2ICsxMjAsOSBAQCBzdHJ1Y3QgZG1hX2J1Zl9vcHMg ewogCSAqIGFueSBvdGhlciBraW5kIG9mIHNoYXJpbmcgdGhhdCB0aGUgZXhwb3J0ZXIgbWlnaHQg d2lzaCB0byBtYWtlCiAJICogYXZhaWxhYmxlIHRvIGJ1ZmZlci11c2Vycy4KIAkgKgorCSAqIFRo aXMgaXMgYWx3YXlzIGNhbGxlZCB3aXRoIHRoZSBkbWFidWYtPnJlc3Ygb2JqZWN0IGxvY2tlZCB3 aGVuCisJICogdGhlIGR5bmFtaWNfbWFwcGluZyBmbGFnIGlzIHRydWUuCisJICoKIAkgKiBSZXR1 cm5zOgogCSAqCiAJICogQSAmc2dfdGFibGUgc2NhdHRlciBsaXN0IG9mIG9yIHRoZSBiYWNraW5n IHN0b3JhZ2Ugb2YgdGhlIERNQSBidWZmZXIsCkBAIC0zMjcsNiArMzQxLDggQEAgc3RydWN0IGRt YV9idWYgewogICogQHNndDogY2FjaGVkIG1hcHBpbmcuCiAgKiBAZGlyOiBkaXJlY3Rpb24gb2Yg Y2FjaGVkIG1hcHBpbmcuCiAgKiBAcHJpdjogZXhwb3J0ZXIgc3BlY2lmaWMgYXR0YWNobWVudCBk YXRhLgorICogQGR5bmFtaWNfbWFwcGluZzogdHJ1ZSBpZiBkbWFfYnVmX21hcC91bm1hcF9hdHRh Y2htZW50KCkgaXMgY2FsbGVkIHdpdGggdGhlCisgKiBkbWFfcmVzdiBsb2NrIGhlbGQuCiAgKgog ICogVGhpcyBzdHJ1Y3R1cmUgaG9sZHMgdGhlIGF0dGFjaG1lbnQgaW5mb3JtYXRpb24gYmV0d2Vl biB0aGUgZG1hX2J1ZiBidWZmZXIKICAqIGFuZCBpdHMgdXNlciBkZXZpY2UocykuIFRoZSBsaXN0 IGNvbnRhaW5zIG9uZSBhdHRhY2htZW50IHN0cnVjdCBwZXIgZGV2aWNlCkBAIC0zNDMsNiArMzU5 LDcgQEAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCB7CiAJc3RydWN0IGxpc3RfaGVhZCBub2Rl OwogCXN0cnVjdCBzZ190YWJsZSAqc2d0OwogCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcjsK Kwlib29sIGR5bmFtaWNfbWFwcGluZzsKIAl2b2lkICpwcml2OwogfTsKIApAQCAtMzk0LDEwICs0 MTEsMzkgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldF9kbWFfYnVmKHN0cnVjdCBkbWFfYnVmICpk bWFidWYpCiAJZ2V0X2ZpbGUoZG1hYnVmLT5maWxlKTsKIH0KIAorLyoqCisgKiBkbWFfYnVmX2lz X2R5bmFtaWMgLSBjaGVjayBpZiBhIERNQS1idWYgdXNlcyBkeW5hbWljIG1hcHBpbmdzLgorICog QGRtYWJ1ZjogdGhlIERNQS1idWYgdG8gY2hlY2sKKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgYSBE TUEtYnVmIGV4cG9ydGVyIHdhbnRzIHRvIGJlIGNhbGxlZCB3aXRoIHRoZSBkbWFfcmVzdgorICog bG9ja2VkLCBmYWxzZSBpZiBpdCBkb2Vzbid0IHdhbnRzIHRvIGJlIGNhbGxlZCB3aXRoIHRoZSBs b2NrIGhlbGQuCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBkbWFfYnVmX2lzX2R5bmFtaWMoc3Ry dWN0IGRtYV9idWYgKmRtYWJ1ZikKK3sKKwlyZXR1cm4gZG1hYnVmLT5vcHMtPmR5bmFtaWNfbWFw cGluZzsKK30KKworLyoqCisgKiBkbWFfYnVmX2F0dGFjaG1lbnRfaXNfZHluYW1pYyAtIGNoZWNr IGlmIGEgRE1BLWJ1ZiBhdHRhY2htZW50IHVzZXMgZHluYW1pYworICogbWFwcGluc2cKKyAqIEBh dHRhY2g6IHRoZSBETUEtYnVmIGF0dGFjaG1lbnQgdG8gY2hlY2sKKyAqCisgKiBSZXR1cm5zIHRy dWUgaWYgYSBETUEtYnVmIGltcG9ydGVyIHdhbnRzIHRvIGNhbGwgdGhlIG1hcC91bm1hcCBmdW5j dGlvbnMgd2l0aAorICogdGhlIGRtYV9yZXN2IGxvY2sgaGVsZC4KKyAqLworc3RhdGljIGlubGlu ZSBib29sCitkbWFfYnVmX2F0dGFjaG1lbnRfaXNfZHluYW1pYyhzdHJ1Y3QgZG1hX2J1Zl9hdHRh Y2htZW50ICphdHRhY2gpCit7CisJcmV0dXJuIGF0dGFjaC0+ZHluYW1pY19tYXBwaW5nOworfQor CiBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICpkbWFfYnVmX2F0dGFjaChzdHJ1Y3QgZG1hX2J1 ZiAqZG1hYnVmLAotCQkJCQkJCXN0cnVjdCBkZXZpY2UgKmRldik7CisJCQkJCSAgc3RydWN0IGRl dmljZSAqZGV2KTsKK3N0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKgorZG1hX2J1Zl9keW5hbWlj X2F0dGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCSAg ICAgICBib29sIGR5bmFtaWNfbWFwcGluZyk7CiB2b2lkIGRtYV9idWZfZGV0YWNoKHN0cnVjdCBk bWFfYnVmICpkbWFidWYsCi0JCQkJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqZG1hYnVmX2F0 dGFjaCk7CisJCSAgICBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gpOwogCiBzdHJ1 Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnQoY29uc3Qgc3RydWN0IGRtYV9idWZfZXhwb3J0X2lu Zm8gKmV4cF9pbmZvKTsKIApAQCAtNDA5LDYgKzQ1NSw3IEBAIHN0cnVjdCBzZ190YWJsZSAqZG1h X2J1Zl9tYXBfYXR0YWNobWVudChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICosCiAJCQkJCWVu dW0gZG1hX2RhdGFfZGlyZWN0aW9uKTsKIHZvaWQgZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50KHN0 cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKiwgc3RydWN0IHNnX3RhYmxlICosCiAJCQkJZW51bSBk bWFfZGF0YV9kaXJlY3Rpb24pOwordm9pZCBkbWFfYnVmX21vdmVfbm90aWZ5KHN0cnVjdCBkbWFf YnVmICpkbWFfYnVmKTsKIGludCBkbWFfYnVmX2JlZ2luX2NwdV9hY2Nlc3Moc3RydWN0IGRtYV9i dWYgKmRtYV9idWYsCiAJCQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7CiBpbnQg ZG1hX2J1Zl9lbmRfY3B1X2FjY2VzcyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKLS0gCjIuMTcu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs