* drivers/infiniband/sw/rxe/rxe_mcast.c:361:63: warning: Parameter 'qp' can be declared with const [constParameter]
@ 2022-05-08 5:04 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-05-08 5:04 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 9145 bytes --]
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Bob Pearson <rpearsonhpe@gmail.com>
CC: Jason Gunthorpe <jgg@ziepe.ca>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 30c8e80f79329617012f07b09b70114592092ea4
commit: a181c4c81a7104370c6144df5daf914780f8e89e RDMA/rxe: Collect cleanup mca code in a subroutine
date: 2 months ago
:::::: branch date: 11 hours ago
:::::: commit date: 2 months ago
compiler: hppa-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
# apt-get install cppcheck
git checkout a181c4c81a7104370c6144df5daf914780f8e89e
cppcheck --quiet --enable=style,performance,portability --template=gcc FILE
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
cppcheck possible warnings: (new ones prefixed by >>, may not real problems)
>> drivers/infiniband/sw/rxe/rxe_mcast.c:361:63: warning: Parameter 'qp' can be declared with const [constParameter]
static int rxe_detach_mcg(struct rxe_dev *rxe, struct rxe_qp *qp,
^
>> drivers/infiniband/sw/rxe/rxe_mcast.c:312:12: warning: Uninitialized variable: mca->qp [uninitvar]
if (mca->qp == qp) {
^
drivers/infiniband/sw/rxe/rxe_mcast.c:374:12: warning: Uninitialized variable: mca->qp [uninitvar]
if (mca->qp == qp) {
^
drivers/infiniband/sw/rxe/rxe_mcast.c:369:6: note: Assuming condition is false
if (!mcg)
^
drivers/infiniband/sw/rxe/rxe_mcast.c:374:12: note: Uninitialized variable: mca->qp
if (mca->qp == qp) {
^
--
>> drivers/infiniband/sw/siw/siw_cm.c:1000:45: warning: Uninitialized variable: work [uninitvar]
work = container_of(w, struct siw_cm_work, work.work);
^
vim +/qp +361 drivers/infiniband/sw/rxe/rxe_mcast.c
4a4f1073475796 Bob Pearson 2022-02-23 301
5bc15d1f7e3c9b Bob Pearson 2022-02-08 302 static int rxe_attach_mcg(struct rxe_dev *rxe, struct rxe_qp *qp,
5bc15d1f7e3c9b Bob Pearson 2022-02-08 303 struct rxe_mcg *mcg)
8700e3e7c4857d Moni Shoua 2016-06-16 304 {
d572405518ffd7 Bob Pearson 2022-02-08 305 struct rxe_mca *mca, *tmp;
a099b08599e6ae Bob Pearson 2022-02-15 306 unsigned long flags;
d572405518ffd7 Bob Pearson 2022-02-08 307 int err;
8700e3e7c4857d Moni Shoua 2016-06-16 308
d572405518ffd7 Bob Pearson 2022-02-08 309 /* check to see if the qp is already a member of the group */
9fd0eb7c3c73c8 Bob Pearson 2022-02-08 310 spin_lock_irqsave(&rxe->mcg_lock, flags);
5bc15d1f7e3c9b Bob Pearson 2022-02-08 311 list_for_each_entry(mca, &mcg->qp_list, qp_list) {
d572405518ffd7 Bob Pearson 2022-02-08 @312 if (mca->qp == qp) {
d572405518ffd7 Bob Pearson 2022-02-08 313 spin_unlock_irqrestore(&rxe->mcg_lock, flags);
d572405518ffd7 Bob Pearson 2022-02-08 314 return 0;
8700e3e7c4857d Moni Shoua 2016-06-16 315 }
8700e3e7c4857d Moni Shoua 2016-06-16 316 }
d572405518ffd7 Bob Pearson 2022-02-08 317 spin_unlock_irqrestore(&rxe->mcg_lock, flags);
8700e3e7c4857d Moni Shoua 2016-06-16 318
d572405518ffd7 Bob Pearson 2022-02-08 319 /* speculative alloc new mca without using GFP_ATOMIC */
d572405518ffd7 Bob Pearson 2022-02-08 320 mca = kzalloc(sizeof(*mca), GFP_KERNEL);
d572405518ffd7 Bob Pearson 2022-02-08 321 if (!mca)
d572405518ffd7 Bob Pearson 2022-02-08 322 return -ENOMEM;
d572405518ffd7 Bob Pearson 2022-02-08 323
d572405518ffd7 Bob Pearson 2022-02-08 324 spin_lock_irqsave(&rxe->mcg_lock, flags);
d572405518ffd7 Bob Pearson 2022-02-08 325 /* re-check to see if someone else just attached qp */
5bc15d1f7e3c9b Bob Pearson 2022-02-08 326 list_for_each_entry(tmp, &mcg->qp_list, qp_list) {
d572405518ffd7 Bob Pearson 2022-02-08 327 if (tmp->qp == qp) {
d572405518ffd7 Bob Pearson 2022-02-08 328 kfree(mca);
d572405518ffd7 Bob Pearson 2022-02-08 329 err = 0;
8700e3e7c4857d Moni Shoua 2016-06-16 330 goto out;
8700e3e7c4857d Moni Shoua 2016-06-16 331 }
d572405518ffd7 Bob Pearson 2022-02-08 332 }
8700e3e7c4857d Moni Shoua 2016-06-16 333
4a4f1073475796 Bob Pearson 2022-02-23 334 err = __rxe_init_mca(qp, mcg, mca);
4a4f1073475796 Bob Pearson 2022-02-23 335 if (err)
d572405518ffd7 Bob Pearson 2022-02-08 336 kfree(mca);
8700e3e7c4857d Moni Shoua 2016-06-16 337 out:
9fd0eb7c3c73c8 Bob Pearson 2022-02-08 338 spin_unlock_irqrestore(&rxe->mcg_lock, flags);
8700e3e7c4857d Moni Shoua 2016-06-16 339 return err;
8700e3e7c4857d Moni Shoua 2016-06-16 340 }
8700e3e7c4857d Moni Shoua 2016-06-16 341
a181c4c81a7104 Bob Pearson 2022-02-23 342 /**
a181c4c81a7104 Bob Pearson 2022-02-23 343 * __rxe_cleanup_mca - cleanup mca object holding lock
a181c4c81a7104 Bob Pearson 2022-02-23 344 * @mca: mca object
a181c4c81a7104 Bob Pearson 2022-02-23 345 * @mcg: mcg object
a181c4c81a7104 Bob Pearson 2022-02-23 346 *
a181c4c81a7104 Bob Pearson 2022-02-23 347 * Context: caller must hold a reference to mcg and rxe->mcg_lock
a181c4c81a7104 Bob Pearson 2022-02-23 348 */
a181c4c81a7104 Bob Pearson 2022-02-23 349 static void __rxe_cleanup_mca(struct rxe_mca *mca, struct rxe_mcg *mcg)
a181c4c81a7104 Bob Pearson 2022-02-23 350 {
a181c4c81a7104 Bob Pearson 2022-02-23 351 list_del(&mca->qp_list);
a181c4c81a7104 Bob Pearson 2022-02-23 352
a181c4c81a7104 Bob Pearson 2022-02-23 353 atomic_dec(&mcg->qp_num);
a181c4c81a7104 Bob Pearson 2022-02-23 354 atomic_dec(&mcg->rxe->mcg_attach);
a181c4c81a7104 Bob Pearson 2022-02-23 355 atomic_dec(&mca->qp->mcg_num);
a181c4c81a7104 Bob Pearson 2022-02-23 356 rxe_drop_ref(mca->qp);
a181c4c81a7104 Bob Pearson 2022-02-23 357
a181c4c81a7104 Bob Pearson 2022-02-23 358 kfree(mca);
a181c4c81a7104 Bob Pearson 2022-02-23 359 }
a181c4c81a7104 Bob Pearson 2022-02-23 360
5bc15d1f7e3c9b Bob Pearson 2022-02-08 @361 static int rxe_detach_mcg(struct rxe_dev *rxe, struct rxe_qp *qp,
8700e3e7c4857d Moni Shoua 2016-06-16 362 union ib_gid *mgid)
8700e3e7c4857d Moni Shoua 2016-06-16 363 {
5bc15d1f7e3c9b Bob Pearson 2022-02-08 364 struct rxe_mcg *mcg;
d572405518ffd7 Bob Pearson 2022-02-08 365 struct rxe_mca *mca, *tmp;
a099b08599e6ae Bob Pearson 2022-02-15 366 unsigned long flags;
8700e3e7c4857d Moni Shoua 2016-06-16 367
8a0a5fe0c46243 Bob Pearson 2022-02-08 368 mcg = rxe_lookup_mcg(rxe, mgid);
8a0a5fe0c46243 Bob Pearson 2022-02-08 369 if (!mcg)
8a0a5fe0c46243 Bob Pearson 2022-02-08 370 return -EINVAL;
d572405518ffd7 Bob Pearson 2022-02-08 371
8a0a5fe0c46243 Bob Pearson 2022-02-08 372 spin_lock_irqsave(&rxe->mcg_lock, flags);
5bc15d1f7e3c9b Bob Pearson 2022-02-08 373 list_for_each_entry_safe(mca, tmp, &mcg->qp_list, qp_list) {
d572405518ffd7 Bob Pearson 2022-02-08 374 if (mca->qp == qp) {
a181c4c81a7104 Bob Pearson 2022-02-23 375 __rxe_cleanup_mca(mca, mcg);
d572405518ffd7 Bob Pearson 2022-02-08 376
d572405518ffd7 Bob Pearson 2022-02-08 377 /* if the number of qp's attached to the
d572405518ffd7 Bob Pearson 2022-02-08 378 * mcast group falls to zero go ahead and
d572405518ffd7 Bob Pearson 2022-02-08 379 * tear it down. This will not free the
d572405518ffd7 Bob Pearson 2022-02-08 380 * object since we are still holding a ref
a181c4c81a7104 Bob Pearson 2022-02-23 381 * from the get key above
d572405518ffd7 Bob Pearson 2022-02-08 382 */
a181c4c81a7104 Bob Pearson 2022-02-23 383 if (atomic_read(&mcg->qp_num) <= 0)
5bc15d1f7e3c9b Bob Pearson 2022-02-08 384 __rxe_destroy_mcg(mcg);
d572405518ffd7 Bob Pearson 2022-02-08 385
d572405518ffd7 Bob Pearson 2022-02-08 386 /* drop the ref from get key. This will free the
8a0a5fe0c46243 Bob Pearson 2022-02-08 387 * object if qp_num is zero.
d572405518ffd7 Bob Pearson 2022-02-08 388 */
3810c1a1cbe8f3 Bob Pearson 2022-02-08 389 kref_put(&mcg->ref_cnt, rxe_cleanup_mcg);
a181c4c81a7104 Bob Pearson 2022-02-23 390
a181c4c81a7104 Bob Pearson 2022-02-23 391 spin_unlock_irqrestore(&rxe->mcg_lock, flags);
a181c4c81a7104 Bob Pearson 2022-02-23 392 return 0;
8700e3e7c4857d Moni Shoua 2016-06-16 393 }
8700e3e7c4857d Moni Shoua 2016-06-16 394 }
8700e3e7c4857d Moni Shoua 2016-06-16 395
d572405518ffd7 Bob Pearson 2022-02-08 396 /* we didn't find the qp on the list */
d572405518ffd7 Bob Pearson 2022-02-08 397 spin_unlock_irqrestore(&rxe->mcg_lock, flags);
a181c4c81a7104 Bob Pearson 2022-02-23 398 return -EINVAL;
8700e3e7c4857d Moni Shoua 2016-06-16 399 }
758c7f1e9cc9f1 Bob Pearson 2022-01-27 400
:::::: The code at line 361 was first introduced by commit
:::::: 5bc15d1f7e3c9b84b40e020983e2cee19a546e72 RDMA/rxe: Replace grp by mcg, mce by mca
:::::: TO: Bob Pearson <rpearsonhpe@gmail.com>
:::::: CC: Jason Gunthorpe <jgg@nvidia.com>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-05-08 5:04 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-08 5:04 drivers/infiniband/sw/rxe/rxe_mcast.c:361:63: warning: Parameter 'qp' can be declared with const [constParameter] kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.