Re: [PATCH 1/2] memory: tegra: Add SID override programming for MC clients

From: kernel test robot
Date: Tue Nov 07 2023 - 04:17:49 EST


Hi Ashish,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tegra/for-next]
[also build test WARNING on linus/master v6.6 next-20231107]
[cannot apply to tegra-drm/drm/tegra/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Ashish-Mhetre/memory-tegra-Skip-SID-programming-if-SID-registers-aren-t-set/20231107-133149
base: https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-next
patch link: https://lore.kernel.org/r/20231107052824.29418-1-amhetre%40nvidia.com
patch subject: [PATCH 1/2] memory: tegra: Add SID override programming for MC clients
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20231107/202311071607.IzbwSn2f-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231107/202311071607.IzbwSn2f-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311071607.IzbwSn2f-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

drivers/memory/tegra/tegra186.c: In function 'tegra186_mc_resume':
drivers/memory/tegra/tegra186.c:78:17: error: implicit declaration of function 'tegra186_mc_client_sid_override' [-Werror=implicit-function-declaration]
78 | tegra186_mc_client_sid_override(mc, client, client->sid);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/memory/tegra/tegra186.c: At top level:
>> drivers/memory/tegra/tegra186.c:85:13: warning: conflicting types for 'tegra186_mc_client_sid_override'; have 'void(struct tegra_mc *, const struct tegra_mc_client *, unsigned int)'
85 | static void tegra186_mc_client_sid_override(struct tegra_mc *mc,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/memory/tegra/tegra186.c:85:13: error: static declaration of 'tegra186_mc_client_sid_override' follows non-static declaration
drivers/memory/tegra/tegra186.c:78:17: note: previous implicit declaration of 'tegra186_mc_client_sid_override' with type 'void(struct tegra_mc *, const struct tegra_mc_client *, unsigned int)'
78 | tegra186_mc_client_sid_override(mc, client, client->sid);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +85 drivers/memory/tegra/tegra186.c

7355c7b9ae0d45 Thierry Reding 2021-06-02 70
142620fbbbbba0 Ashish Mhetre 2023-11-07 71 static int tegra186_mc_resume(struct tegra_mc *mc)
142620fbbbbba0 Ashish Mhetre 2023-11-07 72 {
142620fbbbbba0 Ashish Mhetre 2023-11-07 73 unsigned int i;
142620fbbbbba0 Ashish Mhetre 2023-11-07 74
142620fbbbbba0 Ashish Mhetre 2023-11-07 75 for (i = 0; i < mc->soc->num_clients; i++) {
142620fbbbbba0 Ashish Mhetre 2023-11-07 76 const struct tegra_mc_client *client = &mc->soc->clients[i];
142620fbbbbba0 Ashish Mhetre 2023-11-07 77
142620fbbbbba0 Ashish Mhetre 2023-11-07 @78 tegra186_mc_client_sid_override(mc, client, client->sid);
142620fbbbbba0 Ashish Mhetre 2023-11-07 79 }
142620fbbbbba0 Ashish Mhetre 2023-11-07 80
142620fbbbbba0 Ashish Mhetre 2023-11-07 81 return 0;
142620fbbbbba0 Ashish Mhetre 2023-11-07 82 }
142620fbbbbba0 Ashish Mhetre 2023-11-07 83
eaf89f1cd38cf7 Arnd Bergmann 2021-07-22 84 #if IS_ENABLED(CONFIG_IOMMU_API)
393d66fd2cacba Thierry Reding 2021-06-03 @85 static void tegra186_mc_client_sid_override(struct tegra_mc *mc,
393d66fd2cacba Thierry Reding 2021-06-03 86 const struct tegra_mc_client *client,
393d66fd2cacba Thierry Reding 2021-06-03 87 unsigned int sid)
393d66fd2cacba Thierry Reding 2021-06-03 88 {
393d66fd2cacba Thierry Reding 2021-06-03 89 u32 value, old;
393d66fd2cacba Thierry Reding 2021-06-03 90
393d66fd2cacba Thierry Reding 2021-06-03 91 value = readl(mc->regs + client->regs.sid.security);
393d66fd2cacba Thierry Reding 2021-06-03 92 if ((value & MC_SID_STREAMID_SECURITY_OVERRIDE) == 0) {
393d66fd2cacba Thierry Reding 2021-06-03 93 /*
393d66fd2cacba Thierry Reding 2021-06-03 94 * If the secure firmware has locked this down the override
393d66fd2cacba Thierry Reding 2021-06-03 95 * for this memory client, there's nothing we can do here.
393d66fd2cacba Thierry Reding 2021-06-03 96 */
393d66fd2cacba Thierry Reding 2021-06-03 97 if (value & MC_SID_STREAMID_SECURITY_WRITE_ACCESS_DISABLED)
393d66fd2cacba Thierry Reding 2021-06-03 98 return;
393d66fd2cacba Thierry Reding 2021-06-03 99
393d66fd2cacba Thierry Reding 2021-06-03 100 /*
393d66fd2cacba Thierry Reding 2021-06-03 101 * Otherwise, try to set the override itself. Typically the
393d66fd2cacba Thierry Reding 2021-06-03 102 * secure firmware will never have set this configuration.
393d66fd2cacba Thierry Reding 2021-06-03 103 * Instead, it will either have disabled write access to
393d66fd2cacba Thierry Reding 2021-06-03 104 * this field, or it will already have set an explicit
393d66fd2cacba Thierry Reding 2021-06-03 105 * override itself.
393d66fd2cacba Thierry Reding 2021-06-03 106 */
393d66fd2cacba Thierry Reding 2021-06-03 107 WARN_ON((value & MC_SID_STREAMID_SECURITY_OVERRIDE) == 0);
393d66fd2cacba Thierry Reding 2021-06-03 108
393d66fd2cacba Thierry Reding 2021-06-03 109 value |= MC_SID_STREAMID_SECURITY_OVERRIDE;
393d66fd2cacba Thierry Reding 2021-06-03 110 writel(value, mc->regs + client->regs.sid.security);
393d66fd2cacba Thierry Reding 2021-06-03 111 }
393d66fd2cacba Thierry Reding 2021-06-03 112
393d66fd2cacba Thierry Reding 2021-06-03 113 value = readl(mc->regs + client->regs.sid.override);
393d66fd2cacba Thierry Reding 2021-06-03 114 old = value & MC_SID_STREAMID_OVERRIDE_MASK;
393d66fd2cacba Thierry Reding 2021-06-03 115
393d66fd2cacba Thierry Reding 2021-06-03 116 if (old != sid) {
393d66fd2cacba Thierry Reding 2021-06-03 117 dev_dbg(mc->dev, "overriding SID %x for %s with %x\n", old,
393d66fd2cacba Thierry Reding 2021-06-03 118 client->name, sid);
393d66fd2cacba Thierry Reding 2021-06-03 119 writel(sid, mc->regs + client->regs.sid.override);
393d66fd2cacba Thierry Reding 2021-06-03 120 }
393d66fd2cacba Thierry Reding 2021-06-03 121 }
eaf89f1cd38cf7 Arnd Bergmann 2021-07-22 122 #endif
393d66fd2cacba Thierry Reding 2021-06-03 123

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki