All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: lkp@intel.com, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org, Hans de Goede <hdegoede@redhat.com>
Subject: drivers/gpu/drm/vboxvideo/vbox_main.c:146 vbox_hw_init() warn: 'vbox->guest_heap' not released on lines: 126.
Date: Tue, 6 Oct 2020 15:51:11 +0300	[thread overview]
Message-ID: <20201006125111.GF4282@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 7927 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   472e5b056f000a778abb41f1e443de58eb259783
commit: 8558de401b5fbbfb1df96d6986bba3c79cd47401 drm/vboxvideo: use managed pci functions
config: i386-randconfig-m021-20201002 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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:
drivers/gpu/drm/vboxvideo/vbox_main.c:146 vbox_hw_init() warn: 'vbox->guest_heap' not released on lines: 126.

vim +146 drivers/gpu/drm/vboxvideo/vbox_main.c

d46709094deb69 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2018-09-18  107  int vbox_hw_init(struct vbox_private *vbox)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  108  {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  109  	int ret = -ENOMEM;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  110  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  111  	vbox->full_vram_size = inl(VBE_DISPI_IOPORT_DATA);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  112  	vbox->any_pitch = vbox_check_supported(VBE_DISPI_ID_ANYX);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  113  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  114  	DRM_INFO("VRAM %08x\n", vbox->full_vram_size);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  115  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  116  	/* Map guest-heap at end of vram */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  117  	vbox->guest_heap =
01648890f336a3 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2018-09-18  118  	    pci_iomap_range(vbox->ddev.pdev, 0, GUEST_HEAP_OFFSET(vbox),
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  119  			    GUEST_HEAP_SIZE);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  120  	if (!vbox->guest_heap)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  121  		return -ENOMEM;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  122  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  123  	/* Create guest-heap mem-pool use 2^4 = 16 byte chunks */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  124  	vbox->guest_pool = gen_pool_create(4, -1);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  125  	if (!vbox->guest_pool)
8558de401b5fbb drivers/gpu/drm/vboxvideo/vbox_main.c Daniel Vetter 2020-04-15  126  		return -ENOMEM;

Need to unmap vbox->guest_heap on error.  Probably all error paths?

dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  127  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  128  	ret = gen_pool_add_virt(vbox->guest_pool,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  129  				(unsigned long)vbox->guest_heap,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  130  				GUEST_HEAP_OFFSET(vbox),
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  131  				GUEST_HEAP_USABLE_SIZE, -1);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  132  	if (ret)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  133  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  134  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  135  	ret = hgsmi_test_query_conf(vbox->guest_pool);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  136  	if (ret) {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  137  		DRM_ERROR("vboxvideo: hgsmi_test_query_conf failed\n");
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  138  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  139  	}
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  140  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  141  	/* Reduce available VRAM size to reflect the guest heap. */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  142  	vbox->available_vram_size = GUEST_HEAP_OFFSET(vbox);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  143  	/* Linux drm represents monitors as a 32-bit array. */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  144  	hgsmi_query_conf(vbox->guest_pool, VBOX_VBVA_CONF32_MONITOR_COUNT,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  145  			 &vbox->num_crtcs);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06 @146  	vbox->num_crtcs = clamp_t(u32, vbox->num_crtcs, 1, VBOX_MAX_SCREENS);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  147  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  148  	if (!have_hgsmi_mode_hints(vbox)) {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  149  		ret = -ENOTSUPP;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  150  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  151  	}
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  152  
01648890f336a3 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2018-09-18  153  	vbox->last_mode_hints = devm_kcalloc(vbox->ddev.dev, vbox->num_crtcs,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  154  					     sizeof(struct vbva_modehint),
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  155  					     GFP_KERNEL);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  156  	if (!vbox->last_mode_hints) {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  157  		ret = -ENOMEM;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  158  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  159  	}
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  160  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  161  	ret = vbox_accel_init(vbox);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  162  	if (ret)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  163  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  164  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  165  	return 0;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  166  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  167  err_destroy_guest_pool:
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  168  	gen_pool_destroy(vbox->guest_pool);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  169  	return ret;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  170  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 32255 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: drivers/gpu/drm/vboxvideo/vbox_main.c:146 vbox_hw_init() warn: 'vbox->guest_heap' not released on lines: 126.
Date: Tue, 06 Oct 2020 15:51:11 +0300	[thread overview]
Message-ID: <20201006125111.GF4282@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 8015 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   472e5b056f000a778abb41f1e443de58eb259783
commit: 8558de401b5fbbfb1df96d6986bba3c79cd47401 drm/vboxvideo: use managed pci functions
config: i386-randconfig-m021-20201002 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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:
drivers/gpu/drm/vboxvideo/vbox_main.c:146 vbox_hw_init() warn: 'vbox->guest_heap' not released on lines: 126.

vim +146 drivers/gpu/drm/vboxvideo/vbox_main.c

d46709094deb69 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2018-09-18  107  int vbox_hw_init(struct vbox_private *vbox)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  108  {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  109  	int ret = -ENOMEM;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  110  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  111  	vbox->full_vram_size = inl(VBE_DISPI_IOPORT_DATA);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  112  	vbox->any_pitch = vbox_check_supported(VBE_DISPI_ID_ANYX);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  113  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  114  	DRM_INFO("VRAM %08x\n", vbox->full_vram_size);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  115  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  116  	/* Map guest-heap at end of vram */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  117  	vbox->guest_heap =
01648890f336a3 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2018-09-18  118  	    pci_iomap_range(vbox->ddev.pdev, 0, GUEST_HEAP_OFFSET(vbox),
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  119  			    GUEST_HEAP_SIZE);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  120  	if (!vbox->guest_heap)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  121  		return -ENOMEM;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  122  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  123  	/* Create guest-heap mem-pool use 2^4 = 16 byte chunks */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  124  	vbox->guest_pool = gen_pool_create(4, -1);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  125  	if (!vbox->guest_pool)
8558de401b5fbb drivers/gpu/drm/vboxvideo/vbox_main.c Daniel Vetter 2020-04-15  126  		return -ENOMEM;

Need to unmap vbox->guest_heap on error.  Probably all error paths?

dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  127  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  128  	ret = gen_pool_add_virt(vbox->guest_pool,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  129  				(unsigned long)vbox->guest_heap,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  130  				GUEST_HEAP_OFFSET(vbox),
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  131  				GUEST_HEAP_USABLE_SIZE, -1);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  132  	if (ret)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  133  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  134  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  135  	ret = hgsmi_test_query_conf(vbox->guest_pool);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  136  	if (ret) {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  137  		DRM_ERROR("vboxvideo: hgsmi_test_query_conf failed\n");
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  138  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  139  	}
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  140  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  141  	/* Reduce available VRAM size to reflect the guest heap. */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  142  	vbox->available_vram_size = GUEST_HEAP_OFFSET(vbox);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  143  	/* Linux drm represents monitors as a 32-bit array. */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  144  	hgsmi_query_conf(vbox->guest_pool, VBOX_VBVA_CONF32_MONITOR_COUNT,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  145  			 &vbox->num_crtcs);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06 @146  	vbox->num_crtcs = clamp_t(u32, vbox->num_crtcs, 1, VBOX_MAX_SCREENS);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  147  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  148  	if (!have_hgsmi_mode_hints(vbox)) {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  149  		ret = -ENOTSUPP;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  150  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  151  	}
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  152  
01648890f336a3 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2018-09-18  153  	vbox->last_mode_hints = devm_kcalloc(vbox->ddev.dev, vbox->num_crtcs,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  154  					     sizeof(struct vbva_modehint),
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  155  					     GFP_KERNEL);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  156  	if (!vbox->last_mode_hints) {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  157  		ret = -ENOMEM;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  158  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  159  	}
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  160  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  161  	ret = vbox_accel_init(vbox);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  162  	if (ret)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  163  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  164  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  165  	return 0;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  166  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  167  err_destroy_guest_pool:
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  168  	gen_pool_destroy(vbox->guest_pool);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  169  	return ret;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  170  }

---
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: 32255 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: drivers/gpu/drm/vboxvideo/vbox_main.c:146 vbox_hw_init() warn: 'vbox->guest_heap' not released on lines: 126.
Date: Tue, 06 Oct 2020 15:51:11 +0300	[thread overview]
Message-ID: <20201006125111.GF4282@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 8015 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   472e5b056f000a778abb41f1e443de58eb259783
commit: 8558de401b5fbbfb1df96d6986bba3c79cd47401 drm/vboxvideo: use managed pci functions
config: i386-randconfig-m021-20201002 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 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:
drivers/gpu/drm/vboxvideo/vbox_main.c:146 vbox_hw_init() warn: 'vbox->guest_heap' not released on lines: 126.

vim +146 drivers/gpu/drm/vboxvideo/vbox_main.c

d46709094deb69 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2018-09-18  107  int vbox_hw_init(struct vbox_private *vbox)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  108  {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  109  	int ret = -ENOMEM;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  110  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  111  	vbox->full_vram_size = inl(VBE_DISPI_IOPORT_DATA);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  112  	vbox->any_pitch = vbox_check_supported(VBE_DISPI_ID_ANYX);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  113  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  114  	DRM_INFO("VRAM %08x\n", vbox->full_vram_size);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  115  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  116  	/* Map guest-heap at end of vram */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  117  	vbox->guest_heap =
01648890f336a3 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2018-09-18  118  	    pci_iomap_range(vbox->ddev.pdev, 0, GUEST_HEAP_OFFSET(vbox),
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  119  			    GUEST_HEAP_SIZE);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  120  	if (!vbox->guest_heap)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  121  		return -ENOMEM;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  122  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  123  	/* Create guest-heap mem-pool use 2^4 = 16 byte chunks */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  124  	vbox->guest_pool = gen_pool_create(4, -1);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  125  	if (!vbox->guest_pool)
8558de401b5fbb drivers/gpu/drm/vboxvideo/vbox_main.c Daniel Vetter 2020-04-15  126  		return -ENOMEM;

Need to unmap vbox->guest_heap on error.  Probably all error paths?

dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  127  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  128  	ret = gen_pool_add_virt(vbox->guest_pool,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  129  				(unsigned long)vbox->guest_heap,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  130  				GUEST_HEAP_OFFSET(vbox),
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  131  				GUEST_HEAP_USABLE_SIZE, -1);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  132  	if (ret)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  133  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  134  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  135  	ret = hgsmi_test_query_conf(vbox->guest_pool);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  136  	if (ret) {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  137  		DRM_ERROR("vboxvideo: hgsmi_test_query_conf failed\n");
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  138  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  139  	}
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  140  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  141  	/* Reduce available VRAM size to reflect the guest heap. */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  142  	vbox->available_vram_size = GUEST_HEAP_OFFSET(vbox);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  143  	/* Linux drm represents monitors as a 32-bit array. */
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  144  	hgsmi_query_conf(vbox->guest_pool, VBOX_VBVA_CONF32_MONITOR_COUNT,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  145  			 &vbox->num_crtcs);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06 @146  	vbox->num_crtcs = clamp_t(u32, vbox->num_crtcs, 1, VBOX_MAX_SCREENS);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  147  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  148  	if (!have_hgsmi_mode_hints(vbox)) {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  149  		ret = -ENOTSUPP;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  150  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  151  	}
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  152  
01648890f336a3 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2018-09-18  153  	vbox->last_mode_hints = devm_kcalloc(vbox->ddev.dev, vbox->num_crtcs,
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  154  					     sizeof(struct vbva_modehint),
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  155  					     GFP_KERNEL);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  156  	if (!vbox->last_mode_hints) {
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  157  		ret = -ENOMEM;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  158  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  159  	}
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  160  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  161  	ret = vbox_accel_init(vbox);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  162  	if (ret)
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  163  		goto err_destroy_guest_pool;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  164  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  165  	return 0;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  166  
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  167  err_destroy_guest_pool:
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  168  	gen_pool_destroy(vbox->guest_pool);
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  169  	return ret;
dd55d44f408419 drivers/staging/vboxvideo/vbox_main.c Hans de Goede 2017-07-06  170  }

---
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: 32255 bytes --]

             reply	other threads:[~2020-10-06 17:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-06 12:51 Dan Carpenter [this message]
2020-10-06 12:51 ` drivers/gpu/drm/vboxvideo/vbox_main.c:146 vbox_hw_init() warn: 'vbox->guest_heap' not released on lines: 126 Dan Carpenter
2020-10-06 12:51 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2020-10-02 10:31 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201006125111.GF4282@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=hdegoede@redhat.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kbuild@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.