From: Chris Boot Use EXPORT_SYMBOL_GPL for new symbols, and declare the struct in the header file for access by other modules. Signed-off-by: Chris Boot Signed-off-by: Andrew Morton --- drivers/char/scx200_gpio.c | 2 +- include/linux/scx200_gpio.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff -puN drivers/char/scx200_gpio.c~scx200_gpio-export-cleanups drivers/char/scx200_gpio.c --- a/drivers/char/scx200_gpio.c~scx200_gpio-export-cleanups +++ a/drivers/char/scx200_gpio.c @@ -44,7 +44,7 @@ struct nsc_gpio_ops scx200_gpio_ops = { .gpio_change = scx200_gpio_change, .gpio_current = scx200_gpio_current }; -EXPORT_SYMBOL(scx200_gpio_ops); +EXPORT_SYMBOL_GPL(scx200_gpio_ops); static int scx200_gpio_open(struct inode *inode, struct file *file) { diff -puN include/linux/scx200_gpio.h~scx200_gpio-export-cleanups include/linux/scx200_gpio.h --- a/include/linux/scx200_gpio.h~scx200_gpio-export-cleanups +++ a/include/linux/scx200_gpio.h @@ -4,6 +4,7 @@ u32 scx200_gpio_configure(unsigned index extern unsigned scx200_gpio_base; extern long scx200_gpio_shadow[2]; +extern struct nsc_gpio_ops scx200_gpio_ops; #define scx200_gpio_present() (scx200_gpio_base!=0) _