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=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS 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 C2797ECDE43 for ; Fri, 19 Oct 2018 06:19:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 87C112086E for ; Fri, 19 Oct 2018 06:19:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 87C112086E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727232AbeJSOXl (ORCPT ); Fri, 19 Oct 2018 10:23:41 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43366 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727065AbeJSOX3 (ORCPT ); Fri, 19 Oct 2018 10:23:29 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4F833804E2; Fri, 19 Oct 2018 06:18:52 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-116-238.ams2.redhat.com [10.36.116.238]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9C49C60851; Fri, 19 Oct 2018 06:18:49 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 0C4BFB3D47; Fri, 19 Oct 2018 08:18:48 +0200 (CEST) From: Gerd Hoffmann To: dri-devel@lists.freedesktop.org Cc: Gerd Hoffmann , David Airlie , virtualization@lists.linux-foundation.org (open list:VIRTIO GPU DRIVER), linux-kernel@vger.kernel.org (open list) Subject: [PATCH v2 5/6] drm/virtio: drop resource_id argument. Date: Fri, 19 Oct 2018 08:18:46 +0200 Message-Id: <20181019061847.18958-6-kraxel@redhat.com> In-Reply-To: <20181019061847.18958-1-kraxel@redhat.com> References: <20181019061847.18958-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 19 Oct 2018 06:18:52 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We pass the obj anyway, so obj->hw_res_handle can be used instead in virtio_gpu_object_attach() and virtio_gpu_cmd_create_resource(). Signed-off-by: Gerd Hoffmann --- drivers/gpu/drm/virtio/virtgpu_drv.h | 2 -- drivers/gpu/drm/virtio/virtgpu_fb.c | 4 ++-- drivers/gpu/drm/virtio/virtgpu_gem.c | 4 ++-- drivers/gpu/drm/virtio/virtgpu_ioctl.c | 6 +++--- drivers/gpu/drm/virtio/virtgpu_ttm.c | 3 +-- drivers/gpu/drm/virtio/virtgpu_vq.c | 7 ++----- 6 files changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h index 5edc22d7a7..c6b0a938ba 100644 --- a/drivers/gpu/drm/virtio/virtgpu_drv.h +++ b/drivers/gpu/drm/virtio/virtgpu_drv.h @@ -265,7 +265,6 @@ void virtio_gpu_resource_id_get(struct virtio_gpu_device *vgdev, void virtio_gpu_resource_id_put(struct virtio_gpu_device *vgdev, uint32_t id); void virtio_gpu_cmd_create_resource(struct virtio_gpu_device *vgdev, struct virtio_gpu_object *bo, - uint32_t resource_id, uint32_t format, uint32_t width, uint32_t height); @@ -287,7 +286,6 @@ void virtio_gpu_cmd_set_scanout(struct virtio_gpu_device *vgdev, uint32_t x, uint32_t y); int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev, struct virtio_gpu_object *obj, - uint32_t resource_id, struct virtio_gpu_fence **fence); void virtio_gpu_object_detach(struct virtio_gpu_device *vgdev, struct virtio_gpu_object *obj); diff --git a/drivers/gpu/drm/virtio/virtgpu_fb.c b/drivers/gpu/drm/virtio/virtgpu_fb.c index 800960bdd9..c22a8246b6 100644 --- a/drivers/gpu/drm/virtio/virtgpu_fb.c +++ b/drivers/gpu/drm/virtio/virtgpu_fb.c @@ -232,7 +232,7 @@ static int virtio_gpufb_create(struct drm_fb_helper *helper, return PTR_ERR(obj); virtio_gpu_resource_id_get(vgdev, &obj->hw_res_handle); - virtio_gpu_cmd_create_resource(vgdev, obj, obj->hw_res_handle, format, + virtio_gpu_cmd_create_resource(vgdev, obj, format, mode_cmd.width, mode_cmd.height); ret = virtio_gpu_object_kmap(obj); @@ -242,7 +242,7 @@ static int virtio_gpufb_create(struct drm_fb_helper *helper, } /* attach the object to the resource */ - ret = virtio_gpu_object_attach(vgdev, obj, obj->hw_res_handle, NULL); + ret = virtio_gpu_object_attach(vgdev, obj, NULL); if (ret) goto err_obj_attach; diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c index 8d53451ec4..665d18a49d 100644 --- a/drivers/gpu/drm/virtio/virtgpu_gem.c +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c @@ -104,11 +104,11 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, format = virtio_gpu_translate_format(DRM_FORMAT_HOST_XRGB8888); obj = gem_to_virtio_gpu_obj(gobj); virtio_gpu_resource_id_get(vgdev, &obj->hw_res_handle); - virtio_gpu_cmd_create_resource(vgdev, obj, obj->hw_res_handle, format, + virtio_gpu_cmd_create_resource(vgdev, obj, format, args->width, args->height); /* attach the object to the resource */ - ret = virtio_gpu_object_attach(vgdev, obj, obj->hw_res_handle, NULL); + ret = virtio_gpu_object_attach(vgdev, obj, NULL); if (ret) goto fail; diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c index ebb0920411..6179d93167 100644 --- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c +++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c @@ -256,10 +256,10 @@ static int virtio_gpu_resource_create_ioctl(struct drm_device *dev, void *data, virtio_gpu_resource_id_get(vgdev, &qobj->hw_res_handle); if (!vgdev->has_virgl_3d) { - virtio_gpu_cmd_create_resource(vgdev, qobj, qobj->hw_res_handle, rc->format, + virtio_gpu_cmd_create_resource(vgdev, qobj, rc->format, rc->width, rc->height); - ret = virtio_gpu_object_attach(vgdev, qobj, qobj->hw_res_handle, NULL); + ret = virtio_gpu_object_attach(vgdev, qobj, NULL); } else { /* use a gem reference since unref list undoes them */ drm_gem_object_get(&qobj->gem_base); @@ -285,7 +285,7 @@ static int virtio_gpu_resource_create_ioctl(struct drm_device *dev, void *data, rc_3d.flags = cpu_to_le32(rc->flags); virtio_gpu_cmd_resource_create_3d(vgdev, qobj, &rc_3d, NULL); - ret = virtio_gpu_object_attach(vgdev, qobj, qobj->hw_res_handle, &fence); + ret = virtio_gpu_object_attach(vgdev, qobj, &fence); if (ret) { ttm_eu_backoff_reservation(&ticket, &validate_list); goto fail_unref; diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c index e3152d45c5..cd63dffa6d 100644 --- a/drivers/gpu/drm/virtio/virtgpu_ttm.c +++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c @@ -347,8 +347,7 @@ static void virtio_gpu_bo_move_notify(struct ttm_buffer_object *tbo, } else if (new_mem->placement & TTM_PL_FLAG_TT) { if (bo->hw_res_handle) { - virtio_gpu_object_attach(vgdev, bo, bo->hw_res_handle, - NULL); + virtio_gpu_object_attach(vgdev, bo, NULL); } } } diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c index 3b6904c5b3..ea3d13793d 100644 --- a/drivers/gpu/drm/virtio/virtgpu_vq.c +++ b/drivers/gpu/drm/virtio/virtgpu_vq.c @@ -389,7 +389,6 @@ static int virtio_gpu_queue_cursor(struct virtio_gpu_device *vgdev, /* create a basic resource */ void virtio_gpu_cmd_create_resource(struct virtio_gpu_device *vgdev, struct virtio_gpu_object *bo, - uint32_t resource_id, uint32_t format, uint32_t width, uint32_t height) @@ -401,7 +400,7 @@ void virtio_gpu_cmd_create_resource(struct virtio_gpu_device *vgdev, memset(cmd_p, 0, sizeof(*cmd_p)); cmd_p->hdr.type = cpu_to_le32(VIRTIO_GPU_CMD_RESOURCE_CREATE_2D); - cmd_p->resource_id = cpu_to_le32(resource_id); + cmd_p->resource_id = cpu_to_le32(bo->hw_res_handle); cmd_p->format = cpu_to_le32(format); cmd_p->width = cpu_to_le32(width); cmd_p->height = cpu_to_le32(height); @@ -865,7 +864,6 @@ void virtio_gpu_cmd_submit(struct virtio_gpu_device *vgdev, int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev, struct virtio_gpu_object *obj, - uint32_t resource_id, struct virtio_gpu_fence **fence) { bool use_dma_api = !virtio_has_iommu_quirk(vgdev->vdev); @@ -909,10 +907,9 @@ int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev, ents[si].padding = 0; } - virtio_gpu_cmd_resource_attach_backing(vgdev, resource_id, + virtio_gpu_cmd_resource_attach_backing(vgdev, obj->hw_res_handle, ents, nents, fence); - obj->hw_res_handle = resource_id; return 0; } -- 2.9.3 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [PATCH v2 5/6] drm/virtio: drop resource_id argument. Date: Fri, 19 Oct 2018 08:18:46 +0200 Message-ID: <20181019061847.18958-6-kraxel@redhat.com> References: <20181019061847.18958-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 (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id B106F6E1B8 for ; Fri, 19 Oct 2018 06:18:52 +0000 (UTC) In-Reply-To: <20181019061847.18958-1-kraxel@redhat.com> 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: David Airlie , open list , Gerd Hoffmann , "open list:VIRTIO GPU DRIVER" List-Id: dri-devel@lists.freedesktop.org V2UgcGFzcyB0aGUgb2JqIGFueXdheSwgc28gb2JqLT5od19yZXNfaGFuZGxlIGNhbiBiZSB1c2Vk IGluc3RlYWQKaW4gdmlydGlvX2dwdV9vYmplY3RfYXR0YWNoKCkgYW5kIHZpcnRpb19ncHVfY21k X2NyZWF0ZV9yZXNvdXJjZSgpLgoKU2lnbmVkLW9mZi1ieTogR2VyZCBIb2ZmbWFubiA8a3JheGVs QHJlZGhhdC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5oICAg fCAyIC0tCiBkcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmIuYyAgICB8IDQgKystLQog ZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2dlbS5jICAgfCA0ICsrLS0KIGRyaXZlcnMv Z3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jIHwgNiArKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS92aXJ0aW8vdmlydGdwdV90dG0uYyAgIHwgMyArLS0KIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8v dmlydGdwdV92cS5jICAgIHwgNyArKy0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlv bnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0 aW8vdmlydGdwdV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaApp bmRleCA1ZWRjMjJkN2E3Li5jNmIwYTkzOGJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v dmlydGlvL3ZpcnRncHVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1 X2Rydi5oCkBAIC0yNjUsNyArMjY1LDYgQEAgdm9pZCB2aXJ0aW9fZ3B1X3Jlc291cmNlX2lkX2dl dChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2LAogdm9pZCB2aXJ0aW9fZ3B1X3Jlc291 cmNlX2lkX3B1dChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2LCB1aW50MzJfdCBpZCk7 CiB2b2lkIHZpcnRpb19ncHVfY21kX2NyZWF0ZV9yZXNvdXJjZShzdHJ1Y3QgdmlydGlvX2dwdV9k ZXZpY2UgKnZnZGV2LAogCQkJCSAgICBzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKmJvLAotCQkJ CSAgICB1aW50MzJfdCByZXNvdXJjZV9pZCwKIAkJCQkgICAgdWludDMyX3QgZm9ybWF0LAogCQkJ CSAgICB1aW50MzJfdCB3aWR0aCwKIAkJCQkgICAgdWludDMyX3QgaGVpZ2h0KTsKQEAgLTI4Nyw3 ICsyODYsNiBAQCB2b2lkIHZpcnRpb19ncHVfY21kX3NldF9zY2Fub3V0KHN0cnVjdCB2aXJ0aW9f Z3B1X2RldmljZSAqdmdkZXYsCiAJCQkJdWludDMyX3QgeCwgdWludDMyX3QgeSk7CiBpbnQgdmly dGlvX2dwdV9vYmplY3RfYXR0YWNoKHN0cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYsCiAJ CQkgICAgIHN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCAqb2JqLAotCQkJICAgICB1aW50MzJfdCBy ZXNvdXJjZV9pZCwKIAkJCSAgICAgc3RydWN0IHZpcnRpb19ncHVfZmVuY2UgKipmZW5jZSk7CiB2 b2lkIHZpcnRpb19ncHVfb2JqZWN0X2RldGFjaChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZn ZGV2LAogCQkJICAgICAgc3RydWN0IHZpcnRpb19ncHVfb2JqZWN0ICpvYmopOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0v dmlydGlvL3ZpcnRncHVfZmIuYwppbmRleCA4MDA5NjBiZGQ5Li5jMjJhODI0NmI2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZmIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdmlydGlvL3ZpcnRncHVfZmIuYwpAQCAtMjMyLDcgKzIzMiw3IEBAIHN0YXRpYyBpbnQg dmlydGlvX2dwdWZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCQlyZXR1 cm4gUFRSX0VSUihvYmopOwogCiAJdmlydGlvX2dwdV9yZXNvdXJjZV9pZF9nZXQodmdkZXYsICZv YmotPmh3X3Jlc19oYW5kbGUpOwotCXZpcnRpb19ncHVfY21kX2NyZWF0ZV9yZXNvdXJjZSh2Z2Rl diwgb2JqLCBvYmotPmh3X3Jlc19oYW5kbGUsIGZvcm1hdCwKKwl2aXJ0aW9fZ3B1X2NtZF9jcmVh dGVfcmVzb3VyY2UodmdkZXYsIG9iaiwgZm9ybWF0LAogCQkJCSAgICAgICBtb2RlX2NtZC53aWR0 aCwgbW9kZV9jbWQuaGVpZ2h0KTsKIAogCXJldCA9IHZpcnRpb19ncHVfb2JqZWN0X2ttYXAob2Jq KTsKQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0aWMgaW50IHZpcnRpb19ncHVmYl9jcmVhdGUoc3Ry dWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAl9CiAKIAkvKiBhdHRhY2ggdGhlIG9iamVjdCB0 byB0aGUgcmVzb3VyY2UgKi8KLQlyZXQgPSB2aXJ0aW9fZ3B1X29iamVjdF9hdHRhY2godmdkZXYs IG9iaiwgb2JqLT5od19yZXNfaGFuZGxlLCBOVUxMKTsKKwlyZXQgPSB2aXJ0aW9fZ3B1X29iamVj dF9hdHRhY2godmdkZXYsIG9iaiwgTlVMTCk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfb2JqX2F0 dGFjaDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2dlbS5jCmluZGV4IDhkNTM0NTFlYzQu LjY2NWQxOGE0OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9n ZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZ2VtLmMKQEAgLTEwNCwx MSArMTA0LDExIEBAIGludCB2aXJ0aW9fZ3B1X21vZGVfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXYsCiAJZm9ybWF0ID0gdmlydGlvX2dwdV90cmFuc2xhdGVfZm9ybWF0KERS TV9GT1JNQVRfSE9TVF9YUkdCODg4OCk7CiAJb2JqID0gZ2VtX3RvX3ZpcnRpb19ncHVfb2JqKGdv YmopOwogCXZpcnRpb19ncHVfcmVzb3VyY2VfaWRfZ2V0KHZnZGV2LCAmb2JqLT5od19yZXNfaGFu ZGxlKTsKLQl2aXJ0aW9fZ3B1X2NtZF9jcmVhdGVfcmVzb3VyY2UodmdkZXYsIG9iaiwgb2JqLT5o d19yZXNfaGFuZGxlLCBmb3JtYXQsCisJdmlydGlvX2dwdV9jbWRfY3JlYXRlX3Jlc291cmNlKHZn ZGV2LCBvYmosIGZvcm1hdCwKIAkJCQkgICAgICAgYXJncy0+d2lkdGgsIGFyZ3MtPmhlaWdodCk7 CiAKIAkvKiBhdHRhY2ggdGhlIG9iamVjdCB0byB0aGUgcmVzb3VyY2UgKi8KLQlyZXQgPSB2aXJ0 aW9fZ3B1X29iamVjdF9hdHRhY2godmdkZXYsIG9iaiwgb2JqLT5od19yZXNfaGFuZGxlLCBOVUxM KTsKKwlyZXQgPSB2aXJ0aW9fZ3B1X29iamVjdF9hdHRhY2godmdkZXYsIG9iaiwgTlVMTCk7CiAJ aWYgKHJldCkKIAkJZ290byBmYWlsOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmly dGlvL3ZpcnRncHVfaW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0 bC5jCmluZGV4IGViYjA5MjA0MTEuLjYxNzlkOTMxNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92aXJ0aW8vdmlydGdwdV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8v dmlydGdwdV9pb2N0bC5jCkBAIC0yNTYsMTAgKzI1NiwxMCBAQCBzdGF0aWMgaW50IHZpcnRpb19n cHVfcmVzb3VyY2VfY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJdmlydGlvX2dwdV9yZXNvdXJjZV9pZF9nZXQodmdkZXYsICZxb2JqLT5od19yZXNfaGFu ZGxlKTsKIAogCWlmICghdmdkZXYtPmhhc192aXJnbF8zZCkgewotCQl2aXJ0aW9fZ3B1X2NtZF9j cmVhdGVfcmVzb3VyY2UodmdkZXYsIHFvYmosIHFvYmotPmh3X3Jlc19oYW5kbGUsIHJjLT5mb3Jt YXQsCisJCXZpcnRpb19ncHVfY21kX2NyZWF0ZV9yZXNvdXJjZSh2Z2RldiwgcW9iaiwgcmMtPmZv cm1hdCwKIAkJCQkJICAgICAgIHJjLT53aWR0aCwgcmMtPmhlaWdodCk7CiAKLQkJcmV0ID0gdmly dGlvX2dwdV9vYmplY3RfYXR0YWNoKHZnZGV2LCBxb2JqLCBxb2JqLT5od19yZXNfaGFuZGxlLCBO VUxMKTsKKwkJcmV0ID0gdmlydGlvX2dwdV9vYmplY3RfYXR0YWNoKHZnZGV2LCBxb2JqLCBOVUxM KTsKIAl9IGVsc2UgewogCQkvKiB1c2UgYSBnZW0gcmVmZXJlbmNlIHNpbmNlIHVucmVmIGxpc3Qg dW5kb2VzIHRoZW0gKi8KIAkJZHJtX2dlbV9vYmplY3RfZ2V0KCZxb2JqLT5nZW1fYmFzZSk7CkBA IC0yODUsNyArMjg1LDcgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1X3Jlc291cmNlX2NyZWF0ZV9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlyY18zZC5mbGFncyA9 IGNwdV90b19sZTMyKHJjLT5mbGFncyk7CiAKIAkJdmlydGlvX2dwdV9jbWRfcmVzb3VyY2VfY3Jl YXRlXzNkKHZnZGV2LCBxb2JqLCAmcmNfM2QsIE5VTEwpOwotCQlyZXQgPSB2aXJ0aW9fZ3B1X29i amVjdF9hdHRhY2godmdkZXYsIHFvYmosIHFvYmotPmh3X3Jlc19oYW5kbGUsICZmZW5jZSk7CisJ CXJldCA9IHZpcnRpb19ncHVfb2JqZWN0X2F0dGFjaCh2Z2RldiwgcW9iaiwgJmZlbmNlKTsKIAkJ aWYgKHJldCkgewogCQkJdHRtX2V1X2JhY2tvZmZfcmVzZXJ2YXRpb24oJnRpY2tldCwgJnZhbGlk YXRlX2xpc3QpOwogCQkJZ290byBmYWlsX3VucmVmOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1 X3R0bS5jCmluZGV4IGUzMTUyZDQ1YzUuLmNkNjNkZmZhNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS92aXJ0aW8vdmlydGdwdV90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlv L3ZpcnRncHVfdHRtLmMKQEAgLTM0Nyw4ICszNDcsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fZ3B1 X2JvX21vdmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvLAogCiAJfSBlbHNl IGlmIChuZXdfbWVtLT5wbGFjZW1lbnQgJiBUVE1fUExfRkxBR19UVCkgewogCQlpZiAoYm8tPmh3 X3Jlc19oYW5kbGUpIHsKLQkJCXZpcnRpb19ncHVfb2JqZWN0X2F0dGFjaCh2Z2RldiwgYm8sIGJv LT5od19yZXNfaGFuZGxlLAotCQkJCQkJIE5VTEwpOworCQkJdmlydGlvX2dwdV9vYmplY3RfYXR0 YWNoKHZnZGV2LCBibywgTlVMTCk7CiAJCX0KIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdmlydGlvL3ZpcnRncHVfdnEuYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdw dV92cS5jCmluZGV4IDNiNjkwNGM1YjMuLmVhM2QxMzc5M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS92aXJ0aW8vdmlydGdwdV92cS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8v dmlydGdwdV92cS5jCkBAIC0zODksNyArMzg5LDYgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1X3F1 ZXVlX2N1cnNvcihzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2LAogLyogY3JlYXRlIGEg YmFzaWMgcmVzb3VyY2UgKi8KIHZvaWQgdmlydGlvX2dwdV9jbWRfY3JlYXRlX3Jlc291cmNlKHN0 cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYsCiAJCQkJICAgIHN0cnVjdCB2aXJ0aW9fZ3B1 X29iamVjdCAqYm8sCi0JCQkJICAgIHVpbnQzMl90IHJlc291cmNlX2lkLAogCQkJCSAgICB1aW50 MzJfdCBmb3JtYXQsCiAJCQkJICAgIHVpbnQzMl90IHdpZHRoLAogCQkJCSAgICB1aW50MzJfdCBo ZWlnaHQpCkBAIC00MDEsNyArNDAwLDcgQEAgdm9pZCB2aXJ0aW9fZ3B1X2NtZF9jcmVhdGVfcmVz b3VyY2Uoc3RydWN0IHZpcnRpb19ncHVfZGV2aWNlICp2Z2RldiwKIAltZW1zZXQoY21kX3AsIDAs IHNpemVvZigqY21kX3ApKTsKIAogCWNtZF9wLT5oZHIudHlwZSA9IGNwdV90b19sZTMyKFZJUlRJ T19HUFVfQ01EX1JFU09VUkNFX0NSRUFURV8yRCk7Ci0JY21kX3AtPnJlc291cmNlX2lkID0gY3B1 X3RvX2xlMzIocmVzb3VyY2VfaWQpOworCWNtZF9wLT5yZXNvdXJjZV9pZCA9IGNwdV90b19sZTMy KGJvLT5od19yZXNfaGFuZGxlKTsKIAljbWRfcC0+Zm9ybWF0ID0gY3B1X3RvX2xlMzIoZm9ybWF0 KTsKIAljbWRfcC0+d2lkdGggPSBjcHVfdG9fbGUzMih3aWR0aCk7CiAJY21kX3AtPmhlaWdodCA9 IGNwdV90b19sZTMyKGhlaWdodCk7CkBAIC04NjUsNyArODY0LDYgQEAgdm9pZCB2aXJ0aW9fZ3B1 X2NtZF9zdWJtaXQoc3RydWN0IHZpcnRpb19ncHVfZGV2aWNlICp2Z2RldiwKIAogaW50IHZpcnRp b19ncHVfb2JqZWN0X2F0dGFjaChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2LAogCQkJ ICAgICBzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKm9iaiwKLQkJCSAgICAgdWludDMyX3QgcmVz b3VyY2VfaWQsCiAJCQkgICAgIHN0cnVjdCB2aXJ0aW9fZ3B1X2ZlbmNlICoqZmVuY2UpCiB7CiAJ Ym9vbCB1c2VfZG1hX2FwaSA9ICF2aXJ0aW9faGFzX2lvbW11X3F1aXJrKHZnZGV2LT52ZGV2KTsK QEAgLTkwOSwxMCArOTA3LDkgQEAgaW50IHZpcnRpb19ncHVfb2JqZWN0X2F0dGFjaChzdHJ1Y3Qg dmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2LAogCQllbnRzW3NpXS5wYWRkaW5nID0gMDsKIAl9CiAK LQl2aXJ0aW9fZ3B1X2NtZF9yZXNvdXJjZV9hdHRhY2hfYmFja2luZyh2Z2RldiwgcmVzb3VyY2Vf aWQsCisJdmlydGlvX2dwdV9jbWRfcmVzb3VyY2VfYXR0YWNoX2JhY2tpbmcodmdkZXYsIG9iai0+ aHdfcmVzX2hhbmRsZSwKIAkJCQkJICAgICAgIGVudHMsIG5lbnRzLAogCQkJCQkgICAgICAgZmVu Y2UpOwotCW9iai0+aHdfcmVzX2hhbmRsZSA9IHJlc291cmNlX2lkOwogCXJldHVybiAwOwogfQog Ci0tIAoyLjkuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==