Re: [PATCH v1 1/1] misc: IBM Virtual Management Channel Driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bryant,

I love your patch! Perhaps something to improve:

[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on v4.17-rc2 next-20180424]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Bryant-G-Ly/misc-IBM-Virtual-Management-Channel-Driver/20180424-060306
config: powerpc64-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc64 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   drivers//misc/ibmvmc.c: In function 'ibmvmc_probe':
>> drivers//misc/ibmvmc.c:2133:5: warning: 'rc' may be used uninitialized in this function [-Wmaybe-uninitialized]
     if (rc == H_RESOURCE)
        ^
   drivers//misc/ibmvmc.c:2111:6: note: 'rc' was declared here
     int rc;
         ^~

vim +/rc +2133 drivers//misc/ibmvmc.c

  2097	
  2098	/**
  2099	 * ibmvmc_init_crq_queue - Init CRQ Queue
  2100	 *
  2101	 * @adapter:	crq_server_adapter struct
  2102	 *
  2103	 * Return:
  2104	 *	0 - Success
  2105	 *	Non-zero - Failure
  2106	 */
  2107	static int ibmvmc_init_crq_queue(struct crq_server_adapter *adapter)
  2108	{
  2109		struct vio_dev *vdev = to_vio_dev(adapter->dev);
  2110		struct crq_queue *queue = &adapter->queue;
  2111		int rc;
  2112		int retrc;
  2113	
  2114		queue->msgs = (struct ibmvmc_crq_msg *)get_zeroed_page(GFP_KERNEL);
  2115	
  2116		if (!queue->msgs)
  2117			goto malloc_failed;
  2118	
  2119		queue->size = PAGE_SIZE / sizeof(*queue->msgs);
  2120	
  2121		queue->msg_token = dma_map_single(adapter->dev, queue->msgs,
  2122						  queue->size * sizeof(*queue->msgs),
  2123						  DMA_BIDIRECTIONAL);
  2124	
  2125		if (dma_mapping_error(adapter->dev, queue->msg_token))
  2126			goto map_failed;
  2127	
  2128		retrc = plpar_hcall_norets(H_REG_CRQ,
  2129					   vdev->unit_address,
  2130					   queue->msg_token, PAGE_SIZE);
  2131		retrc = rc;
  2132	
> 2133		if (rc == H_RESOURCE)
  2134			rc = ibmvmc_reset_crq_queue(adapter);
  2135	
  2136		if (rc == 2) {
  2137			dev_warn(adapter->dev, "Partner adapter not ready\n");
  2138			retrc = 0;
  2139		} else if (rc != 0) {
  2140			dev_err(adapter->dev, "Error %d opening adapter\n", rc);
  2141			goto reg_crq_failed;
  2142		}
  2143	
  2144		queue->cur = 0;
  2145		spin_lock_init(&queue->lock);
  2146	
  2147		tasklet_init(&adapter->work_task, ibmvmc_task, (unsigned long)adapter);
  2148	
  2149		if (request_irq(vdev->irq,
  2150				ibmvmc_handle_event,
  2151				0, "ibmvmc", (void *)adapter) != 0) {
  2152			dev_err(adapter->dev, "couldn't register irq 0x%x\n",
  2153				vdev->irq);
  2154			goto req_irq_failed;
  2155		}
  2156	
  2157		rc = vio_enable_interrupts(vdev);
  2158		if (rc != 0) {
  2159			dev_err(adapter->dev, "Error %d enabling interrupts!!!\n", rc);
  2160			goto req_irq_failed;
  2161		}
  2162	
  2163		return retrc;
  2164	
  2165	req_irq_failed:
  2166		/* Cannot have any work since we either never got our IRQ registered,
  2167		 * or never got interrupts enabled
  2168		 */
  2169		tasklet_kill(&adapter->work_task);
  2170		h_free_crq(vdev->unit_address);
  2171	reg_crq_failed:
  2172		dma_unmap_single(adapter->dev,
  2173				 queue->msg_token,
  2174				 queue->size * sizeof(*queue->msgs), DMA_BIDIRECTIONAL);
  2175	map_failed:
  2176		free_page((unsigned long)queue->msgs);
  2177	malloc_failed:
  2178		return -ENOMEM;
  2179	}
  2180	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux