Re: [PATCH] drm: log errors in drm_gem_fb_init_with_funcs
by kernel test robot
Hi Simon,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-tip/drm-tip drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next linus/master v5.12 next-20210430]
[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]
url: https://github.com/0day-ci/linux/commits/Simon-Ser/drm-log-errors-in-drm_...
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: riscv-randconfig-r012-20210430 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/0day-ci/linux/commit/9a5b8d668b957989ae026f9f91da5ed59...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Simon-Ser/drm-log-errors-in-drm_gem_fb_init_with_funcs/20210430-224208
git checkout 9a5b8d668b957989ae026f9f91da5ed59d831ef5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/drm_gem_framebuffer_helper.c:176:9: warning: format specifies type 'unsigned int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
objs[i]->size, min_size, i);
^~~~~~~~~~~~~
include/drm/drm_print.h:450:45: note: expanded from macro 'drm_dbg_kms'
drm_dev_dbg((drm)->dev, DRM_UT_KMS, fmt, ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
1 warning generated.
vim +176 drivers/gpu/drm/drm_gem_framebuffer_helper.c
118
119 /**
120 * drm_gem_fb_init_with_funcs() - Helper function for implementing
121 * &drm_mode_config_funcs.fb_create
122 * callback in cases when the driver
123 * allocates a subclass of
124 * struct drm_framebuffer
125 * @dev: DRM device
126 * @fb: framebuffer object
127 * @file: DRM file that holds the GEM handle(s) backing the framebuffer
128 * @mode_cmd: Metadata from the userspace framebuffer creation request
129 * @funcs: vtable to be used for the new framebuffer object
130 *
131 * This function can be used to set &drm_framebuffer_funcs for drivers that need
132 * custom framebuffer callbacks. Use drm_gem_fb_create() if you don't need to
133 * change &drm_framebuffer_funcs. The function does buffer size validation.
134 * The buffer size validation is for a general case, though, so users should
135 * pay attention to the checks being appropriate for them or, at least,
136 * non-conflicting.
137 *
138 * Returns:
139 * Zero or a negative error code.
140 */
141 int drm_gem_fb_init_with_funcs(struct drm_device *dev,
142 struct drm_framebuffer *fb,
143 struct drm_file *file,
144 const struct drm_mode_fb_cmd2 *mode_cmd,
145 const struct drm_framebuffer_funcs *funcs)
146 {
147 const struct drm_format_info *info;
148 struct drm_gem_object *objs[4];
149 int ret, i;
150
151 info = drm_get_format_info(dev, mode_cmd);
152 if (!info) {
153 drm_dbg_kms(dev, "Failed to get FB format info\n");
154 return -EINVAL;
155 }
156
157 for (i = 0; i < info->num_planes; i++) {
158 unsigned int width = mode_cmd->width / (i ? info->hsub : 1);
159 unsigned int height = mode_cmd->height / (i ? info->vsub : 1);
160 unsigned int min_size;
161
162 objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
163 if (!objs[i]) {
164 drm_dbg_kms(dev, "Failed to lookup GEM object\n");
165 ret = -ENOENT;
166 goto err_gem_object_put;
167 }
168
169 min_size = (height - 1) * mode_cmd->pitches[i]
170 + drm_format_info_min_pitch(info, i, width)
171 + mode_cmd->offsets[i];
172
173 if (objs[i]->size < min_size) {
174 drm_dbg_kms(dev,
175 "GEM object size (%u) smaller than minimum size (%u) for plane %d\n",
> 176 objs[i]->size, min_size, i);
177 drm_gem_object_put(objs[i]);
178 ret = -EINVAL;
179 goto err_gem_object_put;
180 }
181 }
182
183 ret = drm_gem_fb_init(dev, fb, mode_cmd, objs, i, funcs);
184 if (ret)
185 goto err_gem_object_put;
186
187 return 0;
188
189 err_gem_object_put:
190 for (i--; i >= 0; i--)
191 drm_gem_object_put(objs[i]);
192
193 return ret;
194 }
195 EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
196
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year
[PATCH] arm64: cpufeatures: use min and max
by Julia Lawall
From: kernel test robot <lkp(a)intel.com>
Use min and max to make the effect more clear.
Generated by: scripts/coccinelle/misc/minmax.cocci
Fixes: 8636e3295ce3 ("coccinelle: misc: add minmax script")
CC: Denis Efremov <efremov(a)linux.com>
Reported-by: kernel test robot <lkp(a)intel.com>
Signed-off-by: kernel test robot <lkp(a)intel.com>
Signed-off-by: Julia Lawall <julia.lawall(a)inria.fr>
---
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux.git for-5.12
head: 44e793b89bcfe586730f4c6ce3c66174dc07cb37
commit: 8636e3295ce33515c50ef728f0ff3800d97f9f44 [1/5] coccinelle: misc: add minmax script
:::::: branch date: 6 days ago
:::::: commit date: 6 weeks ago
cpufeature.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -695,14 +695,14 @@ static s64 arm64_ftr_safe_value(const st
ret = ftrp->safe_val;
break;
case FTR_LOWER_SAFE:
- ret = new < cur ? new : cur;
+ ret = min(new, cur);
break;
case FTR_HIGHER_OR_ZERO_SAFE:
if (!cur || !new)
break;
fallthrough;
case FTR_HIGHER_SAFE:
- ret = new > cur ? new : cur;
+ ret = max(new, cur);
break;
default:
BUG();
1 year
[intel-linux-intel-lts:4.19/android 16527/20126] drivers/cpufreq/cpufreq_times.c:354:5: warning: no previous prototype for 'cpufreq_table_get_closed_index'
by kernel test robot
Hi Junxiao,
FYI, the error/warning still remains.
tree: https://github.com/intel/linux-intel-lts.git 4.19/android
head: f8a1a46aea1a45d38b3031000d1ae94dd9111b20
commit: 045c4cc9854e44be23f27501c397c8d1783a0708 [16527/20126] cpufreq statistics: support cpufreq driver without freq table
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/intel/linux-intel-lts/commit/045c4cc9854e44be23f27501c...
git remote add intel-linux-intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-linux-intel-lts 4.19/android
git checkout 045c4cc9854e44be23f27501c397c8d1783a0708
# save the attached .config to linux build tree
make W=1 W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/cpufreq/cpufreq_times.c:354:5: warning: no previous prototype for 'cpufreq_table_get_closed_index' [-Wmissing-prototypes]
354 | int cpufreq_table_get_closed_index(int cpu, unsigned int freq)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/cpufreq/cpufreq_times.c:367:6: warning: no previous prototype for 'cpufreq_times_create_policy_no_freq_table' [-Wmissing-prototypes]
367 | void cpufreq_times_create_policy_no_freq_table(struct cpufreq_policy *policy)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/cpufreq_table_get_closed_index +354 drivers/cpufreq/cpufreq_times.c
350
351 #define CPU_FREQ_STEPS 100000
352 // Suppose all cores have same freq count
353 static int all_freq_count;
> 354 int cpufreq_table_get_closed_index(int cpu, unsigned int freq)
355 {
356 int i;
357 unsigned int rounded_freq;
358
359 rounded_freq = freq + CPU_FREQ_STEPS / 2;
360 for (i = 0; i < all_freq_count; i++) {
361 if ((rounded_freq - all_freqs[cpu]->freq_table[i]) / CPU_FREQ_STEPS == 0)
362 return i;
363 }
364 return -1;
365 }
366
> 367 void cpufreq_times_create_policy_no_freq_table(struct cpufreq_policy *policy)
368 {
369 int cpu, index, i;
370 unsigned int count = 0;
371 struct cpu_freqs *freqs;
372 void *tmp;
373
374 if (all_freqs[policy->cpu])
375 return;
376
377 count = (policy->max - policy->min) / CPU_FREQ_STEPS + 1;
378 if ((policy->max - policy->min) % CPU_FREQ_STEPS)
379 count++;
380
381 if (count > 100)
382 return;
383
384 tmp = kzalloc(sizeof(*freqs) + sizeof(freqs->freq_table[0]) * count,
385 GFP_KERNEL);
386 if (!tmp)
387 return;
388
389 freqs = tmp;
390 freqs->max_state = count;
391 all_freq_count = count;
392
393 freqs->freq_table[0] = policy->min;
394 freqs->freq_table[count - 1] = policy->max;
395 for (i = 1; i < count - 1; i++)
396 freqs->freq_table[i] = policy->min + i * CPU_FREQ_STEPS;
397 freqs->offset = next_offset;
398 WRITE_ONCE(next_offset, freqs->offset + count);
399 for_each_cpu(cpu, policy->related_cpus)
400 all_freqs[cpu] = freqs;
401
402 index = cpufreq_table_get_closed_index(policy->cpu, policy->cur);
403 if (index >= 0)
404 WRITE_ONCE(freqs->last_index, index);
405 }
406
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year
[android-common:android-4.19-r 1/1] drivers/mtd/nand/raw/atmel/nand-controller.c:1865:34: warning: unused variable 'atmel_matrix_of_ids'
by kernel test robot
tree: https://android.googlesource.com/kernel/common android-4.19-r
head: f0719dcb3a6ebfd657bff0df566e70f6fd18e3c9
commit: f0719dcb3a6ebfd657bff0df566e70f6fd18e3c9 [1/1] BACKPORT: ARM: 8900/1: UNWINDER_FRAME_POINTER implementation for Clang
config: arm-randconfig-r001-20210430 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
git remote add android-common https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android-4.19-r
git checkout f0719dcb3a6ebfd657bff0df566e70f6fd18e3c9
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from drivers/mtd/nand/raw/atmel/nand-controller.c:51:
In file included from include/linux/clk.h:16:
In file included from include/linux/kernel.h:11:
In file included from include/linux/bitops.h:19:
In file included from arch/arm/include/asm/bitops.h:268:
In file included from include/asm-generic/bitops/le.h:6:
In file included from arch/arm/include/uapi/asm/byteorder.h:22:
In file included from include/linux/byteorder/little_endian.h:11:
include/linux/byteorder/generic.h:195:16: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned int') [-Wsign-compare]
for (i = 0; i < len; i++)
~ ^ ~~~
include/linux/byteorder/generic.h:203:16: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned int') [-Wsign-compare]
for (i = 0; i < len; i++)
~ ^ ~~~
In file included from drivers/mtd/nand/raw/atmel/nand-controller.c:51:
In file included from include/linux/clk.h:17:
In file included from include/linux/notifier.h:14:
In file included from include/linux/mutex.h:14:
In file included from ./arch/arm/include/generated/asm/current.h:1:
In file included from include/asm-generic/current.h:5:
include/linux/thread_info.h:141:29: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned int') [-Wsign-compare]
if (unlikely(sz >= 0 && sz < bytes)) {
~~ ^ ~~~~~
include/linux/compiler.h:77:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
In file included from drivers/mtd/nand/raw/atmel/nand-controller.c:51:
In file included from include/linux/clk.h:17:
In file included from include/linux/notifier.h:16:
In file included from include/linux/srcu.h:33:
In file included from include/linux/rcupdate.h:44:
In file included from include/linux/cpumask.h:12:
include/linux/bitmap.h:359:36: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
return find_first_bit(src, nbits) == nbits;
~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~
include/linux/bitmap.h:367:41: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
return find_first_zero_bit(src, nbits) == nbits;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~
In file included from drivers/mtd/nand/raw/atmel/nand-controller.c:52:
In file included from include/linux/dma-mapping.h:7:
In file included from include/linux/device.h:16:
In file included from include/linux/kobject.h:20:
In file included from include/linux/sysfs.h:16:
In file included from include/linux/kernfs.h:14:
In file included from include/linux/idr.h:16:
In file included from include/linux/gfp.h:6:
include/linux/mmzone.h:988:44: warning: comparison of integers of different signs: 'int' and 'enum zone_type' [-Wsign-compare]
if (likely(!nodes && zonelist_zone_idx(z) <= highest_zoneidx))
~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
include/linux/compiler.h:76:40: note: expanded from macro 'likely'
# define likely(x) __builtin_expect(!!(x), 1)
^
In file included from drivers/mtd/nand/raw/atmel/nand-controller.c:52:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:26:
In file included from include/linux/page_ref.h:7:
include/linux/page-flags.h:163:21: warning: comparison of integers of different signs: 'const unsigned long' and 'long' [-Wsign-compare]
return page->flags == PAGE_POISON_PATTERN;
~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~
In file included from drivers/mtd/nand/raw/atmel/nand-controller.c:61:
In file included from include/linux/mtd/rawnand.h:21:
include/linux/mtd/mtd.h:400:16: warning: comparison of integers of different signs: 'uint64_t' (aka 'unsigned long long') and 'long long' [-Wsign-compare]
if (mtd->size < (len + ofs) || ofs < 0)
~~~~~~~~~ ^ ~~~~~~~~~
>> drivers/mtd/nand/raw/atmel/nand-controller.c:1865:34: warning: unused variable 'atmel_matrix_of_ids' [-Wunused-const-variable]
static const struct of_device_id atmel_matrix_of_ids[] = {
^
9 warnings generated.
/usr/bin/as: unrecognized option '-EL'
clang-13: error: assembler command failed with exit code 1 (use -v to see invocation)
--
In file included from drivers/tty/serial/amba-pl011.c:24:
In file included from include/linux/module.h:9:
In file included from include/linux/list.h:9:
In file included from include/linux/kernel.h:11:
In file included from include/linux/bitops.h:19:
In file included from arch/arm/include/asm/bitops.h:268:
In file included from include/asm-generic/bitops/le.h:6:
In file included from arch/arm/include/uapi/asm/byteorder.h:22:
In file included from include/linux/byteorder/little_endian.h:11:
include/linux/byteorder/generic.h:195:16: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned int') [-Wsign-compare]
for (i = 0; i < len; i++)
~ ^ ~~~
include/linux/byteorder/generic.h:203:16: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned int') [-Wsign-compare]
for (i = 0; i < len; i++)
~ ^ ~~~
In file included from drivers/tty/serial/amba-pl011.c:24:
In file included from include/linux/module.h:10:
In file included from include/linux/stat.h:19:
In file included from include/linux/time.h:6:
In file included from include/linux/seqlock.h:36:
In file included from include/linux/spinlock.h:51:
In file included from include/linux/preempt.h:81:
In file included from ./arch/arm/include/generated/asm/preempt.h:1:
In file included from include/asm-generic/preempt.h:5:
include/linux/thread_info.h:141:29: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned int') [-Wsign-compare]
if (unlikely(sz >= 0 && sz < bytes)) {
~~ ^ ~~~~~
include/linux/compiler.h:77:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
In file included from drivers/tty/serial/amba-pl011.c:24:
In file included from include/linux/module.h:13:
In file included from include/linux/kmod.h:22:
In file included from include/linux/umh.h:4:
In file included from include/linux/gfp.h:6:
In file included from include/linux/mmzone.h:17:
In file included from include/linux/nodemask.h:95:
include/linux/bitmap.h:359:36: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
return find_first_bit(src, nbits) == nbits;
~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~
include/linux/bitmap.h:367:41: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
return find_first_zero_bit(src, nbits) == nbits;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~
In file included from drivers/tty/serial/amba-pl011.c:24:
In file included from include/linux/module.h:13:
In file included from include/linux/kmod.h:22:
In file included from include/linux/umh.h:4:
In file included from include/linux/gfp.h:6:
include/linux/mmzone.h:988:44: warning: comparison of integers of different signs: 'int' and 'enum zone_type' [-Wsign-compare]
if (likely(!nodes && zonelist_zone_idx(z) <= highest_zoneidx))
~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
include/linux/compiler.h:76:40: note: expanded from macro 'likely'
# define likely(x) __builtin_expect(!!(x), 1)
^
In file included from drivers/tty/serial/amba-pl011.c:38:
In file included from include/linux/dmaengine.h:24:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:26:
In file included from include/linux/page_ref.h:7:
include/linux/page-flags.h:163:21: warning: comparison of integers of different signs: 'const unsigned long' and 'long' [-Wsign-compare]
return page->flags == PAGE_POISON_PATTERN;
~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/amba-pl011.c:2550:16: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for (i = 0; i < ARRAY_SIZE(amba_ports); i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/amba-pl011.c:2565:16: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
for (i = 0; i < ARRAY_SIZE(amba_ports); i++)
~ ^ ~~~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/amba-pl011.c:2704:51: warning: passing 'int *' to parameter of type 'u32 *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
ret = of_property_read_u32(np, "current-speed", &baudrate);
^~~~~~~~~
include/linux/of.h:1178:17: note: passing argument to parameter 'out_value' here
u32 *out_value)
^
drivers/tty/serial/amba-pl011.c:2771:18: warning: missing field 'cls' initializer [-Wmissing-field-initializers]
{ "ARMH0011", 0 },
^
drivers/tty/serial/amba-pl011.c:2803:9: warning: missing field 'data' initializer [-Wmissing-field-initializers]
{ 0, 0 },
^
>> drivers/tty/serial/amba-pl011.c:2764:34: warning: unused variable 'sbsa_uart_of_match' [-Wunused-const-variable]
static const struct of_device_id sbsa_uart_of_match[] = {
^
drivers/tty/serial/amba-pl011.c:2770:36: warning: unused variable 'sbsa_uart_acpi_match' [-Wunused-const-variable]
static const struct acpi_device_id sbsa_uart_acpi_match[] = {
^
14 warnings generated.
/usr/bin/as: unrecognized option '-EL'
clang-13: error: assembler command failed with exit code 1 (use -v to see invocation)
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for WIRELESS_EXT
Depends on NET && WIRELESS
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
WARNING: unmet direct dependencies detected for WEXT_CORE
Depends on NET && WIRELESS && (CFG80211_WEXT || WIRELESS_EXT
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
WARNING: unmet direct dependencies detected for WEXT_PROC
Depends on NET && WIRELESS && PROC_FS && WEXT_CORE
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
WARNING: unmet direct dependencies detected for WEXT_PRIV
Depends on NET && WIRELESS
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
WARNING: unmet direct dependencies detected for WEXT_SPY
Depends on NET && WIRELESS
Selected by
- GKI_LEGACY_WEXT_ALLCONFIG
vim +/atmel_matrix_of_ids +1865 drivers/mtd/nand/raw/atmel/nand-controller.c
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1864
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 @1865 static const struct of_device_id atmel_matrix_of_ids[] = {
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1866 {
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1867 .compatible = "atmel,at91sam9260-matrix",
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1868 .data = (void *)AT91SAM9260_MATRIX_EBICSA,
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1869 },
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1870 {
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1871 .compatible = "atmel,at91sam9261-matrix",
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1872 .data = (void *)AT91SAM9261_MATRIX_EBICSA,
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1873 },
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1874 {
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1875 .compatible = "atmel,at91sam9263-matrix",
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1876 .data = (void *)AT91SAM9263_MATRIX_EBI0CSA,
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1877 },
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1878 {
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1879 .compatible = "atmel,at91sam9rl-matrix",
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1880 .data = (void *)AT91SAM9RL_MATRIX_EBICSA,
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1881 },
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1882 {
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1883 .compatible = "atmel,at91sam9g45-matrix",
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1884 .data = (void *)AT91SAM9G45_MATRIX_EBICSA,
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1885 },
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1886 {
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1887 .compatible = "atmel,at91sam9n12-matrix",
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1888 .data = (void *)AT91SAM9N12_MATRIX_EBICSA,
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1889 },
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1890 {
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1891 .compatible = "atmel,at91sam9x5-matrix",
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1892 .data = (void *)AT91SAM9X5_MATRIX_EBICSA,
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1893 },
038e8ad6eb720d drivers/mtd/nand/atmel/nand-controller.c Christophe Jaillet 2017-04-11 1894 { /* sentinel */ },
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1895 };
f88fc122cc34c2 drivers/mtd/nand/atmel/nand-controller.c Boris Brezillon 2017-03-16 1896
:::::: The code at line 1865 was first introduced by commit
:::::: f88fc122cc34c2545dec9562eaab121494e401ef mtd: nand: Cleanup/rework the atmel_nand driver
:::::: TO: Boris Brezillon <boris.brezillon(a)free-electrons.com>
:::::: CC: Boris Brezillon <boris.brezillon(a)free-electrons.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year
[thomash:topic/ttm_branch 38/45] drivers/gpu/drm/i915/i915_ttm.c:29:5: error: no previous prototype for 'i915_region_to_ttm_type'
by kernel test robot
tree: git://people.freedesktop.org/~thomash/linux topic/ttm_branch
head: 4327ee2c8dd23ea964b13f1c0680d75bfb42e71b
commit: 6b23c62c674f278d61858115f3e0bb05a35f3b89 [38/45] drm/i915/ttm: Introduce a TTM gem object backend
config: i386-randconfig-a011-20210430 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
git remote add thomash git://people.freedesktop.org/~thomash/linux
git fetch --no-tags thomash topic/ttm_branch
git checkout 6b23c62c674f278d61858115f3e0bb05a35f3b89
# save the attached .config to linux build tree
make W=1 W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/i915/i915_ttm.c:29:5: error: no previous prototype for 'i915_region_to_ttm_type' [-Werror=missing-prototypes]
29 | int i915_region_to_ttm_type(struct intel_memory_region *mem)
| ^~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
--
>> drivers/gpu/drm/i915/gem/i915_gem_ttm.c:419:6: error: no previous prototype for 'i915_ttm_bo_destroy' [-Werror=missing-prototypes]
419 | void i915_ttm_bo_destroy(struct ttm_buffer_object *bo)
| ^~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/i915_region_to_ttm_type +29 drivers/gpu/drm/i915/i915_ttm.c
23
24 /*
25 * Map the i915 memory regions to TTM memory types. We use the
26 * driver-private types for now, reserving TTM_PL_VRAM for stolen
27 * memory and TTM_PL_TT for GGTT use if decided to implement this.
28 */
> 29 int i915_region_to_ttm_type(struct intel_memory_region *mem)
30 {
31 int type;
32
33 switch (mem->type) {
34 case INTEL_MEMORY_LOCAL:
35 return mem->instance + TTM_PL_PRIV;
36 case INTEL_MEMORY_STOLEN_SYSTEM:
37 return TTM_PL_VRAM;
38 case INTEL_MEMORY_STOLEN_LOCAL:
39 return TTM_PL_VRAM;
40 default:
41 GEM_BUG_ON(1);
42 fallthrough;
43 case INTEL_MEMORY_SYSTEM:
44 GEM_BUG_ON(mem->instance != 0);
45 return TTM_PL_SYSTEM;
46 }
47
48 type = mem->instance + TTM_PL_PRIV;
49 GEM_BUG_ON(type >= TTM_NUM_MEM_TYPES);
50
51 return type;
52 }
53
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year
[linux-stable-rc:linux-4.19.y 5303/9999] drivers/atm/eni.c:244:48: warning: for loop has empty body
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
head: e864f43593ccf9180c61738abdf1c1dde091367d
commit: b92e5db0f492026778cb31dfc479e50f33f75bca [5303/9999] powerpc/32: Avoid unsupported flags with clang
config: powerpc-randconfig-r024-20210430 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gi...
git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-4.19.y
git checkout b92e5db0f492026778cb31dfc479e50f33f75bca
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
include/linux/compiler.h:77:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
In file included from drivers/atm/eni.c:12:
In file included from include/linux/atmdev.h:13:
In file included from include/net/sock.h:51:
include/linux/netdevice.h:2703:34: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
skb_checksum_start_offset(skb) <
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
include/linux/netdevice.h:3477:15: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
BUG_ON(index >= dev->num_rx_queues);
~~~~~ ^ ~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/bug.h:76:27: note: expanded from macro 'BUG_ON'
if (__builtin_constant_p(x)) { \
^
In file included from drivers/atm/eni.c:12:
In file included from include/linux/atmdev.h:13:
In file included from include/net/sock.h:51:
include/linux/netdevice.h:3477:15: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
BUG_ON(index >= dev->num_rx_queues);
~~~~~ ^ ~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/bug.h:77:7: note: expanded from macro 'BUG_ON'
if (x) \
^
In file included from drivers/atm/eni.c:12:
In file included from include/linux/atmdev.h:13:
In file included from include/net/sock.h:51:
include/linux/netdevice.h:3788:37: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
if (debug_value < 0 || debug_value >= (sizeof(u32) * 8))
~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
In file included from drivers/atm/eni.c:12:
In file included from include/linux/atmdev.h:13:
In file included from include/net/sock.h:64:
In file included from include/linux/filter.h:24:
In file included from include/net/sch_generic.h:16:
In file included from include/net/rtnetlink.h:6:
include/net/netlink.h:358:18: warning: comparison of integers of different signs: 'const __u32' (aka 'const unsigned int') and 'int' [-Wsign-compare]
nlh->nlmsg_len <= remaining);
~~~~~~~~~~~~~~ ^ ~~~~~~~~~
include/net/netlink.h:395:21: warning: comparison of integers of different signs: 'const __u32' (aka 'const unsigned int') and 'int' [-Wsign-compare]
if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen))
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~
include/net/netlink.h:430:21: warning: comparison of integers of different signs: 'const __u32' (aka 'const unsigned int') and 'int' [-Wsign-compare]
if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen))
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/atm/eni.c:12:
In file included from include/linux/atmdev.h:13:
In file included from include/net/sock.h:64:
In file included from include/linux/filter.h:24:
In file included from include/net/sch_generic.h:16:
include/net/rtnetlink.h:25:21: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
if (nlmsg_len(nlh) >= sizeof(struct rtgenmsg))
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/atm/eni.c:12:
In file included from include/linux/atmdev.h:13:
In file included from include/net/sock.h:64:
In file included from include/linux/filter.h:24:
include/net/sch_generic.h:387:33: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
BUILD_BUG_ON(sizeof(qcb->data) < sz);
~~~~~~~~~~~~~~~~~ ^ ~~
include/linux/build_bug.h:69:19: note: expanded from macro 'BUILD_BUG_ON'
BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
^~~~~~~~~
include/linux/build_bug.h:45:58: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^~~~
include/linux/compiler.h:348:22: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^~~~~~~~~
include/linux/compiler.h:336:23: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^~~~~~~~~
include/linux/compiler.h:328:9: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^~~~~~~~~
In file included from drivers/atm/eni.c:12:
In file included from include/linux/atmdev.h:13:
In file included from include/net/sock.h:64:
In file included from include/linux/filter.h:24:
include/net/sch_generic.h:493:13: warning: comparison of integers of different signs: 'int' and 'const unsigned int' [-Wsign-compare]
return ntx < dev->real_num_tx_queues ?
~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~
include/net/sch_generic.h:537:15: warning: comparison of integers of different signs: 'u32' (aka 'unsigned int') and 'int' [-Wsign-compare]
return (hwtc < netdev_get_num_tc(dev)) ? hwtc : -EINVAL;
~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/atm/eni.c:12:
In file included from include/linux/atmdev.h:13:
In file included from include/net/sock.h:64:
include/linux/filter.h:1011:16: warning: comparison of integers of different signs: 'const __u32' (aka 'const unsigned int') and 'int' [-Wsign-compare]
if (first->k == SKF_AD_OFF + SKF_AD_ALU_XOR_X)
~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/atm/eni.c:12:
In file included from include/linux/atmdev.h:13:
include/net/sock.h:2246:43: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
return refcount_read(&sk->sk_wmem_alloc) < (sk->sk_sndbuf >> 1);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~
In file included from drivers/atm/eni.c:12:
include/linux/atmdev.h:274:61: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
return (size + refcount_read(&sk_atm(vcc)->sk_wmem_alloc)) <
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
>> drivers/atm/eni.c:244:48: warning: for loop has empty body [-Wempty-body]
for (order = 0; (1 << order) < *size; order++);
^
drivers/atm/eni.c:244:48: note: put the semicolon on a separate line to silence this warning
drivers/atm/eni.c:1109:70: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
if (dma_wr != dma_rd && ((dma_rd+NR_DMA_TX-dma_wr) & (NR_DMA_TX-1)) <
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
drivers/atm/eni.c:1223:27: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
if (ENI_VCC(vcc)->txing < tx->words && ENI_PRV_POS(skb) ==
~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~
drivers/atm/eni.c:1761:29: warning: comparison of integers of different signs: 'u32' (aka 'unsigned int') and 'int' [-Wsign-compare]
if (readl(eni_dev->ram+i) != i) break;
~~~~~~~~~~~~~~~~~~~~~ ^ ~
29 warnings generated.
Assembler messages:
Fatal error: invalid listing option `3'
clang-13: error: assembler command failed with exit code 1 (use -v to see invocation)
vim +244 drivers/atm/eni.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 232
^1da177e4c3f41 Linus Torvalds 2005-04-16 233
^1da177e4c3f41 Linus Torvalds 2005-04-16 234 static void __iomem *eni_alloc_mem(struct eni_dev *eni_dev, unsigned long *size)
^1da177e4c3f41 Linus Torvalds 2005-04-16 235 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 236 struct eni_free *list;
^1da177e4c3f41 Linus Torvalds 2005-04-16 237 void __iomem *start;
^1da177e4c3f41 Linus Torvalds 2005-04-16 238 int len,i,order,best_order,index;
^1da177e4c3f41 Linus Torvalds 2005-04-16 239
^1da177e4c3f41 Linus Torvalds 2005-04-16 240 list = eni_dev->free_list;
^1da177e4c3f41 Linus Torvalds 2005-04-16 241 len = eni_dev->free_len;
^1da177e4c3f41 Linus Torvalds 2005-04-16 242 if (*size < MID_MIN_BUF_SIZE) *size = MID_MIN_BUF_SIZE;
^1da177e4c3f41 Linus Torvalds 2005-04-16 243 if (*size > MID_MAX_BUF_SIZE) return NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 @244 for (order = 0; (1 << order) < *size; order++);
^1da177e4c3f41 Linus Torvalds 2005-04-16 245 DPRINTK("trying: %ld->%d\n",*size,order);
^1da177e4c3f41 Linus Torvalds 2005-04-16 246 best_order = 65; /* we don't have more than 2^64 of anything ... */
^1da177e4c3f41 Linus Torvalds 2005-04-16 247 index = 0; /* silence GCC */
^1da177e4c3f41 Linus Torvalds 2005-04-16 248 for (i = 0; i < len; i++)
^1da177e4c3f41 Linus Torvalds 2005-04-16 249 if (list[i].order == order) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 250 best_order = order;
^1da177e4c3f41 Linus Torvalds 2005-04-16 251 index = i;
^1da177e4c3f41 Linus Torvalds 2005-04-16 252 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 253 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 254 else if (best_order > list[i].order && list[i].order > order) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 255 best_order = list[i].order;
^1da177e4c3f41 Linus Torvalds 2005-04-16 256 index = i;
^1da177e4c3f41 Linus Torvalds 2005-04-16 257 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 258 if (best_order == 65) return NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 259 start = list[index].start-eni_dev->base_diff;
^1da177e4c3f41 Linus Torvalds 2005-04-16 260 list[index] = list[--len];
^1da177e4c3f41 Linus Torvalds 2005-04-16 261 eni_dev->free_len = len;
^1da177e4c3f41 Linus Torvalds 2005-04-16 262 *size = 1 << order;
^1da177e4c3f41 Linus Torvalds 2005-04-16 263 eni_put_free(eni_dev,start+*size,(1 << best_order)-*size);
^1da177e4c3f41 Linus Torvalds 2005-04-16 264 DPRINTK("%ld bytes (order %d) at 0x%lx\n",*size,order,start);
^1da177e4c3f41 Linus Torvalds 2005-04-16 265 memset_io(start,0,*size); /* never leak data */
^1da177e4c3f41 Linus Torvalds 2005-04-16 266 /*dump_mem(eni_dev);*/
^1da177e4c3f41 Linus Torvalds 2005-04-16 267 return start;
^1da177e4c3f41 Linus Torvalds 2005-04-16 268 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 269
:::::: The code at line 244 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds(a)ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds(a)ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year
drivers/md/raid10.c:995 wait_barrier() warn: if();
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8ca5297e7e38f2dc8c753d33a5092e7be181fff0
commit: fe630de009d0729584d79c78f43121e07c745fdc md/raid10: avoid deadlock on recovery.
date: 9 months ago
config: nds32-randconfig-m031-20210430 (attached as .config)
compiler: nds32le-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
New smatch warnings:
drivers/md/raid10.c:995 wait_barrier() warn: if();
drivers/md/raid10.c:995 wait_barrier() warn: if();
drivers/md/raid10.c:995 wait_barrier() warn: ignoring unreachable code.
Old smatch warnings:
drivers/md/raid10.c:3220 raid10_sync_request() error: we previously assumed 'bio' could be null (see line 3212)
drivers/md/raid10.c:3225 raid10_sync_request() error: we previously assumed 'mreplace' could be null (see line 3111)
drivers/md/raid10.c:3575 calc_sectors() warn: should '1 << conf->geo.chunk_shift' be a 64 bit type?
vim +995 drivers/md/raid10.c
0a27ec96b6fb1a NeilBrown 2006-01-06 978
e879a8793f915a NeilBrown 2011-10-11 979 static void wait_barrier(struct r10conf *conf)
0a27ec96b6fb1a NeilBrown 2006-01-06 980 {
0a27ec96b6fb1a NeilBrown 2006-01-06 981 spin_lock_irq(&conf->resync_lock);
0a27ec96b6fb1a NeilBrown 2006-01-06 982 if (conf->barrier) {
fe630de009d072 Vitaly Mayatskikh 2020-03-03 983 struct bio_list *bio_list = current->bio_list;
0a27ec96b6fb1a NeilBrown 2006-01-06 984 conf->nr_waiting++;
d6b42dcb995e6a NeilBrown 2012-03-19 985 /* Wait for the barrier to drop.
d6b42dcb995e6a NeilBrown 2012-03-19 986 * However if there are already pending
d6b42dcb995e6a NeilBrown 2012-03-19 987 * requests (preventing the barrier from
d6b42dcb995e6a NeilBrown 2012-03-19 988 * rising completely), and the
d6b42dcb995e6a NeilBrown 2012-03-19 989 * pre-process bio queue isn't empty,
d6b42dcb995e6a NeilBrown 2012-03-19 990 * then don't wait, as we need to empty
d6b42dcb995e6a NeilBrown 2012-03-19 991 * that queue to get the nr_pending
d6b42dcb995e6a NeilBrown 2012-03-19 992 * count down.
d6b42dcb995e6a NeilBrown 2012-03-19 993 */
578b54ade8a5e0 NeilBrown 2016-11-14 994 raid10_log(conf->mddev, "wait barrier");
d6b42dcb995e6a NeilBrown 2012-03-19 @995 wait_event_lock_irq(conf->wait_barrier,
d6b42dcb995e6a NeilBrown 2012-03-19 996 !conf->barrier ||
0e5313e2d4ef93 Tomasz Majchrzak 2016-06-24 997 (atomic_read(&conf->nr_pending) &&
fe630de009d072 Vitaly Mayatskikh 2020-03-03 998 bio_list &&
fe630de009d072 Vitaly Mayatskikh 2020-03-03 999 (!bio_list_empty(&bio_list[0]) ||
fe630de009d072 Vitaly Mayatskikh 2020-03-03 1000 !bio_list_empty(&bio_list[1]))) ||
fe630de009d072 Vitaly Mayatskikh 2020-03-03 1001 /* move on if recovery thread is
fe630de009d072 Vitaly Mayatskikh 2020-03-03 1002 * blocked by us
fe630de009d072 Vitaly Mayatskikh 2020-03-03 1003 */
fe630de009d072 Vitaly Mayatskikh 2020-03-03 1004 (conf->mddev->thread->tsk == current &&
fe630de009d072 Vitaly Mayatskikh 2020-03-03 1005 test_bit(MD_RECOVERY_RUNNING,
fe630de009d072 Vitaly Mayatskikh 2020-03-03 1006 &conf->mddev->recovery) &&
fe630de009d072 Vitaly Mayatskikh 2020-03-03 1007 conf->nr_queued > 0),
eed8c02e680c04 Lukas Czerner 2012-11-30 1008 conf->resync_lock);
0a27ec96b6fb1a NeilBrown 2006-01-06 1009 conf->nr_waiting--;
0e5313e2d4ef93 Tomasz Majchrzak 2016-06-24 1010 if (!conf->nr_waiting)
0e5313e2d4ef93 Tomasz Majchrzak 2016-06-24 1011 wake_up(&conf->wait_barrier);
0a27ec96b6fb1a NeilBrown 2006-01-06 1012 }
0e5313e2d4ef93 Tomasz Majchrzak 2016-06-24 1013 atomic_inc(&conf->nr_pending);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1014 spin_unlock_irq(&conf->resync_lock);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1015 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1016
:::::: The code at line 995 was first introduced by commit
:::::: d6b42dcb995e6acd7cc276774e751ffc9f0ef4bf md/raid1,raid10: avoid deadlock during resync/recovery.
:::::: TO: NeilBrown <neilb(a)suse.de>
:::::: CC: NeilBrown <neilb(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year
[jpirko-mlxsw:linecards 2/93] drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1467:4: warning: variable 'mlxsw_sp_port' is uninitialized when used here
by kernel test robot
tree: https://github.com/jpirko/linux_mlxsw linecards
head: 3d0591edf41e844589c788fe97e0f5b9a658d2e4
commit: b63e73885a85434a3bcfbead69cd1ef43dc3754d [2/93] mlxsw: spectrum: Move port SWID set before core port init
config: x86_64-randconfig-a012-20210430 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/jpirko/linux_mlxsw/commit/b63e73885a85434a3bcfbead69cd...
git remote add jpirko-mlxsw https://github.com/jpirko/linux_mlxsw
git fetch --no-tags jpirko-mlxsw linecards
git checkout b63e73885a85434a3bcfbead69cd1ef43dc3754d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1467:4: warning: variable 'mlxsw_sp_port' is uninitialized when used here [-Wuninitialized]
mlxsw_sp_port->local_port);
^~~~~~~~~~~~~
include/linux/dev_printk.h:112:32: note: expanded from macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1451:37: note: initialize the variable 'mlxsw_sp_port' to silence this warning
struct mlxsw_sp_port *mlxsw_sp_port;
^
= NULL
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:110:1: warning: unused function 'mlxsw_tx_hdr_version_get' [-Wunused-function]
MLXSW_ITEM32(tx, hdr, version, 0x00, 28, 4);
^
drivers/net/ethernet/mellanox/mlxsw/item.h:355:19: note: expanded from macro 'MLXSW_ITEM32'
static inline u32 mlxsw_##_type##_##_cname##_##_iname##_get(const char *buf) \
^
<scratch space>:70:1: note: expanded from here
mlxsw_tx_hdr_version_get
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:117:1: warning: unused function 'mlxsw_tx_hdr_ctl_get' [-Wunused-function]
MLXSW_ITEM32(tx, hdr, ctl, 0x00, 26, 2);
^
drivers/net/ethernet/mellanox/mlxsw/item.h:355:19: note: expanded from macro 'MLXSW_ITEM32'
static inline u32 mlxsw_##_type##_##_cname##_##_iname##_get(const char *buf) \
^
<scratch space>:103:1: note: expanded from here
mlxsw_tx_hdr_ctl_get
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:122:1: warning: unused function 'mlxsw_tx_hdr_proto_get' [-Wunused-function]
MLXSW_ITEM32(tx, hdr, proto, 0x00, 21, 3);
^
drivers/net/ethernet/mellanox/mlxsw/item.h:355:19: note: expanded from macro 'MLXSW_ITEM32'
static inline u32 mlxsw_##_type##_##_cname##_##_iname##_get(const char *buf) \
^
<scratch space>:136:1: note: expanded from here
mlxsw_tx_hdr_proto_get
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:127:1: warning: unused function 'mlxsw_tx_hdr_rx_is_router_get' [-Wunused-function]
MLXSW_ITEM32(tx, hdr, rx_is_router, 0x00, 19, 1);
^
drivers/net/ethernet/mellanox/mlxsw/item.h:355:19: note: expanded from macro 'MLXSW_ITEM32'
static inline u32 mlxsw_##_type##_##_cname##_##_iname##_get(const char *buf) \
^
<scratch space>:169:1: note: expanded from here
mlxsw_tx_hdr_rx_is_router_get
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:127:1: warning: unused function 'mlxsw_tx_hdr_rx_is_router_set' [-Wunused-function]
drivers/net/ethernet/mellanox/mlxsw/item.h:359:20: note: expanded from macro 'MLXSW_ITEM32'
static inline void mlxsw_##_type##_##_cname##_##_iname##_set(char *buf, u32 val)\
^
<scratch space>:181:1: note: expanded from here
mlxsw_tx_hdr_rx_is_router_set
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:133:1: warning: unused function 'mlxsw_tx_hdr_fid_valid_get' [-Wunused-function]
MLXSW_ITEM32(tx, hdr, fid_valid, 0x00, 16, 1);
^
drivers/net/ethernet/mellanox/mlxsw/item.h:355:19: note: expanded from macro 'MLXSW_ITEM32'
static inline u32 mlxsw_##_type##_##_cname##_##_iname##_get(const char *buf) \
^
<scratch space>:202:1: note: expanded from here
mlxsw_tx_hdr_fid_valid_get
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:133:1: warning: unused function 'mlxsw_tx_hdr_fid_valid_set' [-Wunused-function]
drivers/net/ethernet/mellanox/mlxsw/item.h:359:20: note: expanded from macro 'MLXSW_ITEM32'
static inline void mlxsw_##_type##_##_cname##_##_iname##_set(char *buf, u32 val)\
^
<scratch space>:214:1: note: expanded from here
mlxsw_tx_hdr_fid_valid_set
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:138:1: warning: unused function 'mlxsw_tx_hdr_swid_get' [-Wunused-function]
MLXSW_ITEM32(tx, hdr, swid, 0x00, 12, 3);
^
drivers/net/ethernet/mellanox/mlxsw/item.h:355:19: note: expanded from macro 'MLXSW_ITEM32'
static inline u32 mlxsw_##_type##_##_cname##_##_iname##_get(const char *buf) \
^
<scratch space>:235:1: note: expanded from here
mlxsw_tx_hdr_swid_get
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:144:1: warning: unused function 'mlxsw_tx_hdr_control_tclass_get' [-Wunused-function]
MLXSW_ITEM32(tx, hdr, control_tclass, 0x00, 6, 1);
^
drivers/net/ethernet/mellanox/mlxsw/item.h:355:19: note: expanded from macro 'MLXSW_ITEM32'
static inline u32 mlxsw_##_type##_##_cname##_##_iname##_get(const char *buf) \
^
<scratch space>:29:1: note: expanded from here
mlxsw_tx_hdr_control_tclass_get
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:149:1: warning: unused function 'mlxsw_tx_hdr_etclass_get' [-Wunused-function]
MLXSW_ITEM32(tx, hdr, etclass, 0x00, 0, 4);
^
drivers/net/ethernet/mellanox/mlxsw/item.h:355:19: note: expanded from macro 'MLXSW_ITEM32'
static inline u32 mlxsw_##_type##_##_cname##_##_iname##_get(const char *buf) \
^
<scratch space>:62:1: note: expanded from here
mlxsw_tx_hdr_etclass_get
^
drivers/net/ethernet/mellanox/mlxsw/spectrum.c:149:1: warning: unused function 'mlxsw_tx_hdr_etclass_set' [-Wunused-function]
drivers/net/ethernet/mellanox/mlxsw/item.h:359:20: note: expanded from macro 'MLXSW_ITEM32'
static inline void mlxsw_##_type##_##_cname##_##_iname##_set(char *buf, u32 val)\
^
<scratch space>:74:1: note: expanded from here
vim +/mlxsw_sp_port +1467 drivers/net/ethernet/mellanox/mlxsw/spectrum.c
1444
1445 static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port,
1446 u8 split_base_local_port,
1447 struct mlxsw_sp_port_mapping *port_mapping)
1448 {
1449 struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan;
1450 bool split = !!split_base_local_port;
1451 struct mlxsw_sp_port *mlxsw_sp_port;
1452 u32 lanes = port_mapping->width;
1453 struct net_device *dev;
1454 bool splittable;
1455 int err;
1456
1457 err = mlxsw_sp_port_module_map(mlxsw_sp, local_port, port_mapping);
1458 if (err) {
1459 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to map module\n",
1460 local_port);
1461 return err;
1462 }
1463
1464 err = mlxsw_sp_port_swid_set(mlxsw_sp, local_port, 0);
1465 if (err) {
1466 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to set SWID\n",
> 1467 mlxsw_sp_port->local_port);
1468 goto err_port_swid_set;
1469 }
1470
1471 splittable = lanes > 1 && !split;
1472 err = mlxsw_core_port_init(mlxsw_sp->core, local_port,
1473 port_mapping->module + 1, split,
1474 port_mapping->lane / lanes,
1475 splittable, lanes,
1476 mlxsw_sp->base_mac,
1477 sizeof(mlxsw_sp->base_mac));
1478 if (err) {
1479 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to init core port\n",
1480 local_port);
1481 goto err_core_port_init;
1482 }
1483
1484 dev = alloc_etherdev(sizeof(struct mlxsw_sp_port));
1485 if (!dev) {
1486 err = -ENOMEM;
1487 goto err_alloc_etherdev;
1488 }
1489 SET_NETDEV_DEV(dev, mlxsw_sp->bus_info->dev);
1490 dev_net_set(dev, mlxsw_sp_net(mlxsw_sp));
1491 mlxsw_sp_port = netdev_priv(dev);
1492 mlxsw_sp_port->dev = dev;
1493 mlxsw_sp_port->mlxsw_sp = mlxsw_sp;
1494 mlxsw_sp_port->local_port = local_port;
1495 mlxsw_sp_port->pvid = MLXSW_SP_DEFAULT_VID;
1496 mlxsw_sp_port->split = split;
1497 mlxsw_sp_port->split_base_local_port = split_base_local_port;
1498 mlxsw_sp_port->mapping = *port_mapping;
1499 mlxsw_sp_port->link.autoneg = 1;
1500 INIT_LIST_HEAD(&mlxsw_sp_port->vlans_list);
1501
1502 mlxsw_sp_port->pcpu_stats =
1503 netdev_alloc_pcpu_stats(struct mlxsw_sp_port_pcpu_stats);
1504 if (!mlxsw_sp_port->pcpu_stats) {
1505 err = -ENOMEM;
1506 goto err_alloc_stats;
1507 }
1508
1509 INIT_DELAYED_WORK(&mlxsw_sp_port->periodic_hw_stats.update_dw,
1510 &update_stats_cache);
1511
1512 dev->netdev_ops = &mlxsw_sp_port_netdev_ops;
1513 dev->ethtool_ops = &mlxsw_sp_port_ethtool_ops;
1514
1515 err = mlxsw_sp_port_dev_addr_init(mlxsw_sp_port);
1516 if (err) {
1517 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Unable to init port mac address\n",
1518 mlxsw_sp_port->local_port);
1519 goto err_dev_addr_init;
1520 }
1521
1522 netif_carrier_off(dev);
1523
1524 dev->features |= NETIF_F_NETNS_LOCAL | NETIF_F_LLTX | NETIF_F_SG |
1525 NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_HW_TC;
1526 dev->hw_features |= NETIF_F_HW_TC | NETIF_F_LOOPBACK;
1527
1528 dev->min_mtu = 0;
1529 dev->max_mtu = ETH_MAX_MTU;
1530
1531 /* Each packet needs to have a Tx header (metadata) on top all other
1532 * headers.
1533 */
1534 dev->needed_headroom = MLXSW_TXHDR_LEN;
1535
1536 err = mlxsw_sp_port_system_port_mapping_set(mlxsw_sp_port);
1537 if (err) {
1538 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to set system port mapping\n",
1539 mlxsw_sp_port->local_port);
1540 goto err_port_system_port_mapping_set;
1541 }
1542
1543 err = mlxsw_sp_port_speed_by_width_set(mlxsw_sp_port);
1544 if (err) {
1545 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to enable speeds\n",
1546 mlxsw_sp_port->local_port);
1547 goto err_port_speed_by_width_set;
1548 }
1549
1550 err = mlxsw_sp->port_type_speed_ops->ptys_max_speed(mlxsw_sp_port,
1551 &mlxsw_sp_port->max_speed);
1552 if (err) {
1553 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to get maximum speed\n",
1554 mlxsw_sp_port->local_port);
1555 goto err_max_speed_get;
1556 }
1557
1558 err = mlxsw_sp_port_max_mtu_get(mlxsw_sp_port, &mlxsw_sp_port->max_mtu);
1559 if (err) {
1560 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to get maximum MTU\n",
1561 mlxsw_sp_port->local_port);
1562 goto err_port_max_mtu_get;
1563 }
1564
1565 err = mlxsw_sp_port_mtu_set(mlxsw_sp_port, ETH_DATA_LEN);
1566 if (err) {
1567 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to set MTU\n",
1568 mlxsw_sp_port->local_port);
1569 goto err_port_mtu_set;
1570 }
1571
1572 err = mlxsw_sp_port_admin_status_set(mlxsw_sp_port, false);
1573 if (err)
1574 goto err_port_admin_status_set;
1575
1576 err = mlxsw_sp_port_buffers_init(mlxsw_sp_port);
1577 if (err) {
1578 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to initialize buffers\n",
1579 mlxsw_sp_port->local_port);
1580 goto err_port_buffers_init;
1581 }
1582
1583 err = mlxsw_sp_port_ets_init(mlxsw_sp_port);
1584 if (err) {
1585 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to initialize ETS\n",
1586 mlxsw_sp_port->local_port);
1587 goto err_port_ets_init;
1588 }
1589
1590 err = mlxsw_sp_port_tc_mc_mode_set(mlxsw_sp_port, true);
1591 if (err) {
1592 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to initialize TC MC mode\n",
1593 mlxsw_sp_port->local_port);
1594 goto err_port_tc_mc_mode;
1595 }
1596
1597 /* ETS and buffers must be initialized before DCB. */
1598 err = mlxsw_sp_port_dcb_init(mlxsw_sp_port);
1599 if (err) {
1600 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to initialize DCB\n",
1601 mlxsw_sp_port->local_port);
1602 goto err_port_dcb_init;
1603 }
1604
1605 err = mlxsw_sp_port_fids_init(mlxsw_sp_port);
1606 if (err) {
1607 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to initialize FIDs\n",
1608 mlxsw_sp_port->local_port);
1609 goto err_port_fids_init;
1610 }
1611
1612 err = mlxsw_sp_tc_qdisc_init(mlxsw_sp_port);
1613 if (err) {
1614 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to initialize TC qdiscs\n",
1615 mlxsw_sp_port->local_port);
1616 goto err_port_qdiscs_init;
1617 }
1618
1619 err = mlxsw_sp_port_vlan_set(mlxsw_sp_port, 0, VLAN_N_VID - 1, false,
1620 false);
1621 if (err) {
1622 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to clear VLAN filter\n",
1623 mlxsw_sp_port->local_port);
1624 goto err_port_vlan_clear;
1625 }
1626
1627 err = mlxsw_sp_port_nve_init(mlxsw_sp_port);
1628 if (err) {
1629 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to initialize NVE\n",
1630 mlxsw_sp_port->local_port);
1631 goto err_port_nve_init;
1632 }
1633
1634 err = mlxsw_sp_port_pvid_set(mlxsw_sp_port, MLXSW_SP_DEFAULT_VID,
1635 ETH_P_8021Q);
1636 if (err) {
1637 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to set PVID\n",
1638 mlxsw_sp_port->local_port);
1639 goto err_port_pvid_set;
1640 }
1641
1642 mlxsw_sp_port_vlan = mlxsw_sp_port_vlan_create(mlxsw_sp_port,
1643 MLXSW_SP_DEFAULT_VID);
1644 if (IS_ERR(mlxsw_sp_port_vlan)) {
1645 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to create VID 1\n",
1646 mlxsw_sp_port->local_port);
1647 err = PTR_ERR(mlxsw_sp_port_vlan);
1648 goto err_port_vlan_create;
1649 }
1650 mlxsw_sp_port->default_vlan = mlxsw_sp_port_vlan;
1651
1652 /* Set SPVC.et0=true and SPVC.et1=false to make the local port to treat
1653 * only packets with 802.1q header as tagged packets.
1654 */
1655 err = mlxsw_sp_port_vlan_classification_set(mlxsw_sp_port, false, true);
1656 if (err) {
1657 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to set default VLAN classification\n",
1658 local_port);
1659 goto err_port_vlan_classification_set;
1660 }
1661
1662 INIT_DELAYED_WORK(&mlxsw_sp_port->ptp.shaper_dw,
1663 mlxsw_sp->ptp_ops->shaper_work);
1664
1665 mlxsw_sp->ports[local_port] = mlxsw_sp_port;
1666
1667 err = mlxsw_sp_port_overheat_init_val_set(mlxsw_sp_port);
1668 if (err) {
1669 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to set overheat initial value\n",
1670 mlxsw_sp_port->local_port);
1671 goto err_port_overheat_init_val_set;
1672 }
1673
1674 err = register_netdev(dev);
1675 if (err) {
1676 dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to register netdev\n",
1677 mlxsw_sp_port->local_port);
1678 goto err_register_netdev;
1679 }
1680
1681 mlxsw_core_port_eth_set(mlxsw_sp->core, mlxsw_sp_port->local_port,
1682 mlxsw_sp_port, dev);
1683 mlxsw_core_schedule_dw(&mlxsw_sp_port->periodic_hw_stats.update_dw, 0);
1684 return 0;
1685
1686 err_register_netdev:
1687 err_port_overheat_init_val_set:
1688 mlxsw_sp_port_vlan_classification_set(mlxsw_sp_port, true, true);
1689 err_port_vlan_classification_set:
1690 mlxsw_sp->ports[local_port] = NULL;
1691 mlxsw_sp_port_vlan_destroy(mlxsw_sp_port_vlan);
1692 err_port_vlan_create:
1693 err_port_pvid_set:
1694 mlxsw_sp_port_nve_fini(mlxsw_sp_port);
1695 err_port_nve_init:
1696 err_port_vlan_clear:
1697 mlxsw_sp_tc_qdisc_fini(mlxsw_sp_port);
1698 err_port_qdiscs_init:
1699 mlxsw_sp_port_fids_fini(mlxsw_sp_port);
1700 err_port_fids_init:
1701 mlxsw_sp_port_dcb_fini(mlxsw_sp_port);
1702 err_port_dcb_init:
1703 mlxsw_sp_port_tc_mc_mode_set(mlxsw_sp_port, false);
1704 err_port_tc_mc_mode:
1705 err_port_ets_init:
1706 mlxsw_sp_port_buffers_fini(mlxsw_sp_port);
1707 err_port_buffers_init:
1708 err_port_admin_status_set:
1709 err_port_mtu_set:
1710 err_port_max_mtu_get:
1711 err_max_speed_get:
1712 err_port_speed_by_width_set:
1713 err_port_system_port_mapping_set:
1714 err_dev_addr_init:
1715 free_percpu(mlxsw_sp_port->pcpu_stats);
1716 err_alloc_stats:
1717 free_netdev(dev);
1718 err_alloc_etherdev:
1719 mlxsw_core_port_fini(mlxsw_sp->core, local_port);
1720 err_core_port_init:
1721 mlxsw_sp_port_swid_set(mlxsw_sp, local_port,
1722 MLXSW_PORT_SWID_DISABLED_PORT);
1723 err_port_swid_set:
1724 mlxsw_sp_port_module_unmap(mlxsw_sp, local_port);
1725 return err;
1726 }
1727
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year