Hi,
Those are three fixes for race conditions we currently have in the vc4 HDMI
driver with regard to the interrupts handling.
The first two are fixing an issue where the handler will be removed by devm
after the resources it uses have been free'd already.
The last one is there to deal with an interrupt coming in the window between
the end of the driver's bind and the DRM device registration.
Let me know what you think,
Maxime
Maxime Ripard (3):
drm/vc4: hdmi: Drop devm interrupt …
[View More]handler for CEC interrupts
drm/vc4: hdmi: Drop devm interrupt handler for hotplug interrupts
drm/vc4: hdmi: Only call into DRM framework if registered
drivers/gpu/drm/vc4/vc4_hdmi.c | 92 +++++++++++++++++++++++-----------
1 file changed, 62 insertions(+), 30 deletions(-)
--
2.31.1
[View Less]
The comment refers to drm_irq_install() et al, which are not used by
omapdrm. The functions are part of the DRM IRQ midlayer and shouldn't
be used any longer. Remove the comment.
Signed-off-by: Thomas Zimmermann <tzimmermann(a)suse.de>
---
drivers/gpu/drm/omapdrm/omap_irq.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/drivers/gpu/drm/omapdrm/omap_irq.c b/drivers/gpu/drm/omapdrm/omap_irq.c
index bb6e3fc18204..4aca14dab927 100644
--- a/drivers/gpu/drm/omapdrm/omap_irq.c
+++ b/…
[View More]drivers/gpu/drm/omapdrm/omap_irq.c
@@ -253,13 +253,6 @@ static const u32 omap_underflow_irqs[] = {
[OMAP_DSS_VIDEO3] = DISPC_IRQ_VID3_FIFO_UNDERFLOW,
};
-/*
- * We need a special version, instead of just using drm_irq_install(),
- * because we need to register the irq via omapdss. Once omapdss and
- * omapdrm are merged together we can assign the dispc hwmod data to
- * ourselves and drop these and just use drm_irq_{install,uninstall}()
- */
-
int omap_drm_irq_install(struct drm_device *dev)
{
struct omap_drm_private *priv = dev->dev_private;
--
2.32.0
[View Less]
Hi Dave and Daniel,
here's the PR for drm-misc-fixes. I merged drm-misc-next-fixes into
it to pick up patches that were left over from the previous release
cycle. The vmwgfx change comes from that. The other patches fix
current errors.
Best regards
Thomas
drm-misc-fixes-2021-07-15:
Short summary of fixes pull (less than what git shortlog provides):
* fbdev: Avoid use-after-free by not deleting current video mode
* ttm: Avoid NULL-ptr deref in ttm_range_man_fini()
* vmwgfx: Fix a merge …
[View More]commit
The following changes since commit 1e7b5812f4890ad84058bbb6c4a5deddfb2c5b25:
Merge tag 'drm-misc-fixes-2021-07-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes (2021-07-13 15:15:17 +0200)
are available in the Git repository at:
git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-fixes-2021-07-15
for you to fetch changes up to 9e5c772954406829e928dbe59891d08938ead04b:
drm/ttm: add a check against null pointer dereference (2021-07-14 17:16:16 +0200)
----------------------------------------------------------------
Short summary of fixes pull (less than what git shortlog provides):
* fbdev: Avoid use-after-free by not deleting current video mode
* ttm: Avoid NULL-ptr deref in ttm_range_man_fini()
* vmwgfx: Fix a merge commit
----------------------------------------------------------------
Christian König (1):
drm/qxl: add NULL check for bo->resource
Thomas Zimmermann (1):
Merge remote-tracking branch 'drm-misc/drm-misc-next-fixes' into drm-misc-fixes
Zack Rusin (2):
drm/vmwgfx: Fix implicit declaration error
drm/vmwgfx: Fix a bad merge in otable batch takedown
Zhen Lei (1):
fbmem: Do not delete the mode that is still in use
Zheyu Ma (1):
drm/ttm: add a check against null pointer dereference
drivers/gpu/drm/qxl/qxl_ttm.c | 2 +-
drivers/gpu/drm/ttm/ttm_range_manager.c | 3 +++
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 1 +
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 1 -
drivers/video/fbdev/core/fbmem.c | 12 +++++-------
5 files changed, 10 insertions(+), 9 deletions(-)
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
[View Less]
tree: git://anongit.freedesktop.org/tegra/linux.git drm/tegra/for-next
head: b19502d1a683c11f6f2c92ad63c61288b0fbe1a1
commit: cdf631031f3e574b76afed51bda0ccc9d71d4a4e [9/14] drm/tegra: Implement new UAPI
config: arm64-randconfig-r025-20210714 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 0e49c54a8cbd3e779e5526a5888c683c01cc3c50)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -…
[View More]O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
git remote add tegra-drm git://anongit.freedesktop.org/tegra/linux.git
git fetch --no-tags tegra-drm drm/tegra/for-next
git checkout cdf631031f3e574b76afed51bda0ccc9d71d4a4e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/tegra/uapi.c:278:5: warning: no previous prototype for function 'tegra_drm_ioctl_gem_create' [-Wmissing-prototypes]
int tegra_drm_ioctl_gem_create(struct drm_device *drm, void *data,
^
drivers/gpu/drm/tegra/uapi.c:278:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int tegra_drm_ioctl_gem_create(struct drm_device *drm, void *data,
^
static
>> drivers/gpu/drm/tegra/uapi.c:295:5: warning: no previous prototype for function 'tegra_drm_ioctl_gem_mmap' [-Wmissing-prototypes]
int tegra_drm_ioctl_gem_mmap(struct drm_device *drm, void *data,
^
drivers/gpu/drm/tegra/uapi.c:295:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int tegra_drm_ioctl_gem_mmap(struct drm_device *drm, void *data,
^
static
2 warnings generated.
vim +/tegra_drm_ioctl_gem_create +278 drivers/gpu/drm/tegra/uapi.c
277
> 278 int tegra_drm_ioctl_gem_create(struct drm_device *drm, void *data,
279 struct drm_file *file)
280 {
281 struct drm_tegra_gem_create *args = data;
282 struct tegra_bo *bo;
283
284 if (args->flags)
285 return -EINVAL;
286
287 bo = tegra_bo_create_with_handle(file, drm, args->size, args->flags,
288 &args->handle);
289 if (IS_ERR(bo))
290 return PTR_ERR(bo);
291
292 return 0;
293 }
294
> 295 int tegra_drm_ioctl_gem_mmap(struct drm_device *drm, void *data,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[View Less]