On Thu, Oct 09, 2014 at 10:34:21AM +0100, Markos Chandras wrote: > leds-sead3.c:(.text+0x7dc): undefined reference to `led_classdev_unregister' > leds-sead3.c:(.text+0x7e8): undefined reference to `led_classdev_unregister' > > Reviewed-by: Steven J. Hill <Steven.Hill@xxxxxxxxxx> > Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx> Hmm... I think there's a whole lot more broken. Let's start with the Makefile: -obj-y += leds-sead3.o sead3-leds.o Very creative filenames. No way to know in what way foo-bar and bar-foo are different. But let's take a look at sead3-leds: [...] module_init(led_init); MODULE_AUTHOR("Chris Dearman <chris@xxxxxxxx>"); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("LED probe driver for SEAD-3"); But although you were trying to make this a module, this better shouldn't be one, the devices should always be registered if they're there, driver enabled or not. Anyway this should probably become a device_initcall() and all the module bits should go. And now let's take a look at sead3-led.. oh wait, that's leds-sead3 - did I bitch about the filename before? That's a complete device driver and it blows up primarily because it lives in a directory where it shouldn't be at all. Ralf