From ab9df0516e3a7d30dd437c4884c13d31bc856959 Mon Sep 17 00:00:00 2001 From: Karthikeyan Ramasubramanian Date: Thu, 2 Jan 2014 12:34:19 -0700 Subject: [PATCH] msm: ipc: Support multi-platform Upstream prefers existing drivers be converted to support multiplatform kernels. This requires drivers to be located in generic functionality directories instead of specific mach directories. Move IPC Router Core and Security drivers to the net/ipc_router location to support multi-platform. Move IPC Router SMD & HSIC transport(XPRT) drivers to the drivers/soc/qcom location. Change-Id: I770227f66dcb776b26086426f509568f991db757 Signed-off-by: Karthikeyan Ramasubramanian --- arch/arm/configs/apq8084-perf_defconfig | 9 +- arch/arm/configs/apq8084_defconfig | 9 +- arch/arm/configs/fsm9900-perf_defconfig | 4 +- arch/arm/configs/fsm9900_defconfig | 4 +- arch/arm/configs/mdm9630_defconfig | 4 +- arch/arm/configs/mpq8092_defconfig | 6 +- arch/arm/configs/msm8226-perf_defconfig | 4 +- arch/arm/configs/msm8226_defconfig | 4 +- arch/arm/configs/msm8610-perf_defconfig | 4 +- arch/arm/configs/msm8610_defconfig | 4 +- arch/arm/configs/msm8974-perf_defconfig | 6 +- arch/arm/configs/msm8974_defconfig | 6 +- arch/arm/mach-msm/Kconfig | 38 +----- arch/arm/mach-msm/Makefile | 5 - arch/arm/mach-msm/msm_qmi_interface.c | 2 +- drivers/soc/qcom/Kconfig | 20 +++ drivers/soc/qcom/Makefile | 2 + .../soc/qcom}/ipc_router_hsic_xprt.c | 6 +- .../soc/qcom}/ipc_router_smd_xprt.c | 8 +- .../linux/ipc_router.h | 8 +- .../linux/ipc_router_xprt.h | 101 +-------------- net/Kconfig | 1 + net/Makefile | 1 + net/ipc_router/Kconfig | 25 ++++ net/ipc_router/Makefile | 7 ++ .../ipc_router/ipc_router_core.c | 47 ++++--- net/ipc_router/ipc_router_private.h | 117 ++++++++++++++++++ .../ipc_router/ipc_router_security.c | 9 +- .../ipc_router/ipc_router_security.h | 8 +- .../ipc_router/ipc_router_socket.c | 17 ++- 30 files changed, 261 insertions(+), 225 deletions(-) rename {arch/arm/mach-msm => drivers/soc/qcom}/ipc_router_hsic_xprt.c (99%) rename {arch/arm/mach-msm => drivers/soc/qcom}/ipc_router_smd_xprt.c (99%) rename arch/arm/mach-msm/include/mach/msm_ipc_router.h => include/linux/ipc_router.h (98%) rename arch/arm/mach-msm/ipc_router.h => include/linux/ipc_router_xprt.h (60%) create mode 100644 net/ipc_router/Kconfig create mode 100644 net/ipc_router/Makefile rename arch/arm/mach-msm/ipc_router.c => net/ipc_router/ipc_router_core.c (99%) create mode 100644 net/ipc_router/ipc_router_private.h rename arch/arm/mach-msm/msm_ipc_router_security.c => net/ipc_router/ipc_router_security.c (98%) rename arch/arm/mach-msm/msm_ipc_router_security.h => net/ipc_router/ipc_router_security.h (94%) rename arch/arm/mach-msm/ipc_socket.c => net/ipc_router/ipc_router_socket.c (98%) diff --git a/arch/arm/configs/apq8084-perf_defconfig b/arch/arm/configs/apq8084-perf_defconfig index ce7a61f65273..704b9c831dcb 100644 --- a/arch/arm/configs/apq8084-perf_defconfig +++ b/arch/arm/configs/apq8084-perf_defconfig @@ -44,10 +44,7 @@ CONFIG_MSM_SMD=y CONFIG_MSM_PCIE=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y -CONFIG_MSM_IPC_ROUTER_HSIC_XPRT=y -CONFIG_MSM_IPC_ROUTER_SECURITY=y +CONFIG_EXTERNAL_MDM=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y @@ -64,6 +61,8 @@ CONFIG_MSM_DLOAD_MODE=y CONFIG_MSM_JTAG=y CONFIG_MSM_RUN_QUEUE_STATS=y CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y +CONFIG_MSM_IPC_ROUTER_HSIC_XPRT=y CONFIG_MSM_OCMEM=y CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y CONFIG_MSM_OCMEM_DEBUG=y @@ -240,6 +239,8 @@ CONFIG_CFG80211=y CONFIG_CFG80211_INTERNAL_REGDB=y CONFIG_RFKILL=y CONFIG_NFC_QNCI=y +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y CONFIG_CMA=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y diff --git a/arch/arm/configs/apq8084_defconfig b/arch/arm/configs/apq8084_defconfig index da6bc41084a6..778d560f3324 100644 --- a/arch/arm/configs/apq8084_defconfig +++ b/arch/arm/configs/apq8084_defconfig @@ -43,10 +43,7 @@ CONFIG_MSM_SMD=y CONFIG_MSM_PCIE=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y -CONFIG_MSM_IPC_ROUTER_HSIC_XPRT=y -CONFIG_MSM_IPC_ROUTER_SECURITY=y +CONFIG_EXTERNAL_MDM=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y @@ -62,6 +59,8 @@ CONFIG_MSM_MEMORY_DUMP=y CONFIG_MSM_DLOAD_MODE=y CONFIG_MSM_RUN_QUEUE_STATS=y CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y +CONFIG_MSM_IPC_ROUTER_HSIC_XPRT=y CONFIG_MSM_OCMEM=y CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y CONFIG_MSM_OCMEM_DEBUG=y @@ -242,6 +241,8 @@ CONFIG_CFG80211=y CONFIG_CFG80211_INTERNAL_REGDB=y CONFIG_RFKILL=y CONFIG_NFC_QNCI=y +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y CONFIG_CMA=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y diff --git a/arch/arm/configs/fsm9900-perf_defconfig b/arch/arm/configs/fsm9900-perf_defconfig index f2a2466ac54d..9bbc4e98c60a 100644 --- a/arch/arm/configs/fsm9900-perf_defconfig +++ b/arch/arm/configs/fsm9900-perf_defconfig @@ -43,8 +43,6 @@ CONFIG_MSM_MPM_OF=y CONFIG_CPU_HAS_L2_PMU=y CONFIG_MSM_SMD=y CONFIG_MSM_PCIE=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y CONFIG_MSM_PIL_FEMTO=y @@ -138,6 +136,7 @@ CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE=y CONFIG_VLAN_8021Q=y +CONFIG_IPC_ROUTER=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y @@ -242,6 +241,7 @@ CONFIG_REMOTE_SPINLOCK_MSM=y CONFIG_PWM=y CONFIG_PWM_QPNP=y CONFIG_MSM_SMEM=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT3_FS=y diff --git a/arch/arm/configs/fsm9900_defconfig b/arch/arm/configs/fsm9900_defconfig index 30512eb0ca6b..deb208366507 100644 --- a/arch/arm/configs/fsm9900_defconfig +++ b/arch/arm/configs/fsm9900_defconfig @@ -42,8 +42,6 @@ CONFIG_MSM_MPM_OF=y CONFIG_CPU_HAS_L2_PMU=y CONFIG_MSM_SMD=y CONFIG_MSM_PCIE=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y CONFIG_MSM_PIL_FEMTO=y @@ -139,6 +137,7 @@ CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE=y CONFIG_VLAN_8021Q=y +CONFIG_IPC_ROUTER=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y @@ -241,6 +240,7 @@ CONFIG_REMOTE_SPINLOCK_MSM=y CONFIG_PWM=y CONFIG_PWM_QPNP=y CONFIG_MSM_SMEM=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT3_FS=y diff --git a/arch/arm/configs/mdm9630_defconfig b/arch/arm/configs/mdm9630_defconfig index 64c4c54481c7..595a5a99a87a 100644 --- a/arch/arm/configs/mdm9630_defconfig +++ b/arch/arm/configs/mdm9630_defconfig @@ -38,8 +38,6 @@ CONFIG_MSM_SMD=y CONFIG_MSM_PCIE=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y @@ -168,6 +166,7 @@ CONFIG_RMNET_DATA=y CONFIG_RMNET_DATA_DEBUG_PKT=y CONFIG_CFG80211=y CONFIG_CFG80211_INTERNAL_REGDB=y +CONFIG_IPC_ROUTER=y CONFIG_CMA=y CONFIG_MTD=y CONFIG_MTD_CMDLINE_PARTS=y @@ -299,6 +298,7 @@ CONFIG_CORESIGHT_AUDIO_ETM=y CONFIG_CORESIGHT_MODEM_ETM=y CONFIG_CORESIGHT_RPM_ETM=y CONFIG_MSM_SMEM=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_EXT3_FS=y CONFIG_VFAT_FS=y CONFIG_TMPFS=y diff --git a/arch/arm/configs/mpq8092_defconfig b/arch/arm/configs/mpq8092_defconfig index 1bb9b14b3578..fdd8f556395d 100644 --- a/arch/arm/configs/mpq8092_defconfig +++ b/arch/arm/configs/mpq8092_defconfig @@ -40,9 +40,6 @@ CONFIG_CPU_HAS_L2_PMU=y CONFIG_MSM_SMD=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y -CONFIG_MSM_IPC_ROUTER_SECURITY=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y @@ -198,6 +195,8 @@ CONFIG_NET_EMATCH_TEXT=y CONFIG_NET_CLS_ACT=y CONFIG_CFG80211=y CONFIG_RFKILL=y +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y CONFIG_CMA=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y @@ -311,6 +310,7 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_GENERIC is not set CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_SOUND=y CONFIG_SND=y CONFIG_SND_SOC=y diff --git a/arch/arm/configs/msm8226-perf_defconfig b/arch/arm/configs/msm8226-perf_defconfig index 9607eac82cca..a987100fcc56 100644 --- a/arch/arm/configs/msm8226-perf_defconfig +++ b/arch/arm/configs/msm8226-perf_defconfig @@ -42,8 +42,6 @@ CONFIG_MSM_SMD=y CONFIG_MSM_BAM_DMUX=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SMCMOD=y CONFIG_MSM_SUBSYSTEM_RESTART=y @@ -60,6 +58,7 @@ CONFIG_MSM_WATCHDOG_V2=y CONFIG_MSM_MEMORY_DUMP=y CONFIG_MSM_DLOAD_MODE=y CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_OCMEM=y CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y CONFIG_MSM_OCMEM_DEBUG=y @@ -201,6 +200,7 @@ CONFIG_CFG80211=y CONFIG_NL80211_TESTMODE=y CONFIG_CFG80211_INTERNAL_REGDB=y CONFIG_NFC_QNCI=y +CONFIG_IPC_ROUTER=y CONFIG_CMA=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y diff --git a/arch/arm/configs/msm8226_defconfig b/arch/arm/configs/msm8226_defconfig index 765d2937ffa3..c472fde6954f 100644 --- a/arch/arm/configs/msm8226_defconfig +++ b/arch/arm/configs/msm8226_defconfig @@ -41,8 +41,6 @@ CONFIG_MSM_SMD=y CONFIG_MSM_BAM_DMUX=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SMCMOD=y CONFIG_MSM_SUBSYSTEM_RESTART=y @@ -59,6 +57,7 @@ CONFIG_MSM_WATCHDOG_V2=y CONFIG_MSM_MEMORY_DUMP=y CONFIG_MSM_DLOAD_MODE=y CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_OCMEM=y CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y CONFIG_MSM_OCMEM_DEBUG=y @@ -201,6 +200,7 @@ CONFIG_CFG80211=y CONFIG_NL80211_TESTMODE=y CONFIG_CFG80211_INTERNAL_REGDB=y CONFIG_NFC_QNCI=y +CONFIG_IPC_ROUTER=y CONFIG_CMA=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y diff --git a/arch/arm/configs/msm8610-perf_defconfig b/arch/arm/configs/msm8610-perf_defconfig index 01565f54bdbf..436afdd44367 100644 --- a/arch/arm/configs/msm8610-perf_defconfig +++ b/arch/arm/configs/msm8610-perf_defconfig @@ -44,8 +44,6 @@ CONFIG_MSM_SMD=y CONFIG_MSM_BAM_DMUX=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y @@ -61,6 +59,7 @@ CONFIG_MSM_WATCHDOG_V2=y CONFIG_MSM_MEMORY_DUMP=y CONFIG_MSM_DLOAD_MODE=y CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_SENSORS_ADSP=y CONFIG_MSM_ENABLE_WDOG_DEBUG_CONTROL=y CONFIG_MSM_BOOT_STATS=y @@ -192,6 +191,7 @@ CONFIG_CFG80211=y CONFIG_NL80211_TESTMODE=y CONFIG_CFG80211_INTERNAL_REGDB=y CONFIG_NFC_QNCI=y +CONFIG_IPC_ROUTER=y CONFIG_CMA=y CONFIG_CMA_SIZE_MBYTES=4 CONFIG_BLK_DEV_LOOP=y diff --git a/arch/arm/configs/msm8610_defconfig b/arch/arm/configs/msm8610_defconfig index d902b7d5ca76..f60cc605d17e 100644 --- a/arch/arm/configs/msm8610_defconfig +++ b/arch/arm/configs/msm8610_defconfig @@ -41,8 +41,6 @@ CONFIG_MSM_SMD=y CONFIG_MSM_BAM_DMUX=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y @@ -58,6 +56,7 @@ CONFIG_MSM_WATCHDOG_V2=y CONFIG_MSM_MEMORY_DUMP=y CONFIG_MSM_DLOAD_MODE=y CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_SENSORS_ADSP=y CONFIG_MSM_ENABLE_WDOG_DEBUG_CONTROL=y CONFIG_MSM_BOOT_STATS=y @@ -190,6 +189,7 @@ CONFIG_CFG80211=y CONFIG_NL80211_TESTMODE=y CONFIG_CFG80211_INTERNAL_REGDB=y CONFIG_NFC_QNCI=y +CONFIG_IPC_ROUTER=y CONFIG_CMA=y CONFIG_CMA_SIZE_MBYTES=4 CONFIG_BLK_DEV_LOOP=y diff --git a/arch/arm/configs/msm8974-perf_defconfig b/arch/arm/configs/msm8974-perf_defconfig index 0220509a0c9f..2efe9a7b3e43 100644 --- a/arch/arm/configs/msm8974-perf_defconfig +++ b/arch/arm/configs/msm8974-perf_defconfig @@ -46,9 +46,6 @@ CONFIG_MSM_SMD=y CONFIG_MSM_BAM_DMUX=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y -CONFIG_MSM_IPC_ROUTER_SECURITY=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y @@ -66,6 +63,7 @@ CONFIG_MSM_WATCHDOG_V2=y CONFIG_MSM_MEMORY_DUMP=y CONFIG_MSM_DLOAD_MODE=y CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_OCMEM=y CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y CONFIG_MSM_OCMEM_DEBUG=y @@ -232,6 +230,8 @@ CONFIG_NL80211_TESTMODE=y CONFIG_CFG80211_INTERNAL_REGDB=y CONFIG_RFKILL=y CONFIG_NFC_QNCI=y +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y CONFIG_CMA=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y diff --git a/arch/arm/configs/msm8974_defconfig b/arch/arm/configs/msm8974_defconfig index c5bb63145b73..372c11944063 100644 --- a/arch/arm/configs/msm8974_defconfig +++ b/arch/arm/configs/msm8974_defconfig @@ -45,9 +45,6 @@ CONFIG_MSM_SMD=y CONFIG_MSM_BAM_DMUX=y CONFIG_MSM_SMP2P=y CONFIG_MSM_SMP2P_TEST=y -CONFIG_MSM_IPC_ROUTER=y -CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y -CONFIG_MSM_IPC_ROUTER_SECURITY=y CONFIG_MSM_QMI_INTERFACE=y CONFIG_MSM_SUBSYSTEM_RESTART=y CONFIG_MSM_SYSMON_COMM=y @@ -65,6 +62,7 @@ CONFIG_MSM_WATCHDOG_V2=y CONFIG_MSM_MEMORY_DUMP=y CONFIG_MSM_DLOAD_MODE=y CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y CONFIG_MSM_OCMEM=y CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y CONFIG_MSM_OCMEM_DEBUG=y @@ -237,6 +235,8 @@ CONFIG_NL80211_TESTMODE=y CONFIG_CFG80211_INTERNAL_REGDB=y CONFIG_RFKILL=y CONFIG_NFC_QNCI=y +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y CONFIG_CMA=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig index 4225a7bacd2b..db4c50037ec8 100644 --- a/arch/arm/mach-msm/Kconfig +++ b/arch/arm/mach-msm/Kconfig @@ -678,44 +678,8 @@ config MSM_SMD_LOGGING If in doubt, say yes. -config MSM_IPC_ROUTER - depends on NET - default n - bool "MSM IPC Router support" - help - Support for the MSM IPC Router for communication between - the APPs and the MODEM - -config MSM_IPC_ROUTER_SMD_XPRT - depends on MSM_SMD - depends on MSM_IPC_ROUTER - default n - bool "MSM SMD XPRT Layer" - help - SMD Transport Layer for IPC Router - -config MSM_IPC_ROUTER_HSIC_XPRT - depends on USB_QCOM_IPC_BRIDGE - depends on MSM_IPC_ROUTER - bool "MSM HSIC XPRT Layer" - help - HSIC Transport Layer that enables off-chip communication of - IPC Router. When the HSIC endpoint becomes available, this layer - registers the transport with IPC Router and enable message - exchange. - -config MSM_IPC_ROUTER_SECURITY - depends on MSM_IPC_ROUTER - bool "MSM IPC Router Security support" - help - This feature of IPC Router will enforce security rules - configured by a security script from the user-space. IPC Router - once configured with the security rules will ensure that the - sender of the message to a service belongs to the relevant - Linux group as configured by the security script. - config MSM_QMI_INTERFACE - depends on MSM_IPC_ROUTER + depends on IPC_ROUTER depends on QMI_ENCDEC default n bool "MSM QMI Interface Library" diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile index ef1293809813..bac4c414092b 100644 --- a/arch/arm/mach-msm/Makefile +++ b/arch/arm/mach-msm/Makefile @@ -49,11 +49,6 @@ obj-$(CONFIG_MSM_PIL_BCSS) += pil-bcss.o obj-$(CONFIG_MSM_BAM_DMUX) += bam_dmux.o obj-$(CONFIG_MSM_SMD_LOGGING) += smem_log.o obj-y += socinfo.o -obj-$(CONFIG_MSM_IPC_ROUTER_SMD_XPRT) += ipc_router_smd_xprt.o -obj-$(CONFIG_MSM_IPC_ROUTER_HSIC_XPRT) += ipc_router_hsic_xprt.o -obj-$(CONFIG_MSM_IPC_ROUTER) += ipc_router.o -obj-$(CONFIG_MSM_IPC_ROUTER)+= ipc_socket.o -obj-$(CONFIG_MSM_IPC_ROUTER_SECURITY)+= msm_ipc_router_security.o obj-$(CONFIG_MSM_QMI_INTERFACE) += msm_qmi_interface.o obj-$(CONFIG_MSM_TEST_QMI_CLIENT) += kernel_test_service_v01.o test_qmi_client.o obj-$(CONFIG_DEBUG_FS) += smd_rpc_sym.o diff --git a/arch/arm/mach-msm/msm_qmi_interface.c b/arch/arm/mach-msm/msm_qmi_interface.c index 163e330e61be..180e0e8fba56 100644 --- a/arch/arm/mach-msm/msm_qmi_interface.c +++ b/arch/arm/mach-msm/msm_qmi_interface.c @@ -28,9 +28,9 @@ #include #include #include +#include #include -#include #include "msm_qmi_interface_priv.h" diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index 1ea417e3b313..d4e674ed8402 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -2,6 +2,26 @@ if ARCH_MSM +config MSM_IPC_ROUTER_SMD_XPRT + depends on MSM_SMD + depends on IPC_ROUTER + bool "MSM SMD XPRT Layer" + help + SMD Transport Layer that enables IPC Router communication within + a System-on-Chip(SoC). When the SMD channels become available, + this layer registers a transport with IPC Router and enable + message exchange. + +config MSM_IPC_ROUTER_HSIC_XPRT + depends on USB_QCOM_IPC_BRIDGE + depends on IPC_ROUTER + bool "MSM HSIC XPRT Layer" + help + HSIC Transport Layer that enables off-chip communication of + IPC Router. When the HSIC endpoint becomes available, this layer + registers the transport with IPC Router and enable message + exchange. + config MSM_SMEM depends on REMOTE_SPINLOCK_MSM bool "MSM Shared Memory (SMEM)" diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile index 3cc5f0ddd799..9db826144a4f 100644 --- a/drivers/soc/qcom/Makefile +++ b/drivers/soc/qcom/Makefile @@ -2,5 +2,7 @@ obj-y += qdsp6v2/ +obj-$(CONFIG_MSM_IPC_ROUTER_HSIC_XPRT) += ipc_router_hsic_xprt.o +obj-$(CONFIG_MSM_IPC_ROUTER_SMD_XPRT) += ipc_router_smd_xprt.o obj-$(CONFIG_MSM_SMEM) += smem.o smem_debug.o obj-$(CONFIG_MEM_SHARE_QMI_SERVICE) += memshare/ diff --git a/arch/arm/mach-msm/ipc_router_hsic_xprt.c b/drivers/soc/qcom/ipc_router_hsic_xprt.c similarity index 99% rename from arch/arm/mach-msm/ipc_router_hsic_xprt.c rename to drivers/soc/qcom/ipc_router_hsic_xprt.c index 502391ab6c8c..8d2c8ab7d55f 100644 --- a/arch/arm/mach-msm/ipc_router_hsic_xprt.c +++ b/drivers/soc/qcom/ipc_router_hsic_xprt.c @@ -19,12 +19,14 @@ #include #include #include +#include +#include +#include +#include #include #include -#include "ipc_router.h" - static int msm_ipc_router_hsic_xprt_debug_mask; module_param_named(debug_mask, msm_ipc_router_hsic_xprt_debug_mask, int, S_IRUGO | S_IWUSR | S_IWGRP); diff --git a/arch/arm/mach-msm/ipc_router_smd_xprt.c b/drivers/soc/qcom/ipc_router_smd_xprt.c similarity index 99% rename from arch/arm/mach-msm/ipc_router_smd_xprt.c rename to drivers/soc/qcom/ipc_router_smd_xprt.c index 6bbeeaf26d4a..39043452f639 100644 --- a/arch/arm/mach-msm/ipc_router_smd_xprt.c +++ b/drivers/soc/qcom/ipc_router_smd_xprt.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved. +/* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -19,13 +19,15 @@ #include #include #include +#include +#include +#include +#include #include #include #include -#include "ipc_router.h" - static int msm_ipc_router_smd_xprt_debug_mask; module_param_named(debug_mask, msm_ipc_router_smd_xprt_debug_mask, int, S_IRUGO | S_IWUSR | S_IWGRP); diff --git a/arch/arm/mach-msm/include/mach/msm_ipc_router.h b/include/linux/ipc_router.h similarity index 98% rename from arch/arm/mach-msm/include/mach/msm_ipc_router.h rename to include/linux/ipc_router.h index f5adfd739ded..ace57220116f 100644 --- a/arch/arm/mach-msm/include/mach/msm_ipc_router.h +++ b/include/linux/ipc_router.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. +/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -10,8 +10,8 @@ * GNU General Public License for more details. */ -#ifndef _MSM_IPC_ROUTER_H -#define _MSM_IPC_ROUTER_H +#ifndef _IPC_ROUTER_H +#define _IPC_ROUTER_H #include #include @@ -129,7 +129,7 @@ struct msm_ipc_port { void *priv; }; -#ifdef CONFIG_MSM_IPC_ROUTER +#ifdef CONFIG_IPC_ROUTER /** * msm_ipc_router_create_port() - Create a IPC Router port/endpoint * @notify: Callback function to notify any event on the port. diff --git a/arch/arm/mach-msm/ipc_router.h b/include/linux/ipc_router_xprt.h similarity index 60% rename from arch/arm/mach-msm/ipc_router.h rename to include/linux/ipc_router_xprt.h index 801a908b46ff..b957f5cea806 100644 --- a/arch/arm/mach-msm/ipc_router.h +++ b/include/linux/ipc_router_xprt.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved. +/* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -10,66 +10,23 @@ * GNU General Public License for more details. */ -#ifndef _ARCH_ARM_MACH_MSM_IPC_ROUTER_H -#define _ARCH_ARM_MACH_MSM_IPC_ROUTER_H +#ifndef _IPC_ROUTER_XPRT_H +#define _IPC_ROUTER_XPRT_H #include -#include #include #include #include #include #include - -#include - -#include - -/* definitions for the R2R wire protcol */ -#define IPC_ROUTER_V1 1 -/* - * Ambiguous definition but will enable multiplexing IPC_ROUTER_V2 packets - * with an existing alternate transport in user-space, if needed. - */ -#define IPC_ROUTER_V2 3 - -#define IPC_ROUTER_ADDRESS 0x0000FFFF - -#define IPC_ROUTER_NID_LOCAL 1 -#define MAX_IPC_PKT_SIZE 66000 - -#define IPC_ROUTER_DEFAULT_RX_QUOTA 5 +#include #define IPC_ROUTER_XPRT_EVENT_DATA 1 #define IPC_ROUTER_XPRT_EVENT_OPEN 2 #define IPC_ROUTER_XPRT_EVENT_CLOSE 3 -#define IPC_ROUTER_INFINITY -1 -#define DEFAULT_RCV_TIMEO 0 - -#define ALIGN_SIZE(x) ((4 - ((x) & 3)) & 3) - -#define ALL_SERVICE 0xFFFFFFFF -#define ALL_INSTANCE 0xFFFFFFFF - -#define CONTROL_FLAG_CONFIRM_RX 0x1 -#define CONTROL_FLAG_OPT_HDR 0x2 - #define FRAG_PKT_WRITE_ENABLE 0x1 -enum { - CLIENT_PORT, - SERVER_PORT, - CONTROL_PORT, - IRSC_PORT, -}; - -enum { - NULL_MODE, - SINGLE_LINK_MODE, - MULTI_LINK_MODE, -}; - /** * rr_header_v1 - IPC Router header version 1 * @version: Version information. @@ -135,12 +92,6 @@ struct rr_packet { uint32_t length; }; -struct msm_ipc_sock { - struct sock sk; - struct msm_ipc_port *port; - void *default_pil; -}; - /** * msm_ipc_router_xprt - Structure to hold XPRT specific information * @name: Name of the XPRT. @@ -181,49 +132,6 @@ void msm_ipc_router_xprt_notify(struct msm_ipc_router_xprt *xprt, struct rr_packet *clone_pkt(struct rr_packet *pkt); void release_pkt(struct rr_packet *pkt); -/** - * msm_ipc_router_create_raw_port() - Create an IPC Router port - * @endpoint: User-space space socket information to be cached. - * @notify: Function to notify incoming events on the port. - * @event: Event ID to be handled. - * @oob_data: Any out-of-band data associated with the event. - * @oob_data_len: Size of the out-of-band data, if valid. - * @priv: Private data registered during the port creation. - * @priv: Private Data to be passed during the event notification. - * - * @return: Valid pointer to port on success, NULL on failure. - * - * This function is used to create an IPC Router port. The port is used for - * communication locally or outside the subsystem. - */ -struct msm_ipc_port *msm_ipc_router_create_raw_port(void *endpoint, - void (*notify)(unsigned event, void *oob_data, - size_t oob_data_len, void *priv), - void *priv); -int msm_ipc_router_send_to(struct msm_ipc_port *src, - struct sk_buff_head *data, - struct msm_ipc_addr *dest); -int msm_ipc_router_read(struct msm_ipc_port *port_ptr, - struct rr_packet **pkt, - size_t buf_len); - -int msm_ipc_router_recv_from(struct msm_ipc_port *port_ptr, - struct rr_packet **pkt, - struct msm_ipc_addr *src_addr, - long timeout); -int msm_ipc_router_register_server(struct msm_ipc_port *server_port, - struct msm_ipc_addr *name); -int msm_ipc_router_unregister_server(struct msm_ipc_port *server_port); - -int msm_ipc_router_init_sockets(void); -void msm_ipc_router_exit_sockets(void); - -void msm_ipc_sync_sec_rule(uint32_t service, uint32_t instance, void *rule); - -void msm_ipc_sync_default_sec_rule(void *rule); - -int msm_ipc_router_rx_data_wait(struct msm_ipc_port *port_ptr, long timeout); - #if defined CONFIG_MSM_IPC_ROUTER_SMD_XPRT extern void *msm_ipc_load_default_node(void); @@ -235,5 +143,4 @@ static inline void *msm_ipc_load_default_node(void) static inline void msm_ipc_unload_default_node(void *pil) { } #endif -void msm_ipc_router_free_skb(struct sk_buff_head *skb_head); #endif diff --git a/net/Kconfig b/net/Kconfig index d005cff592cc..9278d72b955f 100644 --- a/net/Kconfig +++ b/net/Kconfig @@ -351,6 +351,7 @@ source "net/9p/Kconfig" source "net/caif/Kconfig" source "net/ceph/Kconfig" source "net/nfc/Kconfig" +source "net/ipc_router/Kconfig" endif # if NET diff --git a/net/Makefile b/net/Makefile index 9934ae06dcda..7878913abba9 100644 --- a/net/Makefile +++ b/net/Makefile @@ -72,3 +72,4 @@ obj-$(CONFIG_OPENVSWITCH) += openvswitch/ obj-$(CONFIG_VSOCKETS) += vmw_vsock/ obj-$(CONFIG_NET_ACTIVITY_STATS) += activity_stats.o obj-$(CONFIG_RMNET_DATA) += rmnet_data/ +obj-$(CONFIG_IPC_ROUTER) += ipc_router/ diff --git a/net/ipc_router/Kconfig b/net/ipc_router/Kconfig new file mode 100644 index 000000000000..30cd45a70208 --- /dev/null +++ b/net/ipc_router/Kconfig @@ -0,0 +1,25 @@ +# +# IPC_ROUTER Configuration +# + +menuconfig IPC_ROUTER + bool "IPC Router support" + help + IPC Router provides a connectionless message routing service + between multiple modules within a System-on-Chip(SoC). The + communicating entities can run either in the same processor or + in a different processor within the SoC. The IPC Router has been + designed to route messages of any types and support a broader + network of processors. + + If in doubt, say N. + +config IPC_ROUTER_SECURITY + depends on IPC_ROUTER + bool "IPC Router Security support" + help + This feature of IPC Router will enforce security rules + configured by a security script from the user-space. IPC Router + once configured with the security rules will ensure that the + sender of the message to a service belongs to the relevant + Linux group as configured by the security script. diff --git a/net/ipc_router/Makefile b/net/ipc_router/Makefile new file mode 100644 index 000000000000..501688e42e3d --- /dev/null +++ b/net/ipc_router/Makefile @@ -0,0 +1,7 @@ +# +# Makefile for the Linux IPC_ROUTER +# + +obj-$(CONFIG_IPC_ROUTER) := ipc_router_core.o +obj-$(CONFIG_IPC_ROUTER) += ipc_router_socket.o +obj-$(CONFIG_IPC_ROUTER_SECURITY) += ipc_router_security.o diff --git a/arch/arm/mach-msm/ipc_router.c b/net/ipc_router/ipc_router_core.c similarity index 99% rename from arch/arm/mach-msm/ipc_router.c rename to net/ipc_router/ipc_router_core.c index 1bf6289b3592..f3b889419ee3 100644 --- a/arch/arm/mach-msm/ipc_router.c +++ b/net/ipc_router/ipc_router_core.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved. +/* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -29,16 +29,17 @@ #include #include #include +#include +#include +#include -#include #include #include #include -#include -#include "ipc_router.h" -#include "msm_ipc_router_security.h" +#include "ipc_router_private.h" +#include "ipc_router_security.h" enum { SMEM_LOG = 1U << 0, @@ -106,8 +107,7 @@ static DECLARE_RWSEM(control_ports_lock_lha5); static struct list_head local_ports[LP_HASH_SIZE]; static DECLARE_RWSEM(local_ports_lock_lha2); -/* - * Server info is organized as a hash table. The server's service ID is +/* Server info is organized as a hash table. The server's service ID is * used to index into the hash table. The instance ID of most of the servers * are 1 or 2. The service IDs are well distributed compared to the instance * IDs and hence choosing service ID to index into this hash table optimizes @@ -967,9 +967,8 @@ static struct msm_ipc_port *msm_ipc_router_lookup_local_port(uint32_t port_id) struct msm_ipc_port *port_ptr; list_for_each_entry(port_ptr, &local_ports[key], list) { - if (port_ptr->this_port.port_id == port_id) { + if (port_ptr->this_port.port_id == port_id) return port_ptr; - } } return NULL; } @@ -1780,8 +1779,7 @@ void msm_ipc_sync_sec_rule(uint32_t service, uint32_t instance, void *rule) instance != ALL_INSTANCE) continue; - /* - * If the rule applies to all instances and if the specific + /* If the rule applies to all instances and if the specific * instance of a service has a rule synchronized already, * do not apply the rule for that specific instance. */ @@ -1868,8 +1866,7 @@ static int process_hello_msg(struct msm_ipc_router_xprt_info *xprt_info, } xprt_info->initialized = 1; - /* - * Send list of servers from the local node and from nodes + /* Send list of servers from the local node and from nodes * outside the mesh network in which this XPRT is part of. */ down_read(&server_list_lock_lha2); @@ -1962,8 +1959,7 @@ static int process_new_server_msg(struct msm_ipc_router_xprt_info *xprt_info, } up_write(&routing_table_lock_lha3); - /* - * If the service does not exist already in the database, create and + /* If the service does not exist already in the database, create and * store the service info. Create a remote port structure in which * the service is hosted and cache the security rule for the service * in that remote port structure. @@ -2000,8 +1996,7 @@ static int process_new_server_msg(struct msm_ipc_router_xprt_info *xprt_info, } up_write(&server_list_lock_lha2); - /* - * Relay the new server message to other subsystems that do not belong + /* Relay the new server message to other subsystems that do not belong * to the cluster from which this message is received. Notify the * local clients waiting for this service. */ @@ -2442,9 +2437,8 @@ static int msm_ipc_router_write_pkt(struct msm_ipc_port *src, } update_comm_mode_info(&src->mode_info, xprt_info); - RAW_HDR("[w rr_h] " - "ver=%i,type=%s,src_nid=%08x,src_port_id=%08x," - "control_flag=%i,size=%3i,dst_pid=%08x,dst_cid=%08x\n", + RAW_HDR( + "[w rr_h] ver=%i,type=%s,src_nid=%08x,src_port_id=%08x,control_flag=%i,size=%3i,dst_pid=%08x,dst_cid=%08x\n", hdr->version, type_to_str(hdr->type), hdr->src_node_id, hdr->src_port_id, hdr->control_flag, hdr->size, @@ -2836,8 +2830,7 @@ int msm_ipc_router_close_port(struct msm_ipc_port *port_ptr) broadcast_ctl_msg_locally(&msg); } - /* - * Server port could have been a client port earlier. + /* Server port could have been a client port earlier. * Send REMOVE_CLIENT message in either case. */ RR("x REMOVE_CLIENT id=%d:%08x\n", @@ -3047,10 +3040,12 @@ static int dump_servers(char *buf, int max) list_for_each_entry(server_port, &server->server_port_list, list) { - i += scnprintf(buf + i, max - i, "Service: " - "0x%08x\n", server->name.service); - i += scnprintf(buf + i, max - i, "Instance: " - "0x%08x\n", server->name.instance); + i += scnprintf(buf + i, max - i, + "Service: 0x%08x\n", + server->name.service); + i += scnprintf(buf + i, max - i, + "Instance: 0x%08x\n", + server->name.instance); i += scnprintf(buf + i, max - i, "Node_id: 0x%08x\n", server_port->server_addr.node_id); diff --git a/net/ipc_router/ipc_router_private.h b/net/ipc_router/ipc_router_private.h new file mode 100644 index 000000000000..ddc20be2b1db --- /dev/null +++ b/net/ipc_router/ipc_router_private.h @@ -0,0 +1,117 @@ +/* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef _IPC_ROUTER_PRIVATE_H +#define _IPC_ROUTER_PRIVATE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +/* definitions for the R2R wire protcol */ +#define IPC_ROUTER_V1 1 +/* + * Ambiguous definition but will enable multiplexing IPC_ROUTER_V2 packets + * with an existing alternate transport in user-space, if needed. + */ +#define IPC_ROUTER_V2 3 + +#define IPC_ROUTER_ADDRESS 0x0000FFFF + +#define IPC_ROUTER_NID_LOCAL 1 +#define MAX_IPC_PKT_SIZE 66000 + +#define IPC_ROUTER_DEFAULT_RX_QUOTA 5 + +#define IPC_ROUTER_INFINITY -1 +#define DEFAULT_RCV_TIMEO 0 + +#define ALIGN_SIZE(x) ((4 - ((x) & 3)) & 3) + +#define ALL_SERVICE 0xFFFFFFFF +#define ALL_INSTANCE 0xFFFFFFFF + +#define CONTROL_FLAG_CONFIRM_RX 0x1 +#define CONTROL_FLAG_OPT_HDR 0x2 + +enum { + CLIENT_PORT, + SERVER_PORT, + CONTROL_PORT, + IRSC_PORT, +}; + +enum { + NULL_MODE, + SINGLE_LINK_MODE, + MULTI_LINK_MODE, +}; + +struct msm_ipc_sock { + struct sock sk; + struct msm_ipc_port *port; + void *default_pil; +}; + +/** + * msm_ipc_router_create_raw_port() - Create an IPC Router port + * @endpoint: User-space space socket information to be cached. + * @notify: Function to notify incoming events on the port. + * @event: Event ID to be handled. + * @oob_data: Any out-of-band data associated with the event. + * @oob_data_len: Size of the out-of-band data, if valid. + * @priv: Private data registered during the port creation. + * @priv: Private Data to be passed during the event notification. + * + * @return: Valid pointer to port on success, NULL on failure. + * + * This function is used to create an IPC Router port. The port is used for + * communication locally or outside the subsystem. + */ +struct msm_ipc_port *msm_ipc_router_create_raw_port(void *endpoint, + void (*notify)(unsigned event, void *oob_data, + size_t oob_data_len, void *priv), + void *priv); +int msm_ipc_router_send_to(struct msm_ipc_port *src, + struct sk_buff_head *data, + struct msm_ipc_addr *dest); +int msm_ipc_router_read(struct msm_ipc_port *port_ptr, + struct rr_packet **pkt, + size_t buf_len); + +int msm_ipc_router_recv_from(struct msm_ipc_port *port_ptr, + struct rr_packet **pkt, + struct msm_ipc_addr *src_addr, + long timeout); +int msm_ipc_router_register_server(struct msm_ipc_port *server_port, + struct msm_ipc_addr *name); +int msm_ipc_router_unregister_server(struct msm_ipc_port *server_port); + +int msm_ipc_router_init_sockets(void); +void msm_ipc_router_exit_sockets(void); + +void msm_ipc_sync_sec_rule(uint32_t service, uint32_t instance, void *rule); + +void msm_ipc_sync_default_sec_rule(void *rule); + +int msm_ipc_router_rx_data_wait(struct msm_ipc_port *port_ptr, long timeout); + +void msm_ipc_router_free_skb(struct sk_buff_head *skb_head); +#endif diff --git a/arch/arm/mach-msm/msm_ipc_router_security.c b/net/ipc_router/ipc_router_security.c similarity index 98% rename from arch/arm/mach-msm/msm_ipc_router_security.c rename to net/ipc_router/ipc_router_security.c index 5897e1fc6682..9deab65f9252 100644 --- a/arch/arm/mach-msm/msm_ipc_router_security.c +++ b/net/ipc_router/ipc_router_security.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. +/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -23,12 +23,11 @@ #include #include #include - -#include +#include #include -#include "ipc_router.h" -#include "msm_ipc_router_security.h" +#include "ipc_router_private.h" +#include "ipc_router_security.h" #define IRSC_COMPLETION_TIMEOUT_MS 30000 #define SEC_RULES_HASH_SZ 32 diff --git a/arch/arm/mach-msm/msm_ipc_router_security.h b/net/ipc_router/ipc_router_security.h similarity index 94% rename from arch/arm/mach-msm/msm_ipc_router_security.h rename to net/ipc_router/ipc_router_security.h index 9cc61e959b61..002ae84d0b95 100644 --- a/arch/arm/mach-msm/msm_ipc_router_security.h +++ b/net/ipc_router/ipc_router_security.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. +/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -10,14 +10,14 @@ * GNU General Public License for more details. */ -#ifndef _MSM_IPC_ROUTER_SECURITY_H -#define _MSM_IPC_ROUTER_SECURITY_H +#ifndef _IPC_ROUTER_SECURITY_H +#define _IPC_ROUTER_SECURITY_H #include #include #include -#ifdef CONFIG_MSM_IPC_ROUTER_SECURITY +#ifdef CONFIG_IPC_ROUTER_SECURITY #include /** diff --git a/arch/arm/mach-msm/ipc_socket.c b/net/ipc_router/ipc_router_socket.c similarity index 98% rename from arch/arm/mach-msm/ipc_socket.c rename to net/ipc_router/ipc_router_socket.c index fddfa50ae73d..979b48328509 100644 --- a/arch/arm/mach-msm/ipc_socket.c +++ b/net/ipc_router/ipc_router_socket.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved. +/* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -26,16 +26,14 @@ #include #include #include - -#include -#include +#include +#include +#include #include -#include - -#include "ipc_router.h" -#include "msm_ipc_router_security.h" +#include "ipc_router_private.h" +#include "ipc_router_security.h" #define msm_ipc_sk(sk) ((struct msm_ipc_sock *)(sk)) #define msm_ipc_sk_port(sk) ((struct msm_ipc_port *)(msm_ipc_sk(sk)->port)) @@ -84,8 +82,7 @@ static void msm_ipc_router_ipc_log(uint8_t tran, { struct qmi_header *hdr = (struct qmi_header *)ipc_buf->data; - /* - * IPC Logging format is as below:- + /* IPC Logging format is as below:- * (Name of the User Space Process): * (PID of the user space process) : * (TID of the user space thread) :