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=-8.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_MUTT 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 8FF3DC07542 for ; Sat, 25 May 2019 17:01:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 72266216FD for ; Sat, 25 May 2019 17:01:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727296AbfEYRBC (ORCPT ); Sat, 25 May 2019 13:01:02 -0400 Received: from asavdk3.altibox.net ([109.247.116.14]:46722 "EHLO asavdk3.altibox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727249AbfEYRBB (ORCPT ); Sat, 25 May 2019 13:01:01 -0400 Received: from ravnborg.org (unknown [158.248.194.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by asavdk3.altibox.net (Postfix) with ESMTPS id 3D9D92013A; Sat, 25 May 2019 19:00:56 +0200 (CEST) Date: Sat, 25 May 2019 19:00:54 +0200 From: Sam Ravnborg To: Daniel Vetter Cc: LKML , Bartlomiej Zolnierkiewicz , Intel Graphics Development , DRI Development , =?utf-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= , Hans de Goede , Mikulas Patocka , Daniel Vetter , Peter Rosin Subject: Re: [PATCH 25/33] fbmem: pull fbcon_fb_blanked out of fb_blank Message-ID: <20190525170054.GA9076@ravnborg.org> References: <20190524085354.27411-1-daniel.vetter@ffwll.ch> <20190524085354.27411-26-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190524085354.27411-26-daniel.vetter@ffwll.ch> User-Agent: Mutt/1.10.1 (2018-07-13) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=dqr19Wo4 c=1 sm=1 tr=0 a=UWs3HLbX/2nnQ3s7vZ42gw==:117 a=UWs3HLbX/2nnQ3s7vZ42gw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=IkcTkHD0fZMA:10 a=QyXUC8HyAAAA:8 a=hD80L64hAAAA:8 a=20KFwNOVAAAA:8 a=pGLkceISAAAA:8 a=e5mUnYsNAAAA:8 a=LPur_4bgEY2nh4B5VZsA:9 a=QEXdDO2ut3YA:10 a=Vxmtnl_E_bksehYqCbjh:22 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Daniel. On Fri, May 24, 2019 at 10:53:46AM +0200, Daniel Vetter wrote: > There's a callchain of: > > fbcon_fb_blaned -> do_(un)blank_screen -> consw->con_blank ^^^^^^ Spelling error - as this is a callchain it would be good to have it fixed. Patch itself looks fine. Sam > -> fbcon_blank -> fb_blank > > Things don't go horribly wrong because the BKL console_lock safes the > day, but that's about it. And the seeming recursion is broken in 2 > ways: > - Starting from the fbdev ioctl we set FBINFO_MISC_USEREVENT, which > tells the fbcon_blank code to not call fb_blank. This was required > to not deadlock when recursing on the fb_notifier_chain mutex. > - Starting from the con_blank hook we're getting saved by the > console_blanked checks in do_blank/unblank_screen. Or at least > that's my theory. > > Anyway, recursion isn't awesome, so let's stop it. Breaking the > recursion avoids the need to be in the FBINFO_MISC_USEREVENT critical > section, so lets move it out of that too. > > The astute reader will notice that fb_blank seems to require > lock_fb_info(), which the fbcon code seems to ignore. I have no idea > how to fix that problem, so let's keep ignoring it. > > v2: I forgot the sysfs blanking code. > > Signed-off-by: Daniel Vetter > Cc: Daniel Vetter > Cc: Bartlomiej Zolnierkiewicz > Cc: "Michał Mirosław" > Cc: Peter Rosin > Cc: Hans de Goede > Cc: Mikulas Patocka > Cc: Rob Clark > --- > drivers/video/fbdev/core/fbmem.c | 4 +++- > drivers/video/fbdev/core/fbsysfs.c | 8 ++++++-- > 2 files changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c > index 9366fbe99a58..d6713dce9e31 100644 > --- a/drivers/video/fbdev/core/fbmem.c > +++ b/drivers/video/fbdev/core/fbmem.c > @@ -1068,7 +1068,6 @@ fb_blank(struct fb_info *info, int blank) > event.data = ␣ > > early_ret = fb_notifier_call_chain(FB_EARLY_EVENT_BLANK, &event); > - fbcon_fb_blanked(info, blank); > > if (info->fbops->fb_blank) > ret = info->fbops->fb_blank(blank, info); > @@ -1198,6 +1197,9 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, > info->flags |= FBINFO_MISC_USEREVENT; > ret = fb_blank(info, arg); > info->flags &= ~FBINFO_MISC_USEREVENT; > + > + /* might again call into fb_blank */ > + fbcon_fb_blanked(info, arg); > unlock_fb_info(info); > console_unlock(); > break; > diff --git a/drivers/video/fbdev/core/fbsysfs.c b/drivers/video/fbdev/core/fbsysfs.c > index 5f329278e55f..252d4f52d2a5 100644 > --- a/drivers/video/fbdev/core/fbsysfs.c > +++ b/drivers/video/fbdev/core/fbsysfs.c > @@ -18,6 +18,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -305,12 +306,15 @@ static ssize_t store_blank(struct device *device, > { > struct fb_info *fb_info = dev_get_drvdata(device); > char *last = NULL; > - int err; > + int err, arg; > > + arg = simple_strtoul(buf, &last, 0); > console_lock(); > fb_info->flags |= FBINFO_MISC_USEREVENT; > - err = fb_blank(fb_info, simple_strtoul(buf, &last, 0)); > + err = fb_blank(fb_info, arg); > fb_info->flags &= ~FBINFO_MISC_USEREVENT; > + /* might again call into fb_blank */ > + fbcon_fb_blanked(fb_info, arg); > console_unlock(); > if (err < 0) > return err; > -- > 2.20.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH 25/33] fbmem: pull fbcon_fb_blanked out of fb_blank Date: Sat, 25 May 2019 19:00:54 +0200 Message-ID: <20190525170054.GA9076@ravnborg.org> References: <20190524085354.27411-1-daniel.vetter@ffwll.ch> <20190524085354.27411-26-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190524085354.27411-26-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Bartlomiej Zolnierkiewicz , Intel Graphics Development , LKML , DRI Development , =?utf-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= , Mikulas Patocka , Daniel Vetter , Peter Rosin List-Id: dri-devel@lists.freedesktop.org SGkgRGFuaWVsLgoKT24gRnJpLCBNYXkgMjQsIDIwMTkgYXQgMTA6NTM6NDZBTSArMDIwMCwgRGFu aWVsIFZldHRlciB3cm90ZToKPiBUaGVyZSdzIGEgY2FsbGNoYWluIG9mOgo+IAo+IGZiY29uX2Zi X2JsYW5lZCAtPiBkb18odW4pYmxhbmtfc2NyZWVuIC0+IGNvbnN3LT5jb25fYmxhbmsKICAgICAg ICAgICBeXl5eXl4KU3BlbGxpbmcgZXJyb3IgLSBhcyB0aGlzIGlzIGEgY2FsbGNoYWluIGl0IHdv dWxkIGJlIGdvb2QgdG8gaGF2ZSBpdApmaXhlZC4KClBhdGNoIGl0c2VsZiBsb29rcyBmaW5lLgoK CVNhbQoKPiAJLT4gZmJjb25fYmxhbmsgLT4gZmJfYmxhbmsKPiAKPiBUaGluZ3MgZG9uJ3QgZ28g aG9ycmlibHkgd3JvbmcgYmVjYXVzZSB0aGUgQktMIGNvbnNvbGVfbG9jayBzYWZlcyB0aGUKPiBk YXksIGJ1dCB0aGF0J3MgYWJvdXQgaXQuIEFuZCB0aGUgc2VlbWluZyByZWN1cnNpb24gaXMgYnJv a2VuIGluIDIKPiB3YXlzOgo+IC0gU3RhcnRpbmcgZnJvbSB0aGUgZmJkZXYgaW9jdGwgd2Ugc2V0 IEZCSU5GT19NSVNDX1VTRVJFVkVOVCwgd2hpY2gKPiAgIHRlbGxzIHRoZSBmYmNvbl9ibGFuayBj b2RlIHRvIG5vdCBjYWxsIGZiX2JsYW5rLiBUaGlzIHdhcyByZXF1aXJlZAo+ICAgdG8gbm90IGRl YWRsb2NrIHdoZW4gcmVjdXJzaW5nIG9uIHRoZSBmYl9ub3RpZmllcl9jaGFpbiBtdXRleC4KPiAt IFN0YXJ0aW5nIGZyb20gdGhlIGNvbl9ibGFuayBob29rIHdlJ3JlIGdldHRpbmcgc2F2ZWQgYnkg dGhlCj4gICBjb25zb2xlX2JsYW5rZWQgY2hlY2tzIGluIGRvX2JsYW5rL3VuYmxhbmtfc2NyZWVu LiBPciBhdCBsZWFzdAo+ICAgdGhhdCdzIG15IHRoZW9yeS4KPiAKPiBBbnl3YXksIHJlY3Vyc2lv biBpc24ndCBhd2Vzb21lLCBzbyBsZXQncyBzdG9wIGl0LiBCcmVha2luZyB0aGUKPiByZWN1cnNp b24gYXZvaWRzIHRoZSBuZWVkIHRvIGJlIGluIHRoZSBGQklORk9fTUlTQ19VU0VSRVZFTlQgY3Jp dGljYWwKPiBzZWN0aW9uLCBzbyBsZXRzIG1vdmUgaXQgb3V0IG9mIHRoYXQgdG9vLgo+IAo+IFRo ZSBhc3R1dGUgcmVhZGVyIHdpbGwgbm90aWNlIHRoYXQgZmJfYmxhbmsgc2VlbXMgdG8gcmVxdWly ZQo+IGxvY2tfZmJfaW5mbygpLCB3aGljaCB0aGUgZmJjb24gY29kZSBzZWVtcyB0byBpZ25vcmUu IEkgaGF2ZSBubyBpZGVhCj4gaG93IHRvIGZpeCB0aGF0IHByb2JsZW0sIHNvIGxldCdzIGtlZXAg aWdub3JpbmcgaXQuCj4gCj4gdjI6IEkgZm9yZ290IHRoZSBzeXNmcyBibGFua2luZyBjb2RlLgo+ IAo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29t Pgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IENjOiBCYXJ0 bG9taWVqIFpvbG5pZXJraWV3aWN6IDxiLnpvbG5pZXJraWVAc2Ftc3VuZy5jb20+Cj4gQ2M6ICJN aWNoYcWCIE1pcm9zxYJhdyIgPG1pcnEtbGludXhAcmVyZS5xbXFtLnBsPgo+IENjOiBQZXRlciBS b3NpbiA8cGVkYUBheGVudGlhLnNlPgo+IENjOiBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRo YXQuY29tPgo+IENjOiBNaWt1bGFzIFBhdG9ja2EgPG1wYXRvY2thQHJlZGhhdC5jb20+Cj4gQ2M6 IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy92aWRlby9m YmRldi9jb3JlL2ZibWVtLmMgICB8IDQgKysrLQo+ICBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUv ZmJzeXNmcy5jIHwgOCArKysrKystLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9j b3JlL2ZibWVtLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvZmJtZW0uYwo+IGluZGV4IDkz NjZmYmU5OWE1OC4uZDY3MTNkY2U5ZTMxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvY29yZS9mYm1lbS5jCj4gKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZibWVtLmMK PiBAQCAtMTA2OCw3ICsxMDY4LDYgQEAgZmJfYmxhbmsoc3RydWN0IGZiX2luZm8gKmluZm8sIGlu dCBibGFuaykKPiAgCWV2ZW50LmRhdGEgPSAmYmxhbms7Cj4gIAo+ICAJZWFybHlfcmV0ID0gZmJf bm90aWZpZXJfY2FsbF9jaGFpbihGQl9FQVJMWV9FVkVOVF9CTEFOSywgJmV2ZW50KTsKPiAtCWZi Y29uX2ZiX2JsYW5rZWQoaW5mbywgYmxhbmspOwo+ICAKPiAgCWlmIChpbmZvLT5mYm9wcy0+ZmJf YmxhbmspCj4gICAJCXJldCA9IGluZm8tPmZib3BzLT5mYl9ibGFuayhibGFuaywgaW5mbyk7Cj4g QEAgLTExOTgsNiArMTE5Nyw5IEBAIHN0YXRpYyBsb25nIGRvX2ZiX2lvY3RsKHN0cnVjdCBmYl9p bmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLAo+ICAJCWluZm8tPmZsYWdzIHw9IEZCSU5GT19N SVNDX1VTRVJFVkVOVDsKPiAgCQlyZXQgPSBmYl9ibGFuayhpbmZvLCBhcmcpOwo+ICAJCWluZm8t PmZsYWdzICY9IH5GQklORk9fTUlTQ19VU0VSRVZFTlQ7Cj4gKwo+ICsJCS8qIG1pZ2h0IGFnYWlu IGNhbGwgaW50byBmYl9ibGFuayAqLwo+ICsJCWZiY29uX2ZiX2JsYW5rZWQoaW5mbywgYXJnKTsK PiAgCQl1bmxvY2tfZmJfaW5mbyhpbmZvKTsKPiAgCQljb25zb2xlX3VubG9jaygpOwo+ICAJCWJy ZWFrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvZmJzeXNmcy5jIGIv ZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2Zic3lzZnMuYwo+IGluZGV4IDVmMzI5Mjc4ZTU1Zi4u MjUyZDRmNTJkMmE1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9mYnN5 c2ZzLmMKPiArKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvZmJzeXNmcy5jCj4gQEAgLTE4 LDYgKzE4LDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+ICAjaW5jbHVkZSA8bGlu dXgvc2xhYi5oPgo+ICAjaW5jbHVkZSA8bGludXgvZmIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2Zi Y29uLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9t b2R1bGUuaD4KPiAgCj4gQEAgLTMwNSwxMiArMzA2LDE1IEBAIHN0YXRpYyBzc2l6ZV90IHN0b3Jl X2JsYW5rKHN0cnVjdCBkZXZpY2UgKmRldmljZSwKPiAgewo+ICAJc3RydWN0IGZiX2luZm8gKmZi X2luZm8gPSBkZXZfZ2V0X2RydmRhdGEoZGV2aWNlKTsKPiAgCWNoYXIgKmxhc3QgPSBOVUxMOwo+ IC0JaW50IGVycjsKPiArCWludCBlcnIsIGFyZzsKPiAgCj4gKwlhcmcgPSBzaW1wbGVfc3RydG91 bChidWYsICZsYXN0LCAwKTsKPiAgCWNvbnNvbGVfbG9jaygpOwo+ICAJZmJfaW5mby0+ZmxhZ3Mg fD0gRkJJTkZPX01JU0NfVVNFUkVWRU5UOwo+IC0JZXJyID0gZmJfYmxhbmsoZmJfaW5mbywgc2lt cGxlX3N0cnRvdWwoYnVmLCAmbGFzdCwgMCkpOwo+ICsJZXJyID0gZmJfYmxhbmsoZmJfaW5mbywg YXJnKTsKPiAgCWZiX2luZm8tPmZsYWdzICY9IH5GQklORk9fTUlTQ19VU0VSRVZFTlQ7Cj4gKwkv KiBtaWdodCBhZ2FpbiBjYWxsIGludG8gZmJfYmxhbmsgKi8KPiArCWZiY29uX2ZiX2JsYW5rZWQo ZmJfaW5mbywgYXJnKTsKPiAgCWNvbnNvbGVfdW5sb2NrKCk7Cj4gIAlpZiAoZXJyIDwgMCkKPiAg CQlyZXR1cm4gZXJyOwo+IC0tIAo+IDIuMjAuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=