[drm-exynos:exynos-drm-next 1/3] drivers/gpu/drm/exynos/exynos_drm_dsi.c:1338:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is true
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git exynos-drm-next
head: ef1a179ae8eba0aeaac239a28ecdd0700412052a
commit: 84d977a69917c18c9e0a65ed16b43dc889fdd97c [1/3] drm/exynos: Replace legacy gpio interface for gpiod interface
config: riscv-randconfig-r006-20211122 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c133fb321f7ca6083ce15b6aa5bf89de6600e649)
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://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git/co...
git remote add drm-exynos https://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git
git fetch --no-tags drm-exynos exynos-drm-next
git checkout 84d977a69917c18c9e0a65ed16b43dc889fdd97c
# 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/exynos/exynos_drm_dsi.c:1338:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (IS_ERR(dsi->te_gpio)) {
^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dsi.c:1355:9: note: uninitialized use occurs here
return ret;
^~~
drivers/gpu/drm/exynos/exynos_drm_dsi.c:1338:2: note: remove the 'if' if its condition is always false
if (IS_ERR(dsi->te_gpio)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dsi.c:1334:9: note: initialize the variable 'ret' to silence this warning
int ret;
^
= 0
1 warning generated.
vim +1338 drivers/gpu/drm/exynos/exynos_drm_dsi.c
1330
1331 static int exynos_dsi_register_te_irq(struct exynos_dsi *dsi,
1332 struct device *panel)
1333 {
1334 int ret;
1335 int te_gpio_irq;
1336
1337 dsi->te_gpio = devm_gpiod_get_optional(dsi->dev, "te", GPIOD_IN);
> 1338 if (IS_ERR(dsi->te_gpio)) {
1339 dev_err(dsi->dev, "gpio request failed with %ld\n",
1340 PTR_ERR(dsi->te_gpio));
1341 goto out;
1342 }
1343
1344 te_gpio_irq = gpiod_to_irq(dsi->te_gpio);
1345
1346 ret = request_threaded_irq(te_gpio_irq, exynos_dsi_te_irq_handler, NULL,
1347 IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN, "TE", dsi);
1348 if (ret) {
1349 dev_err(dsi->dev, "request interrupt failed with %d\n", ret);
1350 gpiod_put(dsi->te_gpio);
1351 goto out;
1352 }
1353
1354 out:
1355 return ret;
1356 }
1357
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
[intel-lts:4.19/android_r 16666/25353] arch/mips/vdso/vgettimeofday.c:17:16: error: implicit declaration of function '__cvdso_clock_gettime32'; did you mean '__cvdso_clock_gettime'?
by kernel test robot
Hi Vincenzo,
FYI, the error/warning still remains.
tree: https://github.com/intel/linux-intel-lts.git 4.19/android_r
head: 8367d521b6ca9b77d18fbb56f936df6824f0843c
commit: 0854e59101a9219eb1607fb584dde8da4dea220e [16666/25353] UPSTREAM: lib/vdso: Build 32 bit specific functions in the right context
config: mips-buildonly-randconfig-r005-20211122 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 11.2.0
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
# https://github.com/intel/linux-intel-lts/commit/0854e59101a9219eb1607fb58...
git remote add intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 4.19/android_r
git checkout 0854e59101a9219eb1607fb584dde8da4dea220e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips
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 >>):
In file included from lib/vdso/gettimeofday.c:26,
from <command-line>:
arch/mips/include/asm/vdso/gettimeofday.h: In function 'clock_gettime_fallback':
arch/mips/include/asm/vdso/gettimeofday.h:59:38: error: '__NR_clock_gettime64' undeclared (first use in this function)
59 | register long nr asm("v0") = __NR_clock_gettime64;
| ^~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/vdso/gettimeofday.h:59:38: note: each undeclared identifier is reported only once for each function it appears in
arch/mips/include/asm/vdso/gettimeofday.h: In function 'clock_getres_fallback':
arch/mips/include/asm/vdso/gettimeofday.h:83:38: error: '__NR_clock_getres_time64' undeclared (first use in this function)
83 | register long nr asm("v0") = __NR_clock_getres_time64;
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/mips/vdso/vgettimeofday.c: At top level:
arch/mips/vdso/vgettimeofday.c:14:5: warning: no previous prototype for '__vdso_clock_gettime' [-Wmissing-prototypes]
14 | int __vdso_clock_gettime(clockid_t clock,
| ^~~~~~~~~~~~~~~~~~~~
arch/mips/vdso/vgettimeofday.c: In function '__vdso_clock_gettime':
>> arch/mips/vdso/vgettimeofday.c:17:16: error: implicit declaration of function '__cvdso_clock_gettime32'; did you mean '__cvdso_clock_gettime'? [-Werror=implicit-function-declaration]
17 | return __cvdso_clock_gettime32(clock, ts);
| ^~~~~~~~~~~~~~~~~~~~~~~
| __cvdso_clock_gettime
arch/mips/vdso/vgettimeofday.c: At top level:
arch/mips/vdso/vgettimeofday.c:28:5: warning: no previous prototype for '__vdso_gettimeofday' [-Wmissing-prototypes]
28 | int __vdso_gettimeofday(struct __kernel_old_timeval *tv,
| ^~~~~~~~~~~~~~~~~~~
arch/mips/vdso/vgettimeofday.c:36:5: warning: no previous prototype for '__vdso_clock_getres' [-Wmissing-prototypes]
36 | int __vdso_clock_getres(clockid_t clock_id,
| ^~~~~~~~~~~~~~~~~~~
arch/mips/vdso/vgettimeofday.c: In function '__vdso_clock_getres':
>> arch/mips/vdso/vgettimeofday.c:39:16: error: implicit declaration of function '__cvdso_clock_getres_time32'; did you mean '__cvdso_clock_getres_common'? [-Werror=implicit-function-declaration]
39 | return __cvdso_clock_getres_time32(clock_id, res);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| __cvdso_clock_getres_common
arch/mips/vdso/vgettimeofday.c: At top level:
arch/mips/vdso/vgettimeofday.c:42:5: warning: no previous prototype for '__vdso_clock_gettime64' [-Wmissing-prototypes]
42 | int __vdso_clock_gettime64(clockid_t clock,
| ^~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +17 arch/mips/vdso/vgettimeofday.c
6b7f832e465d88 Vincenzo Frascino 2019-06-21 12
6b7f832e465d88 Vincenzo Frascino 2019-06-21 13 #if _MIPS_SIM != _MIPS_SIM_ABI64
6b7f832e465d88 Vincenzo Frascino 2019-06-21 14 int __vdso_clock_gettime(clockid_t clock,
6b7f832e465d88 Vincenzo Frascino 2019-06-21 15 struct old_timespec32 *ts)
6b7f832e465d88 Vincenzo Frascino 2019-06-21 16 {
6b7f832e465d88 Vincenzo Frascino 2019-06-21 @17 return __cvdso_clock_gettime32(clock, ts);
6b7f832e465d88 Vincenzo Frascino 2019-06-21 18 }
6b7f832e465d88 Vincenzo Frascino 2019-06-21 19
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 20 #ifdef CONFIG_MIPS_CLOCK_VSYSCALL
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 21
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 22 /*
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 23 * This is behind the ifdef so that we don't provide the symbol when there's no
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 24 * possibility of there being a usable clocksource, because there's nothing we
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 25 * can do without it. When libc fails the symbol lookup it should fall back on
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 26 * the standard syscall path.
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 27 */
6b7f832e465d88 Vincenzo Frascino 2019-06-21 28 int __vdso_gettimeofday(struct __kernel_old_timeval *tv,
6b7f832e465d88 Vincenzo Frascino 2019-06-21 29 struct timezone *tz)
6b7f832e465d88 Vincenzo Frascino 2019-06-21 30 {
6b7f832e465d88 Vincenzo Frascino 2019-06-21 31 return __cvdso_gettimeofday(tv, tz);
6b7f832e465d88 Vincenzo Frascino 2019-06-21 32 }
6b7f832e465d88 Vincenzo Frascino 2019-06-21 33
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 34 #endif /* CONFIG_MIPS_CLOCK_VSYSCALL */
cf84512fe7aac9 Vincenzo Frascino 2019-11-29 35
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 36 int __vdso_clock_getres(clockid_t clock_id,
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 37 struct old_timespec32 *res)
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 38 {
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 @39 return __cvdso_clock_getres_time32(clock_id, res);
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 40 }
23dea1cf7ed384 Vincenzo Frascino 2019-06-21 41
:::::: The code at line 17 was first introduced by commit
:::::: 6b7f832e465d88fca5f3a07b85e664f962c88e0b BACKPORT: mips: Add support for generic vDSO
:::::: TO: Vincenzo Frascino <vincenzo.frascino(a)arm.com>
:::::: CC: Alistair Delva <adelva(a)google.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
Re: [PATCH v43 05/15] LRNG - CPU entropy source
by kernel test robot
Hi "Stephan,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on herbert-cryptodev-2.6/master herbert-crypto-2.6/master v5.16-rc2 next-20211118]
[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/Stephan-M-ller/dev-random-a-new-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git f4d77525679e289d4976ca03b620ac4cc5403205
config: alpha-allyesconfig (attached as .config)
compiler: alpha-linux-gcc (GCC) 11.2.0
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
# https://github.com/0day-ci/linux/commit/4db9c892c1827b896be5479eeb9cc4ac0...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Stephan-M-ller/dev-random-a-new-approach/20211122-005114
git checkout 4db9c892c1827b896be5479eeb9cc4ac0d0a87b5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=alpha
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/char/lrng/lrng_es_archrandom.c:81:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration]
81 | static u32 inline lrng_get_arch_data_compress(u8 *outbuf, u32 requested_bits,
| ^~~~~~
vim +/inline +81 drivers/char/lrng/lrng_es_archrandom.c
80
> 81 static u32 inline lrng_get_arch_data_compress(u8 *outbuf, u32 requested_bits,
82 u32 data_multiplier)
83 {
84 SHASH_DESC_ON_STACK(shash, NULL);
85 const struct lrng_crypto_cb *crypto_cb;
86 struct lrng_drng *drng = lrng_drng_init_instance();
87 unsigned long flags;
88 u32 ent_bits = 0, i, partial_bits = 0,
89 full_bits = requested_bits * data_multiplier;
90 void *hash;
91
92 /* Calculate oversampling for SP800-90C */
93 if (lrng_sp80090c_compliant()) {
94 /* Complete amount of bits to be pulled */
95 full_bits += CONFIG_LRNG_OVERSAMPLE_ES_BITS * data_multiplier;
96 /* Full blocks that will be pulled */
97 data_multiplier = full_bits / requested_bits;
98 /* Partial block in bits to be pulled */
99 partial_bits = full_bits - (data_multiplier * requested_bits);
100 }
101
102 lrng_hash_lock(drng, &flags);
103 crypto_cb = drng->crypto_cb;
104 hash = drng->hash;
105
106 if (crypto_cb->lrng_hash_init(shash, hash))
107 goto out;
108
109 /* Hash all data from the CPU entropy source */
110 for (i = 0; i < data_multiplier; i++) {
111 ent_bits = lrng_get_arch_data(outbuf, requested_bits);
112 if (!ent_bits)
113 goto out;
114
115 if (crypto_cb->lrng_hash_update(shash, outbuf, ent_bits >> 3))
116 goto err;
117 }
118
119 /* Hash partial block, if applicable */
120 ent_bits = lrng_get_arch_data(outbuf, partial_bits);
121 if (ent_bits &&
122 crypto_cb->lrng_hash_update(shash, outbuf, ent_bits >> 3))
123 goto err;
124
125 pr_debug("pulled %u bits from CPU RNG entropy source\n", full_bits);
126
127 /* Generate the compressed data to be returned to the caller */
128 ent_bits = crypto_cb->lrng_hash_digestsize(hash) << 3;
129 if (requested_bits < ent_bits) {
130 u8 digest[LRNG_MAX_DIGESTSIZE];
131
132 if (crypto_cb->lrng_hash_final(shash, digest))
133 goto err;
134
135 /* Truncate output data to requested size */
136 memcpy(outbuf, digest, requested_bits >> 3);
137 memzero_explicit(digest, crypto_cb->lrng_hash_digestsize(hash));
138 ent_bits = requested_bits;
139 } else {
140 if (crypto_cb->lrng_hash_final(shash, outbuf))
141 goto err;
142 }
143
144 out:
145 crypto_cb->lrng_hash_desc_zero(shash);
146 lrng_hash_unlock(drng, flags);
147 return ent_bits;
148
149 err:
150 ent_bits = 0;
151 goto out;
152 }
153
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
[ti:ti-rt-linux-5.10.y 4405/10206] drivers/pci/endpoint/pci-epf-core.c:169 pci_epf_add_vepf() warn: inconsistent returns '&epf_pf->lock'.
by Dan Carpenter
tree: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git ti-rt-linux-5.10.y
head: 0c67d996db8f3c9149598bc98657ae28fee22208
commit: 0cf43e35b1743dc43574089fcf3ff71d8cd2ae39 [4405/10206] PCI: endpoint: Add support to add virtual function in endpoint core
config: x86_64-randconfig-m001-20211116 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/pci/endpoint/pci-epf-core.c:169 pci_epf_add_vepf() warn: inconsistent returns '&epf_pf->lock'.
vim +169 drivers/pci/endpoint/pci-epf-core.c
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 141 int pci_epf_add_vepf(struct pci_epf *epf_pf, struct pci_epf *epf_vf)
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 142 {
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 143 u32 vfunc_no;
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 144
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 145 if (IS_ERR_OR_NULL(epf_pf) || IS_ERR_OR_NULL(epf_vf))
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 146 return -EINVAL;
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 147
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 148 if (epf_pf->epc || epf_vf->epc || epf_vf->epf_pf)
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 149 return -EBUSY;
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 150
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 151 if (epf_pf->sec_epc || epf_vf->sec_epc)
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 152 return -EBUSY;
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 153
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 154 mutex_lock(&epf_pf->lock);
^^^^^^^^^^^^^^^^^^^^^^^^
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 155 vfunc_no = find_first_zero_bit(&epf_pf->vfunction_num_map,
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 156 BITS_PER_LONG);
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 157 if (vfunc_no >= BITS_PER_LONG)
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 158 return -EINVAL;
Missing unlock on error path.
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 159
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 160 set_bit(vfunc_no, &epf_pf->vfunction_num_map);
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 161 epf_vf->vfunc_no = vfunc_no;
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 162
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 163 epf_vf->epf_pf = epf_pf;
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 164 epf_vf->is_vf = true;
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 165
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 166 list_add_tail(&epf_vf->list, &epf_pf->pci_vepf);
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 167 mutex_unlock(&epf_pf->lock);
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 168
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 @169 return 0;
0cf43e35b1743d Kishon Vijay Abraham I 2021-03-30 170 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
drivers/net/wireless/intel/iwlwifi/pcie/drv.c:1353 iwl_pci_probe() warn: missing error code 'ret'
by Dan Carpenter
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 923dcc5eb0c111eccd51cc7ce1658537e3c38b25
commit: 2fd8aaaeb87441e2577e8e55373e9b3b221dc4b0 iwlwifi: pcie: try to grab NIC access early
config: mips-randconfig-m031-20211104 (attached as .config)
compiler: mips-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
drivers/net/wireless/intel/iwlwifi/pcie/drv.c:1353 iwl_pci_probe() warn: missing error code 'ret'
vim +/ret +1353 drivers/net/wireless/intel/iwlwifi/pcie/drv.c
48d1a2110ad9cb drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2011-05-24 1297 static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
48d1a2110ad9cb drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2011-05-24 1298 {
48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1299 const struct iwl_cfg_trans_params *trans;
3fd0d3c170ad6b drivers/net/wireless/iwlwifi/pcie/drv.c Johannes Berg 2014-11-18 1300 const struct iwl_cfg *cfg_7265d __maybe_unused = NULL;
36a79223c4b998 drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2012-02-27 1301 struct iwl_trans *iwl_trans;
c042f0c77f3df3 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2019-09-27 1302 struct iwl_trans_pcie *trans_pcie;
2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1303 int i, ret;
48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1304 const struct iwl_cfg *cfg;
48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1305
48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1306 trans = (void *)(ent->driver_data & ~TRANS_CFG_MARKER);
48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1307
b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1308 /*
b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1309 * This is needed for backwards compatibility with the old
b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1310 * tables, so we don't need to change all the config structs
b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1311 * at the same time. The cfg is used to compare with the old
b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1312 * full cfg structs.
b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1313 */
48a5494d6a4cb5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-03-30 1314 cfg = (void *)(ent->driver_data & ~TRANS_CFG_MARKER);
a48709c5d076aa drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2011-05-31 1315
b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1316 /* make sure trans is the first element in iwl_cfg */
b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1317 BUILD_BUG_ON(offsetof(struct iwl_cfg, trans));
a48709c5d076aa drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2011-05-31 1318
b3bd6416fc77b5 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1319 iwl_trans = iwl_trans_pcie_alloc(pdev, ent, trans);
6965a3540a4b45 drivers/net/wireless/iwlwifi/pcie/drv.c Luciano Coelho 2013-08-10 1320 if (IS_ERR(iwl_trans))
6965a3540a4b45 drivers/net/wireless/iwlwifi/pcie/drv.c Luciano Coelho 2013-08-10 1321 return PTR_ERR(iwl_trans);
b52e7ea109cfe4 drivers/net/wireless/iwlwifi/iwl-pci.c Emmanuel Grumbach 2012-02-02 1322
c042f0c77f3df3 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2019-09-27 1323 trans_pcie = IWL_TRANS_GET_PCIE_TRANS(iwl_trans);
c042f0c77f3df3 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2019-09-27 1324
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1325 /*
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1326 * Let's try to grab NIC access early here. Sometimes, NICs may
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1327 * fail to initialize, and if that happens it's better if we see
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1328 * issues early on (and can reprobe, per the logic inside), than
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1329 * first trying to load the firmware etc. and potentially only
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1330 * detecting any problems when the first interface is brought up.
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1331 */
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1332 ret = iwl_finish_nic_init(iwl_trans);
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1333 if (ret)
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1334 goto out_free_trans;
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1335 if (iwl_trans_grab_nic_access(iwl_trans)) {
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1336 /* all good */
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1337 iwl_trans_release_nic_access(iwl_trans);
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1338 } else {
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1339 ret = -EIO;
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1340 goto out_free_trans;
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1341 }
2fd8aaaeb87441 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Johannes Berg 2021-10-17 1342
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1343 iwl_trans->hw_rf_id = iwl_read32(iwl_trans, CSR_HW_RF_ID);
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1344
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1345 /*
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1346 * The RF_ID is set to zero in blank OTP so read version to
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1347 * extract the RF_ID.
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1348 * This is relevant only for family 9000 and up.
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1349 */
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1350 if (iwl_trans->trans_cfg->rf_id &&
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1351 iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_9000 &&
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1352 !CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id) && get_crf_id(iwl_trans))
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 @1353 goto out_free_trans;
Should this be an error? If not the way to express this clearly and
silence the false positive is to set the error code explicitly:
if (iwl_trans->trans_cfg->rf_id &&
iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_9000 &&
!CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id) && get_crf_id(iwl_trans)) {
ret = 0;
goto out_free_trans;
}
1f171f4f1437f7 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-08-26 1354
2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1355 for (i = 0; i < ARRAY_SIZE(iwl_dev_info_table); i++) {
2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1356 const struct iwl_dev_info *dev_info = &iwl_dev_info_table[i];
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1357 if ((dev_info->device == (u16)IWL_CFG_ANY ||
2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1358 dev_info->device == pdev->device) &&
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1359 (dev_info->subdevice == (u16)IWL_CFG_ANY ||
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1360 dev_info->subdevice == pdev->subsystem_device) &&
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1361 (dev_info->mac_type == (u16)IWL_CFG_ANY ||
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1362 dev_info->mac_type ==
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1363 CSR_HW_REV_TYPE(iwl_trans->hw_rev)) &&
be2f6886a34eb1 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-11-04 1364 (dev_info->mac_step == (u8)IWL_CFG_ANY ||
be2f6886a34eb1 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-11-04 1365 dev_info->mac_step ==
be2f6886a34eb1 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-11-04 1366 CSR_HW_REV_STEP(iwl_trans->hw_rev)) &&
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1367 (dev_info->rf_type == (u16)IWL_CFG_ANY ||
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1368 dev_info->rf_type ==
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1369 CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id)) &&
b964bfd048d3ab drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-02-10 1370 (dev_info->cdb == IWL_CFG_NO_CDB ||
b964bfd048d3ab drivers/net/wireless/intel/iwlwifi/pcie/drv.c Matti Gottlieb 2021-02-10 1371 CSR_HW_RFID_IS_CDB(iwl_trans->hw_rf_id)) &&
f673a193d56ea0 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1372 (dev_info->rf_id == (u8)IWL_CFG_ANY ||
f673a193d56ea0 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1373 dev_info->rf_id ==
f673a193d56ea0 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1374 IWL_SUBDEVICE_RF_ID(pdev->subsystem_device)) &&
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1375 (dev_info->no_160 == (u8)IWL_CFG_ANY ||
d6f2134a383168 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1376 dev_info->no_160 ==
95939551e28c9b drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1377 IWL_SUBDEVICE_NO_160(pdev->subsystem_device)) &&
95939551e28c9b drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1378 (dev_info->cores == (u8)IWL_CFG_ANY ||
95939551e28c9b drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1379 dev_info->cores ==
95939551e28c9b drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2020-03-09 1380 IWL_SUBDEVICE_CORES(pdev->subsystem_device))) {
2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1381 iwl_trans->cfg = dev_info->cfg;
0b295a1eb81f37 drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1382 iwl_trans->name = dev_info->name;
2a612a60ab440e drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-10-10 1383 }
7d34a7d7da97bc drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-07-12 1384 }
7d34a7d7da97bc drivers/net/wireless/intel/iwlwifi/pcie/drv.c Luca Coelho 2019-07-12 1385
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
drivers/net/wireless/marvell/mwifiex/cfg80211.c:1307 mwifiex_cfg80211_change_virtual_intf() warn: ignoring unreachable code.
by Dan Carpenter
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 923dcc5eb0c111eccd51cc7ce1658537e3c38b25
commit: abe3a2c9ead8fd95db141ea1df8d96c48cad3893 mwifiex: Use function to check whether interface type change is allowed
config: mips-randconfig-m031-20211104 (attached as .config)
compiler: mips-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/net/wireless/marvell/mwifiex/cfg80211.c:1307 mwifiex_cfg80211_change_virtual_intf() warn: ignoring unreachable code.
vim +1307 drivers/net/wireless/marvell/mwifiex/cfg80211.c
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1176 static int
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1177 mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy,
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1178 struct net_device *dev,
818a986e4ebace drivers/net/wireless/marvell/mwifiex/cfg80211.c Johannes Berg 2017-04-12 1179 enum nl80211_iftype type,
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1180 struct vif_params *params)
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1181 {
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1182 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1183 enum nl80211_iftype curr_iftype = dev->ieee80211_ptr->iftype;
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1184
c61cfe49f0f0f0 drivers/net/wireless/marvell/mwifiex/cfg80211.c Limin Zhu 2017-11-30 1185 if (priv->scan_request) {
c61cfe49f0f0f0 drivers/net/wireless/marvell/mwifiex/cfg80211.c Limin Zhu 2017-11-30 1186 mwifiex_dbg(priv->adapter, ERROR,
c61cfe49f0f0f0 drivers/net/wireless/marvell/mwifiex/cfg80211.c Limin Zhu 2017-11-30 1187 "change virtual interface: scan in process\n");
c61cfe49f0f0f0 drivers/net/wireless/marvell/mwifiex/cfg80211.c Limin Zhu 2017-11-30 1188 return -EBUSY;
c61cfe49f0f0f0 drivers/net/wireless/marvell/mwifiex/cfg80211.c Limin Zhu 2017-11-30 1189 }
c61cfe49f0f0f0 drivers/net/wireless/marvell/mwifiex/cfg80211.c Limin Zhu 2017-11-30 1190
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1191 if (type == NL80211_IFTYPE_UNSPECIFIED) {
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1192 mwifiex_dbg(priv->adapter, INFO,
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1193 "%s: no new type specified, keeping old type %d\n",
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1194 dev->name, curr_iftype);
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1195 return 0;
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1196 }
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1197
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1198 if (curr_iftype == type) {
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1199 mwifiex_dbg(priv->adapter, INFO,
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1200 "%s: interface already is of type %d\n",
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1201 dev->name, curr_iftype);
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1202 return 0;
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1203 }
babe2a332dc40b drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1204
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1205 if (!is_vif_type_change_allowed(priv->adapter, curr_iftype, type)) {
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1206 mwifiex_dbg(priv->adapter, ERROR,
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1207 "%s: change from type %d to %d is not allowed\n",
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1208 dev->name, curr_iftype, type);
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1209 return -EOPNOTSUPP;
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1210 }
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1211
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1212 switch (curr_iftype) {
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1213 case NL80211_IFTYPE_ADHOC:
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1214 switch (type) {
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1215 case NL80211_IFTYPE_STATION:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1216 priv->bss_mode = type;
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1217 priv->sec_info.authentication_mode =
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1218 NL80211_AUTHTYPE_OPEN_SYSTEM;
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1219 dev->ieee80211_ptr->iftype = type;
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1220 mwifiex_deauthenticate(priv, NULL);
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1221 return mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE,
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1222 HostCmd_ACT_GEN_SET, 0, NULL,
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1223 true);
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1224 case NL80211_IFTYPE_P2P_CLIENT:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1225 case NL80211_IFTYPE_P2P_GO:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1226 return mwifiex_change_vif_to_p2p(dev, curr_iftype,
818a986e4ebace drivers/net/wireless/marvell/mwifiex/cfg80211.c Johannes Berg 2017-04-12 1227 type, params);
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1228 case NL80211_IFTYPE_AP:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1229 return mwifiex_change_vif_to_ap(dev, curr_iftype, type,
818a986e4ebace drivers/net/wireless/marvell/mwifiex/cfg80211.c Johannes Berg 2017-04-12 1230 params);
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1231 default:
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1232 goto errnotsupp;
eecd8250e492ff drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-28 1233 }
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1234
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1235 case NL80211_IFTYPE_STATION:
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1236 switch (type) {
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1237 case NL80211_IFTYPE_ADHOC:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1238 priv->bss_mode = type;
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1239 priv->sec_info.authentication_mode =
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1240 NL80211_AUTHTYPE_OPEN_SYSTEM;
e1a2b7a394ad8c drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1241 dev->ieee80211_ptr->iftype = type;
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1242 mwifiex_deauthenticate(priv, NULL);
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1243 return mwifiex_send_cmd(priv, HostCmd_CMD_SET_BSS_MODE,
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1244 HostCmd_ACT_GEN_SET, 0, NULL,
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1245 true);
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1246 case NL80211_IFTYPE_P2P_CLIENT:
9197ab9e5f3016 drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1247 case NL80211_IFTYPE_P2P_GO:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1248 return mwifiex_change_vif_to_p2p(dev, curr_iftype,
818a986e4ebace drivers/net/wireless/marvell/mwifiex/cfg80211.c Johannes Berg 2017-04-12 1249 type, params);
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1250 case NL80211_IFTYPE_AP:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1251 return mwifiex_change_vif_to_ap(dev, curr_iftype, type,
818a986e4ebace drivers/net/wireless/marvell/mwifiex/cfg80211.c Johannes Berg 2017-04-12 1252 params);
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1253 default:
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1254 goto errnotsupp;
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1255 }
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1256
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1257 case NL80211_IFTYPE_AP:
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1258 switch (type) {
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1259 case NL80211_IFTYPE_ADHOC:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1260 return mwifiex_change_vif_to_sta_adhoc(dev, curr_iftype,
818a986e4ebace drivers/net/wireless/marvell/mwifiex/cfg80211.c Johannes Berg 2017-04-12 1261 type, params);
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1262 break;
Return followed by break.
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1263 case NL80211_IFTYPE_P2P_CLIENT:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1264 case NL80211_IFTYPE_P2P_GO:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1265 return mwifiex_change_vif_to_p2p(dev, curr_iftype,
818a986e4ebace drivers/net/wireless/marvell/mwifiex/cfg80211.c Johannes Berg 2017-04-12 1266 type, params);
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1267 default:
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1268 goto errnotsupp;
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1269 }
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1270
e1a2b7a394ad8c drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1271 case NL80211_IFTYPE_P2P_CLIENT:
9197ab9e5f3016 drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1272 case NL80211_IFTYPE_P2P_GO:
e1a2b7a394ad8c drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1273 switch (type) {
e1a2b7a394ad8c drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1274 case NL80211_IFTYPE_STATION:
e79801ffe9c862 drivers/net/wireless/mwifiex/cfg80211.c Aniket Nagarnaik 2015-07-16 1275 if (mwifiex_cfg80211_deinit_p2p(priv))
e1a2b7a394ad8c drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1276 return -EFAULT;
e79801ffe9c862 drivers/net/wireless/mwifiex/cfg80211.c Aniket Nagarnaik 2015-07-16 1277 priv->adapter->curr_iface_comb.p2p_intf--;
e79801ffe9c862 drivers/net/wireless/mwifiex/cfg80211.c Aniket Nagarnaik 2015-07-16 1278 priv->adapter->curr_iface_comb.sta_intf++;
e1a2b7a394ad8c drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1279 dev->ieee80211_ptr->iftype = type;
3d8bd85c2c9e47 drivers/net/wireless/marvell/mwifiex/cfg80211.c Karthik D A 2016-09-28 1280 if (mwifiex_deinit_priv_params(priv))
3d8bd85c2c9e47 drivers/net/wireless/marvell/mwifiex/cfg80211.c Karthik D A 2016-09-28 1281 return -1;
3d8bd85c2c9e47 drivers/net/wireless/marvell/mwifiex/cfg80211.c Karthik D A 2016-09-28 1282 if (mwifiex_init_new_priv_params(priv, dev, type))
3d8bd85c2c9e47 drivers/net/wireless/marvell/mwifiex/cfg80211.c Karthik D A 2016-09-28 1283 return -1;
3d8bd85c2c9e47 drivers/net/wireless/marvell/mwifiex/cfg80211.c Karthik D A 2016-09-28 1284 if (mwifiex_sta_init_cmd(priv, false, false))
3d8bd85c2c9e47 drivers/net/wireless/marvell/mwifiex/cfg80211.c Karthik D A 2016-09-28 1285 return -1;
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1286 break;
This break statement will break to the outside switch statement, fall
through to the default case statment, and goto errnotsupp. But probably
the intention was to "return 0;".
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1287 case NL80211_IFTYPE_ADHOC:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1288 if (mwifiex_cfg80211_deinit_p2p(priv))
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1289 return -EFAULT;
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1290 return mwifiex_change_vif_to_sta_adhoc(dev, curr_iftype,
818a986e4ebace drivers/net/wireless/marvell/mwifiex/cfg80211.c Johannes Berg 2017-04-12 1291 type, params);
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1292 break;
Return followed by break statement.
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1293 case NL80211_IFTYPE_AP:
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1294 if (mwifiex_cfg80211_deinit_p2p(priv))
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1295 return -EFAULT;
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 1296 return mwifiex_change_vif_to_ap(dev, curr_iftype, type,
818a986e4ebace drivers/net/wireless/marvell/mwifiex/cfg80211.c Johannes Berg 2017-04-12 1297 params);
e1a2b7a394ad8c drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1298 default:
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1299 goto errnotsupp;
e1a2b7a394ad8c drivers/net/wireless/mwifiex/cfg80211.c Stone Piao 2012-09-25 1300 }
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1301
4f02341ac27f70 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2012-05-08 1302 default:
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1303 goto errnotsupp;
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1304 }
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1305
eecd8250e492ff drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-28 1306
047eaaf64503c2 drivers/net/wireless/mwifiex/cfg80211.c Avinash Patil 2015-01-28 @1307 return 0;
Unreachable.
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1308
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1309 errnotsupp:
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1310 mwifiex_dbg(priv->adapter, ERROR,
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1311 "unsupported interface type transition: %d to %d\n",
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1312 curr_iftype, type);
abe3a2c9ead8fd drivers/net/wireless/marvell/mwifiex/cfg80211.c Jonas Dreßler 2021-09-14 1313 return -EOPNOTSUPP;
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1314 }
5e6e3a92b9a4c9 drivers/net/wireless/mwifiex/cfg80211.c Bing Zhao 2011-03-21 1315
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
Re: [PATCH v6 2/2] bluetooth: Add MGMT Adv Monitor Device Found/Lost events
by kernel test robot
Hi Manish,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on bluetooth-next/master]
[also build test WARNING on next-20211118]
[cannot apply to bluetooth/master v5.16-rc2]
[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/Manish-Mandlik/bluetooth-Handle-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git master
config: hexagon-randconfig-r005-20211122 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c133fb321f7ca6083ce15b6aa5bf89de6600e649)
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
# https://github.com/0day-ci/linux/commit/b61f97a7820d3965cf6e5bbf719449c66...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Manish-Mandlik/bluetooth-Handle-MSFT-Monitor-Device-Event/20211122-031347
git checkout b61f97a7820d3965cf6e5bbf719449c667bf1925
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon
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 >>):
>> net/bluetooth/mgmt.c:9601:6: warning: stack frame size (1120) exceeds limit (1024) in 'mgmt_device_found' [-Wframe-larger-than]
void mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
^
1 warning generated.
vim +/mgmt_device_found +9601 net/bluetooth/mgmt.c
b61f97a7820d39 Manish Mandlik 2021-11-21 9600
48f86b7f267335 Jakub Pawlowski 2015-03-04 @9601 void mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
48f86b7f267335 Jakub Pawlowski 2015-03-04 9602 u8 addr_type, u8 *dev_class, s8 rssi, u32 flags,
48f86b7f267335 Jakub Pawlowski 2015-03-04 9603 u8 *eir, u16 eir_len, u8 *scan_rsp, u8 scan_rsp_len)
48f86b7f267335 Jakub Pawlowski 2015-03-04 9604 {
48f86b7f267335 Jakub Pawlowski 2015-03-04 9605 char buf[512];
48f86b7f267335 Jakub Pawlowski 2015-03-04 9606 struct mgmt_ev_device_found *ev = (void *)buf;
48f86b7f267335 Jakub Pawlowski 2015-03-04 9607 size_t ev_size;
48f86b7f267335 Jakub Pawlowski 2015-03-04 9608
48f86b7f267335 Jakub Pawlowski 2015-03-04 9609 /* Don't send events for a non-kernel initiated discovery. With
48f86b7f267335 Jakub Pawlowski 2015-03-04 9610 * LE one exception is if we have pend_le_reports > 0 in which
48f86b7f267335 Jakub Pawlowski 2015-03-04 9611 * case we're doing passive scanning and want these events.
48f86b7f267335 Jakub Pawlowski 2015-03-04 9612 */
48f86b7f267335 Jakub Pawlowski 2015-03-04 9613 if (!hci_discovery_active(hdev)) {
48f86b7f267335 Jakub Pawlowski 2015-03-04 9614 if (link_type == ACL_LINK)
48f86b7f267335 Jakub Pawlowski 2015-03-04 9615 return;
8208f5a9d435e5 Miao-chen Chou 2020-06-17 9616 if (link_type == LE_LINK &&
8208f5a9d435e5 Miao-chen Chou 2020-06-17 9617 list_empty(&hdev->pend_le_reports) &&
8208f5a9d435e5 Miao-chen Chou 2020-06-17 9618 !hci_is_adv_monitoring(hdev)) {
48f86b7f267335 Jakub Pawlowski 2015-03-04 9619 return;
48f86b7f267335 Jakub Pawlowski 2015-03-04 9620 }
8208f5a9d435e5 Miao-chen Chou 2020-06-17 9621 }
48f86b7f267335 Jakub Pawlowski 2015-03-04 9622
82f8b651a94d5c Jakub Pawlowski 2015-03-04 9623 if (hdev->discovery.result_filtering) {
48f86b7f267335 Jakub Pawlowski 2015-03-04 9624 /* We are using service discovery */
48f86b7f267335 Jakub Pawlowski 2015-03-04 9625 if (!is_filter_match(hdev, rssi, eir, eir_len, scan_rsp,
48f86b7f267335 Jakub Pawlowski 2015-03-04 9626 scan_rsp_len))
48f86b7f267335 Jakub Pawlowski 2015-03-04 9627 return;
48f86b7f267335 Jakub Pawlowski 2015-03-04 9628 }
48f86b7f267335 Jakub Pawlowski 2015-03-04 9629
78b781ca0d3519 Johan Hedberg 2016-01-05 9630 if (hdev->discovery.limited) {
78b781ca0d3519 Johan Hedberg 2016-01-05 9631 /* Check for limited discoverable bit */
78b781ca0d3519 Johan Hedberg 2016-01-05 9632 if (dev_class) {
78b781ca0d3519 Johan Hedberg 2016-01-05 9633 if (!(dev_class[1] & 0x20))
78b781ca0d3519 Johan Hedberg 2016-01-05 9634 return;
78b781ca0d3519 Johan Hedberg 2016-01-05 9635 } else {
78b781ca0d3519 Johan Hedberg 2016-01-05 9636 u8 *flags = eir_get_data(eir, eir_len, EIR_FLAGS, NULL);
78b781ca0d3519 Johan Hedberg 2016-01-05 9637 if (!flags || !(flags[0] & LE_AD_LIMITED))
78b781ca0d3519 Johan Hedberg 2016-01-05 9638 return;
78b781ca0d3519 Johan Hedberg 2016-01-05 9639 }
78b781ca0d3519 Johan Hedberg 2016-01-05 9640 }
78b781ca0d3519 Johan Hedberg 2016-01-05 9641
48f86b7f267335 Jakub Pawlowski 2015-03-04 9642 /* Make sure that the buffer is big enough. The 5 extra bytes
48f86b7f267335 Jakub Pawlowski 2015-03-04 9643 * are for the potential CoD field.
48f86b7f267335 Jakub Pawlowski 2015-03-04 9644 */
48f86b7f267335 Jakub Pawlowski 2015-03-04 9645 if (sizeof(*ev) + eir_len + scan_rsp_len + 5 > sizeof(buf))
4b0e0ceddf085a Jakub Pawlowski 2015-02-01 9646 return;
4b0e0ceddf085a Jakub Pawlowski 2015-02-01 9647
48f86b7f267335 Jakub Pawlowski 2015-03-04 9648 memset(buf, 0, sizeof(buf));
48f86b7f267335 Jakub Pawlowski 2015-03-04 9649
48f86b7f267335 Jakub Pawlowski 2015-03-04 9650 /* In case of device discovery with BR/EDR devices (pre 1.2), the
48f86b7f267335 Jakub Pawlowski 2015-03-04 9651 * RSSI value was reported as 0 when not available. This behavior
48f86b7f267335 Jakub Pawlowski 2015-03-04 9652 * is kept when using device discovery. This is required for full
48f86b7f267335 Jakub Pawlowski 2015-03-04 9653 * backwards compatibility with the API.
48f86b7f267335 Jakub Pawlowski 2015-03-04 9654 *
48f86b7f267335 Jakub Pawlowski 2015-03-04 9655 * However when using service discovery, the value 127 will be
48f86b7f267335 Jakub Pawlowski 2015-03-04 9656 * returned when the RSSI is not available.
48f86b7f267335 Jakub Pawlowski 2015-03-04 9657 */
48f86b7f267335 Jakub Pawlowski 2015-03-04 9658 if (rssi == HCI_RSSI_INVALID && !hdev->discovery.report_invalid_rssi &&
48f86b7f267335 Jakub Pawlowski 2015-03-04 9659 link_type == ACL_LINK)
48f86b7f267335 Jakub Pawlowski 2015-03-04 9660 rssi = 0;
48f86b7f267335 Jakub Pawlowski 2015-03-04 9661
48f86b7f267335 Jakub Pawlowski 2015-03-04 9662 bacpy(&ev->addr.bdaddr, bdaddr);
48f86b7f267335 Jakub Pawlowski 2015-03-04 9663 ev->addr.type = link_to_bdaddr(link_type, addr_type);
48f86b7f267335 Jakub Pawlowski 2015-03-04 9664 ev->rssi = rssi;
48f86b7f267335 Jakub Pawlowski 2015-03-04 9665 ev->flags = cpu_to_le32(flags);
48f86b7f267335 Jakub Pawlowski 2015-03-04 9666
48f86b7f267335 Jakub Pawlowski 2015-03-04 9667 if (eir_len > 0)
48f86b7f267335 Jakub Pawlowski 2015-03-04 9668 /* Copy EIR or advertising data into event */
48f86b7f267335 Jakub Pawlowski 2015-03-04 9669 memcpy(ev->eir, eir, eir_len);
48f86b7f267335 Jakub Pawlowski 2015-03-04 9670
0d3b7f64c84d53 Johan Hedberg 2016-01-05 9671 if (dev_class && !eir_get_data(ev->eir, eir_len, EIR_CLASS_OF_DEV,
0d3b7f64c84d53 Johan Hedberg 2016-01-05 9672 NULL))
48f86b7f267335 Jakub Pawlowski 2015-03-04 9673 eir_len = eir_append_data(ev->eir, eir_len, EIR_CLASS_OF_DEV,
48f86b7f267335 Jakub Pawlowski 2015-03-04 9674 dev_class, 3);
48f86b7f267335 Jakub Pawlowski 2015-03-04 9675
48f86b7f267335 Jakub Pawlowski 2015-03-04 9676 if (scan_rsp_len > 0)
48f86b7f267335 Jakub Pawlowski 2015-03-04 9677 /* Append scan response data to event */
48f86b7f267335 Jakub Pawlowski 2015-03-04 9678 memcpy(ev->eir + eir_len, scan_rsp, scan_rsp_len);
48f86b7f267335 Jakub Pawlowski 2015-03-04 9679
5d2e9fadf43e87 Johan Hedberg 2014-03-25 9680 ev->eir_len = cpu_to_le16(eir_len + scan_rsp_len);
5d2e9fadf43e87 Johan Hedberg 2014-03-25 9681 ev_size = sizeof(*ev) + eir_len + scan_rsp_len;
f8523598ee608a Andre Guedes 2011-09-09 9682
b61f97a7820d39 Manish Mandlik 2021-11-21 9683 /* We have received the Advertisement Report because:
b61f97a7820d39 Manish Mandlik 2021-11-21 9684 * 1. the kernel has initiated active discovery
b61f97a7820d39 Manish Mandlik 2021-11-21 9685 * 2. if not, we have pend_le_reports > 0 in which case we are doing
b61f97a7820d39 Manish Mandlik 2021-11-21 9686 * passive scanning
b61f97a7820d39 Manish Mandlik 2021-11-21 9687 * 3. if none of the above is true, we have one or more active
b61f97a7820d39 Manish Mandlik 2021-11-21 9688 * Advertisement Monitor
b61f97a7820d39 Manish Mandlik 2021-11-21 9689 *
b61f97a7820d39 Manish Mandlik 2021-11-21 9690 * For case 1 and 2, report all advertisements via MGMT_EV_DEVICE_FOUND
b61f97a7820d39 Manish Mandlik 2021-11-21 9691 * and report ONLY one advertisement per device for the matched Monitor
b61f97a7820d39 Manish Mandlik 2021-11-21 9692 * via MGMT_EV_ADV_MONITOR_DEVICE_FOUND event.
b61f97a7820d39 Manish Mandlik 2021-11-21 9693 *
b61f97a7820d39 Manish Mandlik 2021-11-21 9694 * For case 3, since we are not active scanning and all advertisements
b61f97a7820d39 Manish Mandlik 2021-11-21 9695 * received are due to a matched Advertisement Monitor, report all
b61f97a7820d39 Manish Mandlik 2021-11-21 9696 * advertisements ONLY via MGMT_EV_ADV_MONITOR_DEVICE_FOUND event.
b61f97a7820d39 Manish Mandlik 2021-11-21 9697 */
b61f97a7820d39 Manish Mandlik 2021-11-21 9698
b61f97a7820d39 Manish Mandlik 2021-11-21 9699 if (hci_discovery_active(hdev) ||
b61f97a7820d39 Manish Mandlik 2021-11-21 9700 (link_type == LE_LINK && !list_empty(&hdev->pend_le_reports))) {
901801b9a420e5 Marcel Holtmann 2013-10-06 9701 mgmt_event(MGMT_EV_DEVICE_FOUND, hdev, ev, ev_size, NULL);
b61f97a7820d39 Manish Mandlik 2021-11-21 9702
b61f97a7820d39 Manish Mandlik 2021-11-21 9703 if (hdev->advmon_pend_notify)
b61f97a7820d39 Manish Mandlik 2021-11-21 9704 mgmt_adv_monitor_device_found(hdev, ev, ev_size, true);
b61f97a7820d39 Manish Mandlik 2021-11-21 9705 } else {
b61f97a7820d39 Manish Mandlik 2021-11-21 9706 mgmt_adv_monitor_device_found(hdev, ev, ev_size, false);
b61f97a7820d39 Manish Mandlik 2021-11-21 9707 }
e17acd40f6006d Johan Hedberg 2011-03-30 9708 }
a88a9652d25a63 Johan Hedberg 2011-03-30 9709
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months
[smfrench-smb3:for-next 14/18] fs/cifs/smb2pdu.c:341 smb2_reconnect() error: uninitialized symbol 'rc'.
by Dan Carpenter
tree: git://github.com/smfrench/smb3-kernel.git for-next
head: 28711a66701e3aefc5748dcde38dba1e2e79de34
commit: a6649da5f02a578a9a4b1fccf3402cc9cf378ede [14/18] cifs: avoid race during socket reconnect between send and recv
config: x86_64-randconfig-m001-20211119 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
fs/cifs/smb2pdu.c:341 smb2_reconnect() error: uninitialized symbol 'rc'.
vim +/rc +341 fs/cifs/smb2pdu.c
ec2e4523fdba88 Pavel Shilovsky 2011-12-27 141 static int
352d96f3acc6e0 Aurelien Aptel 2020-05-31 142 smb2_reconnect(__le16 smb2_command, struct cifs_tcon *tcon,
352d96f3acc6e0 Aurelien Aptel 2020-05-31 143 struct TCP_Server_Info *server)
ec2e4523fdba88 Pavel Shilovsky 2011-12-27 144 {
7ffbe65578b44f Paulo Alcantara 2018-07-05 145 int rc;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 146 struct nls_table *nls_codepage;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 147 struct cifs_ses *ses;
a3a53b7603798f Paulo Alcantara 2018-11-14 148 int retries;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 149
aa24d1e9692411 Pavel Shilovsky 2011-12-27 150 /*
aa24d1e9692411 Pavel Shilovsky 2011-12-27 151 * SMB2s NegProt, SessSetup, Logoff do not have tcon yet so
aa24d1e9692411 Pavel Shilovsky 2011-12-27 152 * check for tcp and smb session status done differently
aa24d1e9692411 Pavel Shilovsky 2011-12-27 153 * for those three - in the calling routine.
aa24d1e9692411 Pavel Shilovsky 2011-12-27 154 */
aa24d1e9692411 Pavel Shilovsky 2011-12-27 155 if (tcon == NULL)
7ffbe65578b44f Paulo Alcantara 2018-07-05 156 return 0;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 157
c88f7dcd6d6429 Paulo Alcantara 2021-11-03 158 /*
c88f7dcd6d6429 Paulo Alcantara 2021-11-03 159 * Need to also skip SMB2_IOCTL because it is used for checking nested dfs links in
c88f7dcd6d6429 Paulo Alcantara 2021-11-03 160 * cifs_tree_connect().
c88f7dcd6d6429 Paulo Alcantara 2021-11-03 161 */
c88f7dcd6d6429 Paulo Alcantara 2021-11-03 162 if (smb2_command == SMB2_TREE_CONNECT || smb2_command == SMB2_IOCTL)
7ffbe65578b44f Paulo Alcantara 2018-07-05 163 return 0;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 164
46c2db2a208986 Steve French 2021-11-19 165 spin_lock(&cifs_tcp_ses_lock);
aa24d1e9692411 Pavel Shilovsky 2011-12-27 166 if (tcon->tidStatus == CifsExiting) {
aa24d1e9692411 Pavel Shilovsky 2011-12-27 167 /*
aa24d1e9692411 Pavel Shilovsky 2011-12-27 168 * only tree disconnect, open, and write,
aa24d1e9692411 Pavel Shilovsky 2011-12-27 169 * (and ulogoff which does not have tcon)
aa24d1e9692411 Pavel Shilovsky 2011-12-27 170 * are allowed as we start force umount.
aa24d1e9692411 Pavel Shilovsky 2011-12-27 171 */
aa24d1e9692411 Pavel Shilovsky 2011-12-27 172 if ((smb2_command != SMB2_WRITE) &&
aa24d1e9692411 Pavel Shilovsky 2011-12-27 173 (smb2_command != SMB2_CREATE) &&
aa24d1e9692411 Pavel Shilovsky 2011-12-27 174 (smb2_command != SMB2_TREE_DISCONNECT)) {
46c2db2a208986 Steve French 2021-11-19 175 spin_unlock(&cifs_tcp_ses_lock);
f96637be081141 Joe Perches 2013-05-04 176 cifs_dbg(FYI, "can not send cmd %d while umounting\n",
aa24d1e9692411 Pavel Shilovsky 2011-12-27 177 smb2_command);
aa24d1e9692411 Pavel Shilovsky 2011-12-27 178 return -ENODEV;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 179 }
aa24d1e9692411 Pavel Shilovsky 2011-12-27 180 }
46c2db2a208986 Steve French 2021-11-19 181 spin_unlock(&cifs_tcp_ses_lock);
aa24d1e9692411 Pavel Shilovsky 2011-12-27 182 if ((!tcon->ses) || (tcon->ses->status == CifsExiting) ||
352d96f3acc6e0 Aurelien Aptel 2020-05-31 183 (!tcon->ses->server) || !server)
aa24d1e9692411 Pavel Shilovsky 2011-12-27 184 return -EIO;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 185
aa24d1e9692411 Pavel Shilovsky 2011-12-27 186 ses = tcon->ses;
a3a53b7603798f Paulo Alcantara 2018-11-14 187 retries = server->nr_targets;
a3a53b7603798f Paulo Alcantara 2018-11-14 188
aa24d1e9692411 Pavel Shilovsky 2011-12-27 189 /*
a3a53b7603798f Paulo Alcantara 2018-11-14 190 * Give demultiplex thread up to 10 seconds to each target available for
a3a53b7603798f Paulo Alcantara 2018-11-14 191 * reconnect -- should be greater than cifs socket timeout which is 7
a3a53b7603798f Paulo Alcantara 2018-11-14 192 * seconds.
aa24d1e9692411 Pavel Shilovsky 2011-12-27 193 */
aa24d1e9692411 Pavel Shilovsky 2011-12-27 194 while (server->tcpStatus == CifsNeedReconnect) {
aa24d1e9692411 Pavel Shilovsky 2011-12-27 195 /*
aa24d1e9692411 Pavel Shilovsky 2011-12-27 196 * Return to caller for TREE_DISCONNECT and LOGOFF and CLOSE
aa24d1e9692411 Pavel Shilovsky 2011-12-27 197 * here since they are implicitly done when session drops.
aa24d1e9692411 Pavel Shilovsky 2011-12-27 198 */
aa24d1e9692411 Pavel Shilovsky 2011-12-27 199 switch (smb2_command) {
aa24d1e9692411 Pavel Shilovsky 2011-12-27 200 /*
aa24d1e9692411 Pavel Shilovsky 2011-12-27 201 * BB Should we keep oplock break and add flush to exceptions?
aa24d1e9692411 Pavel Shilovsky 2011-12-27 202 */
aa24d1e9692411 Pavel Shilovsky 2011-12-27 203 case SMB2_TREE_DISCONNECT:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 204 case SMB2_CANCEL:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 205 case SMB2_CLOSE:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 206 case SMB2_OPLOCK_BREAK:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 207 return -EAGAIN;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 208 }
aa24d1e9692411 Pavel Shilovsky 2011-12-27 209
7ffbe65578b44f Paulo Alcantara 2018-07-05 210 rc = wait_event_interruptible_timeout(server->response_q,
7ffbe65578b44f Paulo Alcantara 2018-07-05 211 (server->tcpStatus != CifsNeedReconnect),
7ffbe65578b44f Paulo Alcantara 2018-07-05 212 10 * HZ);
7ffbe65578b44f Paulo Alcantara 2018-07-05 213 if (rc < 0) {
a0a3036b81f1f6 Joe Perches 2020-04-14 214 cifs_dbg(FYI, "%s: aborting reconnect due to a received signal by the process\n",
a0a3036b81f1f6 Joe Perches 2020-04-14 215 __func__);
7ffbe65578b44f Paulo Alcantara 2018-07-05 216 return -ERESTARTSYS;
7ffbe65578b44f Paulo Alcantara 2018-07-05 217 }
aa24d1e9692411 Pavel Shilovsky 2011-12-27 218
aa24d1e9692411 Pavel Shilovsky 2011-12-27 219 /* are we still trying to reconnect? */
46c2db2a208986 Steve French 2021-11-19 220 spin_lock(&cifs_tcp_ses_lock);
46c2db2a208986 Steve French 2021-11-19 221 if (server->tcpStatus != CifsNeedReconnect) {
46c2db2a208986 Steve French 2021-11-19 222 spin_unlock(&cifs_tcp_ses_lock);
aa24d1e9692411 Pavel Shilovsky 2011-12-27 223 break;
46c2db2a208986 Steve French 2021-11-19 224 }
46c2db2a208986 Steve French 2021-11-19 225 spin_unlock(&cifs_tcp_ses_lock);
aa24d1e9692411 Pavel Shilovsky 2011-12-27 226
c54849ddd832ae Ronnie Sahlberg 2020-01-31 227 if (retries && --retries)
a3a53b7603798f Paulo Alcantara 2018-11-14 228 continue;
a3a53b7603798f Paulo Alcantara 2018-11-14 229
aa24d1e9692411 Pavel Shilovsky 2011-12-27 230 /*
aa24d1e9692411 Pavel Shilovsky 2011-12-27 231 * on "soft" mounts we wait once. Hard mounts keep
aa24d1e9692411 Pavel Shilovsky 2011-12-27 232 * retrying until process is killed or server comes
aa24d1e9692411 Pavel Shilovsky 2011-12-27 233 * back on-line
aa24d1e9692411 Pavel Shilovsky 2011-12-27 234 */
aa24d1e9692411 Pavel Shilovsky 2011-12-27 235 if (!tcon->retry) {
f96637be081141 Joe Perches 2013-05-04 236 cifs_dbg(FYI, "gave up waiting on reconnect in smb_init\n");
aa24d1e9692411 Pavel Shilovsky 2011-12-27 237 return -EHOSTDOWN;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 238 }
a3a53b7603798f Paulo Alcantara 2018-11-14 239 retries = server->nr_targets;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 240 }
aa24d1e9692411 Pavel Shilovsky 2011-12-27 241
2e1950bf3a3683 Steve French 2021-11-19 242 spin_lock(&ses->chan_lock);
2e1950bf3a3683 Steve French 2021-11-19 243 if (!cifs_chan_needs_reconnect(ses, server) && !tcon->need_reconnect) {
2e1950bf3a3683 Steve French 2021-11-19 244 spin_unlock(&ses->chan_lock);
7ffbe65578b44f Paulo Alcantara 2018-07-05 245 return 0;
2e1950bf3a3683 Steve French 2021-11-19 246 }
2e1950bf3a3683 Steve French 2021-11-19 247 cifs_dbg(FYI, "sess reconnect mask: 0x%lx, tcon reconnect: %d",
2e1950bf3a3683 Steve French 2021-11-19 248 tcon->ses->chans_need_reconnect,
2e1950bf3a3683 Steve French 2021-11-19 249 tcon->need_reconnect);
2e1950bf3a3683 Steve French 2021-11-19 250 spin_unlock(&ses->chan_lock);
aa24d1e9692411 Pavel Shilovsky 2011-12-27 251
aa24d1e9692411 Pavel Shilovsky 2011-12-27 252 nls_codepage = load_nls_default();
aa24d1e9692411 Pavel Shilovsky 2011-12-27 253
76e752701a8af4 Samuel Cabrero 2017-07-11 254 /*
76e752701a8af4 Samuel Cabrero 2017-07-11 255 * Recheck after acquire mutex. If another thread is negotiating
76e752701a8af4 Samuel Cabrero 2017-07-11 256 * and the server never sends an answer the socket will be closed
76e752701a8af4 Samuel Cabrero 2017-07-11 257 * and tcpStatus set to reconnect.
76e752701a8af4 Samuel Cabrero 2017-07-11 258 */
46c2db2a208986 Steve French 2021-11-19 259 spin_lock(&cifs_tcp_ses_lock);
76e752701a8af4 Samuel Cabrero 2017-07-11 260 if (server->tcpStatus == CifsNeedReconnect) {
46c2db2a208986 Steve French 2021-11-19 261 spin_unlock(&cifs_tcp_ses_lock);
76e752701a8af4 Samuel Cabrero 2017-07-11 262 rc = -EHOSTDOWN;
76e752701a8af4 Samuel Cabrero 2017-07-11 263 goto out;
76e752701a8af4 Samuel Cabrero 2017-07-11 264 }
46c2db2a208986 Steve French 2021-11-19 265 spin_unlock(&cifs_tcp_ses_lock);
76e752701a8af4 Samuel Cabrero 2017-07-11 266
2e1950bf3a3683 Steve French 2021-11-19 267 /*
2e1950bf3a3683 Steve French 2021-11-19 268 * need to prevent multiple threads trying to simultaneously
2e1950bf3a3683 Steve French 2021-11-19 269 * reconnect the same SMB session
2e1950bf3a3683 Steve French 2021-11-19 270 */
2e1950bf3a3683 Steve French 2021-11-19 271 spin_lock(&ses->chan_lock);
2e1950bf3a3683 Steve French 2021-11-19 272 if (!cifs_chan_needs_reconnect(ses, server)) {
2e1950bf3a3683 Steve French 2021-11-19 273 spin_unlock(&ses->chan_lock);
2e1950bf3a3683 Steve French 2021-11-19 274
0d0119cf6ce4eb Steve French 2021-11-19 275 /* this means that we only need to tree connect */
2e1950bf3a3683 Steve French 2021-11-19 276 if (tcon->need_reconnect)
2e1950bf3a3683 Steve French 2021-11-19 277 goto skip_sess_setup;
2e1950bf3a3683 Steve French 2021-11-19 278
2e1950bf3a3683 Steve French 2021-11-19 279 goto out;
^^^^^^^^
"rc" not necessarily set for this gotos.
2e1950bf3a3683 Steve French 2021-11-19 280 }
2e1950bf3a3683 Steve French 2021-11-19 281 spin_unlock(&ses->chan_lock);
2e1950bf3a3683 Steve French 2021-11-19 282
b8272812b48c94 Shyam Prasad N 2021-07-19 283 mutex_lock(&ses->session_mutex);
0d0119cf6ce4eb Steve French 2021-11-19 284 rc = cifs_negotiate_protocol(0, ses, server);
2e1950bf3a3683 Steve French 2021-11-19 285 if (!rc) {
0d0119cf6ce4eb Steve French 2021-11-19 286 rc = cifs_setup_session(0, ses, server, nls_codepage);
b0dd940e582b6a Ronnie Sahlberg 2020-02-05 287 if ((rc == -EACCES) && !tcon->retry) {
0d0119cf6ce4eb Steve French 2021-11-19 288 mutex_unlock(&ses->session_mutex);
b8272812b48c94 Shyam Prasad N 2021-07-19 289 rc = -EHOSTDOWN;
b0dd940e582b6a Ronnie Sahlberg 2020-02-05 290 goto failed;
b0dd940e582b6a Ronnie Sahlberg 2020-02-05 291 }
b0dd940e582b6a Ronnie Sahlberg 2020-02-05 292 }
2f58967979409e Aurelien Aptel 2020-04-24 293
aa24d1e9692411 Pavel Shilovsky 2011-12-27 294 if (rc || !tcon->need_reconnect) {
b8272812b48c94 Shyam Prasad N 2021-07-19 295 mutex_unlock(&ses->session_mutex);
aa24d1e9692411 Pavel Shilovsky 2011-12-27 296 goto out;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 297 }
aa24d1e9692411 Pavel Shilovsky 2011-12-27 298
2e1950bf3a3683 Steve French 2021-11-19 299 skip_sess_setup:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 300 cifs_mark_open_files_invalid(tcon);
96a988ffeb90db Pavel Shilovsky 2016-11-29 301 if (tcon->use_persistent)
96a988ffeb90db Pavel Shilovsky 2016-11-29 302 tcon->need_reopen_files = true;
52ace1ef1259e1 Steve French 2016-09-22 303
565674d613d7f4 Stefan Metzmacher 2020-07-21 304 rc = cifs_tree_connect(0, tcon, nls_codepage);
b8272812b48c94 Shyam Prasad N 2021-07-19 305 mutex_unlock(&ses->session_mutex);
52ace1ef1259e1 Steve French 2016-09-22 306
f96637be081141 Joe Perches 2013-05-04 307 cifs_dbg(FYI, "reconnect tcon rc = %d\n", rc);
c318e6c26cbe91 Steve French 2018-04-04 308 if (rc) {
c318e6c26cbe91 Steve French 2018-04-04 309 /* If sess reconnected but tcon didn't, something strange ... */
a0a3036b81f1f6 Joe Perches 2020-04-14 310 pr_warn_once("reconnect tcon failed rc = %d\n", rc);
aa24d1e9692411 Pavel Shilovsky 2011-12-27 311 goto out;
c318e6c26cbe91 Steve French 2018-04-04 312 }
96a988ffeb90db Pavel Shilovsky 2016-11-29 313
96a988ffeb90db Pavel Shilovsky 2016-11-29 314 if (smb2_command != SMB2_INTERNAL_CMD)
b08484d715128a Stefan Metzmacher 2020-02-24 315 mod_delayed_work(cifsiod_wq, &server->reconnect, 0);
96a988ffeb90db Pavel Shilovsky 2016-11-29 316
aa24d1e9692411 Pavel Shilovsky 2011-12-27 317 atomic_inc(&tconInfoReconnectCount);
aa24d1e9692411 Pavel Shilovsky 2011-12-27 318 out:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 319 /*
aa24d1e9692411 Pavel Shilovsky 2011-12-27 320 * Check if handle based operation so we know whether we can continue
aa24d1e9692411 Pavel Shilovsky 2011-12-27 321 * or not without returning to caller to reset file handle.
aa24d1e9692411 Pavel Shilovsky 2011-12-27 322 */
aa24d1e9692411 Pavel Shilovsky 2011-12-27 323 /*
aa24d1e9692411 Pavel Shilovsky 2011-12-27 324 * BB Is flush done by server on drop of tcp session? Should we special
aa24d1e9692411 Pavel Shilovsky 2011-12-27 325 * case it and skip above?
aa24d1e9692411 Pavel Shilovsky 2011-12-27 326 */
aa24d1e9692411 Pavel Shilovsky 2011-12-27 327 switch (smb2_command) {
aa24d1e9692411 Pavel Shilovsky 2011-12-27 328 case SMB2_FLUSH:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 329 case SMB2_READ:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 330 case SMB2_WRITE:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 331 case SMB2_LOCK:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 332 case SMB2_IOCTL:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 333 case SMB2_QUERY_DIRECTORY:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 334 case SMB2_CHANGE_NOTIFY:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 335 case SMB2_QUERY_INFO:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 336 case SMB2_SET_INFO:
4772c79599564b Pavel Shilovsky 2016-11-29 337 rc = -EAGAIN;
aa24d1e9692411 Pavel Shilovsky 2011-12-27 338 }
b0dd940e582b6a Ronnie Sahlberg 2020-02-05 339 failed:
aa24d1e9692411 Pavel Shilovsky 2011-12-27 340 unload_nls(nls_codepage);
ec2e4523fdba88 Pavel Shilovsky 2011-12-27 @341 return rc;
ec2e4523fdba88 Pavel Shilovsky 2011-12-27 342 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months