lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d5e30779-00c0-6e56-e99e-811afbe28932@ti.com>
Date:   Tue, 27 Jun 2017 14:08:05 -0500
From:   Suman Anna <s-anna@...com>
To:     Bjorn Andersson <bjorn.andersson@...aro.org>,
        Ohad Ben-Cohen <ohad@...ery.com>,
        Peter Griffin <peter.griffin@...aro.org>,
        Mauro Carvalho Chehab <mchehab@...nel.org>,
        Hugues Fruchet <hugues.fruchet@...com>,
        Loic Pallardy <loic.pallardy@...com>
CC:     Arnd Bergmann <arnd@...db.de>, <linux-media@...r.kernel.org>,
        <linux-kernel@...r.kernel.org>, <linux-remoteproc@...r.kernel.org>,
        Arnd Bergmann <arnd@...db.de>
Subject: Re: [PATCH] rpmsg: Solve circular dependencies involving RPMSG_VIRTIO

Hi Bjorn,

Thanks for the patch.

On 06/27/2017 01:43 AM, Bjorn Andersson wrote:
> While it's very common to use RPMSG for communicating with firmware
> running on these remoteprocs there is no functional dependency on RPMSG.

This is not entirely accurate though. RPMSG is the IPC transport on
these remoteprocs, you seem to suggest that there are alternatives for
these remoteprocs. Without RPMSG, you can boot, but you will not be able
to talk to the remoteprocs, so I would call it a functional dependency.

> As such RPMSG should be selected by the system integrator and not
> automatically by the remoteproc drivers.
> 
> This does solve problems reported with circular Kconfig dependencies for
> Davinci and Keystone remoteproc drivers.

The Keystone one issue shows up on linux-next (and not on 4.12-rcX) due
to the differing options on RESET_CONTROLLER on VIDEO_QCOM_VENUS
(through QCOM_SCOM). This can also be resolved by changing the depends
on RESET_CONTROLLER to a select RESET_CONTROLLER or dropping the line.

The davinci one is tricky though, as I did change it from using a select
to a depends on dependency, and obviously ppc64_defconfig is something
that I would not check.

This patch definitely resolves both issues, but it is not obvious that
someone would also have to enable RPMSG_VIRTIO to have these remoteprocs
useful when looking at either of the menuconfig help.

regards
Suman

> 
> Signed-off-by: Bjorn Andersson <bjorn.andersson@...aro.org>
> ---
>  drivers/media/platform/Kconfig |  2 +-
>  drivers/remoteproc/Kconfig     |  4 ----
>  drivers/rpmsg/Kconfig          | 20 +++++++++-----------
>  3 files changed, 10 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
> index 1313cd533436..cb2f31cd0088 100644
> --- a/drivers/media/platform/Kconfig
> +++ b/drivers/media/platform/Kconfig
> @@ -382,10 +382,10 @@ config VIDEO_STI_DELTA_DRIVER
>  	tristate
>  	depends on VIDEO_STI_DELTA
>  	depends on VIDEO_STI_DELTA_MJPEG
> +	depends on RPMSG
>  	default VIDEO_STI_DELTA_MJPEG
>  	select VIDEOBUF2_DMA_CONTIG
>  	select V4L2_MEM2MEM_DEV
> -	select RPMSG
>  
>  endif # VIDEO_STI_DELTA
>  
> diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig
> index b950e6cd4ba2..3b16f422d30c 100644
> --- a/drivers/remoteproc/Kconfig
> +++ b/drivers/remoteproc/Kconfig
> @@ -21,7 +21,6 @@ config OMAP_REMOTEPROC
>  	depends on REMOTEPROC
>  	select MAILBOX
>  	select OMAP2PLUS_MBOX
> -	select RPMSG_VIRTIO
>  	help
>  	  Say y here to support OMAP's remote processors (dual M3
>  	  and DSP on OMAP4) via the remote processor framework.
> @@ -53,7 +52,6 @@ config DA8XX_REMOTEPROC
>  	depends on ARCH_DAVINCI_DA8XX
>  	depends on REMOTEPROC
>  	depends on DMA_CMA
> -	select RPMSG_VIRTIO
>  	help
>  	  Say y here to support DA8xx/OMAP-L13x remote processors via the
>  	  remote processor framework.
> @@ -76,7 +74,6 @@ config KEYSTONE_REMOTEPROC
>  	depends on ARCH_KEYSTONE
>  	depends on RESET_CONTROLLER
>  	depends on REMOTEPROC
> -	select RPMSG_VIRTIO
>  	help
>  	  Say Y here here to support Keystone remote processors (DSP)
>  	  via the remote processor framework.
> @@ -133,7 +130,6 @@ config ST_REMOTEPROC
>  	depends on REMOTEPROC
>  	select MAILBOX
>  	select STI_MBOX
> -	select RPMSG_VIRTIO
>  	help
>  	  Say y here to support ST's adjunct processors via the remote
>  	  processor framework.
> diff --git a/drivers/rpmsg/Kconfig b/drivers/rpmsg/Kconfig
> index 2a5d2b446de2..46f3f2431d68 100644
> --- a/drivers/rpmsg/Kconfig
> +++ b/drivers/rpmsg/Kconfig
> @@ -1,8 +1,5 @@
> -menu "Rpmsg drivers"
> -
> -# RPMSG always gets selected by whoever wants it
> -config RPMSG
> -	tristate
> +menuconfig RPMSG
> +	tristate "Rpmsg drivers"
>  
>  config RPMSG_CHAR
>  	tristate "RPMSG device interface"
> @@ -15,7 +12,7 @@ config RPMSG_CHAR
>  
>  config RPMSG_QCOM_GLINK_RPM
>  	tristate "Qualcomm RPM Glink driver"
> -	select RPMSG
> +	depends on RPMSG
>  	depends on HAS_IOMEM
>  	depends on MAILBOX
>  	help
> @@ -26,16 +23,17 @@ config RPMSG_QCOM_GLINK_RPM
>  config RPMSG_QCOM_SMD
>  	tristate "Qualcomm Shared Memory Driver (SMD)"
>  	depends on QCOM_SMEM
> -	select RPMSG
> +	depends on RPMSG
>  	help
>  	  Say y here to enable support for the Qualcomm Shared Memory Driver
>  	  providing communication channels to remote processors in Qualcomm
>  	  platforms.
>  
>  config RPMSG_VIRTIO
> -	tristate
> -	select RPMSG
> +	tristate "Virtio remote processor messaging driver (RPMSG)"
> +	depends on RPMSG
>  	select VIRTIO
>  	select VIRTUALIZATION
> -
> -endmenu
> +	help
> +	  Say y here to enable support for the Virtio remote processor
> +	  messaging protocol (RPMSG).
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ