net: move 6lowpan compression code to separate module
authorDmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
Tue, 14 Jan 2014 22:50:40 +0000 (02:50 +0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jan 2014 23:36:38 +0000 (15:36 -0800)
IEEE 802.15.4 and Bluetooth networking stacks share 6lowpan compression
code. Instead of introducing Makefile/Kconfig hacks, build this code as
a separate module referenced from both ieee802154 and bluetooth modules.

This fixes the following build error observed in some kernel
configurations:

net/built-in.o: In function `header_create': 6lowpan.c:(.text+0x166149): undefined reference to `lowpan_header_compress'
net/built-in.o: In function `bt_6lowpan_recv': (.text+0x166b3c): undefined reference to `lowpan_process_data'

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/Makefile
net/bluetooth/Kconfig
net/ieee802154/Kconfig
net/ieee802154/Makefile

index 8fa2f91517f1b541094f9f46c6cc8173b1c7ea93..cbbbe6d657caf15e670c46b8999872bf360ac801 100644 (file)
@@ -57,7 +57,7 @@ obj-$(CONFIG_CAIF)            += caif/
 ifneq ($(CONFIG_DCB),)
 obj-y                          += dcb/
 endif
-obj-$(CONFIG_IEEE802154)       += ieee802154/
+obj-y                          += ieee802154/
 obj-$(CONFIG_MAC802154)                += mac802154/
 
 ifeq ($(CONFIG_NET),y)
index d3f3f7b1d32cd06b082142bcbce02c630cd4eb20..985b56070d2608c0e24965aa0c77d7b24498509a 100644 (file)
@@ -12,6 +12,7 @@ menuconfig BT
        select CRYPTO_AES
        select CRYPTO_ECB
        select CRYPTO_SHA256
+       select 6LOWPAN_IPHC
        help
          Bluetooth is low-cost, low-power, short-range wireless technology.
          It was designed as a replacement for cables and other short-range
index b2e06df0076c85ea09b58187d468b8307cd03ede..9c9879d5ea64e7e3e6fe04e1de3675d3ed3c256c 100644 (file)
@@ -13,5 +13,12 @@ config IEEE802154
 config IEEE802154_6LOWPAN
        tristate "6lowpan support over IEEE 802.15.4"
        depends on IEEE802154 && IPV6
+       select 6LOWPAN_IPHC
        ---help---
        IPv6 compression over IEEE 802.15.4.
+
+config 6LOWPAN_IPHC
+       tristate
+       ---help---
+         6lowpan compression code which is shared between IEEE 802.15.4 and Bluetooth
+         stacks.
index 951a83ee8af4fb35c8dabc459c5c2d257f452eb7..e8f05885ced6806f1139a053ee8ea4fa1b228823 100644 (file)
@@ -1,5 +1,6 @@
 obj-$(CONFIG_IEEE802154) += ieee802154.o af_802154.o
-obj-$(CONFIG_IEEE802154_6LOWPAN) += 6lowpan.o 6lowpan_iphc.o
+obj-$(CONFIG_IEEE802154_6LOWPAN) += 6lowpan.o
+obj-$(CONFIG_6LOWPAN_IPHC) += 6lowpan_iphc.o
 
 ieee802154-y := netlink.o nl-mac.o nl-phy.o nl_policy.o wpan-class.o
 af_802154-y := af_ieee802154.o raw.o dgram.o