[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:
committed by
Linus Torvalds
parent
85a6cd03a9
commit
435a80f610
@@ -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);
|
||||||
|
Reference in New Issue
Block a user