Re: [PATCH] drm/bochs: Fix NULL dereference on atomic_disable helper

From: Gerd Hoffmann
Date: Mon Mar 11 2019 - 02:22:03 EST


On Sun, Mar 10, 2019 at 06:21:50PM -0300, Rodrigo Siqueira wrote:
> When the subtest basic-plain-flip from IGT project was executed on Bochs
> driver, the following bug appears:
>
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000

> ? drm_atomic_helper_commit_modeset_disables+0x396/0x3e0 [drm_kms_helper]

> +static void bochs_crtc_atomic_disable(struct drm_crtc *crtc,
> + struct drm_crtc_state *old_state)
> +{
> +}
> +
> static void bochs_crtc_atomic_flush(struct drm_crtc *crtc,
> struct drm_crtc_state *old_crtc_state)
> {
> @@ -66,6 +71,7 @@ static const struct drm_crtc_funcs bochs_crtc_funcs = {
> static const struct drm_crtc_helper_funcs bochs_helper_funcs = {
> .mode_set_nofb = bochs_crtc_mode_set_nofb,
> .atomic_enable = bochs_crtc_atomic_enable,
> + .atomic_disable = bochs_crtc_atomic_disable,

Shouldn't we make the callback optional instead of adding empty dummy
functions to drivers?

cheers,
Gerd