From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mikulas Patocka Date: Sun, 03 Jun 2018 14:41:07 +0000 Subject: [PATCH 14/21] udlfb: make a local copy of fb_ops Message-Id: <20180603144224.059013384@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/video/fbdev/udlfb.c | 3 ++- include/video/udlfb.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) Index: linux-4.17-rc7/drivers/video/fbdev/udlfb.c =================================--- linux-4.17-rc7.orig/drivers/video/fbdev/udlfb.c 2018-06-03 13:17:33.000000000 +0200 +++ linux-4.17-rc7/drivers/video/fbdev/udlfb.c 2018-06-03 13:17:33.000000000 +0200 @@ -1665,7 +1665,8 @@ static void dlfb_init_framebuffer_work(s dlfb->info = info; info->par = dlfb; info->pseudo_palette = dlfb->pseudo_palette; - info->fbops = &dlfb_ops; + dlfb->ops = dlfb_ops; + info->fbops = &dlfb->ops; retval = fb_alloc_cmap(&info->cmap, 256, 0); if (retval < 0) { Index: linux-4.17-rc7/include/video/udlfb.h =================================--- linux-4.17-rc7.orig/include/video/udlfb.h 2018-06-03 13:17:33.000000000 +0200 +++ linux-4.17-rc7/include/video/udlfb.h 2018-06-03 13:17:33.000000000 +0200 @@ -51,6 +51,7 @@ struct dlfb_data { int base8; u32 pseudo_palette[256]; int blank_mode; /*one of FB_BLANK_ */ + struct fb_ops ops; /* blit-only rendering path metrics, exposed through sysfs */ atomic_t bytes_rendered; /* raw pixel-bytes driver asked to render */ atomic_t bytes_identical; /* saved effort with backbuffer comparison */ From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mikulas Patocka Subject: [PATCH 14/21] udlfb: make a local copy of fb_ops Date: Sun, 03 Jun 2018 16:41:07 +0200 Message-ID: <20180603144224.059013384@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 3B2E76E2A0 for ; Sun, 3 Jun 2018 15:19:38 +0000 (UTC) Content-Disposition: inline; filename=udl-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 cmcKCi0tLQogZHJpdmVycy92aWRlby9mYmRldi91ZGxmYi5jIHwgICAgMyArKy0KIGluY2x1ZGUv dmlkZW8vdWRsZmIuaCAgICAgICB8ICAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCkluZGV4OiBsaW51eC00LjE3LXJjNy9kcml2ZXJzL3ZpZGVv L2ZiZGV2L3VkbGZiLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbGludXgtNC4xNy1yYzcub3JpZy9kcml2ZXJz L3ZpZGVvL2ZiZGV2L3VkbGZiLmMJMjAxOC0wNi0wMyAxMzoxNzozMy4wMDAwMDAwMDAgKzAyMDAK KysrIGxpbnV4LTQuMTctcmM3L2RyaXZlcnMvdmlkZW8vZmJkZXYvdWRsZmIuYwkyMDE4LTA2LTAz IDEzOjE3OjMzLjAwMDAwMDAwMCArMDIwMApAQCAtMTY2NSw3ICsxNjY1LDggQEAgc3RhdGljIHZv aWQgZGxmYl9pbml0X2ZyYW1lYnVmZmVyX3dvcmsocwogCWRsZmItPmluZm8gPSBpbmZvOwogCWlu Zm8tPnBhciA9IGRsZmI7CiAJaW5mby0+cHNldWRvX3BhbGV0dGUgPSBkbGZiLT5wc2V1ZG9fcGFs ZXR0ZTsKLQlpbmZvLT5mYm9wcyA9ICZkbGZiX29wczsKKwlkbGZiLT5vcHMgPSBkbGZiX29wczsK KwlpbmZvLT5mYm9wcyA9ICZkbGZiLT5vcHM7CiAKIAlyZXR2YWwgPSBmYl9hbGxvY19jbWFwKCZp bmZvLT5jbWFwLCAyNTYsIDApOwogCWlmIChyZXR2YWwgPCAwKSB7CkluZGV4OiBsaW51eC00LjE3 LXJjNy9pbmNsdWRlL3ZpZGVvL3VkbGZiLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbGludXgtNC4xNy1yYzcu b3JpZy9pbmNsdWRlL3ZpZGVvL3VkbGZiLmgJMjAxOC0wNi0wMyAxMzoxNzozMy4wMDAwMDAwMDAg KzAyMDAKKysrIGxpbnV4LTQuMTctcmM3L2luY2x1ZGUvdmlkZW8vdWRsZmIuaAkyMDE4LTA2LTAz IDEzOjE3OjMzLjAwMDAwMDAwMCArMDIwMApAQCAtNTEsNiArNTEsNyBAQCBzdHJ1Y3QgZGxmYl9k YXRhIHsKIAlpbnQgYmFzZTg7CiAJdTMyIHBzZXVkb19wYWxldHRlWzI1Nl07CiAJaW50IGJsYW5r X21vZGU7IC8qb25lIG9mIEZCX0JMQU5LXyAqLworCXN0cnVjdCBmYl9vcHMgb3BzOwogCS8qIGJs aXQtb25seSByZW5kZXJpbmcgcGF0aCBtZXRyaWNzLCBleHBvc2VkIHRocm91Z2ggc3lzZnMgKi8K IAlhdG9taWNfdCBieXRlc19yZW5kZXJlZDsgLyogcmF3IHBpeGVsLWJ5dGVzIGRyaXZlciBhc2tl ZCB0byByZW5kZXIgKi8KIAlhdG9taWNfdCBieXRlc19pZGVudGljYWw7IC8qIHNhdmVkIGVmZm9y dCB3aXRoIGJhY2tidWZmZXIgY29tcGFyaXNvbiAqLwoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==