History

drivers/gpio/gpio-generic.c: fix build errors

Building a kernel with hotplug disabled results in a link failure: `bgpio_remove' referenced in section `___ksymtab_gpl+bgpio_remove' of drivers/built-in.o: defined in discarded section `.devexit.text' of drivers/built-in.o This is because of bgpio_remove() is exported. It is illegal to export symbols which are discarded either at link time or as part of an init/exit section. Fix this by dropping the __devexit attributation from bgpio_remove(). Also drop the __devinit attributation from bgpio_init().

Russell King committed 15 years ago

Commit 4f5b0481 parent fa2563e2 files · +10 −20Browse files

Unified · Split

2 files
  1. drivers/gpio/gpio-generic.c +5 −10
  2. include/linux/basic_mmio_gpio.h +5 −10
drivers/gpio/gpio-generic.c+5−10
@@ -351,7 +351,7 @@ static int bgpio_setup_direction(struct bgpio_chip *bgc, · 350 unmodified lines
351 return 0;351 return 0;
352}352}
353 353
354int __devexit bgpio_remove(struct bgpio_chip *bgc)354int bgpio_remove(struct bgpio_chip *bgc)
355{355{
356 int err = gpiochip_remove(&bgc->gc);356 int err = gpiochip_remove(&bgc->gc);
357 357
@@ -361,15 +361,10 @@ int __devexit bgpio_remove(struct bgpio_chip *bgc) · 3 unmodified lines
361}361}
362EXPORT_SYMBOL_GPL(bgpio_remove);362EXPORT_SYMBOL_GPL(bgpio_remove);
363 363
364int __devinit bgpio_init(struct bgpio_chip *bgc,364int bgpio_init(struct bgpio_chip *bgc, struct device *dev,
365 struct device *dev,365 unsigned long sz, void __iomem *dat, void __iomem *set,
366 unsigned long sz,366 void __iomem *clr, void __iomem *dirout, void __iomem *dirin,
367 void __iomem *dat,367 bool big_endian)
368 void __iomem *set,
369 void __iomem *clr,
370 void __iomem *dirout,
371 void __iomem *dirin,
372 bool big_endian)
373{368{
374 int ret;369 int ret;
375 370
include/linux/basic_mmio_gpio.h+5−10
@@ -63,15 +63,10 @@ static inline struct bgpio_chip *to_bgpio_chip(struct gpio_chip *gc) · 62 unmodified lines
63 return container_of(gc, struct bgpio_chip, gc);63 return container_of(gc, struct bgpio_chip, gc);
64}64}
65 65
66int __devexit bgpio_remove(struct bgpio_chip *bgc);66int bgpio_remove(struct bgpio_chip *bgc);
67int __devinit bgpio_init(struct bgpio_chip *bgc,67int bgpio_init(struct bgpio_chip *bgc, struct device *dev,
68 struct device *dev,68 unsigned long sz, void __iomem *dat, void __iomem *set,
69 unsigned long sz,69 void __iomem *clr, void __iomem *dirout, void __iomem *dirin,
70 void __iomem *dat,70 bool big_endian);
71 void __iomem *set,
72 void __iomem *clr,
73 void __iomem *dirout,
74 void __iomem *dirin,
75 bool big_endian);
76 71
77#endif /* __BASIC_MMIO_GPIO_H */72#endif /* __BASIC_MMIO_GPIO_H */