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=-7.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 22AAAC48BE5 for ; Wed, 16 Jun 2021 03:15:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F1D4761246 for ; Wed, 16 Jun 2021 03:15:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230087AbhFPDRL (ORCPT ); Tue, 15 Jun 2021 23:17:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42212 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229931AbhFPDRJ (ORCPT ); Tue, 15 Jun 2021 23:17:09 -0400 Received: from mail-ot1-x32e.google.com (mail-ot1-x32e.google.com [IPv6:2607:f8b0:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7586CC061574 for ; Tue, 15 Jun 2021 20:15:03 -0700 (PDT) Received: by mail-ot1-x32e.google.com with SMTP id 7-20020a9d0d070000b0290439abcef697so1106415oti.2 for ; Tue, 15 Jun 2021 20:15:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=XX8UtdPe5UHi4QT2fZ9fVYOjixFm5+p0JuSE18O5Og4=; b=iPDEXNVH5GeTa8tOCBCzkuIjNLBj0+HdOS3hepZ8X0Rf7QT/hmMXiCADRekwUdNfW1 plZ+yv58BNuTK956KHbfUsMzlyzNSq29dpdoPMPO/7U0RS0lvOR+VIW8acsM55SFOxQg FQksOdfraDRnwDaYFbe94LYVx1Fle12443mSg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=XX8UtdPe5UHi4QT2fZ9fVYOjixFm5+p0JuSE18O5Og4=; b=NF4mp600txew+v+AObHJmjIy8PnwF2qERiTP+r0PCqxymvFB/ZJeXrAztOStFDaldM pKKtClBK1tWea+LeOe7aVngDyWh+QvxnZlk5MjmesJ3U6SS77hkam6FdanphIILYtbip u5vhyJ6ZtZ/MVbuzacwm1kKt2kYpM4BZbxfpjeIvPH5oKfjR+PqUOeRhpyTJz4WRNxfT oVOogr3IPasYFxwYtElcWq6LtvuzIk4ZqF1DTcaGW9oa0PJP3m/AzL6SJtPMnFhgDxVx faSa2POdD9h15ZjgLFvfkmhr+tdBVBFoWzeaI3NDzzoCwRdVZ2sTye5kOAaq4HjrzZLz jzyg== X-Gm-Message-State: AOAM5329Pr7vRoBUb9dy1hL8OU+0sxwkYjltr+0oWzTdt0br9JlKFAW0 65cYJq1mTHsSWOTFdbio3YhjvQ== X-Google-Smtp-Source: ABdhPJwMTm3G+sFKstZYZM1dWqWL7LBvK2+Fx/PfxBEHT05p8XLhS4hfRLr8UG6YV1l8tWQS+mnF5Q== X-Received: by 2002:a9d:6c6:: with SMTP id 64mr2090919otx.199.1623813302785; Tue, 15 Jun 2021 20:15:02 -0700 (PDT) Received: from [192.168.1.112] (c-24-9-64-241.hsd1.co.comcast.net. [24.9.64.241]) by smtp.gmail.com with ESMTPSA id i26sm198103oig.13.2021.06.15.20.15.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 15 Jun 2021 20:15:02 -0700 (PDT) Subject: Re: [PATCH] media: Fix Media Controller API config checks To: Hans Verkuil , sakari.ailus@linux.intel.com, laurent.pinchart@ideasonboard.com, dan.carpenter@oracle.com, mchehab@kernel.org Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org, Shuah Khan References: <20210611015849.42589-1-skhan@linuxfoundation.org> <3745852a-a14d-3e66-dd9f-409ec7e43f48@xs4all.nl> From: Shuah Khan Message-ID: <6b1bbc25-83fb-2c40-1dff-c2eb755a99cc@linuxfoundation.org> Date: Tue, 15 Jun 2021 21:15:01 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 6/15/21 10:55 AM, Shuah Khan wrote: > On 6/15/21 7:36 AM, Hans Verkuil wrote: >> Hi Shuah, >> >> On 11/06/2021 03:58, Shuah Khan wrote: >>> Smatch static checker warns that "mdev" can be null: >>> >>> sound/usb/media.c:287 snd_media_device_create() >>>      warn: 'mdev' can also be NULL >>> >>> If CONFIG_MEDIA_CONTROLLER is disabled, this file should not be included >>> in the build. >>> >>> The below conditions in the sound/usb/Makefile are in place to ensure >>> that >>> media.c isn't included in the build. >>> >>> sound/usb/Makefile: >>> snd-usb-audio-$(CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER) += media.o >>> >>> select SND_USB_AUDIO_USE_MEDIA_CONTROLLER if MEDIA_CONTROLLER && >>>         (MEDIA_SUPPORT=y || MEDIA_SUPPORT=SND_USB_AUDIO) >>> >>> The following config check in include/media/media-dev-allocator.h is >>> in place to enable the API only when CONFIG_MEDIA_CONTROLLER and >>> CONFIG_USB are enabled. >>> >>>   #if defined(CONFIG_MEDIA_CONTROLLER) && defined(CONFIG_USB) >>> >>> This check doesn't work as intended when CONFIG_USB=m. When >>> CONFIG_USB=m, >>> CONFIG_USB_MODULE is defined and CONFIG_USB is not. The above config >>> check >>> doesn't catch that CONFIG_USB is defined as a module and disables the >>> API. >>> This results in sound/usb enabling Media Controller specific ALSA driver >>> code, while Media disables the Media Controller API. >>> >>> Fix the problem requires two changes: >>> >>> 1. Change the check to use IS_ENABLED to detect when CONFIG_USB is >>> enabled >>>     as a module or static. Since CONFIG_MEDIA_CONTROLLER is a bool, >>> leave >>>     the check unchanged to be consistent with drivers/media/Makefile. >>> >>> 2. Change the drivers/media/mc/Makefile to include mc-dev-allocator.o >>>     in mc-objs when CONFIG_USB is y or m. >> >> If I test this patch, then I get: >> >> drivers/media/mc/mc-dev-allocator.c:97:22: error: redefinition of >> 'media_device_usb_allocate' >>     97 | struct media_device *media_device_usb_allocate(struct >> usb_device *udev, >>        |                      ^~~~~~~~~~~~~~~~~~~~~~~~~ >> In file included from drivers/media/mc/mc-dev-allocator.c:24: >> include/media/media-dev-allocator.h:55:36: note: previous definition >> of 'media_device_usb_allocate' was here >>     55 | static inline struct media_device *media_device_usb_allocate( >>        |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/mc/mc-dev-allocator.c:119:6: error: redefinition of >> 'media_device_delete' >>    119 | void media_device_delete(struct media_device *mdev, const >> char *module_name, >>        |      ^~~~~~~~~~~~~~~~~~~ >> In file included from drivers/media/mc/mc-dev-allocator.c:24: >> include/media/media-dev-allocator.h:59:20: note: previous definition >> of 'media_device_delete' was here >>     59 | static inline void media_device_delete( >>        |                    ^~~~~~~~~~~~~~~~~~~ >> >> The .config has: >> >> # CONFIG_USB_SUPPORT is not set >> CONFIG_MEDIA_CONTROLLER=y >> > Hi Hans, I don't know why I made the logic fancy and complex. Fixed now and sending v2 shortly. I made sure all the combinations are tested now. thanks, -- Shuah 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=-5.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 6E255C48BDF for ; Wed, 16 Jun 2021 03:16:06 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 472256137D for ; Wed, 16 Jun 2021 03:16:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 472256137D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 163AE1687; Wed, 16 Jun 2021 05:15:13 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 163AE1687 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1623813363; bh=fC6BKFbyfr6DF0BofDap8bK0DOe0u8htrr3vz3DH8ig=; h=Subject:To:References:From:Date:In-Reply-To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=ONcp7o8D5A7Z3wYsU87993ncMWpscKhkaf3y6MeIbNwvPkcc0TszOHhjrhUlTAUKz bMNyu4ybcETlzPdE+pLRe5hujKEHRYW79ryMHEdiljK2LJqll8xdodBPirKxTf6vSI Kv/6iyqG+Gj0RSTXX48hXoco1+oM+bIYXA7ykUXQ= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 959FCF8028B; Wed, 16 Jun 2021 05:15:12 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 1E45AF802E8; Wed, 16 Jun 2021 05:15:10 +0200 (CEST) Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com [IPv6:2607:f8b0:4864:20::331]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 00C4FF80165 for ; Wed, 16 Jun 2021 05:15:05 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 00C4FF80165 Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="iPDEXNVH" Received: by mail-ot1-x331.google.com with SMTP id q5-20020a9d66450000b02903f18d65089fso1058201otm.11 for ; Tue, 15 Jun 2021 20:15:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=XX8UtdPe5UHi4QT2fZ9fVYOjixFm5+p0JuSE18O5Og4=; b=iPDEXNVH5GeTa8tOCBCzkuIjNLBj0+HdOS3hepZ8X0Rf7QT/hmMXiCADRekwUdNfW1 plZ+yv58BNuTK956KHbfUsMzlyzNSq29dpdoPMPO/7U0RS0lvOR+VIW8acsM55SFOxQg FQksOdfraDRnwDaYFbe94LYVx1Fle12443mSg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=XX8UtdPe5UHi4QT2fZ9fVYOjixFm5+p0JuSE18O5Og4=; b=eNEe4K6tpnjJQE8MxO4D1EkY7SJaIfMSF94VznrQEpa66Y7+i0UG/yYvGzWJZJc+bo CjToho81QpjyN6A9uYDVXHcDrdclnuXWJmGwLk+vLof8+AJ/HqBG4FONplb4bhCAoMEF pNwH+0WJSqZ7FjGkkMLZjm1hHUj5ivK98gjyK3MQiqYsDWq8hkl3W3CdDmICgZAkSwb8 mfoxLho0kJ6AMpe86Ci+4sh/iZmn254kVLUlDvJjEU743P5Tv/UKI0aBvdalWzrzI2Ym EvE5iRQosyCeD9iqItQPxxmSjadyeuiiJ2LP/oGhcEEJ2j63Hh776zEDycUMasKLMIjf nINw== X-Gm-Message-State: AOAM533g4KL00F2h7dh8yRD2KvW6+D14Jq15gAlKgk1rC55HKKVGUygJ RFbuvzSMxxdARtY9xGzpdRMuuA== X-Google-Smtp-Source: ABdhPJwMTm3G+sFKstZYZM1dWqWL7LBvK2+Fx/PfxBEHT05p8XLhS4hfRLr8UG6YV1l8tWQS+mnF5Q== X-Received: by 2002:a9d:6c6:: with SMTP id 64mr2090919otx.199.1623813302785; Tue, 15 Jun 2021 20:15:02 -0700 (PDT) Received: from [192.168.1.112] (c-24-9-64-241.hsd1.co.comcast.net. [24.9.64.241]) by smtp.gmail.com with ESMTPSA id i26sm198103oig.13.2021.06.15.20.15.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 15 Jun 2021 20:15:02 -0700 (PDT) Subject: Re: [PATCH] media: Fix Media Controller API config checks To: Hans Verkuil , sakari.ailus@linux.intel.com, laurent.pinchart@ideasonboard.com, dan.carpenter@oracle.com, mchehab@kernel.org References: <20210611015849.42589-1-skhan@linuxfoundation.org> <3745852a-a14d-3e66-dd9f-409ec7e43f48@xs4all.nl> From: Shuah Khan Message-ID: <6b1bbc25-83fb-2c40-1dff-c2eb755a99cc@linuxfoundation.org> Date: Tue, 15 Jun 2021 21:15:01 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Cc: alsa-devel@alsa-project.org, Shuah Khan , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" On 6/15/21 10:55 AM, Shuah Khan wrote: > On 6/15/21 7:36 AM, Hans Verkuil wrote: >> Hi Shuah, >> >> On 11/06/2021 03:58, Shuah Khan wrote: >>> Smatch static checker warns that "mdev" can be null: >>> >>> sound/usb/media.c:287 snd_media_device_create() >>>      warn: 'mdev' can also be NULL >>> >>> If CONFIG_MEDIA_CONTROLLER is disabled, this file should not be included >>> in the build. >>> >>> The below conditions in the sound/usb/Makefile are in place to ensure >>> that >>> media.c isn't included in the build. >>> >>> sound/usb/Makefile: >>> snd-usb-audio-$(CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER) += media.o >>> >>> select SND_USB_AUDIO_USE_MEDIA_CONTROLLER if MEDIA_CONTROLLER && >>>         (MEDIA_SUPPORT=y || MEDIA_SUPPORT=SND_USB_AUDIO) >>> >>> The following config check in include/media/media-dev-allocator.h is >>> in place to enable the API only when CONFIG_MEDIA_CONTROLLER and >>> CONFIG_USB are enabled. >>> >>>   #if defined(CONFIG_MEDIA_CONTROLLER) && defined(CONFIG_USB) >>> >>> This check doesn't work as intended when CONFIG_USB=m. When >>> CONFIG_USB=m, >>> CONFIG_USB_MODULE is defined and CONFIG_USB is not. The above config >>> check >>> doesn't catch that CONFIG_USB is defined as a module and disables the >>> API. >>> This results in sound/usb enabling Media Controller specific ALSA driver >>> code, while Media disables the Media Controller API. >>> >>> Fix the problem requires two changes: >>> >>> 1. Change the check to use IS_ENABLED to detect when CONFIG_USB is >>> enabled >>>     as a module or static. Since CONFIG_MEDIA_CONTROLLER is a bool, >>> leave >>>     the check unchanged to be consistent with drivers/media/Makefile. >>> >>> 2. Change the drivers/media/mc/Makefile to include mc-dev-allocator.o >>>     in mc-objs when CONFIG_USB is y or m. >> >> If I test this patch, then I get: >> >> drivers/media/mc/mc-dev-allocator.c:97:22: error: redefinition of >> 'media_device_usb_allocate' >>     97 | struct media_device *media_device_usb_allocate(struct >> usb_device *udev, >>        |                      ^~~~~~~~~~~~~~~~~~~~~~~~~ >> In file included from drivers/media/mc/mc-dev-allocator.c:24: >> include/media/media-dev-allocator.h:55:36: note: previous definition >> of 'media_device_usb_allocate' was here >>     55 | static inline struct media_device *media_device_usb_allocate( >>        |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/media/mc/mc-dev-allocator.c:119:6: error: redefinition of >> 'media_device_delete' >>    119 | void media_device_delete(struct media_device *mdev, const >> char *module_name, >>        |      ^~~~~~~~~~~~~~~~~~~ >> In file included from drivers/media/mc/mc-dev-allocator.c:24: >> include/media/media-dev-allocator.h:59:20: note: previous definition >> of 'media_device_delete' was here >>     59 | static inline void media_device_delete( >>        |                    ^~~~~~~~~~~~~~~~~~~ >> >> The .config has: >> >> # CONFIG_USB_SUPPORT is not set >> CONFIG_MEDIA_CONTROLLER=y >> > Hi Hans, I don't know why I made the logic fancy and complex. Fixed now and sending v2 shortly. I made sure all the combinations are tested now. thanks, -- Shuah