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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5FA1BC433EF for ; Wed, 27 Oct 2021 11:47:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3F7016103C for ; Wed, 27 Oct 2021 11:47:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239878AbhJ0LuN (ORCPT ); Wed, 27 Oct 2021 07:50:13 -0400 Received: from mga17.intel.com ([192.55.52.151]:53788 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235172AbhJ0LuK (ORCPT ); Wed, 27 Oct 2021 07:50:10 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10149"; a="210920854" X-IronPort-AV: E=Sophos;i="5.87,186,1631602800"; d="scan'208";a="210920854" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Oct 2021 04:47:45 -0700 X-IronPort-AV: E=Sophos;i="5.87,186,1631602800"; d="scan'208";a="497830029" Received: from smaharan-mobl.gar.corp.intel.com (HELO localhost) ([10.251.214.195]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Oct 2021 04:47:40 -0700 From: Jani Nikula To: Daniel Vetter , Kees Cook Cc: Arnd Bergmann , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Arnd Bergmann , Alex Deucher , Christian =?utf-8?Q?K=C3=B6nig?= , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Javier Martinez Canillas Subject: Re: [PATCH] [RESEND] drm: fb_helper: fix CONFIG_FB dependency In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20210927142816.2069269-1-arnd@kernel.org> <202109270923.97AFDE89DB@keescook> Date: Wed, 27 Oct 2021 14:47:37 +0300 Message-ID: <878ryeit9i.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 30 Sep 2021, Daniel Vetter wrote: > On Mon, Sep 27, 2021 at 09:23:45AM -0700, Kees Cook wrote: >> On Mon, Sep 27, 2021 at 04:28:02PM +0200, Arnd Bergmann wrote: >> > From: Arnd Bergmann >> > >> > With CONFIG_FB=m and CONFIG_DRM=y, we get a link error in the fb helper: >> > >> > aarch64-linux-ld: drivers/gpu/drm/drm_fb_helper.o: in function `drm_fb_helper_alloc_fbi': >> > (.text+0x10cc): undefined reference to `framebuffer_alloc' >> > >> > Tighten the dependency so it is only allowed in the case that DRM can >> > link against FB. >> > >> > Fixes: f611b1e7624c ("drm: Avoid circular dependencies for CONFIG_FB") >> > Link: https://lore.kernel.org/all/20210721152211.2706171-1-arnd@kernel.org/ >> > Signed-off-by: Arnd Bergmann >> >> Thanks for fixing this! >> >> Reviewed-by: Kees Cook > > Stuffed into drm-misc-next. The problem is, I don't think the patch is semantically correct. drm_fb_helper.o is not part of drm.ko, it's part of drm_kms_helper.ko. This adds some sort of indirect dependency via DRM which might work, maybe by coincidence, maybe not - but it's certainly not obvious. The likely culprit is, again, the overuse of select, and in this case select DRM_KMS_HELPER. And DRM_KMS_HELPER should depend on FB if DRM_FBDEV_EMULATION=y. That's the problem. All of the drm Kconfigs could use an overhaul to be semantically correct, but that's a hill nobody wants to die on. Instead we keep piling up tweaks to paper over the issues, ad infinitum. (And this ties to a previous comment I had about the organization of files under drm/, a hundred files in one big lump that belong to different modules, and it's not helping people figure out the dependencies.) BR, Jani. PS. I was brought here via [1] which is another complicated "fix" to the same problem. [1] https://lore.kernel.org/r/20211027072044.4105113-1-javierm@redhat.com -- Jani Nikula, Intel Open Source Graphics Center