* arch/powerpc/sysdev/xive/spapr.c:509 xive_spapr_configure_queue() warn: should '1 << xive_alloc_order(order)' be a 64 bit type?
@ 2021-04-03 5:06 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-04-03 5:06 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 7961 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Ram Pai <linuxram@us.ibm.com>
CC: Michael Ellerman <mpe@ellerman.id.au>
CC: Cedric Le Goater <clg@kaod.org>
CC: Greg Kurz <groug@kaod.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: d93a0d43e3d0ba9e19387be4dae4a8d5b175a8d7
commit: 094235222d41d68d35de18170058d94a96a82628 powerpc/xive: Share the event-queue page with the Hypervisor.
date: 10 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 10 months ago
config: powerpc64-randconfig-m031-20210403 (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
arch/powerpc/sysdev/xive/spapr.c:509 xive_spapr_configure_queue() warn: should '1 << xive_alloc_order(order)' be a 64 bit type?
arch/powerpc/sysdev/xive/spapr.c:544 xive_spapr_cleanup_queue() warn: should '1 << alloc_order' be a 64 bit type?
vim +509 arch/powerpc/sysdev/xive/spapr.c
b4868ff55d082b Cédric Le Goater 2019-08-14 461
eac1e731b59ee3 Cédric Le Goater 2017-08-30 462 /* This can be called multiple time to change a queue configuration */
eac1e731b59ee3 Cédric Le Goater 2017-08-30 463 static int xive_spapr_configure_queue(u32 target, struct xive_q *q, u8 prio,
eac1e731b59ee3 Cédric Le Goater 2017-08-30 464 __be32 *qpage, u32 order)
eac1e731b59ee3 Cédric Le Goater 2017-08-30 465 {
eac1e731b59ee3 Cédric Le Goater 2017-08-30 466 s64 rc = 0;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 467 unsigned long esn_page;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 468 unsigned long esn_size;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 469 u64 flags, qpage_phys;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 470
eac1e731b59ee3 Cédric Le Goater 2017-08-30 471 /* If there's an actual queue page, clean it */
eac1e731b59ee3 Cédric Le Goater 2017-08-30 472 if (order) {
eac1e731b59ee3 Cédric Le Goater 2017-08-30 473 if (WARN_ON(!qpage))
eac1e731b59ee3 Cédric Le Goater 2017-08-30 474 return -EINVAL;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 475 qpage_phys = __pa(qpage);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 476 } else {
eac1e731b59ee3 Cédric Le Goater 2017-08-30 477 qpage_phys = 0;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 478 }
eac1e731b59ee3 Cédric Le Goater 2017-08-30 479
eac1e731b59ee3 Cédric Le Goater 2017-08-30 480 /* Initialize the rest of the fields */
eac1e731b59ee3 Cédric Le Goater 2017-08-30 481 q->msk = order ? ((1u << (order - 2)) - 1) : 0;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 482 q->idx = 0;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 483 q->toggle = 0;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 484
eac1e731b59ee3 Cédric Le Goater 2017-08-30 485 rc = plpar_int_get_queue_info(0, target, prio, &esn_page, &esn_size);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 486 if (rc) {
8e036c8d30a2cd Cédric Le Goater 2018-02-13 487 pr_err("Error %lld getting queue info CPU %d prio %d\n", rc,
8e036c8d30a2cd Cédric Le Goater 2018-02-13 488 target, prio);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 489 rc = -EIO;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 490 goto fail;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 491 }
eac1e731b59ee3 Cédric Le Goater 2017-08-30 492
eac1e731b59ee3 Cédric Le Goater 2017-08-30 493 /* TODO: add support for the notification page */
eac1e731b59ee3 Cédric Le Goater 2017-08-30 494 q->eoi_phys = esn_page;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 495
eac1e731b59ee3 Cédric Le Goater 2017-08-30 496 /* Default is to always notify */
eac1e731b59ee3 Cédric Le Goater 2017-08-30 497 flags = XIVE_EQ_ALWAYS_NOTIFY;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 498
eac1e731b59ee3 Cédric Le Goater 2017-08-30 499 /* Configure and enable the queue in HW */
eac1e731b59ee3 Cédric Le Goater 2017-08-30 500 rc = plpar_int_set_queue_config(flags, target, prio, qpage_phys, order);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 501 if (rc) {
8e036c8d30a2cd Cédric Le Goater 2018-02-13 502 pr_err("Error %lld setting queue for CPU %d prio %d\n", rc,
8e036c8d30a2cd Cédric Le Goater 2018-02-13 503 target, prio);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 504 rc = -EIO;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 505 } else {
eac1e731b59ee3 Cédric Le Goater 2017-08-30 506 q->qpage = qpage;
094235222d41d6 Ram Pai 2020-02-24 507 if (is_secure_guest())
094235222d41d6 Ram Pai 2020-02-24 508 uv_share_page(PHYS_PFN(qpage_phys),
094235222d41d6 Ram Pai 2020-02-24 @509 1 << xive_alloc_order(order));
eac1e731b59ee3 Cédric Le Goater 2017-08-30 510 }
eac1e731b59ee3 Cédric Le Goater 2017-08-30 511 fail:
eac1e731b59ee3 Cédric Le Goater 2017-08-30 512 return rc;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 513 }
eac1e731b59ee3 Cédric Le Goater 2017-08-30 514
eac1e731b59ee3 Cédric Le Goater 2017-08-30 515 static int xive_spapr_setup_queue(unsigned int cpu, struct xive_cpu *xc,
eac1e731b59ee3 Cédric Le Goater 2017-08-30 516 u8 prio)
eac1e731b59ee3 Cédric Le Goater 2017-08-30 517 {
eac1e731b59ee3 Cédric Le Goater 2017-08-30 518 struct xive_q *q = &xc->queue[prio];
eac1e731b59ee3 Cédric Le Goater 2017-08-30 519 __be32 *qpage;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 520
eac1e731b59ee3 Cédric Le Goater 2017-08-30 521 qpage = xive_queue_page_alloc(cpu, xive_queue_shift);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 522 if (IS_ERR(qpage))
eac1e731b59ee3 Cédric Le Goater 2017-08-30 523 return PTR_ERR(qpage);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 524
8e036c8d30a2cd Cédric Le Goater 2018-02-13 525 return xive_spapr_configure_queue(get_hard_smp_processor_id(cpu),
8e036c8d30a2cd Cédric Le Goater 2018-02-13 526 q, prio, qpage, xive_queue_shift);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 527 }
eac1e731b59ee3 Cédric Le Goater 2017-08-30 528
eac1e731b59ee3 Cédric Le Goater 2017-08-30 529 static void xive_spapr_cleanup_queue(unsigned int cpu, struct xive_cpu *xc,
eac1e731b59ee3 Cédric Le Goater 2017-08-30 530 u8 prio)
eac1e731b59ee3 Cédric Le Goater 2017-08-30 531 {
eac1e731b59ee3 Cédric Le Goater 2017-08-30 532 struct xive_q *q = &xc->queue[prio];
eac1e731b59ee3 Cédric Le Goater 2017-08-30 533 unsigned int alloc_order;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 534 long rc;
8e036c8d30a2cd Cédric Le Goater 2018-02-13 535 int hw_cpu = get_hard_smp_processor_id(cpu);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 536
8e036c8d30a2cd Cédric Le Goater 2018-02-13 537 rc = plpar_int_set_queue_config(0, hw_cpu, prio, 0, 0);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 538 if (rc)
8e036c8d30a2cd Cédric Le Goater 2018-02-13 539 pr_err("Error %ld setting queue for CPU %d prio %d\n", rc,
8e036c8d30a2cd Cédric Le Goater 2018-02-13 540 hw_cpu, prio);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 541
eac1e731b59ee3 Cédric Le Goater 2017-08-30 542 alloc_order = xive_alloc_order(xive_queue_shift);
094235222d41d6 Ram Pai 2020-02-24 543 if (is_secure_guest())
094235222d41d6 Ram Pai 2020-02-24 @544 uv_unshare_page(PHYS_PFN(__pa(q->qpage)), 1 << alloc_order);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 545 free_pages((unsigned long)q->qpage, alloc_order);
eac1e731b59ee3 Cédric Le Goater 2017-08-30 546 q->qpage = NULL;
eac1e731b59ee3 Cédric Le Goater 2017-08-30 547 }
eac1e731b59ee3 Cédric Le Goater 2017-08-30 548
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36515 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-04-03 5:06 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-03 5:06 arch/powerpc/sysdev/xive/spapr.c:509 xive_spapr_configure_queue() warn: should '1 << xive_alloc_order(order)' be a 64 bit type? 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.