[PATCH] dcdbas: dcdbas_pdev referenced after platform_device_unregister on exit

smi_data_buf_free() references dcdbas_pdev when calling
dma_free_coherent().  In dcdbas_exit(), smi_data_buf_free() is called after
platform_device_unregister(dcdbas_pdev).

This patch moves platform_device_unregister(dcdbas_pdev) after
smi_data_buf_free() in dcdbas_exit().

Signed-off-by: Doug Warzecha <Douglas_Warzecha@dell.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Doug Warzecha
2006-03-09 17:33:35 -08:00
committed by Linus Torvalds
parent 85a6cd03a9
commit 435a80f610

View File

@@ -39,7 +39,7 @@
#include "dcdbas.h" #include "dcdbas.h"
#define DRIVER_NAME "dcdbas" #define DRIVER_NAME "dcdbas"
#define DRIVER_VERSION "5.6.0-1" #define DRIVER_VERSION "5.6.0-2"
#define DRIVER_DESCRIPTION "Dell Systems Management Base Driver" #define DRIVER_DESCRIPTION "Dell Systems Management Base Driver"
static struct platform_device *dcdbas_pdev; static struct platform_device *dcdbas_pdev;
@@ -581,9 +581,13 @@ static int __init dcdbas_init(void)
*/ */
static void __exit dcdbas_exit(void) static void __exit dcdbas_exit(void)
{ {
platform_device_unregister(dcdbas_pdev); /*
* make sure functions that use dcdbas_pdev are called
* before platform_device_unregister
*/
unregister_reboot_notifier(&dcdbas_reboot_nb); unregister_reboot_notifier(&dcdbas_reboot_nb);
smi_data_buf_free(); smi_data_buf_free();
platform_device_unregister(dcdbas_pdev);
} }
module_init(dcdbas_init); module_init(dcdbas_init);