From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [RfC PATCH] Add udmabuf misc device Date: Tue, 13 Mar 2018 16:48:26 +0100 Message-ID: <20180313154826.20436-1-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3832B6E597 for ; Tue, 13 Mar 2018 15:48:29 +0000 (UTC) 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: Tomeu Vizoso , David Airlie , open list , qemu-devel@nongnu.org, "moderated list:DMA BUFFER SHARING FRAMEWORK" , Gerd Hoffmann , "open list:DMA BUFFER SHARING FRAMEWORK" List-Id: dri-devel@lists.freedesktop.org QSBkcml2ZXIgdG8gbGV0IHVzZXJzcGFjZSB0dXJuIGlvdmVjcyBpbnRvIGRtYS1idWZzLgoKVXNl IGNhc2U6ICBBbGxvd3MgcWVtdSBwYXNzIGFyb3VuZCBkbWFidWZzIGZvciB0aGUgZ3Vlc3QgZnJh bWVidWZmZXIuCmh0dHBzOi8vd3d3LmtyYXhlbC5vcmcvY2dpdC9xZW11L2xvZy8/aD1zaXJpdXMv dWRtYWJ1ZiBoYXMgYW4KZXhwZXJpbWVudGFsIHBhdGNoLgoKQWxzbyBhbGxvd3MgcWVtdSB0byBl eHBvcnQgZ3Vlc3QgdmlydGlvLWdwdSByZXNvdXJjZXMgYXMgaG9zdCBkbWFidWZzLgpTaG91bGQg YmUgcG9zc2libGUgdG8gdXNlIGl0IHRvIGRpc3BsYXkgZ3Vlc3Qgd2F5bGFuZCB3aW5kb3dzIG9u IHRoZQpob3N0IGRpc3BsYXkgc2VydmVyLiAgdmlydGlvLWdwdSByZXNzb3VyY2VzIGNhbiBiZSBj aHVua2VkIHNvIHdlIHdpbGwKYWN0dWFsbHkgbmVlZCBtdWx0aXBsZSBpb3ZlYyBlbnRyaWVzLiAg VU5URVNURUQuCgpXYW50IGNvbGxlY3Qgc29tZSBmZWVkYmFjayBvbiB0aGUgZ2VuZXJhbCBhcHBy b2FjaCB3aXRoIHRoaXMgUmZDIHNlcmllcy4KQ2FuIHRoaXMgd29yaz8gIElmIG5vdCwgYmV0dGVy IGlkZWFzPwoKUXVlc3Rpb246ICBNdXN0IHRoaXMgYmUgaG9va2VkIGludG8gc29tZSBraW5kIG9m IG1sb2NrIGFjY291bnRpbmcsIHRvCmxpbWl0IHRoZSBhbW91dCBvZiBtZW1vcnkgdXNlcnNwYWNl IGlzIGFsbG93ZWQgdG8gcGluIHRoaXMgd2F5PyAgT3Igd2lsbApnZXRfdXNlcl9wYWdlc19mYXN0 KCkgaGFuZGxlIHRoYXQgZm9yIG1lPwoKS25vd24gaXNzdWU6ICBEcml2ZXIgQVBJIGlzbid0IGNv bXBsZXRlIHlldC4gIE5lZWQgYWRkIHNvbWUgZmxhZ3MsIGZvcgpleGFtcGxlIHRvIHN1cHBvcnQg cmVhZC1vbmx5IGJ1ZmZlcnMuCgpDYzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4LmllPgpD YzogVG9tZXUgVml6b3NvIDx0b21ldS52aXpvc29AY29sbGFib3JhLmNvbT4KU2lnbmVkLW9mZi1i eTogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+Ci0tLQogaW5jbHVkZS91YXBpL2xp bnV4L3VkbWFidWYuaCB8ICAyMSArKysrCiBkcml2ZXJzL2RtYS1idWYvdWRtYWJ1Zi5jICAgIHwg MjUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMv ZG1hLWJ1Zi9LY29uZmlnICAgICAgfCAgIDcgKysKIGRyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZSAg ICAgfCAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCAyNzkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGluY2x1ZGUvdWFwaS9saW51eC91ZG1hYnVmLmgKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2RtYS1idWYvdWRtYWJ1Zi5jCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xp bnV4L3VkbWFidWYuaCBiL2luY2x1ZGUvdWFwaS9saW51eC91ZG1hYnVmLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZmQyZmE0NDFmZQotLS0gL2Rldi9udWxsCisrKyBi L2luY2x1ZGUvdWFwaS9saW51eC91ZG1hYnVmLmgKQEAgLTAsMCArMSwyMSBAQAorLyogU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNjYWxsLW5vdGUgKi8KKyNp Zm5kZWYgX1VBUElfTElOVVhfVURNQUJVRl9ICisjZGVmaW5lIF9VQVBJX0xJTlVYX1VETUFCVUZf SAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgor CitzdHJ1Y3QgdWRtYWJ1Zl9pb3ZlYyB7CisJX191NjQgYmFzZTsKKwlfX3U2NCBsZW47Cit9Owor CitzdHJ1Y3QgdWRtYWJ1Zl9jcmVhdGUgeworCV9fdTMyIGZsYWdzOworCV9fdTMyIG5pb3Y7CisJ c3RydWN0IHVkbWFidWZfaW92ZWMgaW92c1tdOworfTsKKworI2RlZmluZSBVRE1BQlVGX0NSRUFU RSBfSU9XKDB4NDIsIDB4MjMsIHN0cnVjdCB1ZG1hYnVmX2NyZWF0ZSkKKworI2VuZGlmIC8qIF9V QVBJX0xJTlVYX1VETUFCVUZfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3VkbWFi dWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi91ZG1hYnVmLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uZWMwMTJkN2FjNwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZG1h LWJ1Zi91ZG1hYnVmLmMKQEAgLTAsMCArMSwyNTAgQEAKKy8qCisgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICog aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJz aW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgor ICovCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgor I2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5j bHVkZSA8bGludXgvZG1hLWJ1Zi5oPgorI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKworI2lu Y2x1ZGUgPHVhcGkvbGludXgvdWRtYWJ1Zi5oPgorCitzdHJ1Y3QgdWRtYWJ1ZiB7CisJdTMyIHBh Z2Vjb3VudDsKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOworfTsKKworc3RhdGljIGludCB1ZG1hYnVm X3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQoreworCXN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hID0gdm1mLT52bWE7CisJc3RydWN0IHVkbWFidWYgKnVidWYgPSB2bWEtPnZtX3ByaXZh dGVfZGF0YTsKKworCWlmIChXQVJOX09OKHZtZi0+cGdvZmYgPj0gdWJ1Zi0+cGFnZWNvdW50KSkK KwkJcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsKKworCXZtZi0+cGFnZSA9IHVidWYtPnBhZ2VzW3Zt Zi0+cGdvZmZdOworCWdldF9wYWdlKHZtZi0+cGFnZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgdWRtYWJ1Zl92bV9vcHMgPSB7CisJ LmZhdWx0ID0gdWRtYWJ1Zl92bV9mYXVsdCwKK307CisKK3N0YXRpYyBpbnQgbW1hcF91ZG1hYnVm KHN0cnVjdCBkbWFfYnVmICpidWYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXN0 cnVjdCB1ZG1hYnVmICp1YnVmID0gYnVmLT5wcml2OworCisJaWYgKCh2bWEtPnZtX2ZsYWdzICYg Vk1fU0hBUkVEKSA9PSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXZtYS0+dm1fb3BzID0gJnVk bWFidWZfdm1fb3BzOworCXZtYS0+dm1fcHJpdmF0ZV9kYXRhID0gdWJ1ZjsKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqbWFwX3VkbWFidWYoc3RydWN0IGRtYV9idWZf YXR0YWNobWVudCAqYXQsCisJCQkJICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlv bikKK3sKKwlzdHJ1Y3QgdWRtYWJ1ZiAqdWJ1ZiA9IGF0LT5kbWFidWYtPnByaXY7CisJc3RydWN0 IHNnX3RhYmxlICpzZzsKKworCXNnID0ga3phbGxvYyhzaXplb2YoKnNnKSwgR0ZQX0tFUk5FTCk7 CisJaWYgKCFzZykKKwkJZ290byBlcnIxOworCWlmIChzZ19hbGxvY190YWJsZV9mcm9tX3BhZ2Vz KHNnLCB1YnVmLT5wYWdlcywgdWJ1Zi0+cGFnZWNvdW50LAorCQkJCSAgICAgIDAsIHVidWYtPnBh Z2Vjb3VudCA8PCBQQUdFX1NISUZULAorCQkJCSAgICAgIEdGUF9LRVJORUwpIDwgMCkKKwkJZ290 byBlcnIyOworCWlmICghZG1hX21hcF9zZyhhdC0+ZGV2LCBzZy0+c2dsLCBzZy0+bmVudHMsIGRp cmVjdGlvbikpCisJCWdvdG8gZXJyMzsKKworCXJldHVybiBzZzsKKworZXJyMzoKKwlzZ19mcmVl X3RhYmxlKHNnKTsKK2VycjI6CisJa2ZyZWUoc2cpOworZXJyMToKKwlyZXR1cm4gRVJSX1BUUigt RU5PTUVNKTsKK30KKworc3RhdGljIHZvaWQgdW5tYXBfdWRtYWJ1ZihzdHJ1Y3QgZG1hX2J1Zl9h dHRhY2htZW50ICphdCwKKwkJCSAgc3RydWN0IHNnX3RhYmxlICpzZywKKwkJCSAgZW51bSBkbWFf ZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uKQoreworCXNnX2ZyZWVfdGFibGUoc2cpOworCWtmcmVl KHNnKTsKK30KKworc3RhdGljIHZvaWQgcmVsZWFzZV91ZG1hYnVmKHN0cnVjdCBkbWFfYnVmICpi dWYpCit7CisJc3RydWN0IHVkbWFidWYgKnVidWYgPSBidWYtPnByaXY7CisJcGdvZmZfdCBwZzsK KworCWZvciAocGcgPSAwOyBwZyA8IHVidWYtPnBhZ2Vjb3VudDsgcGcrKykKKwkJcHV0X3BhZ2Uo dWJ1Zi0+cGFnZXNbcGddKTsKKwlrZnJlZSh1YnVmLT5wYWdlcyk7CisJa2ZyZWUodWJ1Zik7Cit9 CisKK3N0YXRpYyB2b2lkICprbWFwX2F0b21pY191ZG1hYnVmKHN0cnVjdCBkbWFfYnVmICpidWYs IHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQoreworCXN0cnVjdCB1ZG1hYnVmICp1YnVmID0gYnVmLT5w cml2OworCXN0cnVjdCBwYWdlICpwYWdlID0gdWJ1Zi0+cGFnZXNbb2Zmc2V0ID4+IFBBR0VfU0hJ RlRdOworCisJcmV0dXJuIGttYXBfYXRvbWljKHBhZ2UpOworfQorCitzdGF0aWMgdm9pZCAqa21h cF91ZG1hYnVmKHN0cnVjdCBkbWFfYnVmICpidWYsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQorewor CXN0cnVjdCB1ZG1hYnVmICp1YnVmID0gYnVmLT5wcml2OworCXN0cnVjdCBwYWdlICpwYWdlID0g dWJ1Zi0+cGFnZXNbb2Zmc2V0ID4+IFBBR0VfU0hJRlRdOworCisJcmV0dXJuIGttYXAocGFnZSk7 Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdWRtYWJ1Zl9vcHMgPSB7CisJLm1hcF9k bWFfYnVmCSAgPSBtYXBfdWRtYWJ1ZiwKKwkudW5tYXBfZG1hX2J1ZgkgID0gdW5tYXBfdWRtYWJ1 ZiwKKwkucmVsZWFzZQkgID0gcmVsZWFzZV91ZG1hYnVmLAorCS5tYXBfYXRvbWljCSAgPSBrbWFw X2F0b21pY191ZG1hYnVmLAorCS5tYXAJCSAgPSBrbWFwX3VkbWFidWYsCisJLm1tYXAJCSAgPSBt bWFwX3VkbWFidWYsCit9OworCitzdGF0aWMgbG9uZyB1ZG1hYnVmX2lvY3RsX2NyZWF0ZShzdHJ1 Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3RydWN0IHVkbWFidWZfY3Jl YXRlIGNyZWF0ZTsKKwlzdHJ1Y3QgdWRtYWJ1Zl9pb3ZlYyAqaW92czsKKwlzdHJ1Y3QgdWRtYWJ1 ZiAqdWJ1ZjsKKwlERUZJTkVfRE1BX0JVRl9FWFBPUlRfSU5GTyhleHBfaW5mbyk7CisJc3RydWN0 IGRtYV9idWYgKmJ1ZjsKKwlwZ29mZl90IHBnb2ZmLCBwZ2NudDsKKwl1MzIgaW92OworCWludCBy ZXQ7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmNyZWF0ZSwgKHZvaWQgX191c2VyICopYXJnLAor CQkJICAgc2l6ZW9mKHN0cnVjdCB1ZG1hYnVmX2NyZWF0ZSkpKQorCQlyZXR1cm4gLUVGQVVMVDsK KworCWlvdnMgPSBrbWFsbG9jX2FycmF5KGNyZWF0ZS5uaW92LCBzaXplb2Yoc3RydWN0IHVkbWFi dWZfaW92ZWMpLAorCQkJICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIWlvdnMpCisJCXJldHVybiAt RU5PTUVNOworCisJYXJnICs9IG9mZnNldG9mKHN0cnVjdCB1ZG1hYnVmX2NyZWF0ZSwgaW92cyk7 CisJcmV0ID0gLUVGQVVMVDsKKwlpZiAoY29weV9mcm9tX3VzZXIoaW92cywgKHZvaWQgX191c2Vy ICopYXJnLAorCQkJICAgY3JlYXRlLm5pb3YgKiBzaXplb2Yoc3RydWN0IHVkbWFidWZfaW92ZWMp KSkKKwkJZ290byBlcnJfZnJlZV9pb3ZzOworCisJdWJ1ZiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVj dCB1ZG1hYnVmKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF1YnVmKQorCQlnb3RvIGVycl9mcmVlX2lv dnM7CisKKwlyZXQgPSAtRUlOVkFMOworCWZvciAoaW92ID0gMDsgaW92IDwgY3JlYXRlLm5pb3Y7 IGlvdisrKSB7CisJCWlmICghSVNfQUxJR05FRChpb3ZzW2lvdl0uYmFzZSwgUEFHRV9TSVpFKSkK KwkJCWdvdG8gZXJyX2ZyZWVfaW92czsKKwkJaWYgKCFJU19BTElHTkVEKGlvdnNbaW92XS5sZW4s IFBBR0VfU0laRSkpCisJCQlnb3RvIGVycl9mcmVlX2lvdnM7CisJCXVidWYtPnBhZ2Vjb3VudCAr PSBpb3ZzW2lvdl0ubGVuID4+IFBBR0VfU0hJRlQ7CisJfQorCisJcmV0ID0gLUVOT01FTTsKKwl1 YnVmLT5wYWdlcyA9IGttYWxsb2NfYXJyYXkodWJ1Zi0+cGFnZWNvdW50LCBzaXplb2Yoc3RydWN0 IHBhZ2UqKSwKKwkJCQkgICAgR0ZQX0tFUk5FTCk7CisJaWYgKCF1YnVmLT5wYWdlcykKKwkJZ290 byBlcnJfZnJlZV9idWY7CisKKwlwZ29mZiA9IDA7CisJZm9yIChpb3YgPSAwOyBpb3YgPCBjcmVh dGUubmlvdjsgaW92KyspIHsKKwkJcGdjbnQgPSBpb3ZzW2lvdl0ubGVuID4+IFBBR0VfU0hJRlQ7 CisJCXdoaWxlIChwZ2NudCA+IDApIHsKKwkJCXJldCA9IGdldF91c2VyX3BhZ2VzX2Zhc3QoaW92 c1tpb3ZdLmJhc2UsIHBnY250LAorCQkJCQkJICB0cnVlLCAvKiB3cml0ZSAqLworCQkJCQkJICB1 YnVmLT5wYWdlcyArIHBnb2ZmKTsKKwkJCWlmIChyZXQgPCAwKQorCQkJCWdvdG8gZXJyX3B1dF9w YWdlczsKKwkJCXBnb2ZmICs9IHJldDsKKwkJCXBnY250IC09IHJldDsKKwkJfQorCX0KKworCWV4 cF9pbmZvLm9wcyAgPSAmdWRtYWJ1Zl9vcHM7CisJZXhwX2luZm8uc2l6ZSA9IHVidWYtPnBhZ2Vj b3VudCA8PCBQQUdFX1NISUZUOworCWV4cF9pbmZvLnByaXYgPSB1YnVmOworCisJYnVmID0gZG1h X2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsKKwlpZiAoSVNfRVJSKGJ1ZikpIHsKKwkJcmV0ID0gUFRS X0VSUihidWYpOworCQlnb3RvIGVycl9wdXRfcGFnZXM7CisJfQorCisJa2ZyZWUoaW92cyk7CisJ cmV0dXJuIGRtYV9idWZfZmQoYnVmLCAwKTsKKworZXJyX3B1dF9wYWdlczoKKwl3aGlsZSAocGdv ZmYgPiAwKQorCQlwdXRfcGFnZSh1YnVmLT5wYWdlc1stLXBnb2ZmXSk7CitlcnJfZnJlZV9idWY6 CisJa2ZyZWUodWJ1Zi0+cGFnZXMpOworCWtmcmVlKHVidWYpOworZXJyX2ZyZWVfaW92czoKKwlr ZnJlZShpb3ZzKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgbG9uZyB1ZG1hYnVmX2lvY3Rs KHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgaW9jdGwsCisJCQkJICB1bnNpZ25lZCBs b25nIGFyZykKK3sKKwlsb25nIHJldDsKKworCXN3aXRjaCAoaW9jdGwpIHsKKwljYXNlIFVETUFC VUZfQ1JFQVRFOgorCQlyZXQgPSB1ZG1hYnVmX2lvY3RsX2NyZWF0ZShmaWxwLCBhcmcpOworCQli cmVhazsKKwlkZWZhdWx0OgorCQlyZXQgPSAtRUlOVkFMOworCQlicmVhazsKKwl9CisJcmV0dXJu IHJldDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdWRtYWJ1Zl9m b3BzID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkudW5sb2NrZWRfaW9jdGwgPSB1ZG1h YnVmX2lvY3RsLAorfTsKKworc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIHVkbWFidWZfbWlzYyA9 IHsKKwkubWlub3IgICAgICAgICAgPSBNSVNDX0RZTkFNSUNfTUlOT1IsCisJLm5hbWUgICAgICAg ICAgID0gInVkbWFidWYiLAorCS5mb3BzICAgICAgICAgICA9ICZ1ZG1hYnVmX2ZvcHMsCit9Owor CitzdGF0aWMgaW50IF9faW5pdCB1ZG1hYnVmX2Rldl9pbml0KHZvaWQpCit7CisJaW50IHJldDsK KworCXJldCA9IG1pc2NfcmVnaXN0ZXIoJnVkbWFidWZfbWlzYyk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgdWRtYWJ1Zl9k ZXZfZXhpdCh2b2lkKQoreworCW1pc2NfZGVyZWdpc3RlcigmdWRtYWJ1Zl9taXNjKTsKK30KKwor bW9kdWxlX2luaXQodWRtYWJ1Zl9kZXZfaW5pdCkKK21vZHVsZV9leGl0KHVkbWFidWZfZGV2X2V4 aXQpCisKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1h LWJ1Zi9LY29uZmlnIGIvZHJpdmVycy9kbWEtYnVmL0tjb25maWcKaW5kZXggZWQzYjc4NWJhZS4u NTg3NmI1MjU1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL0tjb25maWcKKysrIGIvZHJp dmVycy9kbWEtYnVmL0tjb25maWcKQEAgLTMwLDQgKzMwLDExIEBAIGNvbmZpZyBTV19TWU5DCiAJ ICBXQVJOSU5HOiBpbXByb3BlciB1c2Ugb2YgdGhpcyBjYW4gcmVzdWx0IGluIGRlYWRsb2NraW5n IGtlcm5lbAogCSAgZHJpdmVycyBmcm9tIHVzZXJzcGFjZS4gSW50ZW5kZWQgZm9yIHRlc3QgYW5k IGRlYnVnIG9ubHkuCiAKK2NvbmZpZyBVRE1BQlVGCisJdHJpc3RhdGUgInVzZXJzcGFjZSBkbWFi dWYgbWlzYyBkcml2ZXIiCisJZGVmYXVsdCBuCisJZGVwZW5kcyBvbiBETUFfU0hBUkVEX0JVRkZF UgorCS0tLWhlbHAtLS0KKwkgIEEgZHJpdmVyIHRvIGxldCB1c2Vyc3BhY2UgdHVybiBpb3ZzIGlu dG8gZG1hLWJ1ZnMuCisKIGVuZG1lbnUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9NYWtl ZmlsZSBiL2RyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZQppbmRleCBjMzNiZjg4NjMxLi4wOTEzYTZj Y2FiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9k bWEtYnVmL01ha2VmaWxlCkBAIC0xLDMgKzEsNCBAQAogb2JqLXkgOj0gZG1hLWJ1Zi5vIGRtYS1m ZW5jZS5vIGRtYS1mZW5jZS1hcnJheS5vIHJlc2VydmF0aW9uLm8gc2Vxbm8tZmVuY2Uubwogb2Jq LSQoQ09ORklHX1NZTkNfRklMRSkJCSs9IHN5bmNfZmlsZS5vCiBvYmotJChDT05GSUdfU1dfU1lO QykJCSs9IHN3X3N5bmMubyBzeW5jX2RlYnVnLm8KK29iai0kKENPTkZJR19VRE1BQlVGKQkJKz0g dWRtYWJ1Zi5vCi0tIAoyLjkuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==