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