All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.