linux-sound.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Krzysztof Kozlowski <krzk@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Peter Ujfalusi <peter.ujfalusi@linux.intel.com>,
	Bard Liao <yung-chuan.liao@linux.intel.com>,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	Daniel Baluta <daniel.baluta@nxp.com>,
	Kai Vehmanen <kai.vehmanen@linux.intel.com>,
	Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
	Takashi Iwai <tiwai@suse.com>, Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>
Cc: sound-open-firmware@alsa-project.org,
	linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org,
	imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org
Subject: Re: [PATCH 00/14] ASoC: Constify local snd_sof_dsp_ops
Date: Mon, 22 Apr 2024 16:24:36 -0500	[thread overview]
Message-ID: <eaa0c99a-3b41-4444-906c-d2f005d326b9@linux.intel.com> (raw)
In-Reply-To: <7490bce3-3bd6-4beb-b8be-d47a6b0a30f0@kernel.org>



>>> There are multiple reasons and benefits for const, like compiler
>>> optimization, code readability (meaning) up to security improvements,
>>> e.g. by some GCC plugins or marking rodata as really non-writeable, so
>>> closing some ways of exploits. There are many opportunities here, even
>>> if they are not yet enabled.
>>
>> Possibly, but the SOF core does not know if the structure it uses is
>> rodata or not. Using the 'const' identifier would be misleading.
> 
> How so? If core does not modify structure, it should take it via ops,
> just like 100 other widely known structures (see checkpatch). Why is
> this different?

I don't understand "it should take it via ops"

We are already fetching the structure with private_data.

>>>> that's a different interpretation to the 'software' view you're
>>>> describing. "this structure will not modified by this function" is not
>>>> the same thing as "this structure CANNOT be modified".
>>>
>>> Yes, but can we please discuss specific patchset then? Patches which
>>> change pointers to const have one "interpretation". Patches which modify
>>> static or global data have another.
>>
>> Just look at sound/soc/sof/intel/mtl.c... The core will sometimes use a
> 
> That's a driver (or specific implementation), not core.

You are making an assumption on what the SOF core is. The core is used
by ACPI or PCI drivers as a library. The structures are all allocated in
ACPI/PCI drivers and passed to the core library.

>> constant structure and sometimes not, depending on the PCI ID reported
>> by hardware. This was intentional to override common defaults and make
>> the differences limited in scope between hardware generations.
> 
> 
>>
>> int sof_mtl_ops_init(struct snd_sof_dev *sdev)
>> {
>> 	struct sof_ipc4_fw_data *ipc4_data;
>>
>> 	/* common defaults */
>> 	memcpy(&sof_mtl_ops, &sof_hda_common_ops, sizeof(struct
>> snd_sof_dsp_ops)); <<<< THE BASELINE IS CONSTANT
> 
> Yes, I saw it and such users are not changed. They won't receive any
> safety. But all others are getting safer.


Maybe there's a misunderstanding on what the 'SOF core' is. This is just
a helper library that are used by the PCI drivers. The core has zero
knowledge on anything really.

> I really do not understand what is the problem here. In entire Linux all
> of such changes are welcomed with open arms. So what is different here?
Adding 'const' at the SOF core level does not mean that we can treat
structures as rodata. It only means that the structure is not modified
by the core library. Not the same thing.




  reply	other threads:[~2024-04-22 21:24 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-14 18:47 [PATCH 00/14] ASoC: Constify local snd_sof_dsp_ops Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 01/14] ASoC: SOF: debug: " Krzysztof Kozlowski
2024-04-26  2:09   ` Mark Brown
2024-04-26  7:58     ` Krzysztof Kozlowski
2024-04-26  8:00       ` Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 02/14] ASoC: SOF: ipc3: " Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 03/14] ASoC: SOF: pcm: " Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 04/14] ASoC: SOF: Constify stored pointer to snd_sof_dsp_ops Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 05/14] ASoC: SOF: intel: pci-tng: Constify snd_sof_dsp_ops Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 06/14] ASoC: SOF: intel: hda: " Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 07/14] ASoC: SOF: amd: acp: " Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 08/14] ASoC: SOF: imx8: " Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 09/14] ASoC: SOF: imx8m: " Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 10/14] ASoC: SOF: imx8ulp: " Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 11/14] ASoC: SOF: intel: bdw: " Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 12/14] ASoC: SOF: intel: byt: " Krzysztof Kozlowski
2024-04-14 18:47 ` [PATCH 13/14] ASoC: SOF: mediatek: mt8186: " Krzysztof Kozlowski
2024-04-15 10:49   ` AngeloGioacchino Del Regno
2024-04-14 18:47 ` [PATCH 14/14] ASoC: SOF: mediatek: mt8195: " Krzysztof Kozlowski
2024-04-15 10:49   ` AngeloGioacchino Del Regno
2024-04-15 14:19 ` [PATCH 00/14] ASoC: Constify local snd_sof_dsp_ops Pierre-Louis Bossart
2024-04-22  5:43   ` Krzysztof Kozlowski
2024-04-22 15:52     ` Pierre-Louis Bossart
2024-04-22 19:45       ` Krzysztof Kozlowski
2024-04-22 20:42         ` Pierre-Louis Bossart
2024-04-22 20:47           ` Krzysztof Kozlowski
2024-04-22 21:24             ` Pierre-Louis Bossart [this message]
2024-04-23  9:42               ` Krzysztof Kozlowski
2024-04-23 15:57                 ` Pierre-Louis Bossart
2024-04-23 16:06                   ` Krzysztof Kozlowski
2024-04-25 16:12                     ` Pierre-Louis Bossart
2024-05-01 13:43 ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eaa0c99a-3b41-4444-906c-d2f005d326b9@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=broonie@kernel.org \
    --cc=daniel.baluta@nxp.com \
    --cc=festevam@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kai.vehmanen@linux.intel.com \
    --cc=kernel@pengutronix.de \
    --cc=krzk@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=perex@perex.cz \
    --cc=peter.ujfalusi@linux.intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=sound-open-firmware@alsa-project.org \
    --cc=tiwai@suse.com \
    --cc=yung-chuan.liao@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).