On 2016-01-26 13:18, Emil Velikov wrote: > On 14 January 2016 at 08:23, Meng Yi <meng.yi@xxxxxxx> wrote: >>> >> switch (fb->pixel_format) { >>> >> case DRM_FORMAT_RGB565: >>> >> case DRM_FORMAT_RGB888: >>> >> @@ -85,9 +88,6 @@ static void fsl_dcu_drm_plane_atomic_update(struct >>> drm_plane *plane, >>> >> unsigned int alpha, bpp; >>> >> int index, ret; >>> >> >>> >> - if (!fb) >>> >> - return; >>> >> - >>> > ... which no longer has the !fb check, and we'll crash with null deref >>> > a few lines below ? >>> >>> >>> If there is a legitimate situation where fb is null which also ultimately leads to a >>> atomic_commit, I guess we should keep the return here... >> >> I think I made a mistake here, fb check should not be removed . As Stefan mentioned, if fb check in fsl_dcu_drm_plane_atomic_check return 0, fsl_dcu_drm_plane_atomic_update will ultimately called, and we'll crash since plane->state->fb is NULL. >> > I believe you meant "Emil" in the above ;-) But seriously... afaict a > fair few drivers do a similar !fb (even !state->crtc) check(s)... > which makes me wonder if core DRM isn't the better place for it ? Or > perhaps that's intentional as core provides the flexibility for each > driver to mangle with the fb between .check and .disable ? > There seem to be a consensus to check crtc and fb on atomic_check. However, in atomic_update, some drives do a NULL check on crtc only, and some on both, crtc and fb. The comment in drm_atomic_plane_disabling says CRTC and FB should always be NULL together... So I guess it does not really matter all that much, unless there is anyway a bug. Furthermore, it seems that in the null case, atomic_disable is called anyway (which this driver implements). Not sure if there is another case in which either of this two could be NULL and atomic_update could be called. Since this patch is mainly addressing the null check in atomic_check, I will apply it without the change in atomic_update for now. -- Stefan _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel