Re: 2.6.21-mm2 -- Compile error: include/linux/power_supply.h:125: error: field âchanged_workâ has incomplete type

From: Anton Vorontsov
Date: Wed May 09 2007 - 06:51:17 EST


On Wed, May 09, 2007 at 03:43:34AM -0700, Miles Lane wrote:
> CC drivers/power/power_supply_core.o
> In file included from drivers/power/power_supply_core.c:18:
> include/linux/power_supply.h:125: error: field 'changed_work' has
> incomplete type
> drivers/power/power_supply_core.c: In function 'power_supply_changed_work':
> drivers/power/power_supply_core.c:25: warning: type defaults to 'int'
> in declaration of '__mptr'
> drivers/power/power_supply_core.c:25: warning: initialization from
> incompatible pointer type
> drivers/power/power_supply_core.c: In function 'power_supply_changed':
> drivers/power/power_supply_core.c:57: warning: implicit declaration of
> function 'schedule_work'
> drivers/power/power_supply_core.c: In function 'power_supply_register':
> drivers/power/power_supply_core.c:103: warning: implicit declaration
> of function 'INIT_WORK'
> drivers/power/power_supply_core.c: In function 'power_supply_unregister':
> drivers/power/power_supply_core.c:128: warning: implicit declaration
> of function 'flush_scheduled_work'
> make[2]: *** [drivers/power/power_supply_core.o] Error 1

Oh oh.. yet another refactors in -mm. It compiles clean on bare
2.6.21, though. But power_supply.h is indeed wrong, it assumed that
workqueue.h included by other headers, it is not. I hope following patch
will fix it.


diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 14e617b..2f47df7 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -14,6 +14,7 @@
#define __LINUX_POWER_SUPPLY_H__

#include <linux/device.h>
+#include <linux/workqueue.h>
#include <linux/leds.h>

/*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/