[PATCH RESEND] drm: fix case where panic notifier isn't unregistered

2012-05-24 Thread Frank Binns
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 
---
This should hopefully have none of the whitespace damage introduced by my email 
client last time.

 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(_fb_helper_list)) {
+   printk(KERN_INFO "drm: registered panic notifier\n");
+   atomic_notifier_chain_register(_notifier_list,
+  );
+   register_sysrq_key('v', 
_drm_fb_helper_restore_op);
+   }
+
+   list_add(_helper->kernel_fb_list, _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(_fb_helper_list)) {
-   printk(KERN_INFO "drm: registered panic notifier\n");
-   atomic_notifier_chain_register(_notifier_list,
-  );
-   register_sysrq_key('v', _drm_fb_helper_restore_op);
-   }
-   if (new_fb)
-   list_add(_helper->kernel_fb_list, _fb_helper_list);
-
return 0;
 }
 EXPORT_SYMBOL(drm_fb_helper_single_fb_probe);
-- 
1.7.5.4




[PATCH RESEND] drm: fix case where panic notifier isn't unregistered

2012-05-24 Thread Frank Binns
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.bi...@imgtec.com
---
This should hopefully have none of the whitespace damage introduced by my email 
client last time.

 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


___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel