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 X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8C3A1C468BD for ; Fri, 7 Jun 2019 14:38:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 50D822083D for ; Fri, 7 Jun 2019 14:38:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NFCzRvA7" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729106AbfFGOiI (ORCPT ); Fri, 7 Jun 2019 10:38:08 -0400 Received: from mail-vk1-f196.google.com ([209.85.221.196]:43503 "EHLO mail-vk1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728311AbfFGOiI (ORCPT ); Fri, 7 Jun 2019 10:38:08 -0400 Received: by mail-vk1-f196.google.com with SMTP id m193so415370vke.10 for ; Fri, 07 Jun 2019 07:38:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=TKjcG7F74rIiLByNRNXlvSG6M2lGgmcbBTtJHkAJ5zo=; b=NFCzRvA7xNGXFJIiBAGsFIew1vbH/17AMDoG4G0Z0LDcyOjXCE4LF0R8qHY3CvI1H6 NVZSIY6YpynXHyOycMicg5UGDAT4WIt+k74SkUmCmiCbUh9X5EUBtvUEekb8zmN57KfT eYGkIZ6KMvS7vS3yyKkJ/CvCdx6BmOcoy2CPYJBfJKbnpiLRiPFY0vCbh2ahi272nknF Bt83j4br8JxQRV9f7VP3knUKXEeh75MfPrmswl3y+AxqCj4KQrNr0hyP0wuDego20FBr K/lKhiOHvWMNR3mvUgkdEotSgJH/z5h6SyHdydQSEJWFtAYx/jYYLLq6gYKK6wOcUwak ccsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=TKjcG7F74rIiLByNRNXlvSG6M2lGgmcbBTtJHkAJ5zo=; b=CZFq7c2HjKFrYHA8q8qp3m0skXV3FRXbId3VXQdtD/2wAqaJqshB90LH4/j8nArgSM u0ytWmqXfVOFRpnw7jO1eJeEUxzSwHc3Ygd4s2pnIej3TJiYwADplBA0E2xXZCluM85D oU3EMpR6iKikqti51769XQalI08A5WGMxhluw2f6hwlFzaxrNNJinTn18sDscDvbKdml UZFDskQJQJm0jxDl/3lQuUWZBVSGhZH13xwTJWdfwhephNwGloNW8ugbDUU9YZpr+SbA Aucy5PN+gC4PbwXWZNREFcHOZqepBb7Db2ap+1h/KpSbacaxdbzjm88Jb2Jypzhrkk9D anIQ== X-Gm-Message-State: APjAAAUF0eVzZrjuXfDVN5vGAsjLfVSBWfK4CHmGbXPfEK8hS53LHeQQ CB8abOc743vT5Gv+CJLU/T00vuPixYtAs7sa5Sg= X-Google-Smtp-Source: APXvYqwOY2ArH7hx4LrnjaOK2c33/ATMBEzkouFb1iNTFL0VBn2w9Q4reHBa7XBt8fTGdXwDLzjzr0fCY6PsxovHzp4= X-Received: by 2002:a1f:12d5:: with SMTP id 204mr8721141vks.4.1559918286637; Fri, 07 Jun 2019 07:38:06 -0700 (PDT) MIME-Version: 1.0 References: <20190607073957.GB21222@phenom.ffwll.local> In-Reply-To: <20190607073957.GB21222@phenom.ffwll.local> From: Rodrigo Siqueira Date: Fri, 7 Jun 2019 11:37:55 -0300 Message-ID: Subject: Re: [PATCH 1/2] drm/vkms: Use index instead of 0 in possible crtc To: Rodrigo Siqueira , Brian Starkey , Liviu Dudau , Haneen Mohammed , Simon Ser , dri-devel , Linux Kernel Mailing List Cc: Daniel Vetter Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 7, 2019 at 4:40 AM Daniel Vetter wrote: > > On Thu, Jun 06, 2019 at 07:40:38PM -0300, Rodrigo Siqueira wrote: > > When vkms calls drm_universal_plane_init(), it sets 0 for the > > possible_crtcs parameter which works well for a single encoder and > > connector; however, this approach is not flexible and does not fit well > > for vkms. This commit adds an index parameter for vkms_plane_init() > > which makes code flexible and enables vkms to support other DRM features. > > > > Signed-off-by: Rodrigo Siqueira > > I think a core patch to WARN_ON if this is NULL would be good. Since > that's indeed a bit broken ... We'd need to check all callers to make sure > there's not other such bugs anywhere ofc. > -Daniel Do you mean add WARN_ON in `drm_universal_plane_init()` if `possible_crtcs` is equal to zero? > > --- > > drivers/gpu/drm/vkms/vkms_drv.c | 2 +- > > drivers/gpu/drm/vkms/vkms_drv.h | 4 ++-- > > drivers/gpu/drm/vkms/vkms_output.c | 6 +++--- > > drivers/gpu/drm/vkms/vkms_plane.c | 4 ++-- > > 4 files changed, 8 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/gpu/drm/vkms/vkms_drv.c b/drivers/gpu/drm/vkms/vkms_drv.c > > index 738dd6206d85..92296bd8f623 100644 > > --- a/drivers/gpu/drm/vkms/vkms_drv.c > > +++ b/drivers/gpu/drm/vkms/vkms_drv.c > > @@ -92,7 +92,7 @@ static int vkms_modeset_init(struct vkms_device *vkmsdev) > > dev->mode_config.max_height = YRES_MAX; > > dev->mode_config.preferred_depth = 24; > > > > - return vkms_output_init(vkmsdev); > > + return vkms_output_init(vkmsdev, 0); > > } > > > > static int __init vkms_init(void) > > diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h > > index 81f1cfbeb936..e81073dea154 100644 > > --- a/drivers/gpu/drm/vkms/vkms_drv.h > > +++ b/drivers/gpu/drm/vkms/vkms_drv.h > > @@ -113,10 +113,10 @@ bool vkms_get_vblank_timestamp(struct drm_device *dev, unsigned int pipe, > > int *max_error, ktime_t *vblank_time, > > bool in_vblank_irq); > > > > -int vkms_output_init(struct vkms_device *vkmsdev); > > +int vkms_output_init(struct vkms_device *vkmsdev, int index); > > > > struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev, > > - enum drm_plane_type type); > > + enum drm_plane_type type, int index); > > > > /* Gem stuff */ > > struct drm_gem_object *vkms_gem_create(struct drm_device *dev, > > diff --git a/drivers/gpu/drm/vkms/vkms_output.c b/drivers/gpu/drm/vkms/vkms_output.c > > index 3b162b25312e..1442b447c707 100644 > > --- a/drivers/gpu/drm/vkms/vkms_output.c > > +++ b/drivers/gpu/drm/vkms/vkms_output.c > > @@ -36,7 +36,7 @@ static const struct drm_connector_helper_funcs vkms_conn_helper_funcs = { > > .get_modes = vkms_conn_get_modes, > > }; > > > > -int vkms_output_init(struct vkms_device *vkmsdev) > > +int vkms_output_init(struct vkms_device *vkmsdev, int index) > > { > > struct vkms_output *output = &vkmsdev->output; > > struct drm_device *dev = &vkmsdev->drm; > > @@ -46,12 +46,12 @@ int vkms_output_init(struct vkms_device *vkmsdev) > > struct drm_plane *primary, *cursor = NULL; > > int ret; > > > > - primary = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_PRIMARY); > > + primary = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_PRIMARY, index); > > if (IS_ERR(primary)) > > return PTR_ERR(primary); > > > > if (enable_cursor) { > > - cursor = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_CURSOR); > > + cursor = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_CURSOR, index); > > if (IS_ERR(cursor)) { > > ret = PTR_ERR(cursor); > > goto err_cursor; > > diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c > > index 0e67d2d42f0c..20ffc52f9194 100644 > > --- a/drivers/gpu/drm/vkms/vkms_plane.c > > +++ b/drivers/gpu/drm/vkms/vkms_plane.c > > @@ -168,7 +168,7 @@ static const struct drm_plane_helper_funcs vkms_primary_helper_funcs = { > > }; > > > > struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev, > > - enum drm_plane_type type) > > + enum drm_plane_type type, int index) > > { > > struct drm_device *dev = &vkmsdev->drm; > > const struct drm_plane_helper_funcs *funcs; > > @@ -190,7 +190,7 @@ struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev, > > funcs = &vkms_primary_helper_funcs; > > } > > > > - ret = drm_universal_plane_init(dev, plane, 0, > > + ret = drm_universal_plane_init(dev, plane, 1 << index, > > &vkms_plane_funcs, > > formats, nformats, > > NULL, type, NULL); > > -- > > 2.21.0 > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Rodrigo Siqueira https://siqueira.tech From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Siqueira Subject: Re: [PATCH 1/2] drm/vkms: Use index instead of 0 in possible crtc Date: Fri, 7 Jun 2019 11:37:55 -0300 Message-ID: References: <20190607073957.GB21222@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-vk1-xa44.google.com (mail-vk1-xa44.google.com [IPv6:2607:f8b0:4864:20::a44]) by gabe.freedesktop.org (Postfix) with ESMTPS id B6E5C89B48 for ; Fri, 7 Jun 2019 14:38:07 +0000 (UTC) Received: by mail-vk1-xa44.google.com with SMTP id r23so415329vkd.12 for ; Fri, 07 Jun 2019 07:38:07 -0700 (PDT) In-Reply-To: <20190607073957.GB21222@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rodrigo Siqueira , Brian Starkey , Liviu Dudau , Haneen Mohammed , Simon Ser , dri-devel , Linux Kernel Mailing List List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBKdW4gNywgMjAxOSBhdCA0OjQwIEFNIERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZnds bC5jaD4gd3JvdGU6Cj4KPiBPbiBUaHUsIEp1biAwNiwgMjAxOSBhdCAwNzo0MDozOFBNIC0wMzAw LCBSb2RyaWdvIFNpcXVlaXJhIHdyb3RlOgo+ID4gV2hlbiB2a21zIGNhbGxzIGRybV91bml2ZXJz YWxfcGxhbmVfaW5pdCgpLCBpdCBzZXRzIDAgZm9yIHRoZQo+ID4gcG9zc2libGVfY3J0Y3MgcGFy YW1ldGVyIHdoaWNoIHdvcmtzIHdlbGwgZm9yIGEgc2luZ2xlIGVuY29kZXIgYW5kCj4gPiBjb25u ZWN0b3I7IGhvd2V2ZXIsIHRoaXMgYXBwcm9hY2ggaXMgbm90IGZsZXhpYmxlIGFuZCBkb2VzIG5v dCBmaXQgd2VsbAo+ID4gZm9yIHZrbXMuIFRoaXMgY29tbWl0IGFkZHMgYW4gaW5kZXggcGFyYW1l dGVyIGZvciB2a21zX3BsYW5lX2luaXQoKQo+ID4gd2hpY2ggbWFrZXMgY29kZSBmbGV4aWJsZSBh bmQgZW5hYmxlcyB2a21zIHRvIHN1cHBvcnQgb3RoZXIgRFJNIGZlYXR1cmVzLgo+ID4KPiA+IFNp Z25lZC1vZmYtYnk6IFJvZHJpZ28gU2lxdWVpcmEgPHJvZHJpZ29zaXF1ZWlyYW1lbG9AZ21haWwu Y29tPgo+Cj4gSSB0aGluayBhIGNvcmUgcGF0Y2ggdG8gV0FSTl9PTiBpZiB0aGlzIGlzIE5VTEwg d291bGQgYmUgZ29vZC4gU2luY2UKPiB0aGF0J3MgaW5kZWVkIGEgYml0IGJyb2tlbiAuLi4gV2Un ZCBuZWVkIHRvIGNoZWNrIGFsbCBjYWxsZXJzIHRvIG1ha2Ugc3VyZQo+IHRoZXJlJ3Mgbm90IG90 aGVyIHN1Y2ggYnVncyBhbnl3aGVyZSBvZmMuCj4gLURhbmllbAoKRG8geW91IG1lYW4gYWRkIFdB Uk5fT04gaW4gYGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgpYCBpZgpgcG9zc2libGVfY3J0Y3Ng IGlzIGVxdWFsIHRvIHplcm8/Cgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmtt c19kcnYuYyAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oICAg IHwgNCArKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYyB8IDYgKysr LS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jICB8IDQgKystLQo+ID4g IDQgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+ID4KPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19kcnYuYwo+ID4gaW5kZXggNzM4ZGQ2MjA2ZDg1Li45MjI5NmJkOGY2 MjMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCj4gPiBAQCAtOTIsNyArOTIsNyBA QCBzdGF0aWMgaW50IHZrbXNfbW9kZXNldF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2Rl dikKPiA+ICAgICAgIGRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IFlSRVNfTUFYOwo+ID4g ICAgICAgZGV2LT5tb2RlX2NvbmZpZy5wcmVmZXJyZWRfZGVwdGggPSAyNDsKPiA+Cj4gPiAtICAg ICByZXR1cm4gdmttc19vdXRwdXRfaW5pdCh2a21zZGV2KTsKPiA+ICsgICAgIHJldHVybiB2a21z X291dHB1dF9pbml0KHZrbXNkZXYsIDApOwo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIGludCBfX2lu aXQgdmttc19pbml0KHZvaWQpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+IGluZGV4IDgx ZjFjZmJlYjkzNi4uZTgxMDczZGVhMTU0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYu aAo+ID4gQEAgLTExMywxMCArMTEzLDEwIEBAIGJvb2wgdmttc19nZXRfdmJsYW5rX3RpbWVzdGFt cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50ICptYXhfZXJyb3IsIGt0aW1lX3QgKnZibGFua190aW1l LAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGluX3ZibGFua19pcnEpOwo+ ID4KPiA+IC1pbnQgdmttc19vdXRwdXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYp Owo+ID4gK2ludCB2a21zX291dHB1dF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2Rldiwg aW50IGluZGV4KTsKPiA+Cj4gPiAgc3RydWN0IGRybV9wbGFuZSAqdmttc19wbGFuZV9pbml0KHN0 cnVjdCB2a21zX2RldmljZSAqdmttc2RldiwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlKTsKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlLCBpbnQgaW5kZXgpOwo+ID4KPiA+ ICAvKiBHZW0gc3R1ZmYgKi8KPiA+ICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnZrbXNfZ2VtX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfb3V0cHV0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX291dHB1 dC5jCj4gPiBpbmRleCAzYjE2MmIyNTMxMmUuLjE0NDJiNDQ3YzcwNyAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfb3V0cHV0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfb3V0cHV0LmMKPiA+IEBAIC0zNiw3ICszNiw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3Mgdmttc19jb25uX2hlbHBlcl9mdW5j cyA9IHsKPiA+ICAgICAgIC5nZXRfbW9kZXMgICAgPSB2a21zX2Nvbm5fZ2V0X21vZGVzLAo+ID4g IH07Cj4gPgo+ID4gLWludCB2a21zX291dHB1dF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmtt c2RldikKPiA+ICtpbnQgdmttc19vdXRwdXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNk ZXYsIGludCBpbmRleCkKPiA+ICB7Cj4gPiAgICAgICBzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1 dCA9ICZ2a21zZGV2LT5vdXRwdXQ7Cj4gPiAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g JnZrbXNkZXYtPmRybTsKPiA+IEBAIC00NiwxMiArNDYsMTIgQEAgaW50IHZrbXNfb3V0cHV0X2lu aXQoc3RydWN0IHZrbXNfZGV2aWNlICp2a21zZGV2KQo+ID4gICAgICAgc3RydWN0IGRybV9wbGFu ZSAqcHJpbWFyeSwgKmN1cnNvciA9IE5VTEw7Cj4gPiAgICAgICBpbnQgcmV0Owo+ID4KPiA+IC0g ICAgIHByaW1hcnkgPSB2a21zX3BsYW5lX2luaXQodmttc2RldiwgRFJNX1BMQU5FX1RZUEVfUFJJ TUFSWSk7Cj4gPiArICAgICBwcmltYXJ5ID0gdmttc19wbGFuZV9pbml0KHZrbXNkZXYsIERSTV9Q TEFORV9UWVBFX1BSSU1BUlksIGluZGV4KTsKPiA+ICAgICAgIGlmIChJU19FUlIocHJpbWFyeSkp Cj4gPiAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHByaW1hcnkpOwo+ID4KPiA+ICAgICAg IGlmIChlbmFibGVfY3Vyc29yKSB7Cj4gPiAtICAgICAgICAgICAgIGN1cnNvciA9IHZrbXNfcGxh bmVfaW5pdCh2a21zZGV2LCBEUk1fUExBTkVfVFlQRV9DVVJTT1IpOwo+ID4gKyAgICAgICAgICAg ICBjdXJzb3IgPSB2a21zX3BsYW5lX2luaXQodmttc2RldiwgRFJNX1BMQU5FX1RZUEVfQ1VSU09S LCBpbmRleCk7Cj4gPiAgICAgICAgICAgICAgIGlmIChJU19FUlIoY3Vyc29yKSkgewo+ID4gICAg ICAgICAgICAgICAgICAgICAgIHJldCA9IFBUUl9FUlIoY3Vyc29yKTsKPiA+ICAgICAgICAgICAg ICAgICAgICAgICBnb3RvIGVycl9jdXJzb3I7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5j Cj4gPiBpbmRleCAwZTY3ZDJkNDJmMGMuLjIwZmZjNTJmOTE5NCAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19wbGFuZS5jCj4gPiBAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyB2a21zX3ByaW1hcnlfaGVscGVyX2Z1bmNzID0g ewo+ID4gIH07Cj4gPgo+ID4gIHN0cnVjdCBkcm1fcGxhbmUgKnZrbXNfcGxhbmVfaW5pdChzdHJ1 Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVudW0gZHJtX3BsYW5lX3R5cGUgdHlwZSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlLCBpbnQgaW5kZXgpCj4gPiAgewo+ID4g ICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07Cj4gPiAgICAgICBj b25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyAqZnVuY3M7Cj4gPiBAQCAtMTkwLDcg KzE5MCw3IEBAIHN0cnVjdCBkcm1fcGxhbmUgKnZrbXNfcGxhbmVfaW5pdChzdHJ1Y3Qgdmttc19k ZXZpY2UgKnZrbXNkZXYsCj4gPiAgICAgICAgICAgICAgIGZ1bmNzID0gJnZrbXNfcHJpbWFyeV9o ZWxwZXJfZnVuY3M7Cj4gPiAgICAgICB9Cj4gPgo+ID4gLSAgICAgcmV0ID0gZHJtX3VuaXZlcnNh bF9wbGFuZV9pbml0KGRldiwgcGxhbmUsIDAsCj4gPiArICAgICByZXQgPSBkcm1fdW5pdmVyc2Fs X3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgMSA8PCBpbmRleCwKPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmdmttc19wbGFuZV9mdW5jcywKPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRzLCBuZm9ybWF0cywKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCB0eXBlLCBOVUxMKTsKPiA+IC0tCj4gPiAy LjIxLjAKPgo+Cj4KPiAtLQo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50 ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAoKCgotLSAKClJvZHJpZ28gU2lx dWVpcmEKaHR0cHM6Ly9zaXF1ZWlyYS50ZWNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbA==