From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mikulas Patocka Date: Sun, 03 Jun 2018 14:40:59 +0000 Subject: [PATCH 06/21] udl-kms: make a local copy of fb_ops Message-Id: <20180603144221.252346438@twibright.com> List-Id: References: <20180603144053.875668929@twibright.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Mikulas Patocka , Bartlomiej Zolnierkiewicz , Dave Airlie , Bernie Thompson , Ladislav Michl Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org The defio subsystem overwrites the method fb_osp->mmap. That method is stored in module's static data - and that means that if we have multiple diplaylink adapters, they will over write each other's method. In order to avoid interference between multiple adapters, we copy the fb_ops structure to a device-local memory. Signed-off-by: Mikulas Patocka Cc: stable@vger.kernel.org --- drivers/gpu/drm/udl/udl_fb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) Index: linux-4.17-rc7/drivers/gpu/drm/udl/udl_fb.c =================================--- linux-4.17-rc7.orig/drivers/gpu/drm/udl/udl_fb.c 2018-06-03 13:05:20.000000000 +0200 +++ linux-4.17-rc7/drivers/gpu/drm/udl/udl_fb.c 2018-06-03 13:08:03.000000000 +0200 @@ -34,6 +34,7 @@ module_param(fb_defio, int, S_IWUSR | S_ struct udl_fbdev { struct drm_fb_helper helper; struct udl_framebuffer ufb; + struct fb_ops fb_ops; int fb_count; }; @@ -405,7 +406,8 @@ static int udlfb_create(struct drm_fb_he info->fix.smem_len = size; info->fix.smem_start = (unsigned long)ufbdev->ufb.obj->vmapping; - info->fbops = &udlfb_ops; + ufbdev->fb_ops = udlfb_ops; + info->fbops = &ufbdev->fb_ops; drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth); drm_fb_helper_fill_var(info, &ufbdev->helper, sizes->fb_width, sizes->fb_height); From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mikulas Patocka Subject: [PATCH 06/21] udl-kms: make a local copy of fb_ops Date: Sun, 03 Jun 2018 16:40:59 +0200 Message-ID: <20180603144221.252346438@twibright.com> References: <20180603144053.875668929@twibright.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from leontynka.twibright.com (109-183-129-149.tmcz.cz [109.183.129.149]) by gabe.freedesktop.org (Postfix) with ESMTPS id 664336E286 for ; Sun, 3 Jun 2018 15:19:19 +0000 (UTC) Content-Disposition: inline; filename=udlkms-copy-fbops.patch List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mikulas Patocka , Bartlomiej Zolnierkiewicz , Dave Airlie , Bernie Thompson , Ladislav Michl Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIGRlZmlvIHN1YnN5c3RlbSBvdmVyd3JpdGVzIHRoZSBtZXRob2QgZmJfb3NwLT5tbWFwLiBU aGF0IG1ldGhvZCBpcwpzdG9yZWQgaW4gbW9kdWxlJ3Mgc3RhdGljIGRhdGEgLSBhbmQgdGhhdCBt ZWFucyB0aGF0IGlmIHdlIGhhdmUgbXVsdGlwbGUKZGlwbGF5bGluayBhZGFwdGVycywgdGhleSB3 aWxsIG92ZXIgd3JpdGUgZWFjaCBvdGhlcidzIG1ldGhvZC4KCkluIG9yZGVyIHRvIGF2b2lkIGlu dGVyZmVyZW5jZSBiZXR3ZWVuIG11bHRpcGxlIGFkYXB0ZXJzLCB3ZSBjb3B5IHRoZQpmYl9vcHMg c3RydWN0dXJlIHRvIGEgZGV2aWNlLWxvY2FsIG1lbW9yeS4KClNpZ25lZC1vZmYtYnk6IE1pa3Vs YXMgUGF0b2NrYSA8bXBhdG9ja2FAcmVkaGF0LmNvbT4KQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5v cmcKCi0tLQogZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZmIuYyB8ICAgIDQgKysrLQogMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKSW5kZXg6IGxpbnV4LTQu MTctcmM3L2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2ZiLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbGludXgt NC4xNy1yYzcub3JpZy9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9mYi5jCTIwMTgtMDYtMDMgMTM6 MDU6MjAuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC00LjE3LXJjNy9kcml2ZXJzL2dwdS9kcm0v dWRsL3VkbF9mYi5jCTIwMTgtMDYtMDMgMTM6MDg6MDMuMDAwMDAwMDAwICswMjAwCkBAIC0zNCw2 ICszNCw3IEBAIG1vZHVsZV9wYXJhbShmYl9kZWZpbywgaW50LCBTX0lXVVNSIHwgU18KIHN0cnVj dCB1ZGxfZmJkZXYgewogCXN0cnVjdCBkcm1fZmJfaGVscGVyIGhlbHBlcjsKIAlzdHJ1Y3QgdWRs X2ZyYW1lYnVmZmVyIHVmYjsKKwlzdHJ1Y3QgZmJfb3BzIGZiX29wczsKIAlpbnQgZmJfY291bnQ7 CiB9OwogCkBAIC00MDUsNyArNDA2LDggQEAgc3RhdGljIGludCB1ZGxmYl9jcmVhdGUoc3RydWN0 IGRybV9mYl9oZQogCWluZm8tPmZpeC5zbWVtX2xlbiA9IHNpemU7CiAJaW5mby0+Zml4LnNtZW1f c3RhcnQgPSAodW5zaWduZWQgbG9uZyl1ZmJkZXYtPnVmYi5vYmotPnZtYXBwaW5nOwogCi0JaW5m by0+ZmJvcHMgPSAmdWRsZmJfb3BzOworCXVmYmRldi0+ZmJfb3BzID0gdWRsZmJfb3BzOworCWlu Zm8tPmZib3BzID0gJnVmYmRldi0+ZmJfb3BzOwogCWRybV9mYl9oZWxwZXJfZmlsbF9maXgoaW5m bywgZmItPnBpdGNoZXNbMF0sIGZiLT5mb3JtYXQtPmRlcHRoKTsKIAlkcm1fZmJfaGVscGVyX2Zp bGxfdmFyKGluZm8sICZ1ZmJkZXYtPmhlbHBlciwgc2l6ZXMtPmZiX3dpZHRoLCBzaXplcy0+ZmJf aGVpZ2h0KTsKIAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==