powerpc: add check for initialized driver data to pmi driver
PATCH 1/2 powerpc: add check for initialized driver data to pmi driver
From: Christian Krafft <[email protected]>
This patch adds a check for the private driver data to be initialized. The bug showed up, as the caller found a pmi device by it's type. Whereas the pmi driver probes for the type and the name. Since the name was not as the driver expected, it did not initialize. A more relaxed probing will be supplied with an extra patch, too.
arch/powerpc/sysdev/pmi.c +7 -2
@@ -264,6 +264,9 @@ void pmi_register_handler(struct of_devistruct pmi_data *data; data = device->dev.driver_data; +if (!data) +return ; +spin_lock (&data->handler_spinlock);list_add_tail (&handler->node, &data->handler);spin_unlock (&data->handler_spinlock);
@@ -274,10 +277,12 @@ void pmi_unregister_handler(struct of_de struct pmi_handler *handler) {struct pmi_data *data; + data = device->dev.driver_data; -pr_debug ("pmi: unregistering handler %p\n" , handler); +if (!data) +return ; - data = device->dev.driver_data; +pr_debug ("pmi: unregistering handler %p\n" , handler);spin_lock (&data->handler_spinlock);list_del (&handler->node);
Signature · 13 lines
Mit freundlichen Gruessen, kind regards, Christian Krafft IBM Systems & Technology Group, Linux Kernel Development IT Specialist Vorsitzender des Aufsichtsrats: Johann Weihen Geschaeftsfuehrung: Herbert Kircher Sitz der Gesellschaft: Boeblingen Registriergericht: Amtsgericht Stuttgart, HRB 243294
Quoted 60 lines · Christian Krafft
From: Christian Krafft <[email protected]>
This patch adds a check for the private driver data to be initialized. The bug showed up, as the caller found a pmi device by it's type. Whereas the pmi driver probes for the type and the name. Since the name was not as the driver expected, it did not initialize. A more relaxed probing will be supplied with an extra patch, too.Signed-off-by Christian Krafft <[email protected]>Signed-off-by Arnd Bergmann <[email protected]>Index:
sdk3/arch/powerpc/sysdev/pmi.c
===================================================================arch/powerpc/sysdev/pmi.c +7
-2@@ -264,6 +264,9 @@ void pmi_register_handler(struct of_devistruct pmi_data *data; data = device->dev.driver_data; +if (!data) +return ; +spin_lock (&data->handler_spinlock);list_add_tail (&handler->node, &data->handler);spin_unlock (&data->handler_spinlock);@@ -274,10 +277,12 @@ void pmi_unregister_handler(struct of_de struct pmi_handler *handler) {struct pmi_data *data; + data = device->dev.driver_data; -pr_debug ("pmi: unregistering handler %p\n" , handler); +if (!data) +return ; - data = device->dev.driver_data; +pr_debug ("pmi: unregistering handler %p\n" , handler);spin_lock (&data->handler_spinlock);list_del (&handler->node);Signature · 19 lines
-- Mit freundlichen Gruessen, kind regards, Christian Krafft IBM Systems & Technology Group, Linux Kernel Development IT Specialist Vorsitzender des Aufsichtsrats: Johann Weihen Geschaeftsfuehrung: Herbert Kircher Sitz der Gesellschaft: Boeblingen Registriergericht: Amtsgericht Stuttgart, HRB 243294 _______________________________________________ Linuxppc-dev mailing list [email protected] https://ozlabs.org/mailman/listinfo/linuxppc-dev