Messages in this thread | | | Date | Tue, 18 Aug 2020 17:58:51 +0800 | From | kernel test robot <> | Subject | drivers/gpu/drm/qxl/qxl_kms.c:277:21: sparse: sparse: incorrect type in argument 1 (different address spaces) |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 06a4ec1d9dc652e17ee3ac2ceb6c7cf6c2b75cdd commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces date: 9 weeks ago config: m68k-randconfig-s032-20200818 (attached as .config) compiler: m68k-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.2-180-g49f7e13a-dirty git checkout 670d0a4b10704667765f7d18f7592993d02783aa # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=m68k
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/gpu/drm/qxl/qxl_kms.c:36:5: sparse: sparse: symbol 'qxl_log_level' was not declared. Should it be static? drivers/gpu/drm/qxl/qxl_kms.c:170:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct qxl_rom *rom @@ got void [noderef] __iomem * @@ drivers/gpu/drm/qxl/qxl_kms.c:170:19: sparse: expected struct qxl_rom *rom drivers/gpu/drm/qxl/qxl_kms.c:170:19: sparse: got void [noderef] __iomem * drivers/gpu/drm/qxl/qxl_kms.c:188:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct qxl_ram_header *ram_header @@ got void [noderef] __iomem * @@ drivers/gpu/drm/qxl/qxl_kms.c:188:26: sparse: expected struct qxl_ram_header *ram_header drivers/gpu/drm/qxl/qxl_kms.c:188:26: sparse: got void [noderef] __iomem * >> drivers/gpu/drm/qxl/qxl_kms.c:277:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got struct qxl_ram_header *ram_header @@ >> drivers/gpu/drm/qxl/qxl_kms.c:277:21: sparse: expected void [noderef] __iomem *addr drivers/gpu/drm/qxl/qxl_kms.c:277:21: sparse: got struct qxl_ram_header *ram_header >> drivers/gpu/drm/qxl/qxl_kms.c:281:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got struct qxl_rom *rom @@ drivers/gpu/drm/qxl/qxl_kms.c:281:21: sparse: expected void [noderef] __iomem *addr drivers/gpu/drm/qxl/qxl_kms.c:281:21: sparse: got struct qxl_rom *rom drivers/gpu/drm/qxl/qxl_kms.c:301:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got struct qxl_ram_header *ram_header @@ drivers/gpu/drm/qxl/qxl_kms.c:301:21: sparse: expected void [noderef] __iomem *addr drivers/gpu/drm/qxl/qxl_kms.c:301:21: sparse: got struct qxl_ram_header *ram_header drivers/gpu/drm/qxl/qxl_kms.c:302:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got struct qxl_rom *rom @@ drivers/gpu/drm/qxl/qxl_kms.c:302:21: sparse: expected void [noderef] __iomem *addr drivers/gpu/drm/qxl/qxl_kms.c:302:21: sparse: got struct qxl_rom *rom
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=670d0a4b10704667765f7d18f7592993d02783aa git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 670d0a4b10704667765f7d18f7592993d02783aa vim +277 drivers/gpu/drm/qxl/qxl_kms.c
f64122c1f6ade3 Dave Airlie 2013-02-25 109 2b65d5677a797f Gabriel Krisman Bertazi 2017-01-19 110 int qxl_device_init(struct qxl_device *qdev, aa5b62bac05d4b Gabriel Krisman Bertazi 2017-02-27 111 struct pci_dev *pdev) f64122c1f6ade3 Dave Airlie 2013-02-25 112 { 35541782dcc1e5 Gerd Hoffmann 2013-10-11 113 int r, sb; f64122c1f6ade3 Dave Airlie 2013-02-25 114 cbdded7f8a633e Gabriel Krisman Bertazi 2017-01-26 115 qdev->ddev.pdev = pdev; cbdded7f8a633e Gabriel Krisman Bertazi 2017-01-26 116 pci_set_drvdata(pdev, &qdev->ddev); cbdded7f8a633e Gabriel Krisman Bertazi 2017-01-26 117 f64122c1f6ade3 Dave Airlie 2013-02-25 118 mutex_init(&qdev->gem.mutex); f64122c1f6ade3 Dave Airlie 2013-02-25 119 mutex_init(&qdev->update_area_mutex); f64122c1f6ade3 Dave Airlie 2013-02-25 120 mutex_init(&qdev->release_mutex); f64122c1f6ade3 Dave Airlie 2013-02-25 121 mutex_init(&qdev->surf_evict_mutex); b3740e88601d69 Christophe Fergeau 2016-11-08 122 qxl_gem_init(qdev); f64122c1f6ade3 Dave Airlie 2013-02-25 123 f64122c1f6ade3 Dave Airlie 2013-02-25 124 qdev->rom_base = pci_resource_start(pdev, 2); f64122c1f6ade3 Dave Airlie 2013-02-25 125 qdev->rom_size = pci_resource_len(pdev, 2); f64122c1f6ade3 Dave Airlie 2013-02-25 126 qdev->vram_base = pci_resource_start(pdev, 0); f64122c1f6ade3 Dave Airlie 2013-02-25 127 qdev->io_base = pci_resource_start(pdev, 3); f64122c1f6ade3 Dave Airlie 2013-02-25 128 f64122c1f6ade3 Dave Airlie 2013-02-25 129 qdev->vram_mapping = io_mapping_create_wc(qdev->vram_base, pci_resource_len(pdev, 0)); 5043348a4969ae Anton Vasilyev 2018-07-27 130 if (!qdev->vram_mapping) { 5043348a4969ae Anton Vasilyev 2018-07-27 131 pr_err("Unable to create vram_mapping"); a9b0b24a6fff2d Daniel Vetter 2020-04-15 132 return -ENOMEM; 5043348a4969ae Anton Vasilyev 2018-07-27 133 } 35541782dcc1e5 Gerd Hoffmann 2013-10-11 134 35541782dcc1e5 Gerd Hoffmann 2013-10-11 135 if (pci_resource_len(pdev, 4) > 0) { 35541782dcc1e5 Gerd Hoffmann 2013-10-11 136 /* 64bit surface bar present */ 35541782dcc1e5 Gerd Hoffmann 2013-10-11 137 sb = 4; 35541782dcc1e5 Gerd Hoffmann 2013-10-11 138 qdev->surfaceram_base = pci_resource_start(pdev, sb); 35541782dcc1e5 Gerd Hoffmann 2013-10-11 139 qdev->surfaceram_size = pci_resource_len(pdev, sb); 35541782dcc1e5 Gerd Hoffmann 2013-10-11 140 qdev->surface_mapping = 35541782dcc1e5 Gerd Hoffmann 2013-10-11 141 io_mapping_create_wc(qdev->surfaceram_base, 35541782dcc1e5 Gerd Hoffmann 2013-10-11 142 qdev->surfaceram_size); 35541782dcc1e5 Gerd Hoffmann 2013-10-11 143 } 35541782dcc1e5 Gerd Hoffmann 2013-10-11 144 if (qdev->surface_mapping == NULL) { 35541782dcc1e5 Gerd Hoffmann 2013-10-11 145 /* 64bit surface bar not present (or mapping failed) */ 35541782dcc1e5 Gerd Hoffmann 2013-10-11 146 sb = 1; 35541782dcc1e5 Gerd Hoffmann 2013-10-11 147 qdev->surfaceram_base = pci_resource_start(pdev, sb); 35541782dcc1e5 Gerd Hoffmann 2013-10-11 148 qdev->surfaceram_size = pci_resource_len(pdev, sb); 35541782dcc1e5 Gerd Hoffmann 2013-10-11 149 qdev->surface_mapping = 35541782dcc1e5 Gerd Hoffmann 2013-10-11 150 io_mapping_create_wc(qdev->surfaceram_base, 35541782dcc1e5 Gerd Hoffmann 2013-10-11 151 qdev->surfaceram_size); 5043348a4969ae Anton Vasilyev 2018-07-27 152 if (!qdev->surface_mapping) { 5043348a4969ae Anton Vasilyev 2018-07-27 153 pr_err("Unable to create surface_mapping"); 5043348a4969ae Anton Vasilyev 2018-07-27 154 r = -ENOMEM; 5043348a4969ae Anton Vasilyev 2018-07-27 155 goto vram_mapping_free; 5043348a4969ae Anton Vasilyev 2018-07-27 156 } 35541782dcc1e5 Gerd Hoffmann 2013-10-11 157 } 35541782dcc1e5 Gerd Hoffmann 2013-10-11 158 35541782dcc1e5 Gerd Hoffmann 2013-10-11 159 DRM_DEBUG_KMS("qxl: vram %llx-%llx(%dM %dk), surface %llx-%llx(%dM %dk, %s)\n", 970fa986fadb11 Dave Airlie 2013-05-31 160 (unsigned long long)qdev->vram_base, 970fa986fadb11 Dave Airlie 2013-05-31 161 (unsigned long long)pci_resource_end(pdev, 0), f64122c1f6ade3 Dave Airlie 2013-02-25 162 (int)pci_resource_len(pdev, 0) / 1024 / 1024, f64122c1f6ade3 Dave Airlie 2013-02-25 163 (int)pci_resource_len(pdev, 0) / 1024, 970fa986fadb11 Dave Airlie 2013-05-31 164 (unsigned long long)qdev->surfaceram_base, 35541782dcc1e5 Gerd Hoffmann 2013-10-11 165 (unsigned long long)pci_resource_end(pdev, sb), f64122c1f6ade3 Dave Airlie 2013-02-25 166 (int)qdev->surfaceram_size / 1024 / 1024, 35541782dcc1e5 Gerd Hoffmann 2013-10-11 167 (int)qdev->surfaceram_size / 1024, 35541782dcc1e5 Gerd Hoffmann 2013-10-11 168 (sb == 4) ? "64bit" : "32bit"); f64122c1f6ade3 Dave Airlie 2013-02-25 169 f64122c1f6ade3 Dave Airlie 2013-02-25 170 qdev->rom = ioremap(qdev->rom_base, qdev->rom_size); f64122c1f6ade3 Dave Airlie 2013-02-25 171 if (!qdev->rom) { f64122c1f6ade3 Dave Airlie 2013-02-25 172 pr_err("Unable to ioremap ROM\n"); 5043348a4969ae Anton Vasilyev 2018-07-27 173 r = -ENOMEM; 5043348a4969ae Anton Vasilyev 2018-07-27 174 goto surface_mapping_free; f64122c1f6ade3 Dave Airlie 2013-02-25 175 } f64122c1f6ade3 Dave Airlie 2013-02-25 176 5043348a4969ae Anton Vasilyev 2018-07-27 177 if (!qxl_check_device(qdev)) { 5043348a4969ae Anton Vasilyev 2018-07-27 178 r = -ENODEV; dbe3ad61dcebc4 Markus Elfring 2019-11-07 179 goto rom_unmap; 5043348a4969ae Anton Vasilyev 2018-07-27 180 } f64122c1f6ade3 Dave Airlie 2013-02-25 181 f64122c1f6ade3 Dave Airlie 2013-02-25 182 r = qxl_bo_init(qdev); f64122c1f6ade3 Dave Airlie 2013-02-25 183 if (r) { f64122c1f6ade3 Dave Airlie 2013-02-25 184 DRM_ERROR("bo init failed %d\n", r); 5043348a4969ae Anton Vasilyev 2018-07-27 185 goto rom_unmap; f64122c1f6ade3 Dave Airlie 2013-02-25 186 } f64122c1f6ade3 Dave Airlie 2013-02-25 187 f64122c1f6ade3 Dave Airlie 2013-02-25 188 qdev->ram_header = ioremap(qdev->vram_base + f64122c1f6ade3 Dave Airlie 2013-02-25 189 qdev->rom->ram_header_offset, f64122c1f6ade3 Dave Airlie 2013-02-25 190 sizeof(*qdev->ram_header)); 5043348a4969ae Anton Vasilyev 2018-07-27 191 if (!qdev->ram_header) { 5043348a4969ae Anton Vasilyev 2018-07-27 192 DRM_ERROR("Unable to ioremap RAM header\n"); 5043348a4969ae Anton Vasilyev 2018-07-27 193 r = -ENOMEM; 5043348a4969ae Anton Vasilyev 2018-07-27 194 goto bo_fini; 5043348a4969ae Anton Vasilyev 2018-07-27 195 } f64122c1f6ade3 Dave Airlie 2013-02-25 196 f64122c1f6ade3 Dave Airlie 2013-02-25 197 qdev->command_ring = qxl_ring_create(&(qdev->ram_header->cmd_ring_hdr), f64122c1f6ade3 Dave Airlie 2013-02-25 198 sizeof(struct qxl_command), f64122c1f6ade3 Dave Airlie 2013-02-25 199 QXL_COMMAND_RING_SIZE, f64122c1f6ade3 Dave Airlie 2013-02-25 200 qdev->io_base + QXL_IO_NOTIFY_CMD, f64122c1f6ade3 Dave Airlie 2013-02-25 201 false, f64122c1f6ade3 Dave Airlie 2013-02-25 202 &qdev->display_event); 5043348a4969ae Anton Vasilyev 2018-07-27 203 if (!qdev->command_ring) { 5043348a4969ae Anton Vasilyev 2018-07-27 204 DRM_ERROR("Unable to create command ring\n"); 5043348a4969ae Anton Vasilyev 2018-07-27 205 r = -ENOMEM; 5043348a4969ae Anton Vasilyev 2018-07-27 206 goto ram_header_unmap; 5043348a4969ae Anton Vasilyev 2018-07-27 207 } f64122c1f6ade3 Dave Airlie 2013-02-25 208 f64122c1f6ade3 Dave Airlie 2013-02-25 209 qdev->cursor_ring = qxl_ring_create( f64122c1f6ade3 Dave Airlie 2013-02-25 210 &(qdev->ram_header->cursor_ring_hdr), f64122c1f6ade3 Dave Airlie 2013-02-25 211 sizeof(struct qxl_command), f64122c1f6ade3 Dave Airlie 2013-02-25 212 QXL_CURSOR_RING_SIZE, 80e5f89da3ab94 Huacai Chen 2020-03-31 213 qdev->io_base + QXL_IO_NOTIFY_CURSOR, f64122c1f6ade3 Dave Airlie 2013-02-25 214 false, f64122c1f6ade3 Dave Airlie 2013-02-25 215 &qdev->cursor_event); f64122c1f6ade3 Dave Airlie 2013-02-25 216 5043348a4969ae Anton Vasilyev 2018-07-27 217 if (!qdev->cursor_ring) { 5043348a4969ae Anton Vasilyev 2018-07-27 218 DRM_ERROR("Unable to create cursor ring\n"); 5043348a4969ae Anton Vasilyev 2018-07-27 219 r = -ENOMEM; 5043348a4969ae Anton Vasilyev 2018-07-27 220 goto command_ring_free; 5043348a4969ae Anton Vasilyev 2018-07-27 221 } 5043348a4969ae Anton Vasilyev 2018-07-27 222 f64122c1f6ade3 Dave Airlie 2013-02-25 223 qdev->release_ring = qxl_ring_create( f64122c1f6ade3 Dave Airlie 2013-02-25 224 &(qdev->ram_header->release_ring_hdr), f64122c1f6ade3 Dave Airlie 2013-02-25 225 sizeof(uint64_t), f64122c1f6ade3 Dave Airlie 2013-02-25 226 QXL_RELEASE_RING_SIZE, 0, true, f64122c1f6ade3 Dave Airlie 2013-02-25 227 NULL); f64122c1f6ade3 Dave Airlie 2013-02-25 228 5043348a4969ae Anton Vasilyev 2018-07-27 229 if (!qdev->release_ring) { 5043348a4969ae Anton Vasilyev 2018-07-27 230 DRM_ERROR("Unable to create release ring\n"); 5043348a4969ae Anton Vasilyev 2018-07-27 231 r = -ENOMEM; 5043348a4969ae Anton Vasilyev 2018-07-27 232 goto cursor_ring_free; 5043348a4969ae Anton Vasilyev 2018-07-27 233 } f64122c1f6ade3 Dave Airlie 2013-02-25 234 f64122c1f6ade3 Dave Airlie 2013-02-25 235 idr_init(&qdev->release_idr); f64122c1f6ade3 Dave Airlie 2013-02-25 236 spin_lock_init(&qdev->release_idr_lock); 2f453ed4038526 Maarten Lankhorst 2014-04-02 237 spin_lock_init(&qdev->release_lock); f64122c1f6ade3 Dave Airlie 2013-02-25 238 f64122c1f6ade3 Dave Airlie 2013-02-25 239 idr_init(&qdev->surf_id_idr); f64122c1f6ade3 Dave Airlie 2013-02-25 240 spin_lock_init(&qdev->surf_id_idr_lock); f64122c1f6ade3 Dave Airlie 2013-02-25 241 f64122c1f6ade3 Dave Airlie 2013-02-25 242 mutex_init(&qdev->async_io_mutex); f64122c1f6ade3 Dave Airlie 2013-02-25 243 f64122c1f6ade3 Dave Airlie 2013-02-25 244 /* reset the device into a known state - no memslots, no primary f64122c1f6ade3 Dave Airlie 2013-02-25 245 * created, no surfaces. */ f64122c1f6ade3 Dave Airlie 2013-02-25 246 qxl_io_reset(qdev); f64122c1f6ade3 Dave Airlie 2013-02-25 247 f64122c1f6ade3 Dave Airlie 2013-02-25 248 /* must initialize irq before first async io - slot creation */ f64122c1f6ade3 Dave Airlie 2013-02-25 249 r = qxl_irq_init(qdev); 5043348a4969ae Anton Vasilyev 2018-07-27 250 if (r) { 5043348a4969ae Anton Vasilyev 2018-07-27 251 DRM_ERROR("Unable to init qxl irq\n"); 2ec6bd67b76ea0 Gerd Hoffmann 2019-01-18 252 goto release_ring_free; 5043348a4969ae Anton Vasilyev 2018-07-27 253 } f64122c1f6ade3 Dave Airlie 2013-02-25 254 f64122c1f6ade3 Dave Airlie 2013-02-25 255 /* f64122c1f6ade3 Dave Airlie 2013-02-25 256 * Note that virtual is surface0. We rely on the single ioremap done f64122c1f6ade3 Dave Airlie 2013-02-25 257 * before. f64122c1f6ade3 Dave Airlie 2013-02-25 258 */ 2ec6bd67b76ea0 Gerd Hoffmann 2019-01-18 259 setup_slot(qdev, &qdev->main_slot, 0, "main", f64122c1f6ade3 Dave Airlie 2013-02-25 260 (unsigned long)qdev->vram_base, 2ec6bd67b76ea0 Gerd Hoffmann 2019-01-18 261 (unsigned long)qdev->rom->ram_header_offset); 2ec6bd67b76ea0 Gerd Hoffmann 2019-01-18 262 setup_slot(qdev, &qdev->surfaces_slot, 1, "surfaces", d9bbf1895f354c Gerd Hoffmann 2013-10-11 263 (unsigned long)qdev->surfaceram_base, d9bbf1895f354c Gerd Hoffmann 2013-10-11 264 (unsigned long)qdev->surfaceram_size); f64122c1f6ade3 Dave Airlie 2013-02-25 265 f64122c1f6ade3 Dave Airlie 2013-02-25 266 INIT_WORK(&qdev->gc_work, qxl_gc_work); f64122c1f6ade3 Dave Airlie 2013-02-25 267 f64122c1f6ade3 Dave Airlie 2013-02-25 268 return 0; 5043348a4969ae Anton Vasilyev 2018-07-27 269 5043348a4969ae Anton Vasilyev 2018-07-27 270 release_ring_free: 5043348a4969ae Anton Vasilyev 2018-07-27 271 qxl_ring_free(qdev->release_ring); 5043348a4969ae Anton Vasilyev 2018-07-27 272 cursor_ring_free: 5043348a4969ae Anton Vasilyev 2018-07-27 273 qxl_ring_free(qdev->cursor_ring); 5043348a4969ae Anton Vasilyev 2018-07-27 274 command_ring_free: 5043348a4969ae Anton Vasilyev 2018-07-27 275 qxl_ring_free(qdev->command_ring); 5043348a4969ae Anton Vasilyev 2018-07-27 276 ram_header_unmap: 5043348a4969ae Anton Vasilyev 2018-07-27 @277 iounmap(qdev->ram_header); 5043348a4969ae Anton Vasilyev 2018-07-27 278 bo_fini: 5043348a4969ae Anton Vasilyev 2018-07-27 279 qxl_bo_fini(qdev); 5043348a4969ae Anton Vasilyev 2018-07-27 280 rom_unmap: 5043348a4969ae Anton Vasilyev 2018-07-27 @281 iounmap(qdev->rom); 5043348a4969ae Anton Vasilyev 2018-07-27 282 surface_mapping_free: 5043348a4969ae Anton Vasilyev 2018-07-27 283 io_mapping_free(qdev->surface_mapping); 5043348a4969ae Anton Vasilyev 2018-07-27 284 vram_mapping_free: 5043348a4969ae Anton Vasilyev 2018-07-27 285 io_mapping_free(qdev->vram_mapping); 5043348a4969ae Anton Vasilyev 2018-07-27 286 return r; f64122c1f6ade3 Dave Airlie 2013-02-25 287 } f64122c1f6ade3 Dave Airlie 2013-02-25 288
:::::: The code at line 277 was first introduced by commit :::::: 5043348a4969ae1661c008efe929abd0d76e3792 drm: qxl: Fix error handling at qxl_device_init
:::::: TO: Anton Vasilyev <vasilyev@ispras.ru> :::::: CC: Gerd Hoffmann <kraxel@redhat.com>
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |