Hi,
I don't know if this patch got missed in the list traffic or if I did something 
wrong but it doesn't appear to have been picked up. This is my first time 
contributing so if I did anything wrong some pointers would be appreciated.

Thanks
Frank


> From: dri-devel-bounces+frank.binns=imgtec.com at lists.freedesktop.org 
> [mailto:dri-devel-bounces+frank.binns=imgtec.com at lists.freedesktop.org] On 
> Behalf Of Frank Binns
> Sent: 14 May 2012 16:28
> To: 'airlied at linux.ie'; 'dri-devel at lists.freedesktop.org'
> Subject: [PATCH] drm: fix case where panic notifier isn't unregistered
>
> The framebuffer helper panic notifier is unregistered, in 
> drm_fb_helper_fini(), when kernel_fb_helper_list goes from being non-empty to 
> empty. However, in drm_fb_helper_single_fb_probe(), it's possible for the 
> panic notifier to be registered without an element being added to this list 
> if a driver's probe function returns 0. Make sure that an attempt to add the 
> panic notifier is made only when adding an element to kernel_fb_helper_list.
>
> Signed-off-by: Frank Binns <frank.binns at imgtec.com>
> ---
> drivers/gpu/drm/drm_fb_helper.c |?? 21 ++++++++++-----------
> 1 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index a0d6e89..d3764b3 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -807,21 +807,20 @@ int drm_fb_helper_single_fb_probe(struct drm_fb_helper 
> *fb_helper,
>?????????????????????????????? printk(KERN_INFO "fb%d: %s frame buffer 
>device\n", info->node,
>?????????????????????????????? ???????info->fix.id);
>
> +???????????????????????????? /* Switch back to kernel console on panic */
> +???????????????????????????? /* multi card linked list maybe */
> +???????????????????????????? if (list_empty(&kernel_fb_helper_list)) {
> +???????????????????????????????????????????? printk(KERN_INFO "drm: 
> registered panic notifier\n");
> +???????????????????????????????????????????? 
> atomic_notifier_chain_register(&panic_notifier_list,
> +????????????????????????????????????????????????????????????????????????????????????????????
>  ?????? &paniced);
> +???????????????????????????????????????????? register_sysrq_key('v', 
> &sysrq_drm_fb_helper_restore_op);
> +???????????????????????????? }
> +
> +???????????????????????????? list_add(&fb_helper->kernel_fb_list, 
> &kernel_fb_helper_list);
>?????????????? } else {
>?????????????????????????????? drm_fb_helper_set_par(info);
>?????????????? }
>
> -????????????? /* Switch back to kernel console on panic */
> -????????????? /* multi card linked list maybe */
> -????????????? if (list_empty(&kernel_fb_helper_list)) {
> -????????????????????????????? printk(KERN_INFO "drm: registered panic 
> notifier\n");
> -????????????????????????????? 
> atomic_notifier_chain_register(&panic_notifier_list,
> -?????????????????????????????????????????????????????????????????????????????
>  ?????? &paniced);
> -????????????????????????????? register_sysrq_key('v', 
> &sysrq_drm_fb_helper_restore_op);
> -????????????? }
> -????????????? if (new_fb)
> -????????????????????????????? list_add(&fb_helper->kernel_fb_list, 
> &kernel_fb_helper_list);
> -
>?????????????? return 0;
> }
> EXPORT_SYMBOL(drm_fb_helper_single_fb_probe);
> -- 
> 1.7.5.4


Reply via email to