From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/fb-helper: Only reject FB changes if FB_MISC_USER_EVENT is set Date: Thu, 16 Mar 2017 12:09:00 +0200 Message-ID: <20170316100900.GC31595@intel.com> References: <20170316095553.1586-1-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A6A16EA79 for ; Thu, 16 Mar 2017 10:09:03 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170316095553.1586-1-michel@daenzer.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Michel =?iso-8859-1?Q?D=E4nzer?= Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXIgMTYsIDIwMTcgYXQgMDY6NTU6NTNQTSArMDkwMCwgTWljaGVsIETDpG56ZXIg d3JvdGU6Cj4gRnJvbTogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5jb20+Cj4g Cj4gT3RoZXJ3aXNlIHRoaXMgY2FuIGFsc28gcHJldmVudCBtb2Rlc2V0cyBlLmcuIGZvciBzd2l0 Y2hpbmcgVlRzLgo+IAo+IEZCX01JU0NfVVNFUl9FVkVOVCBpcyBzZXQgd2hlbiB0aGUgcmVxdWVz dCBvcmlnaW5hdGVzIGZyb20gdXNlcnNwYWNlLAo+IHdoaWNoIGlzIHdoYXQgd2UncmUgaW50ZXJl c3RlZCBpbiBoZXJlIGFjY29yZGluZyB0byB0aGUgRFJNX0RFQlVHCj4gb3V0cHV0LgoKU28gd2h5 IGlzIHRoZSBrZXJuZWwgYWxsb3dlZCB0byB2aW9sYXRlIHRoaXM/CgpUaGUgY2hlY2tzIGxvb2sg c29tZXdoYXQgYm9ndXMgdG8gbWUgYW55d2F5LiBUaGUgJ3ZpcnR1YWwgc2l6ZSA9PSBmYiBzaXpl JwpjaGVjayBtYWtlcyBzb21lIGtpbmQgb2Ygc2Vuc2UuIEFsdGhvdWdoIEkgZG9uJ3Qgc2VlIHdo eSB0aGUgdmlydHVhbApyZXNvbHV0aW9uIGNvdWxkbid0IGJlIHNtYWxsZXIgdGhhbiB0aGUgZmIg c2l6ZS4gQnV0IHJlcXVpcmluZyB0aGF0IHRoZQp2aXNpYmxlIHJlc29sdXRpb25uIG1hdGNoZXMg dGhlIGZiIHNpemUgYXMgd2VsbCBkZWZpbml0ZWx5IHNlZW1zIHdyb25nLgoKTWF5YmUgQ2Mgd2hv ZXZlciBicm9rZSB0aGlzPwoKPiAKPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9w Lm9yZy85OTg0MQo+IEZpeGVzOiA4NjVhZmIxMTk0OWUgKCJkcm0vZmItaGVscGVyOiByZWplY3Qg YW55IGNoYW5nZXMgdG8gdGhlIGZiZGV2IikKPiBTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgRMOkbnpl ciA8bWljaGVsLmRhZW56ZXJAYW1kLmNvbT4KPiAtLS0KPiAKPiBJJ20gbm90IGVudGlyZWx5IHN1 cmUgd2h5IHRoZSB2YWx1ZXMgY2FuIG5vdCBtYXRjaCBmb3IgYSBWVCBzd2l0Y2guIElmCj4gYW55 Ym9keSB0aGlua3MgdGhpcyBqdXN0IHBhcGVycyBvdmVyIHRoZSByZWFsIGlzc3VlLCBwbGVhc2Ug c3BlYWsgdXAuCj4gCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgfCA3ICsrKyst LS0KPiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiBpbmRleCBmNmQ0ZDk3MDA3MzQuLjk2NjNmM2I4ZjI4 NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+IEBAIC0xMjU5LDkgKzEyNTksMTAgQEAg aW50IGRybV9mYl9oZWxwZXJfY2hlY2tfdmFyKHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFy LAo+ICAJICogQ2hhbmdlcyBzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gYXJlIGN1cnJlbnRseSBu b3QgcHVzaGVkIGJhY2sKPiAgCSAqIHRvIEtNUywgaGVuY2UgZmFpbCBpZiBkaWZmZXJlbnQgc2V0 dGluZ3MgYXJlIHJlcXVlc3RlZC4KPiAgCSAqLwo+IC0JaWYgKHZhci0+Yml0c19wZXJfcGl4ZWwg IT0gZmItPmZvcm1hdC0+Y3BwWzBdICogOCB8fAo+IC0JICAgIHZhci0+eHJlcyAhPSBmYi0+d2lk dGggfHwgdmFyLT55cmVzICE9IGZiLT5oZWlnaHQgfHwKPiAtCSAgICB2YXItPnhyZXNfdmlydHVh bCAhPSBmYi0+d2lkdGggfHwgdmFyLT55cmVzX3ZpcnR1YWwgIT0gZmItPmhlaWdodCkgewo+ICsJ aWYgKChpbmZvLT5mbGFncyAmIEZCSU5GT19NSVNDX1VTRVJFVkVOVCkgJiYKPiArCSAgICAodmFy LT5iaXRzX3Blcl9waXhlbCAhPSBmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4IHx8Cj4gKwkgICAgIHZh ci0+eHJlcyAhPSBmYi0+d2lkdGggfHwgdmFyLT55cmVzICE9IGZiLT5oZWlnaHQgfHwKPiArCSAg ICAgdmFyLT54cmVzX3ZpcnR1YWwgIT0gZmItPndpZHRoIHx8IHZhci0+eXJlc192aXJ0dWFsICE9 IGZiLT5oZWlnaHQpKSB7Cj4gIAkJRFJNX0RFQlVHKCJmYiB1c2Vyc3BhY2UgcmVxdWVzdGVkIHdp ZHRoL2hlaWdodC9icHAgZGlmZmVyZW50IHRoYW4gY3VycmVudCBmYiAiCj4gIAkJCSAgInJlcXVl c3QgJWR4JWQtJWQgKHZpcnR1YWwgJWR4JWQpID4gJWR4JWQtJWRcbiIsCj4gIAkJCSAgdmFyLT54 cmVzLCB2YXItPnlyZXMsIHZhci0+Yml0c19wZXJfcGl4ZWwsCj4gLS0gCj4gMi4xMS4wCj4gCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2 ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAK VmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751700AbdCPKJG (ORCPT ); Thu, 16 Mar 2017 06:09:06 -0400 Received: from mga09.intel.com ([134.134.136.24]:29702 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751475AbdCPKJF (ORCPT ); Thu, 16 Mar 2017 06:09:05 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,170,1486454400"; d="scan'208";a="1123394732" Date: Thu, 16 Mar 2017 12:09:00 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Michel =?iso-8859-1?Q?D=E4nzer?= Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] drm/fb-helper: Only reject FB changes if FB_MISC_USER_EVENT is set Message-ID: <20170316100900.GC31595@intel.com> References: <20170316095553.1586-1-michel@daenzer.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20170316095553.1586-1-michel@daenzer.net> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 16, 2017 at 06:55:53PM +0900, Michel Dänzer wrote: > From: Michel Dänzer > > Otherwise this can also prevent modesets e.g. for switching VTs. > > FB_MISC_USER_EVENT is set when the request originates from userspace, > which is what we're interested in here according to the DRM_DEBUG > output. So why is the kernel allowed to violate this? The checks look somewhat bogus to me anyway. The 'virtual size == fb size' check makes some kind of sense. Although I don't see why the virtual resolution couldn't be smaller than the fb size. But requiring that the visible resolutionn matches the fb size as well definitely seems wrong. Maybe Cc whoever broke this? > > Bugzilla: https://bugs.freedesktop.org/99841 > Fixes: 865afb11949e ("drm/fb-helper: reject any changes to the fbdev") > Signed-off-by: Michel Dänzer > --- > > I'm not entirely sure why the values can not match for a VT switch. If > anybody thinks this just papers over the real issue, please speak up. > > drivers/gpu/drm/drm_fb_helper.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c > index f6d4d9700734..9663f3b8f287 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -1259,9 +1259,10 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var, > * Changes struct fb_var_screeninfo are currently not pushed back > * to KMS, hence fail if different settings are requested. > */ > - if (var->bits_per_pixel != fb->format->cpp[0] * 8 || > - var->xres != fb->width || var->yres != fb->height || > - var->xres_virtual != fb->width || var->yres_virtual != fb->height) { > + if ((info->flags & FBINFO_MISC_USEREVENT) && > + (var->bits_per_pixel != fb->format->cpp[0] * 8 || > + var->xres != fb->width || var->yres != fb->height || > + var->xres_virtual != fb->width || var->yres_virtual != fb->height)) { > DRM_DEBUG("fb userspace requested width/height/bpp different than current fb " > "request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n", > var->xres, var->yres, var->bits_per_pixel, > -- > 2.11.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrjälä Intel OTC