Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp10239532ybi; Thu, 11 Jul 2019 02:04:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqxIS3gqiPyEFslcP2HrnByr+BH5zurH0EFXLXDBLXuxNqykfb5rRaX2JnEUW4/edG3gZpfL X-Received: by 2002:a65:55c9:: with SMTP id k9mr3301588pgs.142.1562835864222; Thu, 11 Jul 2019 02:04:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562835864; cv=none; d=google.com; s=arc-20160816; b=oJORgbOUU/bHT7++Z/p/vsO0jyqzwRgimyRdlixWPguHqvzwG1TImsuZVse7QkY3UB zC1z6I4cMNyZqo3dXsgYycHXUCkZxsTBz2Ly2BtUpu/5Vdqg2xYjdW7Aw1HIEz1e9/TW 9VB34Bxm++/EP1Xq2ZS32fEO3scSiD6PKRuJibOJS6BKd3a0X+UjwJYtiN1qU8GSyUHb Y0eQ6v6N9Xeshg3ew6cVmoFhfiBbdHKPZN1xaSDJrsAQ3XhCM8PgzbA6GMLlXXdCValm pexVr+GCsXB0VjypSP5fR/RqjxYolh+XFSuULMfUF2wvQYbAcfNERkUNQ8Tc7j9kM0Xv kH2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=1BAlSn/bc1DNbGIJ5p3fe/oxTsGrLukjUk51MOPJ1ig=; b=BwlFp+lcWPd3mUFrj++QxRagYQH2v9xZJJl0k/RzdOYvIUrdYahCqMsCavL5ImpWf5 LhPA/BjVUiO9nVym+lr8aY1EaWJ9zZJfNaCKn1EN8jFyZphGsFuelPdw5q/DdwoX/vYB Q9ya9XambhdxfDlOHOJTzGIRQ2RTSDHb08Cm4/65sbWThf0RN/+aAomtIhrW5aPQCYUL murcCU1MofF4e/ubOAcLQD59/rDjzqN+mbAGV9MNYxlBdsQiM08afUeYQpfJke/lbvxh ApmJPPNLCoqePPs9kw1W5zIMRTFAzbf9mOEli9o8Fl8ezuXH0IAdIqBn++ek66+COJ49 qJCA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k63si4609986pgk.39.2019.07.11.02.04.07; Thu, 11 Jul 2019 02:04:24 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728167AbfGKJDf (ORCPT + 99 others); Thu, 11 Jul 2019 05:03:35 -0400 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:54281 "EHLO relay6-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725963AbfGKJDe (ORCPT ); Thu, 11 Jul 2019 05:03:34 -0400 X-Originating-IP: 86.250.200.211 Received: from localhost (lfbn-1-17395-211.w86-250.abo.wanadoo.fr [86.250.200.211]) (Authenticated sender: maxime.ripard@bootlin.com) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 3D028C0003; Thu, 11 Jul 2019 09:03:28 +0000 (UTC) Date: Thu, 11 Jul 2019 11:03:27 +0200 From: Maxime Ripard To: Dmitry Osipenko Cc: Thierry Reding , Jonathan Hunter , Maarten Lankhorst , Sean Paul , Daniel Vetter , David Airlie , dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1] drm/modes: Skip invalid cmdline mode Message-ID: <20190711090327.keuxt2ztfqecdbef@flea> References: <20190709145151.23086-1-digetx@gmail.com> <20190710101229.54ufuhmh22dfxclr@flea> <4ad69d15-07f8-9753-72d6-a51402c94c20@gmail.com> <20190710125552.qvmnh6qs63ikiu2k@flea> <20190710130615.gvi2jwgr2cds66xr@flea> <75719cad-c65c-7ebc-3ea8-98134f86ddc3@gmail.com> <4a13f12f-05a7-473e-4e4e-7a7e32d09720@gmail.com> <20190710140504.t5lsk36gnn5cdn6b@flea> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="f3d53ks7a7blbuls" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --f3d53ks7a7blbuls Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jul 10, 2019 at 06:05:18PM +0300, Dmitry Osipenko wrote: > 10.07.2019 17:05, Maxime Ripard =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > > On Wed, Jul 10, 2019 at 04:29:19PM +0300, Dmitry Osipenko wrote: > >> This works: > >> > >> diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/dr= m_client_modeset.c > >> index 56d36779d213..e5a2f9c8f404 100644 > >> --- a/drivers/gpu/drm/drm_client_modeset.c > >> +++ b/drivers/gpu/drm/drm_client_modeset.c > >> @@ -182,6 +182,8 @@ drm_connector_pick_cmdline_mode(struct drm_connect= or *connector) > >> mode =3D drm_mode_create_from_cmdline_mode(connector->dev, cmd= line_mode); > >> if (mode) > >> list_add(&mode->head, &connector->modes); > >> + else > >> + cmdline_mode->specified =3D false; > > > > Hmmm, it's not clear to me why that wouldn't be the case. > > > > If we come back to the beginning of that function, we retrieve the > > cmdline_mode buffer from the connector pointer, that will probably > > have been parsed a first time using drm_mode_create_from_cmdline_mode > > in drm_helper_probe_add_cmdline_mode. > > > > Now, I'm guessing that the issue is that in > > drm_mode_parse_command_line_for_connector, if we have a named mode, we > > just copy the mode over and set mode->specified. > > > > And we then move over to do other checks, and that's probably what > > fails and returns, but our drm_cmdline_mode will have been modified. > > > > I'm not entirely sure how to deal with that though. > > > > I guess we could allocate a drm_cmdline_mode structure on the stack, > > fill that, and if successful copy over its content to the one in > > drm_connector. That would allow us to only change the content on > > success, which is what I would expect from such a function? > > > > How does that sound? > > I now see that there is DRM_MODE_TYPE_USERDEF flag that is assigned only > for the "cmdline" mode and drm_client_rotation() is the only place in > DRM code that cares about whether mode is from cmdline, hence looks like > it will be more correct to do the following: I'm still under the impression that we're dealing with workarounds of a more central issue, which is that we shouldn't return a partially modified drm_cmdline_mode. You said it yourself, the breakage is in the commit changing the command line parsing logic, while you're fixing here some code that was introduced later on. Can you try the followintg patch? http://code.bulix.org/8cwk4c-794565?raw Thanks! Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com --f3d53ks7a7blbuls Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCXSb7XwAKCRDj7w1vZxhR xX+CAP9sjZiZGMMVxtQslRFZ2ds6qiU8zvuED+tZbBt9xUrxUQEAxkw0kkGu/uqe 91WJFWA4MRVpsCZ6/zKJ+XSj09iFcQk= =+Zlg -----END PGP SIGNATURE----- --f3d53ks7a7blbuls--