Merge sdk-v37.4.2.89
diff --git a/arch/arc/Makefile b/arch/arc/Makefile
index ce84396..ab521e6 100644
--- a/arch/arc/Makefile
+++ b/arch/arc/Makefile
@@ -48,7 +48,6 @@
LINUXINCLUDE += -include ${src}/arch/arc/include/asm/current.h -I$(srctree)/arch/arc/plat-qtn/sdk-qsr1000/ -I$(srctree)/arch/arc/plat-qtn/sdk-qsr1000/include/
LINUXINCLUDE += -include $(src)/arch/arc/plat-qtn/sdk-qsr1000/common/ruby_mem.h
LINUXINCLUDE += -include $(src)/arch/arc/plat-qtn/sdk-qsr1000/common/current_platform.h -include $(src)/arch/arc/plat-qtn/sdk-qsr1000/common/common_mem.h
-LINUXINCLUDE += -include ${src}/arch/arc/include/asm/current.h
endif
upto_gcc44 := $(call cc-ifversion, -le, 0404, y)
diff --git a/arch/arc/boot/dts/topaz.dts b/arch/arc/boot/dts/topaz.dts
index dee273d..aba5d1f 100644
--- a/arch/arc/boot/dts/topaz.dts
+++ b/arch/arc/boot/dts/topaz.dts
@@ -16,8 +16,7 @@
interrupt-parent = <&core_intc>;
chosen {
- bootargs = "earlyprintk=1 debug console=ttyS0,115200n8 print-fatal-signals=1";
-/* bootargs = "earlycon debug console=ttyS0,115200n8";*/
+ bootargs = "earlycon debug console=ttyS0,115200n8";
stdout-path = &uart0;
};
memory {
@@ -40,7 +39,6 @@
#interrupt-cells = <1>;
};
uart0: dw-apb-uart {
-/* compatible = "snps,dw-apb-uart", "ns16550";*/
compatible = "snps,dw-apb-uart", "ns16550a";
reg = <0xF0000000 0x100>;
clock-frequency = <125000000>;
@@ -50,23 +48,4 @@
reg-shift = <2>;
reg-io-width = <4>;
};
-/* pcie: pcie@e9000000 {*/
-/* compatible = "snps,dw-pcie";*/
-/* reg = <0xe9000000 0x2000>,*/
- /* Controller registers */
-/* <0xcf000000 0x10000>;*/
- /* PCI config space */
-/* reg-names = "ctrlreg", "config";*/
-/* device_type = "pci";*/
-/* num-lanes = <1>;*/
-/* interrupt-parent = <&core_intc>;*/
-/* interrupts = <28>, <18>;*/
-/* #address-cells = <3>;*/
-/* #size-cells = <2>;*/
-/* ranges = <0x82000000 0 0xc0000000 0xc0000000 0 0x01000000*/
-/* 0x83000000 0 0xc1000000 0xc1000000 0 0x01000000>;*/
-/* #interrupt-cells = <1>;*/
-/* interrupt-map-mask = <0x0 0 0 1>;*/
-/* interrupt-map = <0x0 0 0 1 &core_intc 28>;*/
-/* };*/
};
diff --git a/arch/arc/configs/topaz_config b/arch/arc/configs/topaz_config
index 3d5c929..a5e6884 100644
--- a/arch/arc/configs/topaz_config
+++ b/arch/arc/configs/topaz_config
@@ -18,7 +18,6 @@
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
-CONFIG_QTN_PLATFORM_MISALIGN_WAR=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
#
@@ -26,17 +25,17 @@
#
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE="/usr/local/arcgcc48/bin/arc-linux-uclibc-"
+CONFIG_CROSS_COMPILE="/usr/local/arcgcc48_linux4.7.0/bin/arc-linux-uclibc-"
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_DEFAULT_HOSTNAME="ARCLinux"
+CONFIG_DEFAULT_HOSTNAME="Topaz"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_CROSS_MEMORY_ATTACH is not set
-# CONFIG_FHANDLE is not set
+CONFIG_FHANDLE=y
# CONFIG_USELIB is not set
# CONFIG_AUDIT is not set
@@ -48,6 +47,7 @@
CONFIG_IRQ_DOMAIN=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_HANDLE_DOMAIN_IRQ=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_GENERIC_CLOCKEVENTS=y
#
@@ -112,7 +112,7 @@
CONFIG_EXPERT=y
CONFIG_MULTIUSER=y
# CONFIG_SGETMASK_SYSCALL is not set
-# CONFIG_SYSFS_SYSCALL is not set
+CONFIG_SYSFS_SYSCALL=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
@@ -133,8 +133,8 @@
CONFIG_AIO=y
# CONFIG_ADVISE_SYSCALLS is not set
# CONFIG_USERFAULTFD is not set
-# CONFIG_PCI_QUIRKS is not set
-# CONFIG_MEMBARRIER is not set
+CONFIG_PCI_QUIRKS=y
+CONFIG_MEMBARRIER=y
CONFIG_EMBEDDED=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y
@@ -143,7 +143,7 @@
# Kernel Performance Events And Counters
#
# CONFIG_PERF_EVENTS is not set
-CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
@@ -152,10 +152,9 @@
# CONFIG_SYSTEM_DATA_VERIFICATION is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
-CONFIG_KPROBES=y
+# CONFIG_KPROBES is not set
# CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
-CONFIG_KRETPROBES=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
@@ -174,6 +173,7 @@
#
# GCOV-based kernel profiling
#
+# CONFIG_GCOV_KERNEL is not set
# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_RT_MUTEXES=y
@@ -205,10 +205,12 @@
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_DEADLINE is not set
-# CONFIG_IOSCHED_CFQ is not set
-CONFIG_DEFAULT_NOOP=y
-CONFIG_DEFAULT_IOSCHED="noop"
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
@@ -247,7 +249,7 @@
CONFIG_ARCH_RUBY_EMAC_SMOOTHING_RATE=50000
# CONFIG_QUANTENNA_RESTRICT_WLAN_IP is not set
# CONFIG_SWITCH_RTL8365MB is not set
-CONFIG_SWITCH_RTL8363SB=m
+# CONFIG_SWITCH_RTL8363SB is not set
# CONFIG_QTN_SKB_RECYCLE is not set
#
@@ -287,7 +289,7 @@
# CONFIG_HIGHMEM is not set
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
CONFIG_ARC_PLAT_NEEDS_PHYS_TO_DMA=y
-CONFIG_ARC_KVADDR_SIZE=64
+CONFIG_ARC_KVADDR_SIZE=160
CONFIG_ARC_CURR_IN_REG=y
CONFIG_ARC_EMUL_UNALIGNED=y
CONFIG_HZ=200
@@ -331,6 +333,7 @@
# CONFIG_IDLE_PAGE_TRACKING is not set
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_NET=y
+CONFIG_NET_INGRESS=y
#
# Networking options
@@ -340,20 +343,26 @@
CONFIG_UNIX=y
CONFIG_UNIX_DIAG=y
CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
-CONFIG_NET_KEY=y
-# CONFIG_NET_KEY_MIGRATE is not set
+# CONFIG_NET_KEY is not set
CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+# CONFIG_IP_MULTIPLE_TABLES is not set
+# CONFIG_IP_ROUTE_MULTIPATH is not set
+# CONFIG_IP_ROUTE_VERBOSE is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set
CONFIG_NET_IP_TUNNEL=y
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+# CONFIG_IP_PIMSM_V1 is not set
+# CONFIG_IP_PIMSM_V2 is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_NET_IPVTI is not set
# CONFIG_NET_UDP_TUNNEL is not set
@@ -382,6 +391,7 @@
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
+# CONFIG_IPV6_ILA is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
CONFIG_INET6_XFRM_MODE_TRANSPORT=y
@@ -400,7 +410,193 @@
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NET_PTP_CLASSIFY is not set
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-# CONFIG_NETFILTER is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+# CONFIG_BRIDGE_NETFILTER is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+# CONFIG_NF_CONNTRACK_TIMEOUT is not set
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+# CONFIG_NF_CT_PROTO_DCCP is not set
+CONFIG_NF_CT_PROTO_GRE=m
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_SNMP is not set
+CONFIG_NF_CONNTRACK_PPTP=m
+# CONFIG_NF_CONNTRACK_SANE is not set
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+# CONFIG_NF_CT_NETLINK is not set
+# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+# CONFIG_NF_NAT_AMANDA is not set
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_REDIRECT=m
+# CONFIG_NF_TABLES is not set
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+# CONFIG_NETFILTER_XT_MARK is not set
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+# CONFIG_NETFILTER_XT_TARGET_HL is not set
+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+CONFIG_NETFILTER_XT_NAT=m
+# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_BPF is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ECN is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+# CONFIG_NETFILTER_XT_MATCH_HL is not set
+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_NF_DUP_IPV4 is not set
+# CONFIG_NF_LOG_ARP is not set
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NF_NAT_IPV4=m
+CONFIG_NF_NAT_MASQUERADE_IPV4=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_IP_NF_IPTABLES=m
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_RPFILTER is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+# CONFIG_IP_NF_TARGET_SYNPROXY is not set
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+# CONFIG_IP_NF_TARGET_NETMAP is not set
+# CONFIG_IP_NF_TARGET_REDIRECT is not set
+CONFIG_IP_NF_MANGLE=m
+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
+# CONFIG_IP_NF_TARGET_ECN is not set
+# CONFIG_IP_NF_TARGET_TTL is not set
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+# CONFIG_NF_DUP_IPV6 is not set
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_NAT_IPV6=m
+CONFIG_NF_NAT_MASQUERADE_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+# CONFIG_IP6_NF_MATCH_AH is not set
+# CONFIG_IP6_NF_MATCH_EUI64 is not set
+# CONFIG_IP6_NF_MATCH_FRAG is not set
+# CONFIG_IP6_NF_MATCH_OPTS is not set
+# CONFIG_IP6_NF_MATCH_HL is not set
+# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
+# CONFIG_IP6_NF_MATCH_MH is not set
+# CONFIG_IP6_NF_MATCH_RPFILTER is not set
+# CONFIG_IP6_NF_MATCH_RT is not set
+# CONFIG_IP6_NF_TARGET_HL is not set
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
+CONFIG_IP6_NF_MANGLE=m
+# CONFIG_IP6_NF_RAW is not set
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+# CONFIG_IP6_NF_TARGET_NPT is not set
+# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
@@ -412,6 +608,7 @@
CONFIG_BRIDGE_IGMP_SNOOPING=y
# CONFIG_BRIDGE_VLAN_FILTERING is not set
CONFIG_HAVE_NET_DSA=y
+CONFIG_NET_DSA=y
CONFIG_VLAN_8021Q=y
# CONFIG_VLAN_8021Q_GVRP is not set
# CONFIG_VLAN_8021Q_MVRP is not set
@@ -477,8 +674,8 @@
# CONFIG_NETLINK_DIAG is not set
# CONFIG_MPLS is not set
# CONFIG_HSR is not set
-# CONFIG_NET_SWITCHDEV is not set
-# CONFIG_NET_L3_MASTER_DEV is not set
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_L3_MASTER_DEV=y
# CONFIG_SOCK_CGROUP_DATA is not set
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
@@ -487,7 +684,6 @@
# Network testing
#
# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
@@ -499,12 +695,19 @@
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_WEXT_PRIV=y
-# CONFIG_CFG80211 is not set
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+CONFIG_CFG80211_DEVELOPER_WARNINGS=y
+CONFIG_CFG80211_CERTIFICATION_ONUS=y
+# CONFIG_CFG80211_REG_CELLULAR_HINTS is not set
+# CONFIG_CFG80211_REG_RELAX_NO_IR is not set
+# CONFIG_CFG80211_DEFAULT_PS is not set
+CONFIG_CFG80211_DEBUGFS=y
+CONFIG_CFG80211_INTERNAL_REGDB=y
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
# CONFIG_LIB80211 is not set
-
-#
-# CFG80211 needs to be enabled for MAC80211
-#
+# CONFIG_MAC80211 is not set
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
@@ -525,17 +728,18 @@
# Generic Driver Options
#
CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
-# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
-# CONFIG_ALLOW_DEV_COREDUMP is not set
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
@@ -582,7 +786,7 @@
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_RAM=y
+# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
@@ -590,7 +794,6 @@
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP_OF=y
# CONFIG_MTD_INTEL_VR_NOR is not set
# CONFIG_MTD_PLATRAM is not set
@@ -767,60 +970,117 @@
#
# Distributed Switch Architecture drivers
#
+# CONFIG_NET_DSA_MV88E6060 is not set
+# CONFIG_NET_DSA_MV88E6XXX is not set
+# CONFIG_NET_DSA_BCM_SF2 is not set
CONFIG_ETHERNET=y
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_NET_VENDOR_ADAPTEC is not set
-# CONFIG_NET_VENDOR_AGERE is not set
-# CONFIG_NET_VENDOR_ALTEON is not set
+CONFIG_NET_VENDOR_3COM=y
+# CONFIG_TYPHOON is not set
+CONFIG_NET_VENDOR_ADAPTEC=y
+# CONFIG_ADAPTEC_STARFIRE is not set
+CONFIG_NET_VENDOR_AGERE=y
+# CONFIG_ET131X is not set
+CONFIG_NET_VENDOR_ALTEON=y
+# CONFIG_ACENIC is not set
# CONFIG_ALTERA_TSE is not set
-# CONFIG_NET_VENDOR_AMD is not set
+CONFIG_NET_VENDOR_AMD=y
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_PCNET32 is not set
CONFIG_NET_VENDOR_ARC=y
# CONFIG_ARC_EMAC is not set
-# CONFIG_NET_VENDOR_ATHEROS is not set
+CONFIG_NET_VENDOR_ATHEROS=y
+# CONFIG_ATL2 is not set
+# CONFIG_ATL1 is not set
+# CONFIG_ATL1E is not set
+# CONFIG_ATL1C is not set
+# CONFIG_ALX is not set
# CONFIG_NET_VENDOR_AURORA is not set
# CONFIG_NET_CADENCE is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_BROCADE is not set
-# CONFIG_NET_VENDOR_CAVIUM is not set
-# CONFIG_NET_VENDOR_CHELSIO is not set
-# CONFIG_NET_VENDOR_CISCO is not set
+CONFIG_NET_VENDOR_BROCADE=y
+# CONFIG_BNA is not set
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_CHELSIO_T4 is not set
+# CONFIG_CHELSIO_T4VF is not set
+CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_ENIC is not set
# CONFIG_DNET is not set
-# CONFIG_NET_VENDOR_DEC is not set
-# CONFIG_NET_VENDOR_DLINK is not set
-# CONFIG_NET_VENDOR_EMULEX is not set
+CONFIG_NET_VENDOR_DEC=y
+# CONFIG_NET_TULIP is not set
+CONFIG_NET_VENDOR_DLINK=y
+# CONFIG_DL2K is not set
+# CONFIG_SUNDANCE is not set
+CONFIG_NET_VENDOR_EMULEX=y
+# CONFIG_BE2NET is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
-# CONFIG_NET_VENDOR_EXAR is not set
-# CONFIG_NET_VENDOR_HP is not set
+CONFIG_NET_VENDOR_EXAR=y
+# CONFIG_S2IO is not set
+# CONFIG_VXGE is not set
+CONFIG_NET_VENDOR_HP=y
+# CONFIG_HP100 is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_JME is not set
# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MELLANOX is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+# CONFIG_MLX4_EN is not set
+# CONFIG_MLX4_CORE is not set
+# CONFIG_MLX5_CORE is not set
+# CONFIG_MLXSW_CORE is not set
# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_MYRI is not set
+CONFIG_NET_VENDOR_MYRI=y
+# CONFIG_MYRI10GE is not set
# CONFIG_FEALNX is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
-# CONFIG_NET_VENDOR_NVIDIA is not set
-# CONFIG_NET_VENDOR_OKI is not set
+CONFIG_NET_VENDOR_NVIDIA=y
+# CONFIG_FORCEDETH is not set
+CONFIG_NET_VENDOR_OKI=y
# CONFIG_ETHOC is not set
-# CONFIG_NET_PACKET_ENGINE is not set
-# CONFIG_NET_VENDOR_QLOGIC is not set
+CONFIG_NET_PACKET_ENGINE=y
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+CONFIG_NET_VENDOR_QLOGIC=y
+# CONFIG_QLA3XXX is not set
+# CONFIG_QLCNIC is not set
+# CONFIG_QLGE is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_QED is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
-# CONFIG_NET_VENDOR_REALTEK is not set
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_R8169 is not set
# CONFIG_NET_VENDOR_RENESAS is not set
-# CONFIG_NET_VENDOR_RDC is not set
+CONFIG_NET_VENDOR_RDC=y
+# CONFIG_R6040 is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SILAN is not set
-# CONFIG_NET_VENDOR_SIS is not set
+CONFIG_NET_VENDOR_SILAN=y
+# CONFIG_SC92031 is not set
+CONFIG_NET_VENDOR_SIS=y
+# CONFIG_SIS900 is not set
+# CONFIG_SIS190 is not set
# CONFIG_SFC is not set
-# CONFIG_NET_VENDOR_SMSC is not set
+CONFIG_NET_VENDOR_SMSC=y
+# CONFIG_EPIC100 is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_SMSC9420 is not set
# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_SUN is not set
+CONFIG_NET_VENDOR_SUN=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NIU is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
-# CONFIG_NET_VENDOR_TEHUTI is not set
-# CONFIG_NET_VENDOR_TI is not set
+CONFIG_NET_VENDOR_TEHUTI=y
+# CONFIG_TEHUTI is not set
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TI_CPSW_ALE is not set
+# CONFIG_TLAN is not set
# CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_FDDI is not set
@@ -864,7 +1124,25 @@
#
# Host-side USB support is needed for USB Network Adapter support
#
-# CONFIG_WLAN is not set
+CONFIG_WLAN=y
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+CONFIG_WLAN_VENDOR_MARVELL=y
+# CONFIG_LIBERTAS is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_PCIE=m
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_WLAN_VENDOR_REALTEK is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -920,7 +1198,7 @@
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
-# CONFIG_DEVMEM is not set
+CONFIG_DEVMEM=y
# CONFIG_DEVKMEM is not set
#
@@ -931,7 +1209,7 @@
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
# CONFIG_SERIAL_8250_FINTEK is not set
CONFIG_SERIAL_8250_CONSOLE=y
-# CONFIG_SERIAL_8250_PCI is not set
+CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=2
CONFIG_SERIAL_8250_RUNTIME_UARTS=2
CONFIG_SERIAL_8250_EXTENDED=y
@@ -940,7 +1218,7 @@
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_RSA is not set
# CONFIG_SERIAL_8250_FSL is not set
-# CONFIG_SERIAL_8250_DW is not set
+CONFIG_SERIAL_8250_DW=y
# CONFIG_SERIAL_8250_RT288X is not set
# CONFIG_SERIAL_8250_MOXA is not set
CONFIG_SERIAL_OF_PLATFORM=y
@@ -1224,7 +1502,8 @@
#
# Graphics support
#
-# CONFIG_VGA_ARB is not set
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_DRM is not set
#
@@ -1375,8 +1654,14 @@
#
CONFIG_PCI=y
CONFIG_PCI_SYSCALL=y
-# CONFIG_PCIEAER is not set
-# CONFIG_PCIEASPM is not set
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
# CONFIG_PCIE_DPC is not set
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
@@ -1390,7 +1675,8 @@
#
# PCI host controller drivers
#
-# CONFIG_PCIE_DW_PLAT is not set
+CONFIG_PCIE_DW_PLAT=y
+CONFIG_PCIE_DW=y
#
# File systems
@@ -1405,11 +1691,13 @@
# CONFIG_F2FS_FS is not set
# CONFIG_FS_DAX is not set
# CONFIG_FS_POSIX_ACL is not set
-# CONFIG_FILE_LOCKING is not set
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_MANDATORY_FILE_LOCKING=y
# CONFIG_FS_ENCRYPTION is not set
-# CONFIG_FSNOTIFY is not set
-# CONFIG_DNOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not set
@@ -1501,11 +1789,16 @@
CONFIG_PRINTK_TIME=y
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_DYNAMIC_DEBUG is not set
#
# Compile-time checks and compiler options
#
-# CONFIG_DEBUG_INFO is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+# CONFIG_DEBUG_INFO_DWARF4 is not set
+# CONFIG_GDB_SCRIPTS is not set
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
@@ -1513,7 +1806,7 @@
# CONFIG_READABLE_ASM is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_PAGE_OWNER is not set
-# CONFIG_DEBUG_FS is not set
+CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
@@ -1528,7 +1821,6 @@
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_VM is not set
@@ -1540,13 +1832,18 @@
#
# Debug Lockups and Hangs
#
-# CONFIG_LOCKUP_DETECTOR is not set
-# CONFIG_DETECT_HUNG_TASK is not set
-# CONFIG_WQ_WATCHDOG is not set
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_SCHED_DEBUG=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
+CONFIG_WQ_WATCHDOG=y
+CONFIG_PANIC_ON_OOPS=y
+CONFIG_PANIC_ON_OOPS_VALUE=1
+CONFIG_PANIC_TIMEOUT=3
+# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHED_INFO is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_SCHED_STACK_END_CHECK is not set
@@ -1606,8 +1903,8 @@
#
# Runtime Testing
#
+# CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -1650,20 +1947,22 @@
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH=m
CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=m
CONFIG_CRYPTO_AKCIPHER2=y
# CONFIG_CRYPTO_RSA is not set
-CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_USER is not set
-# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
@@ -1678,7 +1977,7 @@
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
# CONFIG_CRYPTO_SEQIV is not set
-# CONFIG_CRYPTO_ECHAINIV is not set
+CONFIG_CRYPTO_ECHAINIV=m
#
# Block modes
@@ -1696,14 +1995,14 @@
# Hash modes
#
# CONFIG_CRYPTO_CMAC is not set
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HMAC=m
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
-CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CRC32 is not set
# CONFIG_CRYPTO_CRCT10DIF is not set
# CONFIG_CRYPTO_GHASH is not set
@@ -1716,7 +2015,7 @@
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
# CONFIG_CRYPTO_SHA1 is not set
-CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA256=m
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1753,18 +2052,19 @@
#
# Random Number Generation
#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DRBG_MENU=m
CONFIG_CRYPTO_DRBG_HMAC=y
# CONFIG_CRYPTO_DRBG_HASH is not set
# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=y
-CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_DRBG=m
+CONFIG_CRYPTO_JITTERENTROPY=m
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_USER_API_RNG is not set
# CONFIG_CRYPTO_USER_API_AEAD is not set
-# CONFIG_CRYPTO_HW is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_HIFN_795X is not set
#
# Certificates for signature checking
@@ -1800,8 +2100,15 @@
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
-# CONFIG_XZ_DEC is not set
-# CONFIG_XZ_DEC_BCJ is not set
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
CONFIG_HAS_IOMEM=y
CONFIG_HAS_DMA=y
CONFIG_DQL=y
diff --git a/arch/arc/configs/topaz_umm_config b/arch/arc/configs/topaz_umm_config
index 3d5c929..a5e6884 100644
--- a/arch/arc/configs/topaz_umm_config
+++ b/arch/arc/configs/topaz_umm_config
@@ -18,7 +18,6 @@
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
-CONFIG_QTN_PLATFORM_MISALIGN_WAR=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
#
@@ -26,17 +25,17 @@
#
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE="/usr/local/arcgcc48/bin/arc-linux-uclibc-"
+CONFIG_CROSS_COMPILE="/usr/local/arcgcc48_linux4.7.0/bin/arc-linux-uclibc-"
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_DEFAULT_HOSTNAME="ARCLinux"
+CONFIG_DEFAULT_HOSTNAME="Topaz"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_CROSS_MEMORY_ATTACH is not set
-# CONFIG_FHANDLE is not set
+CONFIG_FHANDLE=y
# CONFIG_USELIB is not set
# CONFIG_AUDIT is not set
@@ -48,6 +47,7 @@
CONFIG_IRQ_DOMAIN=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_HANDLE_DOMAIN_IRQ=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_GENERIC_CLOCKEVENTS=y
#
@@ -112,7 +112,7 @@
CONFIG_EXPERT=y
CONFIG_MULTIUSER=y
# CONFIG_SGETMASK_SYSCALL is not set
-# CONFIG_SYSFS_SYSCALL is not set
+CONFIG_SYSFS_SYSCALL=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
@@ -133,8 +133,8 @@
CONFIG_AIO=y
# CONFIG_ADVISE_SYSCALLS is not set
# CONFIG_USERFAULTFD is not set
-# CONFIG_PCI_QUIRKS is not set
-# CONFIG_MEMBARRIER is not set
+CONFIG_PCI_QUIRKS=y
+CONFIG_MEMBARRIER=y
CONFIG_EMBEDDED=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y
@@ -143,7 +143,7 @@
# Kernel Performance Events And Counters
#
# CONFIG_PERF_EVENTS is not set
-CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
@@ -152,10 +152,9 @@
# CONFIG_SYSTEM_DATA_VERIFICATION is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
-CONFIG_KPROBES=y
+# CONFIG_KPROBES is not set
# CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
-CONFIG_KRETPROBES=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
@@ -174,6 +173,7 @@
#
# GCOV-based kernel profiling
#
+# CONFIG_GCOV_KERNEL is not set
# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_RT_MUTEXES=y
@@ -205,10 +205,12 @@
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_DEADLINE is not set
-# CONFIG_IOSCHED_CFQ is not set
-CONFIG_DEFAULT_NOOP=y
-CONFIG_DEFAULT_IOSCHED="noop"
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
@@ -247,7 +249,7 @@
CONFIG_ARCH_RUBY_EMAC_SMOOTHING_RATE=50000
# CONFIG_QUANTENNA_RESTRICT_WLAN_IP is not set
# CONFIG_SWITCH_RTL8365MB is not set
-CONFIG_SWITCH_RTL8363SB=m
+# CONFIG_SWITCH_RTL8363SB is not set
# CONFIG_QTN_SKB_RECYCLE is not set
#
@@ -287,7 +289,7 @@
# CONFIG_HIGHMEM is not set
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
CONFIG_ARC_PLAT_NEEDS_PHYS_TO_DMA=y
-CONFIG_ARC_KVADDR_SIZE=64
+CONFIG_ARC_KVADDR_SIZE=160
CONFIG_ARC_CURR_IN_REG=y
CONFIG_ARC_EMUL_UNALIGNED=y
CONFIG_HZ=200
@@ -331,6 +333,7 @@
# CONFIG_IDLE_PAGE_TRACKING is not set
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_NET=y
+CONFIG_NET_INGRESS=y
#
# Networking options
@@ -340,20 +343,26 @@
CONFIG_UNIX=y
CONFIG_UNIX_DIAG=y
CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
-CONFIG_NET_KEY=y
-# CONFIG_NET_KEY_MIGRATE is not set
+# CONFIG_NET_KEY is not set
CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+# CONFIG_IP_MULTIPLE_TABLES is not set
+# CONFIG_IP_ROUTE_MULTIPATH is not set
+# CONFIG_IP_ROUTE_VERBOSE is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set
CONFIG_NET_IP_TUNNEL=y
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+# CONFIG_IP_PIMSM_V1 is not set
+# CONFIG_IP_PIMSM_V2 is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_NET_IPVTI is not set
# CONFIG_NET_UDP_TUNNEL is not set
@@ -382,6 +391,7 @@
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
+# CONFIG_IPV6_ILA is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
CONFIG_INET6_XFRM_MODE_TRANSPORT=y
@@ -400,7 +410,193 @@
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NET_PTP_CLASSIFY is not set
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-# CONFIG_NETFILTER is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+# CONFIG_BRIDGE_NETFILTER is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+# CONFIG_NF_CONNTRACK_TIMEOUT is not set
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+# CONFIG_NF_CT_PROTO_DCCP is not set
+CONFIG_NF_CT_PROTO_GRE=m
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_SNMP is not set
+CONFIG_NF_CONNTRACK_PPTP=m
+# CONFIG_NF_CONNTRACK_SANE is not set
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+# CONFIG_NF_CT_NETLINK is not set
+# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+# CONFIG_NF_NAT_AMANDA is not set
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_REDIRECT=m
+# CONFIG_NF_TABLES is not set
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+# CONFIG_NETFILTER_XT_MARK is not set
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
+# CONFIG_NETFILTER_XT_TARGET_HL is not set
+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+CONFIG_NETFILTER_XT_NAT=m
+# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_BPF is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ECN is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+# CONFIG_NETFILTER_XT_MATCH_HL is not set
+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_NF_DUP_IPV4 is not set
+# CONFIG_NF_LOG_ARP is not set
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NF_NAT_IPV4=m
+CONFIG_NF_NAT_MASQUERADE_IPV4=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_IP_NF_IPTABLES=m
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_RPFILTER is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+# CONFIG_IP_NF_TARGET_SYNPROXY is not set
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+# CONFIG_IP_NF_TARGET_NETMAP is not set
+# CONFIG_IP_NF_TARGET_REDIRECT is not set
+CONFIG_IP_NF_MANGLE=m
+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
+# CONFIG_IP_NF_TARGET_ECN is not set
+# CONFIG_IP_NF_TARGET_TTL is not set
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+# CONFIG_NF_DUP_IPV6 is not set
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_NAT_IPV6=m
+CONFIG_NF_NAT_MASQUERADE_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+# CONFIG_IP6_NF_MATCH_AH is not set
+# CONFIG_IP6_NF_MATCH_EUI64 is not set
+# CONFIG_IP6_NF_MATCH_FRAG is not set
+# CONFIG_IP6_NF_MATCH_OPTS is not set
+# CONFIG_IP6_NF_MATCH_HL is not set
+# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
+# CONFIG_IP6_NF_MATCH_MH is not set
+# CONFIG_IP6_NF_MATCH_RPFILTER is not set
+# CONFIG_IP6_NF_MATCH_RT is not set
+# CONFIG_IP6_NF_TARGET_HL is not set
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
+CONFIG_IP6_NF_MANGLE=m
+# CONFIG_IP6_NF_RAW is not set
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+# CONFIG_IP6_NF_TARGET_NPT is not set
+# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
@@ -412,6 +608,7 @@
CONFIG_BRIDGE_IGMP_SNOOPING=y
# CONFIG_BRIDGE_VLAN_FILTERING is not set
CONFIG_HAVE_NET_DSA=y
+CONFIG_NET_DSA=y
CONFIG_VLAN_8021Q=y
# CONFIG_VLAN_8021Q_GVRP is not set
# CONFIG_VLAN_8021Q_MVRP is not set
@@ -477,8 +674,8 @@
# CONFIG_NETLINK_DIAG is not set
# CONFIG_MPLS is not set
# CONFIG_HSR is not set
-# CONFIG_NET_SWITCHDEV is not set
-# CONFIG_NET_L3_MASTER_DEV is not set
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_L3_MASTER_DEV=y
# CONFIG_SOCK_CGROUP_DATA is not set
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
@@ -487,7 +684,6 @@
# Network testing
#
# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
@@ -499,12 +695,19 @@
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_WEXT_PRIV=y
-# CONFIG_CFG80211 is not set
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+CONFIG_CFG80211_DEVELOPER_WARNINGS=y
+CONFIG_CFG80211_CERTIFICATION_ONUS=y
+# CONFIG_CFG80211_REG_CELLULAR_HINTS is not set
+# CONFIG_CFG80211_REG_RELAX_NO_IR is not set
+# CONFIG_CFG80211_DEFAULT_PS is not set
+CONFIG_CFG80211_DEBUGFS=y
+CONFIG_CFG80211_INTERNAL_REGDB=y
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
# CONFIG_LIB80211 is not set
-
-#
-# CFG80211 needs to be enabled for MAC80211
-#
+# CONFIG_MAC80211 is not set
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
@@ -525,17 +728,18 @@
# Generic Driver Options
#
CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
-# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
-# CONFIG_ALLOW_DEV_COREDUMP is not set
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
@@ -582,7 +786,7 @@
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_RAM=y
+# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
@@ -590,7 +794,6 @@
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP_OF=y
# CONFIG_MTD_INTEL_VR_NOR is not set
# CONFIG_MTD_PLATRAM is not set
@@ -767,60 +970,117 @@
#
# Distributed Switch Architecture drivers
#
+# CONFIG_NET_DSA_MV88E6060 is not set
+# CONFIG_NET_DSA_MV88E6XXX is not set
+# CONFIG_NET_DSA_BCM_SF2 is not set
CONFIG_ETHERNET=y
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_NET_VENDOR_ADAPTEC is not set
-# CONFIG_NET_VENDOR_AGERE is not set
-# CONFIG_NET_VENDOR_ALTEON is not set
+CONFIG_NET_VENDOR_3COM=y
+# CONFIG_TYPHOON is not set
+CONFIG_NET_VENDOR_ADAPTEC=y
+# CONFIG_ADAPTEC_STARFIRE is not set
+CONFIG_NET_VENDOR_AGERE=y
+# CONFIG_ET131X is not set
+CONFIG_NET_VENDOR_ALTEON=y
+# CONFIG_ACENIC is not set
# CONFIG_ALTERA_TSE is not set
-# CONFIG_NET_VENDOR_AMD is not set
+CONFIG_NET_VENDOR_AMD=y
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_PCNET32 is not set
CONFIG_NET_VENDOR_ARC=y
# CONFIG_ARC_EMAC is not set
-# CONFIG_NET_VENDOR_ATHEROS is not set
+CONFIG_NET_VENDOR_ATHEROS=y
+# CONFIG_ATL2 is not set
+# CONFIG_ATL1 is not set
+# CONFIG_ATL1E is not set
+# CONFIG_ATL1C is not set
+# CONFIG_ALX is not set
# CONFIG_NET_VENDOR_AURORA is not set
# CONFIG_NET_CADENCE is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_BROCADE is not set
-# CONFIG_NET_VENDOR_CAVIUM is not set
-# CONFIG_NET_VENDOR_CHELSIO is not set
-# CONFIG_NET_VENDOR_CISCO is not set
+CONFIG_NET_VENDOR_BROCADE=y
+# CONFIG_BNA is not set
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_CHELSIO_T4 is not set
+# CONFIG_CHELSIO_T4VF is not set
+CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_ENIC is not set
# CONFIG_DNET is not set
-# CONFIG_NET_VENDOR_DEC is not set
-# CONFIG_NET_VENDOR_DLINK is not set
-# CONFIG_NET_VENDOR_EMULEX is not set
+CONFIG_NET_VENDOR_DEC=y
+# CONFIG_NET_TULIP is not set
+CONFIG_NET_VENDOR_DLINK=y
+# CONFIG_DL2K is not set
+# CONFIG_SUNDANCE is not set
+CONFIG_NET_VENDOR_EMULEX=y
+# CONFIG_BE2NET is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
-# CONFIG_NET_VENDOR_EXAR is not set
-# CONFIG_NET_VENDOR_HP is not set
+CONFIG_NET_VENDOR_EXAR=y
+# CONFIG_S2IO is not set
+# CONFIG_VXGE is not set
+CONFIG_NET_VENDOR_HP=y
+# CONFIG_HP100 is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_JME is not set
# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MELLANOX is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+# CONFIG_MLX4_EN is not set
+# CONFIG_MLX4_CORE is not set
+# CONFIG_MLX5_CORE is not set
+# CONFIG_MLXSW_CORE is not set
# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_MYRI is not set
+CONFIG_NET_VENDOR_MYRI=y
+# CONFIG_MYRI10GE is not set
# CONFIG_FEALNX is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
-# CONFIG_NET_VENDOR_NVIDIA is not set
-# CONFIG_NET_VENDOR_OKI is not set
+CONFIG_NET_VENDOR_NVIDIA=y
+# CONFIG_FORCEDETH is not set
+CONFIG_NET_VENDOR_OKI=y
# CONFIG_ETHOC is not set
-# CONFIG_NET_PACKET_ENGINE is not set
-# CONFIG_NET_VENDOR_QLOGIC is not set
+CONFIG_NET_PACKET_ENGINE=y
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+CONFIG_NET_VENDOR_QLOGIC=y
+# CONFIG_QLA3XXX is not set
+# CONFIG_QLCNIC is not set
+# CONFIG_QLGE is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_QED is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
-# CONFIG_NET_VENDOR_REALTEK is not set
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_R8169 is not set
# CONFIG_NET_VENDOR_RENESAS is not set
-# CONFIG_NET_VENDOR_RDC is not set
+CONFIG_NET_VENDOR_RDC=y
+# CONFIG_R6040 is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SILAN is not set
-# CONFIG_NET_VENDOR_SIS is not set
+CONFIG_NET_VENDOR_SILAN=y
+# CONFIG_SC92031 is not set
+CONFIG_NET_VENDOR_SIS=y
+# CONFIG_SIS900 is not set
+# CONFIG_SIS190 is not set
# CONFIG_SFC is not set
-# CONFIG_NET_VENDOR_SMSC is not set
+CONFIG_NET_VENDOR_SMSC=y
+# CONFIG_EPIC100 is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_SMSC9420 is not set
# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_SUN is not set
+CONFIG_NET_VENDOR_SUN=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NIU is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
-# CONFIG_NET_VENDOR_TEHUTI is not set
-# CONFIG_NET_VENDOR_TI is not set
+CONFIG_NET_VENDOR_TEHUTI=y
+# CONFIG_TEHUTI is not set
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TI_CPSW_ALE is not set
+# CONFIG_TLAN is not set
# CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_FDDI is not set
@@ -864,7 +1124,25 @@
#
# Host-side USB support is needed for USB Network Adapter support
#
-# CONFIG_WLAN is not set
+CONFIG_WLAN=y
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+CONFIG_WLAN_VENDOR_MARVELL=y
+# CONFIG_LIBERTAS is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_PCIE=m
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_WLAN_VENDOR_REALTEK is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -920,7 +1198,7 @@
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
-# CONFIG_DEVMEM is not set
+CONFIG_DEVMEM=y
# CONFIG_DEVKMEM is not set
#
@@ -931,7 +1209,7 @@
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
# CONFIG_SERIAL_8250_FINTEK is not set
CONFIG_SERIAL_8250_CONSOLE=y
-# CONFIG_SERIAL_8250_PCI is not set
+CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=2
CONFIG_SERIAL_8250_RUNTIME_UARTS=2
CONFIG_SERIAL_8250_EXTENDED=y
@@ -940,7 +1218,7 @@
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_RSA is not set
# CONFIG_SERIAL_8250_FSL is not set
-# CONFIG_SERIAL_8250_DW is not set
+CONFIG_SERIAL_8250_DW=y
# CONFIG_SERIAL_8250_RT288X is not set
# CONFIG_SERIAL_8250_MOXA is not set
CONFIG_SERIAL_OF_PLATFORM=y
@@ -1224,7 +1502,8 @@
#
# Graphics support
#
-# CONFIG_VGA_ARB is not set
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_DRM is not set
#
@@ -1375,8 +1654,14 @@
#
CONFIG_PCI=y
CONFIG_PCI_SYSCALL=y
-# CONFIG_PCIEAER is not set
-# CONFIG_PCIEASPM is not set
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
# CONFIG_PCIE_DPC is not set
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
@@ -1390,7 +1675,8 @@
#
# PCI host controller drivers
#
-# CONFIG_PCIE_DW_PLAT is not set
+CONFIG_PCIE_DW_PLAT=y
+CONFIG_PCIE_DW=y
#
# File systems
@@ -1405,11 +1691,13 @@
# CONFIG_F2FS_FS is not set
# CONFIG_FS_DAX is not set
# CONFIG_FS_POSIX_ACL is not set
-# CONFIG_FILE_LOCKING is not set
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_MANDATORY_FILE_LOCKING=y
# CONFIG_FS_ENCRYPTION is not set
-# CONFIG_FSNOTIFY is not set
-# CONFIG_DNOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not set
@@ -1501,11 +1789,16 @@
CONFIG_PRINTK_TIME=y
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_DYNAMIC_DEBUG is not set
#
# Compile-time checks and compiler options
#
-# CONFIG_DEBUG_INFO is not set
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+# CONFIG_DEBUG_INFO_DWARF4 is not set
+# CONFIG_GDB_SCRIPTS is not set
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
@@ -1513,7 +1806,7 @@
# CONFIG_READABLE_ASM is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_PAGE_OWNER is not set
-# CONFIG_DEBUG_FS is not set
+CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
@@ -1528,7 +1821,6 @@
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_VM is not set
@@ -1540,13 +1832,18 @@
#
# Debug Lockups and Hangs
#
-# CONFIG_LOCKUP_DETECTOR is not set
-# CONFIG_DETECT_HUNG_TASK is not set
-# CONFIG_WQ_WATCHDOG is not set
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_SCHED_DEBUG=y
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
+CONFIG_WQ_WATCHDOG=y
+CONFIG_PANIC_ON_OOPS=y
+CONFIG_PANIC_ON_OOPS_VALUE=1
+CONFIG_PANIC_TIMEOUT=3
+# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHED_INFO is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_SCHED_STACK_END_CHECK is not set
@@ -1606,8 +1903,8 @@
#
# Runtime Testing
#
+# CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -1650,20 +1947,22 @@
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH=m
CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=m
CONFIG_CRYPTO_AKCIPHER2=y
# CONFIG_CRYPTO_RSA is not set
-CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_USER is not set
-# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
@@ -1678,7 +1977,7 @@
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
# CONFIG_CRYPTO_SEQIV is not set
-# CONFIG_CRYPTO_ECHAINIV is not set
+CONFIG_CRYPTO_ECHAINIV=m
#
# Block modes
@@ -1696,14 +1995,14 @@
# Hash modes
#
# CONFIG_CRYPTO_CMAC is not set
-CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HMAC=m
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
-CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CRC32 is not set
# CONFIG_CRYPTO_CRCT10DIF is not set
# CONFIG_CRYPTO_GHASH is not set
@@ -1716,7 +2015,7 @@
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
# CONFIG_CRYPTO_SHA1 is not set
-CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA256=m
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -1753,18 +2052,19 @@
#
# Random Number Generation
#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DRBG_MENU=m
CONFIG_CRYPTO_DRBG_HMAC=y
# CONFIG_CRYPTO_DRBG_HASH is not set
# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=y
-CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_DRBG=m
+CONFIG_CRYPTO_JITTERENTROPY=m
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_USER_API_RNG is not set
# CONFIG_CRYPTO_USER_API_AEAD is not set
-# CONFIG_CRYPTO_HW is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_HIFN_795X is not set
#
# Certificates for signature checking
@@ -1800,8 +2100,15 @@
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
-# CONFIG_XZ_DEC is not set
-# CONFIG_XZ_DEC_BCJ is not set
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
CONFIG_HAS_IOMEM=y
CONFIG_HAS_DMA=y
CONFIG_DQL=y
diff --git a/arch/arc/include/asm/cache.h b/arch/arc/include/asm/cache.h
index c94450a..2e1b40c 100644
--- a/arch/arc/include/asm/cache.h
+++ b/arch/arc/include/asm/cache.h
@@ -28,6 +28,7 @@
#define ARC_UNCACHED_ADDR_SPACE 0xc0000000
#ifndef __ASSEMBLY__
+
/* Uncached access macros */
#define arc_read_uncached_8(ptr) \
({ \
@@ -65,26 +66,6 @@
__asm__ __volatile__ ("st.di %0, [%1]"::"r"(data), "r"(ptr)); \
})
-#if 0
-#define arc_read_uncached_32(ptr) \
-({ \
- unsigned int __ret; \
- __asm__ __volatile__( \
- " ld.di %0, [%1] \n" \
- : "=r"(__ret) \
- : "r"(ptr)); \
- __ret; \
-})
-
-#define arc_write_uncached_32(ptr, data)\
-({ \
- __asm__ __volatile__( \
- " st.di %0, [%1] \n" \
- : \
- : "r"(data), "r"(ptr)); \
-})
-#endif
-
#define ARCH_DMA_MINALIGN L1_CACHE_BYTES
extern void arc_cache_init(void);
diff --git a/arch/arc/include/asm/processor.h b/arch/arc/include/asm/processor.h
index b59dec4..dd7ac0a 100644
--- a/arch/arc/include/asm/processor.h
+++ b/arch/arc/include/asm/processor.h
@@ -150,7 +150,7 @@
#define USER_KERNEL_GUTTER (VMALLOC_START - TASK_SIZE)
#else
/* Maximize TASK_SIZE */
-#define USER_KERNEL_GUTTER 0x02000000
+#define USER_KERNEL_GUTTER 0x01000000
#define TASK_SIZE (VMALLOC_START - USER_KERNEL_GUTTER)
#endif
diff --git a/arch/arc/kernel/time.c b/arch/arc/kernel/time.c
index 4b05e0f..c6bc0a0 100644
--- a/arch/arc/kernel/time.c
+++ b/arch/arc/kernel/time.c
@@ -41,8 +41,10 @@
#include <asm/arcregs.h>
#include <asm/mcip.h>
-#include <qtn/topaz_hbm.h>
#include <asm/board/soc.h>
+#ifdef CONFIG_ARC_PLAT_QTN
+#include <qtn/topaz_hbm.h>
+#endif
/* Timer related Aux registers */
#define ARC_REG_TIMER0_LIMIT 0x23 /* timer 0 limit */
@@ -293,8 +295,10 @@
*/
write_aux_reg(ARC_REG_TIMER0_CTRL, irq_reenable | TIMER_CTRL_NH);
+#ifdef CONFIG_ARC_PLAT_QTN
topaz_hbm_filter_txdone_pool();
pet_watchdog_timer();
+#endif
evt->event_handler(evt);
return IRQ_HANDLED;
@@ -377,5 +381,8 @@
{
of_clk_init(NULL);
clocksource_probe();
+#ifdef CONFIG_ARC_PLAT_QTN
init_watchdog_timer();
+#endif
+
}
diff --git a/arch/arc/kernel/unaligned.c b/arch/arc/kernel/unaligned.c
index cc4d8ba..fec64d7 100644
--- a/arch/arc/kernel/unaligned.c
+++ b/arch/arc/kernel/unaligned.c
@@ -206,12 +206,7 @@
char buf[TASK_COMM_LEN];
/* handle user mode only and only if enabled by sysadmin */
-/*#ifdef CONFIG_QTN_PLATFORM_MISALIGN_WAR*/
-#if 0
- if (!unaligned_enabled)
-#else
if (!user_mode(regs) || !unaligned_enabled)
-#endif
return 1;
if (no_unaligned_warning) {
diff --git a/arch/arc/mm/init.c b/arch/arc/mm/init.c
index 8a9e5b6..5ecd024 100644
--- a/arch/arc/mm/init.c
+++ b/arch/arc/mm/init.c
@@ -76,20 +76,21 @@
base, TO_MB(size), !in_use ? "Not used":"");
#if QTN_MM_DEBUG
- pr_info("mm_init: RUBY_MAX_DRAM_SIZE =%08x\n", RUBY_MAX_DRAM_SIZE);
- pr_info("mm_init: DMA_NOCACHE_START =%08x\n", DMA_NOCACHE_START);
- pr_info("mm_init: DMA_NOCACHE_END/PAGE offset =%08x\n", PAGE_OFFSET);
+ pr_info("mm_init: CONFIG_ARC_KVADDR_SIZE =%#x\n", CONFIG_ARC_KVADDR_SIZE);
+ pr_info("mm_init: RUBY_MAX_DRAM_SIZE =%#x\n", RUBY_MAX_DRAM_SIZE);
+ pr_info("mm_init: DMA_NOCACHE_START =%#x\n", DMA_NOCACHE_START);
+ pr_info("mm_init: DMA_NOCACHE_END/PAGE offset =%#x\n", PAGE_OFFSET);
- pr_info("mm_init: PCI_REMAP_SIZE =%08x\n", PCI_REMAP_SIZE);
- pr_info("mm_init: PCI_REMAP_START =%08x\n", PCI_REMAP_START);
- pr_info("mm_init: PCI_REMAP_END =%08x\n", PCI_REMAP_END);
+ pr_info("mm_init: PCI_REMAP_SIZE =%#x\n", PCI_REMAP_SIZE);
+ pr_info("mm_init: PCI_REMAP_START =%#x\n", PCI_REMAP_START);
+ pr_info("mm_init: PCI_REMAP_END =%#x\n", PCI_REMAP_END);
- pr_info("mm_init: TASK size =%08x\n", TASK_SIZE);
- pr_info("mm_init: TASK_UNMAPPED_BASE =%08x\n", TASK_UNMAPPED_BASE);
- pr_info("mm_init: PAGE offset =%08x\n", PAGE_OFFSET);
- pr_info("mm_init: PCI_REMAP_START =%08x\n", PCI_REMAP_START);
- pr_info("mm_init: vmalloc start =%08x, size=%08x, end=%08x\n", VMALLOC_START, VMALLOC_SIZE, VMALLOC_END);
- pr_info("mm_init: User kernel gutter =%08x\n", USER_KERNEL_GUTTER);
+ pr_info("mm_init: TASK size =%#x\n", TASK_SIZE);
+ pr_info("mm_init: TASK_UNMAPPED_BASE =%#x\n", TASK_UNMAPPED_BASE);
+ pr_info("mm_init: PAGE offset =%#x\n", PAGE_OFFSET);
+ pr_info("mm_init: PCI_REMAP_START =%#x\n", PCI_REMAP_START);
+ pr_info("mm_init: vmalloc start =%#x, size=%#x, end=%#x\n", VMALLOC_START, VMALLOC_SIZE, VMALLOC_END);
+ pr_info("mm_init: User kernel gutter =%#x\n", USER_KERNEL_GUTTER);
#endif
}
@@ -129,10 +130,10 @@
init_mm.brk = (unsigned long)_end;
#if QTN_MM_DEBUG
- pr_info("init mm start code =%08x\n", init_mm.start_code);
- pr_info("init mm end code =%08x\n", init_mm.end_code);
- pr_info("init mm end data =%08x\n", init_mm.end_data);
- pr_info("init mm brk =%08x\n", init_mm.brk);
+ pr_info("setup_arch_mem: init mm start code =%08x\n", init_mm.start_code);
+ pr_info("setup_arch_mem: init mm end code =%08x\n", init_mm.end_code);
+ pr_info("setup_arch_mem: init mm end data =%08x\n", init_mm.end_data);
+ pr_info("setup_arch_mem: init mm brk =%08x\n", init_mm.brk);
#endif
/* first page of system - kernel .vector starts here */
diff --git a/arch/arc/plat-qtn/sdk-qsr1000/common/ruby_board_db.h b/arch/arc/plat-qtn/sdk-qsr1000/common/ruby_board_db.h
index 9999df1..416de04 100644
--- a/arch/arc/plat-qtn/sdk-qsr1000/common/ruby_board_db.h
+++ b/arch/arc/plat-qtn/sdk-qsr1000/common/ruby_board_db.h
@@ -1164,6 +1164,18 @@
.bc_emac0 = EMAC_IN_USE | EMAC_PHY_FORCE_1000MB | EMAC_PHY_NOT_IN_USE | EMAC_PHY_RTL8363SB_P0, \
.bc_wifi_hw = QTN_TPZ_SE5003L1, \
.bc_rgmii_timing = CONFIG_ARCH_RGMII_NODELAY, \
+ } ,{ /* 1232 */ \
+ .bc_board_id = QTN_TOPAZ_PROWL, \
+ .bc_name = "Prowl", \
+ .bc_ddr_type = DDR3_16_WINBOND, \
+ .bc_ddr_speed = DDR3_500MHz, \
+ .bc_ddr_size = DDR_256MB, \
+ .bc_emac0 = EMAC_IN_USE, \
+ .bc_emac1 = EMAC_NOT_IN_USE, \
+ .bc_phy0_addr = 4, \
+ .bc_phy1_addr = TOPAZ_PHY0_ADDR, \
+ .bc_wifi_hw = QTN_TPZ_SKY85703, \
+ .bc_rgmii_timing = 0x84848484, \
} ,{ /* 2008 */ \
.bc_board_id = QTN_TOPAZ_RGMII_RFIC6, \
.bc_name = "TOPAZ RGMII RFIC6", \
diff --git a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/dmautil.h b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/dmautil.h
index dab25bd..9a7d3aa 100644
--- a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/dmautil.h
+++ b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/dmautil.h
@@ -86,7 +86,10 @@
__always_inline static void flush_dcache_sizerange_safe(void *p, size_t size)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
- dma_cache_wback((unsigned long)p, size);
+ phys_addr_t paddr;
+
+ paddr = virt_to_phys(p);
+ dma_cache_wback(paddr, size);
#else
uintptr_t op_start = (uintptr_t) align_buf_cache(p);
size_t op_size = align_buf_cache_size(p, size);
@@ -97,7 +100,10 @@
__always_inline static void flush_and_inv_dcache_sizerange_safe(void *p, size_t size)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
- dma_cache_wback_inv((unsigned long)p, size);
+ phys_addr_t paddr;
+
+ paddr = virt_to_phys(p);
+ dma_cache_wback_inv(paddr, size);
#else
uintptr_t op_start = (uintptr_t) align_buf_cache(p);
size_t op_size = align_buf_cache_size(p, size);
@@ -109,7 +115,10 @@
__always_inline static void inv_dcache_sizerange_safe(void *p, size_t size)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
- dma_cache_inv((unsigned long)p, size);
+ phys_addr_t paddr;
+
+ paddr = virt_to_phys(p);
+ dma_cache_inv(paddr, size);
#else
uintptr_t op_start = (uintptr_t) align_buf_cache(p);
size_t op_size = align_buf_cache_size(p, size);
diff --git a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/iputil.h b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/iputil.h
index 42791c7..57be08b 100644
--- a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/iputil.h
+++ b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/iputil.h
@@ -163,9 +163,10 @@
const struct in6_addr *ipaddr = &ipv6h->daddr;
return ((memcmp(dest, &ssdp6_addr, sizeof(ssdp6_addr)) == 0) &&
- ((__constant_ntohl(ipaddr->in6_u.u6_addr32[0]) & 0xfff0ffff) == 0xff000000) &&
- (ipaddr->in6_u.u6_addr32[1] == 0) && (ipaddr->in6_u.u6_addr32[2] == 0) &&
- (ipaddr->in6_u.u6_addr32[3] == __constant_htonl(0xc)));
+ (((get_unaligned(&ipaddr->in6_u.u6_addr32[0])) & 0xfff0ffff) == __constant_htonl(0xff000000)) &&
+ (get_unaligned(&ipaddr->in6_u.u6_addr32[1]) == 0) &&
+ (get_unaligned(&ipaddr->in6_u.u6_addr32[2]) == 0) &&
+ (get_unaligned(&ipaddr->in6_u.u6_addr32[3]) == __constant_htonl(0xc)));
}
#endif
@@ -201,9 +202,10 @@
struct in6_addr *ipaddr = &ipv6h->daddr;
return ((memcmp(dest, ll_all_nodes_mac_addr, sizeof(ll_all_nodes_mac_addr)) == 0) &&
- (__constant_ntohl(ipaddr->in6_u.u6_addr32[0]) == 0xff020000) &&
- (ipaddr->in6_u.u6_addr32[1] == 0) && (ipaddr->in6_u.u6_addr32[2] == 0) &&
- (ipaddr->in6_u.u6_addr32[3] == __constant_htonl(0x1)));
+ (get_unaligned(&ipaddr->in6_u.u6_addr32[0]) == __constant_htonl(0xff020000)) &&
+ (get_unaligned(&ipaddr->in6_u.u6_addr32[1]) == 0) &&
+ (get_unaligned(&ipaddr->in6_u.u6_addr32[2]) == 0) &&
+ (get_unaligned(&ipaddr->in6_u.u6_addr32[3]) == __constant_htonl(0x1)));
}
#endif
diff --git a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/qdrv_bld.h b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/qdrv_bld.h
index 268656a..fcc2b55 100644
--- a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/qdrv_bld.h
+++ b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/qdrv_bld.h
@@ -1,6 +1,6 @@
/* Automatically generated file. Do not edit. */
-#define QDRV_BLD_NAME "v37.4.1.89"
-#define QDRV_BLD_LABEL "v37.4.1.89"
-#define QDRV_BLD_VER (0x25040159)
-#define QDRV_BLD_REV "53858"
+#define QDRV_BLD_NAME "v37.4.2.89"
+#define QDRV_BLD_LABEL "v37.4.2.89"
+#define QDRV_BLD_VER (0x25040259)
+#define QDRV_BLD_REV "55851"
#define QDRV_BLD_TYPE (QDRV_BLD_TYPE_SDK)
diff --git a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/shared_defs_common.h b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/shared_defs_common.h
index 6d15bf7..7e36597 100644
--- a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/shared_defs_common.h
+++ b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/shared_defs_common.h
@@ -126,6 +126,7 @@
#define QTN_TOPAZ_BB_BOARD 1229
#define QTN_TOPAZ_RF_BOARD 1230
#define QTN_TOPAZ_QHS840_5S1 1231
+#define QTN_TOPAZ_PROWL 1232
#define QTN_TOPAZ_RGMII_RFIC6 2008
#define QTN_RUBY_AUTOCONFIG_ID 32768
diff --git a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/topaz_hbm.h b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/topaz_hbm.h
index 283dc81..3a31a64 100644
--- a/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/topaz_hbm.h
+++ b/arch/arc/plat-qtn/sdk-qsr1000/include/qtn/topaz_hbm.h
@@ -63,13 +63,18 @@
static inline void topaz_hbm_flush_skb_cache(struct sk_buff *skb)
{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+ phys_addr_t paddr;
+
+ paddr = virt_to_phys(skb->head);
+ if (!skb->cache_is_cleaned)
+ dma_cache_wback_inv(paddr, skb_end_offset(skb));
+#else
uintptr_t flush_start = (uintptr_t) align_buf_cache(skb->head);
uintptr_t flush_end = align_val_up((uintptr_t) skb_end_pointer(skb),
dma_get_cache_alignment());
+
if (!skb->cache_is_cleaned)
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
- dma_cache_wback_inv(flush_start, flush_end - flush_start);
-#else
flush_and_inv_dcache_range(flush_start, flush_end);
#endif
}
diff --git a/drivers/qtn/include/kernel/net80211/ieee80211_node.h b/drivers/qtn/include/kernel/net80211/ieee80211_node.h
index 5697020..9b906aa 100644
--- a/drivers/qtn/include/kernel/net80211/ieee80211_node.h
+++ b/drivers/qtn/include/kernel/net80211/ieee80211_node.h
@@ -756,6 +756,17 @@
const char *filename,
int line);
+struct ieee80211_node *ieee80211_find_node_by_ip_addr_debug(struct ieee80211vap *vap,
+ uint32_t ip_addr,
+ const char *filename,
+ int line);
+#ifdef CONFIG_IPV6
+struct ieee80211_node *ieee80211_find_node_by_ipv6_addr_debug(struct ieee80211vap *vap,
+ struct in6_addr *ipv6_addr,
+ const char *filename,
+ int line);
+#endif
+
#define ieee80211_ref_node(ni) \
ieee80211_ref_node_debug(ni, __FILE__, __LINE__)
diff --git a/drivers/qtn/pcie2/include/qdpc_version.h b/drivers/qtn/pcie2/include/qdpc_version.h
index 8928354..5a03be8 100644
--- a/drivers/qtn/pcie2/include/qdpc_version.h
+++ b/drivers/qtn/pcie2/include/qdpc_version.h
@@ -1 +1 @@
-#define DRV_VERSION "v37.4.1.89"
+#define DRV_VERSION "v37.4.2.89"
diff --git a/drivers/qtn/pm_interval/pm_interval_drv.c b/drivers/qtn/pm_interval/pm_interval_drv.c
index 2dcf702..cbd7921 100644
--- a/drivers/qtn/pm_interval/pm_interval_drv.c
+++ b/drivers/qtn/pm_interval/pm_interval_drv.c
@@ -65,15 +65,19 @@
#define PM_INTERVAL_SUCCESS_RESULT 0
struct pm_interval_nd_entry {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+ struct rtnl_link_stats64 pd_start_interval;
+#else
struct net_device_stats pd_start_interval;
+#endif
const struct net_device *pd_dev;
TAILQ_ENTRY(pm_interval_nd_entry) pd_next;
};
struct pm_interval_entry {
- unsigned long pe_time_started;
- unsigned long pe_time_elapsed;
- unsigned long pe_time_length;
+ long pe_time_started;
+ long pe_time_elapsed;
+ long pe_time_length;
char pe_name_interval[PM_INTERVAL_MAX_LENGTH_ARG + 1];
struct pm_interval_data *pe_backptr;
TAILQ_HEAD(, pm_interval_nd_entry) pe_devices;
@@ -244,6 +248,62 @@
static int pm_interval_proc_show(struct seq_file *sfile, void *v)
{
+ struct pm_interval_entry *p_entry = sfile->private;
+ struct pm_interval_data *p_data = p_entry->pe_backptr;
+ struct pm_interval_nd_entry *p_nd_entry = NULL;
+ long elapsed_time;
+
+ elapsed_time = pm_get_uptime();
+
+ spin_lock_bh(&p_data->pm_spinlock);
+
+ if (p_entry->pe_time_started <= elapsed_time) {
+ elapsed_time = elapsed_time - p_entry->pe_time_started;
+ } else {
+ elapsed_time = 0;
+ }
+
+ /*
+ * Adopted from dev_seq_show, linux/net/core/dev.c
+ * Lets the API to get a cumulative counter share source code with the API to get a PM counter.
+ */
+ seq_printf(sfile, "Inter-| Receive "
+ " | Transmit\n"
+ " face |bytes packets errs drop fifo frame "
+ "compressed multicast|bytes packets errs "
+ "drop fifo colls carrier compressed\n");
+
+
+ TAILQ_FOREACH(p_nd_entry, &p_entry->pe_devices, pd_next) {
+ const struct rtnl_link_stats64 *stats = &p_nd_entry->pd_start_interval;
+
+ /*
+ * Adopted from dev_seq_printf_stats, linux/net/core/dev.c
+ * Lets the API to get a cumulative counter share source code with the API
+ * to get a PM counter.
+ */
+ seq_printf(sfile, "%6s:%8llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
+ "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
+ p_nd_entry->pd_dev->name, stats->rx_bytes, stats->rx_packets,
+ stats->rx_errors,
+ stats->rx_dropped + stats->rx_missed_errors,
+ stats->rx_fifo_errors,
+ stats->rx_length_errors + stats->rx_over_errors +
+ stats->rx_crc_errors + stats->rx_frame_errors,
+ stats->rx_compressed, stats->multicast,
+ stats->tx_bytes, stats->tx_packets,
+ stats->tx_errors, stats->tx_dropped,
+ stats->tx_fifo_errors, stats->collisions,
+ stats->tx_carrier_errors +
+ stats->tx_aborted_errors +
+ stats->tx_window_errors +
+ stats->tx_heartbeat_errors,
+ stats->tx_compressed);
+ }
+
+ spin_unlock_bh(&p_data->pm_spinlock);
+ seq_printf(sfile, "\n%u seconds since the interval started\n", (unsigned int) elapsed_time);
+
return 0;
}
@@ -272,7 +332,7 @@
struct pm_interval_entry *p_entry = (struct pm_interval_entry *) data;
struct pm_interval_data *p_data = p_entry->pe_backptr;
struct pm_interval_nd_entry *p_nd_entry = NULL;
- unsigned long elapsed_time;
+ long elapsed_time;
elapsed_time = pm_get_uptime();
@@ -423,7 +483,7 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
if (!proc_create_data(&proc_entry_name[0], 0600, p_data->pm_interval_dir,
- &pm_interval_stats_fops, NULL)) {
+ &pm_interval_stats_fops, p_entry)) {
printk(KERN_ERR "pm_interval: could not create proc entry\n");
goto cant_create_proc_entry;
}
@@ -567,14 +627,16 @@
struct net_device *dev;
int retval = 0;
-
read_lock(&dev_base_lock);
for_each_net(net) {
for_each_netdev(net, dev) {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
struct rtnl_link_stats64 storage;
- //const struct net_device_stats *p_current_counters = dev_get_stats(dev, &storage);
const struct rtnl_link_stats64 *p_current_counters = dev_get_stats(dev, &storage);
+#else
+ const struct net_device_stats *p_current_counters = dev_get_stats(dev);
+#endif
struct pm_interval_nd_entry *p_nd_entry =
pm_interval_get_addr_entry(p_entry, dev);
@@ -597,7 +659,7 @@
if (p_current_counters != NULL) {
memcpy(&p_nd_entry->pd_start_interval,
p_current_counters,
- sizeof(*p_current_counters));
+ sizeof(p_nd_entry->pd_start_interval));
}
}
}
diff --git a/drivers/qtn/qdrv/qdrv_bridge.c b/drivers/qtn/qdrv/qdrv_bridge.c
index 659b6f2..47c47b0 100644
--- a/drivers/qtn/qdrv/qdrv_bridge.c
+++ b/drivers/qtn/qdrv/qdrv_bridge.c
@@ -1228,7 +1228,11 @@
#endif
KASSERT(((br_uc_cache != NULL) && (br_mc_cache != NULL) &&
- (br_mc_client_cache != NULL) && (br_ipv6uc_cache != NULL)),
+ (br_mc_client_cache != NULL)
+#if defined(CONFIG_IPV6)
+ && (br_ipv6uc_cache != NULL)
+#endif
+ ),
(DBGEFMT "Could not allocate qdrv bridge cache", DBGARG));
}
diff --git a/drivers/qtn/qdrv/qdrv_netdebug_binary.h b/drivers/qtn/qdrv/qdrv_netdebug_binary.h
index c61bf5a..4aab90b 100644
--- a/drivers/qtn/qdrv/qdrv_netdebug_binary.h
+++ b/drivers/qtn/qdrv/qdrv_netdebug_binary.h
@@ -1,7 +1,7 @@
-/* Automatically generated on 2016-11-15 09:25:27.101207 - do not edit */
+/* Automatically generated on 2016-12-23 09:23:45.073161 - do not edit */
const char pktlogger_structs[] = {
0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00, 0x00, 0x04, 0xE6, 0xD6, 0xB4, 0x46, 0x02, 0x00, 0x21, 0x01,
-0x16, 0x00, 0x00, 0x00, 0x74, 0x2F, 0xE5, 0xA3, 0xE0, 0x74, 0x5C, 0x16, 0xB2, 0x5D, 0x00, 0x39,
+0x16, 0x00, 0x00, 0x00, 0x74, 0x2F, 0xE5, 0xA3, 0xE0, 0x74, 0x6F, 0x16, 0xB6, 0x5D, 0x00, 0x39,
0x9D, 0x0A, 0x8D, 0xE8, 0x21, 0xA4, 0x10, 0x81, 0x11, 0x2D, 0xCF, 0x41, 0x5B, 0x94, 0xFF, 0xA9,
0xAF, 0x4F, 0xE4, 0xD8, 0x13, 0x51, 0xCB, 0xF4, 0xD7, 0xD0, 0xAA, 0xCC, 0x0F, 0x26, 0xB6, 0x20,
0xEA, 0x26, 0xFE, 0x50, 0xE1, 0x98, 0xD0, 0xD0, 0x64, 0x3F, 0x94, 0x21, 0x67, 0x35, 0xFA, 0x97,
@@ -197,174 +197,174 @@
0xC9, 0xF8, 0x9B, 0xAE, 0xFE, 0x17, 0x6D, 0x22, 0x52, 0x1A, 0x80, 0xCD, 0xA3, 0x0A, 0x26, 0x84,
0x64, 0x29, 0xA2, 0xBE, 0xDB, 0xFA, 0x33, 0x64, 0x21, 0xD1, 0xB6, 0xBF, 0x0F, 0xF0, 0x6B, 0x07,
0x9B, 0xF1, 0x3B, 0x15, 0x05, 0x33, 0xDC, 0x79, 0xB6, 0x3D, 0x38, 0xFD, 0xE9, 0x7C, 0x4B, 0x84,
-0x48, 0x71, 0x2A, 0xF1, 0x0B, 0xEB, 0xEF, 0x5E, 0x24, 0xE8, 0x0B, 0xD6, 0xEE, 0x2B, 0x72, 0xE3,
-0xC2, 0xF9, 0x8F, 0xD7, 0x3B, 0x07, 0x76, 0x40, 0xAB, 0xB0, 0xA9, 0xA9, 0xEC, 0x46, 0xEB, 0xA8,
-0x1C, 0x17, 0xB9, 0xD8, 0x55, 0x20, 0x9F, 0x52, 0x2C, 0xC7, 0x35, 0x16, 0x33, 0x8F, 0x36, 0xEA,
-0x67, 0x0C, 0x84, 0x84, 0x36, 0x28, 0x5F, 0xC2, 0xBA, 0x6C, 0x71, 0x9C, 0x5A, 0x98, 0xA9, 0x5A,
-0x07, 0x78, 0xA1, 0x4E, 0x87, 0x23, 0xA8, 0xA1, 0xF8, 0x78, 0xBF, 0x12, 0x8D, 0x98, 0x1A, 0x5D,
-0x6D, 0x72, 0x77, 0xD0, 0x87, 0x90, 0x8C, 0xB4, 0xD1, 0x95, 0x28, 0xE3, 0xF0, 0x0E, 0x46, 0x73,
-0xBC, 0x71, 0x2E, 0x86, 0x97, 0xC7, 0x20, 0x45, 0xD0, 0x37, 0xC5, 0x98, 0x49, 0x60, 0xF4, 0xA6,
-0x92, 0x5C, 0x82, 0x91, 0x21, 0xAE, 0xD0, 0xD1, 0xBA, 0xA7, 0x0E, 0x03, 0x42, 0x4F, 0x07, 0xF5,
-0xAA, 0xE2, 0xD8, 0x24, 0x17, 0x2A, 0x28, 0xD6, 0x39, 0x9D, 0x6B, 0xCE, 0x7A, 0x8B, 0x42, 0xC6,
-0x5B, 0xBA, 0xAB, 0x6F, 0xB0, 0xCE, 0x63, 0x88, 0xB1, 0xEC, 0x07, 0x44, 0x98, 0x42, 0x72, 0x05,
-0xBC, 0xBA, 0x55, 0xC4, 0x97, 0xA1, 0x0C, 0x91, 0x49, 0x4D, 0x25, 0x67, 0xA2, 0xEE, 0xA1, 0x74,
-0xE8, 0x9F, 0x2A, 0x8A, 0x75, 0x03, 0x99, 0x21, 0x98, 0x52, 0x0E, 0xAE, 0xF3, 0xFE, 0xD7, 0x68,
-0x65, 0x9D, 0xD4, 0x17, 0x95, 0x00, 0x35, 0x22, 0xA4, 0xBE, 0x12, 0xCF, 0x9F, 0xE8, 0x03, 0x10,
-0x62, 0x3B, 0xEE, 0xED, 0x0A, 0xC0, 0x53, 0x56, 0x59, 0x57, 0x23, 0xC2, 0x03, 0xFB, 0x88, 0xA6,
-0xEE, 0xD0, 0x58, 0x79, 0x66, 0x5E, 0x10, 0x33, 0x84, 0x59, 0x12, 0x81, 0x96, 0x1E, 0xBE, 0x44,
-0x69, 0x0B, 0xDD, 0xEF, 0x6C, 0xCE, 0xBF, 0x71, 0x3D, 0x3A, 0x6F, 0x12, 0x54, 0x22, 0x81, 0x29,
-0x9B, 0x37, 0x1F, 0x83, 0x74, 0xA7, 0x49, 0xF2, 0xE2, 0xBF, 0x8E, 0xC4, 0x07, 0x5C, 0x0D, 0xE6,
-0x1A, 0x05, 0x3C, 0x35, 0x77, 0xC9, 0xC9, 0x3C, 0x7D, 0xE5, 0x85, 0xD1, 0x62, 0x9C, 0x6F, 0xBF,
-0x21, 0xE8, 0x92, 0x42, 0x13, 0xA9, 0x8F, 0xAA, 0xD6, 0x54, 0x52, 0x03, 0xCC, 0x18, 0x0F, 0x0D,
-0xB5, 0x9F, 0x36, 0x3B, 0x1A, 0x85, 0x3C, 0xA6, 0x58, 0xC0, 0x6C, 0x44, 0x3D, 0xC9, 0x68, 0x47,
-0x14, 0x70, 0xA2, 0xD6, 0x89, 0x97, 0x64, 0x15, 0x67, 0x33, 0xAE, 0x9D, 0xD9, 0xB5, 0x91, 0x5C,
-0xD7, 0xBD, 0xCF, 0xD3, 0xF2, 0xBC, 0x53, 0x3A, 0xFD, 0xD5, 0x95, 0xC6, 0xE0, 0xD3, 0x33, 0x6B,
-0x35, 0xE7, 0x27, 0x03, 0x01, 0xA4, 0xEF, 0x3D, 0xC9, 0x23, 0xB4, 0x06, 0x45, 0xF7, 0x8D, 0x79,
-0xA8, 0xA6, 0x5A, 0x8D, 0x7D, 0xC4, 0xA1, 0x65, 0xC7, 0xDC, 0x5F, 0xAB, 0x0C, 0xAD, 0x40, 0x80,
-0x12, 0xB5, 0xE6, 0x55, 0xD9, 0xE6, 0x02, 0x53, 0x15, 0x51, 0x05, 0xA3, 0x95, 0x6C, 0x93, 0x60,
-0x91, 0xFE, 0xF6, 0x30, 0x62, 0x3F, 0x87, 0x3C, 0x5B, 0x5F, 0x31, 0x9A, 0xC7, 0x1D, 0x91, 0xF2,
-0x55, 0xCB, 0xE1, 0x23, 0xAD, 0xBF, 0x92, 0x9F, 0x15, 0x0E, 0xC9, 0xB8, 0xD7, 0x9D, 0xA6, 0x4A,
-0xA1, 0x61, 0x37, 0x09, 0x38, 0x66, 0xDC, 0x6B, 0x4F, 0x88, 0x16, 0xF0, 0xD7, 0x9D, 0xFB, 0xE0,
-0x8D, 0x93, 0xDD, 0xBA, 0x96, 0xA1, 0x69, 0xFE, 0x0C, 0x06, 0xC5, 0xF9, 0x50, 0xF2, 0x43, 0xA7,
-0xFE, 0x95, 0xA1, 0x8D, 0xC5, 0xB0, 0xA7, 0xBE, 0xAE, 0xD0, 0x94, 0xFC, 0x99, 0xD5, 0x7F, 0xFB,
-0x7D, 0xFD, 0xC8, 0x95, 0xCF, 0xB3, 0xB8, 0x25, 0x74, 0x18, 0xDC, 0x47, 0x87, 0xF1, 0x96, 0x8C,
-0xEF, 0x61, 0x96, 0x80, 0x38, 0x06, 0xA7, 0xE6, 0xD4, 0x75, 0x44, 0xFE, 0xD4, 0x47, 0x01, 0xE7,
-0x3C, 0x1A, 0xE2, 0xEB, 0x41, 0xD5, 0x2B, 0xF0, 0x77, 0x7A, 0x54, 0x5D, 0xE6, 0xEC, 0x46, 0x39,
-0x8F, 0x9F, 0x6E, 0x01, 0xBF, 0x39, 0x59, 0x5D, 0xF2, 0x41, 0x82, 0x88, 0x4B, 0xE9, 0x74, 0x8A,
-0x3A, 0x16, 0xD1, 0x7C, 0xF2, 0x9D, 0xE2, 0x54, 0x50, 0x2A, 0xD9, 0x5A, 0x98, 0xC9, 0x9B, 0x0C,
-0xB3, 0x3A, 0x88, 0x7A, 0x3E, 0xC4, 0xFA, 0xB4, 0x9A, 0xD4, 0xAC, 0x31, 0x42, 0x52, 0x49, 0x3C,
-0x5A, 0x59, 0x98, 0xAB, 0x21, 0x6E, 0xC5, 0x88, 0xFC, 0x2E, 0x48, 0x1F, 0x32, 0x48, 0x84, 0xF3,
-0xD5, 0xCB, 0x8F, 0x4D, 0x12, 0xB0, 0xEB, 0xA0, 0x95, 0xCB, 0x14, 0xA1, 0x0B, 0xDC, 0x58, 0xE2,
-0xAE, 0x95, 0x8A, 0x1C, 0x84, 0xD6, 0x44, 0x68, 0xB6, 0x3C, 0x35, 0xAC, 0x84, 0xEB, 0x4E, 0x0B,
-0xC4, 0x0E, 0x61, 0x81, 0x0D, 0xAA, 0x37, 0xB9, 0x5A, 0xD2, 0x07, 0xF3, 0x60, 0xBA, 0xB0, 0xF1,
-0x94, 0xED, 0x45, 0x27, 0x39, 0x02, 0x32, 0x81, 0xAB, 0x8E, 0xCC, 0xE0, 0x2D, 0x55, 0xDC, 0x6F,
-0x0A, 0xA4, 0x0D, 0xFB, 0x07, 0x32, 0x08, 0x23, 0x20, 0x8F, 0x41, 0x2E, 0xF6, 0xAC, 0x7C, 0xF3,
-0x8B, 0x72, 0x03, 0x81, 0x69, 0xFB, 0xEC, 0x28, 0x57, 0x21, 0x05, 0xC4, 0xE6, 0x50, 0xBD, 0x44,
-0xC2, 0x0B, 0x9D, 0x3C, 0x13, 0x4F, 0x47, 0xDA, 0x8D, 0xBE, 0x85, 0x47, 0x98, 0xA7, 0xEC, 0x8F,
-0x1B, 0x4E, 0x99, 0x90, 0x42, 0x04, 0x62, 0x65, 0xBA, 0x1E, 0x91, 0x40, 0x41, 0x41, 0x60, 0x83,
-0x49, 0x24, 0xD8, 0xD1, 0x56, 0x73, 0x5B, 0xA6, 0xDB, 0xDA, 0x8E, 0x4F, 0x83, 0x59, 0x79, 0x78,
-0x53, 0x89, 0x88, 0x72, 0x12, 0x0D, 0x20, 0xA6, 0x28, 0x43, 0x94, 0x71, 0x5F, 0xE3, 0x97, 0x63,
-0x93, 0x33, 0x65, 0xCB, 0x7E, 0x02, 0xD2, 0x18, 0xD9, 0x82, 0x69, 0x0A, 0xA0, 0x1D, 0x1A, 0x90,
-0x37, 0x3D, 0xBC, 0x72, 0xAF, 0xCF, 0xF1, 0xB3, 0x3D, 0x45, 0x2E, 0x65, 0xD4, 0x47, 0x35, 0x90,
-0x32, 0xC4, 0xBA, 0x6F, 0x76, 0x8D, 0x32, 0x8A, 0x42, 0x2E, 0x04, 0xE2, 0x7A, 0x3D, 0x1C, 0x7C,
-0xD2, 0x23, 0x81, 0xE3, 0xFE, 0xF1, 0x0C, 0x01, 0xE1, 0x4D, 0x47, 0x08, 0x64, 0xB6, 0x77, 0x78,
-0x9E, 0xDF, 0x23, 0xA4, 0x02, 0xE4, 0x78, 0x19, 0x4C, 0x0F, 0xCF, 0xE4, 0x85, 0x71, 0x17, 0x13,
-0xFF, 0x71, 0x34, 0x93, 0x90, 0xF0, 0x42, 0x06, 0xE0, 0x26, 0x3F, 0xE3, 0x83, 0x21, 0x1A, 0x9B,
-0x43, 0x34, 0xCB, 0x41, 0x22, 0xA9, 0x20, 0x45, 0xA3, 0xB4, 0x0E, 0xEF, 0x96, 0x45, 0x22, 0x0F,
-0x96, 0x0E, 0xAD, 0xAD, 0x05, 0x31, 0x7B, 0x75, 0xF4, 0xA9, 0xB3, 0x38, 0x8C, 0xB7, 0x95, 0x32,
-0x6E, 0x08, 0x0A, 0xBD, 0xB7, 0xBE, 0x5F, 0xF9, 0x81, 0x01, 0x1F, 0x27, 0xDE, 0xCF, 0xC6, 0x7F,
-0x76, 0x6D, 0x7D, 0xAD, 0xCC, 0x13, 0x25, 0xA6, 0x53, 0x23, 0x6B, 0xF1, 0x39, 0xC7, 0xBF, 0x24,
-0x1A, 0x78, 0xE9, 0x33, 0xE7, 0x57, 0xEB, 0xBF, 0x81, 0x04, 0xB9, 0xB4, 0x6F, 0x5D, 0x22, 0xCC,
-0xF7, 0x60, 0xF0, 0x60, 0xCF, 0x1B, 0x52, 0xDD, 0xD3, 0xFB, 0x38, 0xD4, 0xEC, 0x5C, 0xBA, 0x3C,
-0x9F, 0xB3, 0x9A, 0xE1, 0x57, 0xAF, 0xDA, 0xD8, 0x96, 0x6B, 0xD7, 0xA7, 0x68, 0xD6, 0x8C, 0x66,
-0x96, 0x75, 0x18, 0xEE, 0x11, 0x05, 0x03, 0xA2, 0xE9, 0x65, 0x6E, 0x67, 0xA1, 0xAA, 0xEE, 0xAA,
-0x81, 0x11, 0x5A, 0x46, 0x0E, 0xE2, 0x58, 0x12, 0xBA, 0x51, 0xBF, 0x47, 0x49, 0x72, 0x88, 0x09,
-0xF5, 0xE1, 0x45, 0x8D, 0xB5, 0x7F, 0x4F, 0x25, 0x2E, 0x3E, 0x62, 0x8A, 0x78, 0xC4, 0x8F, 0x76,
-0x97, 0x97, 0x0A, 0x40, 0xBF, 0x14, 0x9E, 0x63, 0xF4, 0xB8, 0xA0, 0x39, 0x4F, 0xA1, 0x88, 0x17,
-0x35, 0x1A, 0x31, 0x10, 0x24, 0xA5, 0xDD, 0x86, 0x12, 0xF7, 0x93, 0x90, 0x55, 0x0E, 0xD9, 0xA9,
-0xD1, 0xE5, 0x26, 0x1C, 0xEF, 0xED, 0x51, 0xDF, 0x51, 0x5F, 0x59, 0xFE, 0x87, 0x52, 0x26, 0x38,
-0xF8, 0xFB, 0x4D, 0xC7, 0xA4, 0x73, 0xC6, 0x08, 0x10, 0xB2, 0xC1, 0x4C, 0xB1, 0xC9, 0x0E, 0x09,
-0xDC, 0x48, 0x7F, 0x7C, 0xBC, 0x47, 0x5E, 0x87, 0xDB, 0x1F, 0xF8, 0x2F, 0x09, 0x3D, 0xC9, 0xCD,
-0x61, 0x1A, 0x69, 0x79, 0xC2, 0x31, 0xE5, 0x21, 0xE8, 0xEC, 0x49, 0x30, 0xC3, 0xC2, 0xDC, 0x89,
-0xF2, 0x9B, 0x0C, 0xE3, 0x13, 0xAF, 0xCC, 0x52, 0x58, 0x42, 0xBE, 0x95, 0x40, 0xD1, 0xC6, 0x7C,
-0xFC, 0x12, 0x8F, 0x14, 0x1E, 0x95, 0xD4, 0x77, 0x0D, 0x7E, 0x3D, 0xF8, 0xB0, 0x91, 0xAE, 0xCE,
-0x75, 0x69, 0xF0, 0x31, 0x4B, 0xA4, 0x60, 0x83, 0xE9, 0x1F, 0x49, 0x19, 0x21, 0x75, 0x27, 0x69,
-0x1C, 0x20, 0x10, 0xF5, 0x9E, 0x23, 0xB9, 0x56, 0xFF, 0x20, 0x0F, 0x8B, 0xAC, 0xC3, 0x21, 0x09,
-0x05, 0x60, 0xDB, 0x80, 0x7A, 0xFB, 0x65, 0x9C, 0x38, 0xA4, 0xF4, 0x50, 0xA2, 0xB7, 0x03, 0x6C,
-0xF5, 0x17, 0x6B, 0xF1, 0xD1, 0xB1, 0xF0, 0x1D, 0xB7, 0xA4, 0x17, 0x46, 0x3C, 0xFF, 0x6C, 0x7C,
-0x57, 0xFC, 0x43, 0x70, 0x55, 0x1B, 0x7A, 0x7D, 0x48, 0x00, 0xD1, 0xCF, 0x02, 0x74, 0xD1, 0xED,
-0x69, 0x7B, 0x81, 0xB2, 0x48, 0x4B, 0x75, 0x73, 0xF8, 0xE6, 0xA1, 0xA3, 0x84, 0x71, 0xFA, 0xAF,
-0xEE, 0x02, 0xC0, 0xFA, 0x3B, 0x23, 0x6D, 0xA9, 0xF9, 0x36, 0x5E, 0x44, 0xBB, 0x6D, 0xB3, 0x52,
-0x4F, 0x14, 0xCA, 0xEA, 0x4D, 0xA7, 0x57, 0x56, 0x48, 0xE0, 0xCE, 0xB7, 0xF1, 0x4B, 0x7B, 0x00,
-0xB4, 0xE4, 0xCA, 0xD6, 0xA9, 0x7B, 0x75, 0x64, 0xEC, 0x1E, 0x15, 0xCE, 0x8D, 0xE9, 0xB7, 0x83,
-0x3A, 0x8E, 0xB8, 0x85, 0x92, 0xC5, 0xCC, 0xC4, 0x25, 0x25, 0x4D, 0x8F, 0x97, 0x32, 0x21, 0x96,
-0x3C, 0xDA, 0x50, 0xB8, 0xE5, 0x76, 0x33, 0x7C, 0x8D, 0x98, 0x16, 0xE1, 0xE9, 0x3C, 0xA5, 0x13,
-0x2B, 0x1F, 0x39, 0x25, 0xFF, 0x7C, 0x9E, 0xE6, 0x14, 0x3C, 0x15, 0x6A, 0x40, 0x72, 0x22, 0x56,
-0xDF, 0xAA, 0x15, 0xED, 0x09, 0xEF, 0x80, 0x02, 0x7D, 0x50, 0x3D, 0x6C, 0xDC, 0x0F, 0x5D, 0x5B,
-0x12, 0xBD, 0x8F, 0x8F, 0xF8, 0xD0, 0xDA, 0xEE, 0xAB, 0x2A, 0x66, 0x4E, 0xDA, 0x86, 0x10, 0x0D,
-0xAB, 0xCB, 0x28, 0x5E, 0x86, 0x08, 0x1B, 0x8E, 0x0B, 0x02, 0xD3, 0xB8, 0x6D, 0xBA, 0x8A, 0x6B,
-0x1B, 0x41, 0xEA, 0x12, 0xEA, 0x2B, 0xC5, 0xCC, 0x12, 0x55, 0xC7, 0x4A, 0xB3, 0x73, 0x08, 0xFA,
-0x4F, 0x82, 0xAA, 0x51, 0x47, 0xCC, 0x12, 0x9F, 0x6D, 0x71, 0xBA, 0x71, 0xD5, 0x7A, 0x38, 0x02,
-0x4C, 0x13, 0xC3, 0xF0, 0x89, 0x82, 0x17, 0x3E, 0xF7, 0x87, 0xB9, 0xE5, 0x01, 0x37, 0x9B, 0x30,
-0xFD, 0x5B, 0x05, 0x0B, 0xAE, 0xF6, 0x16, 0xA3, 0x94, 0x2B, 0x12, 0xE0, 0x1F, 0xAC, 0x3C, 0xBF,
-0xD2, 0x13, 0x11, 0xB8, 0x52, 0x88, 0x98, 0x05, 0xF3, 0x48, 0x51, 0x76, 0xB4, 0x72, 0x1C, 0x07,
-0xA0, 0xF5, 0x65, 0x54, 0xEA, 0x4F, 0xF3, 0x86, 0x87, 0xBC, 0x47, 0xC6, 0x6C, 0x18, 0x93, 0xA3,
-0x92, 0xCA, 0xB6, 0x54, 0xD1, 0x17, 0x0C, 0x8B, 0x73, 0x80, 0xC3, 0xD6, 0x2B, 0x15, 0x26, 0x92,
-0x48, 0x92, 0x32, 0xF7, 0x37, 0x21, 0x16, 0x6C, 0xFB, 0x74, 0x4F, 0x30, 0xD1, 0x21, 0xEA, 0xC7,
-0x8F, 0x0D, 0x1E, 0x3E, 0xA3, 0x49, 0x1C, 0x8D, 0x74, 0xC8, 0x1B, 0x10, 0x89, 0x43, 0x62, 0x2A,
-0x3F, 0x7C, 0xD4, 0x73, 0x46, 0x1D, 0x8C, 0x47, 0x63, 0x3F, 0xA9, 0x59, 0x8C, 0x54, 0x32, 0xD6,
-0x71, 0x73, 0x55, 0x00, 0x03, 0x16, 0x77, 0xAA, 0xA2, 0x41, 0xB8, 0x61, 0x0B, 0x20, 0xB5, 0x43,
-0x5C, 0x89, 0x59, 0x14, 0x85, 0x74, 0xA7, 0x5F, 0x68, 0xFF, 0x72, 0x98, 0xCE, 0x7E, 0xAF, 0x79,
-0x7A, 0xFF, 0x12, 0x63, 0x83, 0x57, 0x57, 0xB9, 0xF1, 0x95, 0xC1, 0x85, 0x71, 0x7D, 0x99, 0x2B,
-0x72, 0xEE, 0x08, 0x2F, 0x70, 0xFA, 0xE9, 0x13, 0x71, 0x9D, 0x7D, 0x5D, 0xD5, 0xFA, 0xCC, 0xBF,
-0x08, 0xA2, 0x0D, 0xB9, 0x97, 0xAC, 0xB9, 0xEC, 0xF5, 0x94, 0x2E, 0x44, 0x4D, 0xAE, 0xF6, 0x5A,
-0xEB, 0x2E, 0xC2, 0x79, 0x43, 0x00, 0x4C, 0x95, 0x1A, 0x0F, 0x54, 0x4E, 0x36, 0xB6, 0x3A, 0x60,
-0xEB, 0xC2, 0x6C, 0xDA, 0x2C, 0xF3, 0x04, 0x80, 0xDD, 0xBC, 0xE1, 0xC0, 0xED, 0x61, 0x7A, 0x18,
-0x2A, 0x9D, 0x13, 0x2F, 0xA4, 0x38, 0x33, 0x3B, 0xB1, 0x5D, 0x92, 0xBF, 0xA7, 0x22, 0x7F, 0xEA,
-0xF5, 0x18, 0xF2, 0xE9, 0x31, 0x33, 0x73, 0xCB, 0x5E, 0xB6, 0x14, 0xB6, 0x66, 0xD7, 0xD5, 0xFF,
-0xBF, 0x4D, 0xB4, 0x36, 0x5E, 0xDA, 0xF3, 0xFE, 0x76, 0x44, 0x3B, 0x53, 0xA4, 0xA2, 0xC3, 0xA7,
-0xF8, 0x55, 0x92, 0x3F, 0x86, 0xB7, 0x82, 0x1D, 0xF6, 0x15, 0xFB, 0xD9, 0x5C, 0x2D, 0x58, 0xA5,
-0x72, 0x25, 0x02, 0x03, 0x0E, 0x8D, 0xCA, 0x28, 0xB0, 0xAA, 0x55, 0xF2, 0x03, 0xC5, 0x51, 0x6E,
-0x04, 0x69, 0xD6, 0x9E, 0x90, 0x76, 0xA6, 0xFD, 0x58, 0xA8, 0x98, 0x56, 0x08, 0xE8, 0x05, 0x04,
-0xF4, 0x7C, 0xCA, 0x34, 0xAD, 0x2F, 0x98, 0xF9, 0x5C, 0xBD, 0x66, 0x01, 0xB7, 0xD2, 0xD6, 0x1C,
-0xDC, 0x19, 0x8B, 0xC5, 0xEF, 0xE8, 0x03, 0x59, 0xC7, 0xCB, 0xB9, 0x0F, 0x90, 0xA3, 0x9B, 0x0D,
-0xD2, 0x77, 0xBD, 0x57, 0xAD, 0xE3, 0x4B, 0x9B, 0x98, 0x65, 0x25, 0x5C, 0xBC, 0xFE, 0x00, 0x5A,
-0x42, 0x68, 0x80, 0x76, 0x00, 0xDA, 0x08, 0x2E, 0x65, 0xCD, 0x2E, 0x59, 0x68, 0xC6, 0x4B, 0x0B,
-0x80, 0x50, 0xEA, 0x60, 0x60, 0xD2, 0xFD, 0xEF, 0x63, 0x40, 0x3D, 0xA0, 0x9A, 0x08, 0x06, 0x06,
-0xA0, 0x4C, 0x5B, 0x42, 0xF3, 0xE6, 0x43, 0x02, 0x96, 0xC7, 0x6C, 0x60, 0xF2, 0xA8, 0x4B, 0xA4,
-0x11, 0xDA, 0x5B, 0x65, 0x21, 0x96, 0xF9, 0xE5, 0xC0, 0x38, 0x42, 0x91, 0x02, 0x4F, 0x59, 0xE0,
-0xD0, 0xF6, 0xC2, 0x59, 0x81, 0xCC, 0x53, 0x18, 0xBA, 0xB2, 0x73, 0x87, 0x92, 0x89, 0x95, 0xC6,
-0xFF, 0x8C, 0xC8, 0x70, 0x28, 0x05, 0x2E, 0x9E, 0x9B, 0x33, 0xF0, 0x2D, 0xE6, 0x73, 0x17, 0xD5,
-0x65, 0x9D, 0xFA, 0xE2, 0x3A, 0x97, 0x1A, 0x99, 0x7B, 0xED, 0xEF, 0xCE, 0x96, 0x63, 0x14, 0x8A,
-0xDA, 0x1A, 0x4E, 0xEC, 0x2A, 0x5F, 0x45, 0x5A, 0x72, 0x60, 0x8D, 0xFF, 0x79, 0xFE, 0xE0, 0x76,
-0x9C, 0x1A, 0x88, 0xFB, 0xA4, 0x89, 0xBD, 0x8A, 0xAE, 0x6F, 0x3A, 0xB3, 0x2B, 0xAD, 0x2F, 0x70,
-0x09, 0xBF, 0x2D, 0xA1, 0xC8, 0x02, 0x3C, 0xE6, 0xD1, 0x38, 0xF0, 0xE1, 0xDE, 0x0C, 0xFF, 0xCC,
-0x0E, 0x60, 0x5A, 0x0C, 0xD5, 0x30, 0x52, 0x88, 0x85, 0xA7, 0xBF, 0x6A, 0xD3, 0x2E, 0x41, 0x48,
-0xFC, 0xA0, 0xC9, 0x3B, 0x93, 0x8C, 0x07, 0x1C, 0xC8, 0xEA, 0x42, 0xA9, 0xFD, 0x82, 0x05, 0xE1,
-0x6F, 0x06, 0xB1, 0x53, 0x70, 0x28, 0x7A, 0x96, 0x0C, 0x4F, 0xDD, 0x2D, 0x72, 0x78, 0x03, 0x01,
-0x68, 0x52, 0xDD, 0x1D, 0x3F, 0x38, 0x96, 0x68, 0x68, 0x72, 0x16, 0x25, 0x5F, 0x18, 0x47, 0xEB,
-0xBD, 0x8E, 0x4D, 0x39, 0xD3, 0x91, 0x72, 0x4E, 0x46, 0xE0, 0x79, 0xC6, 0xB7, 0xA5, 0x75, 0x65,
-0x44, 0x44, 0x1C, 0x8E, 0xB2, 0xE1, 0x3E, 0x94, 0x31, 0xC7, 0xE5, 0xEF, 0xC3, 0x49, 0x84, 0x7B,
-0x90, 0x26, 0x5E, 0xFF, 0x8B, 0x7D, 0xD6, 0xAF, 0xD0, 0x8B, 0x9F, 0xA4, 0x6C, 0xEA, 0xFF, 0x83,
-0xCF, 0xB2, 0x46, 0xF4, 0x04, 0xC3, 0xE4, 0xFA, 0x44, 0xF4, 0x46, 0xB1, 0x5F, 0xEC, 0x70, 0x4D,
-0x17, 0xEE, 0x3A, 0x53, 0x75, 0x9E, 0x67, 0xF4, 0x78, 0x8C, 0x64, 0xDF, 0xBA, 0x6E, 0xDF, 0x46,
-0xC1, 0xF2, 0x20, 0x85, 0x79, 0xB6, 0x20, 0x51, 0xD6, 0xFE, 0xE8, 0x98, 0x6B, 0x43, 0xE9, 0x10,
-0xD2, 0x51, 0x29, 0xB3, 0xF0, 0x63, 0xA0, 0xB2, 0x60, 0x21, 0x98, 0x96, 0xFE, 0x73, 0x14, 0xEC,
-0x9A, 0x6B, 0x35, 0x8E, 0xB5, 0xAA, 0x33, 0x30, 0x3F, 0x09, 0x28, 0x14, 0x00, 0x32, 0x86, 0xBC,
-0xB6, 0xA0, 0x2B, 0x80, 0x92, 0x9C, 0xCD, 0xAE, 0x5A, 0x3B, 0x6B, 0x78, 0xF0, 0x9F, 0x7D, 0x97,
-0x77, 0xAA, 0x1D, 0xC0, 0xCB, 0x2A, 0x2D, 0x86, 0x5B, 0x70, 0xC2, 0x65, 0x29, 0x6E, 0xD5, 0xE4,
-0xBA, 0x54, 0x24, 0x3F, 0xAA, 0x4A, 0x7C, 0x15, 0x90, 0xDA, 0xB4, 0x12, 0xF5, 0x24, 0x2B, 0x74,
-0xA5, 0x76, 0x71, 0x87, 0x85, 0x94, 0x9E, 0x8C, 0x02, 0x68, 0xB3, 0x44, 0xFE, 0xC5, 0xAF, 0xC2,
-0x13, 0x83, 0x89, 0x7C, 0x79, 0xBE, 0xAB, 0x56, 0x54, 0xA4, 0x65, 0xAA, 0xFA, 0x89, 0x3C, 0xCB,
-0x41, 0x69, 0x40, 0x3A, 0x91, 0xC4, 0x37, 0x9B, 0x34, 0xDD, 0xFE, 0xCC, 0x66, 0x15, 0x87, 0x74,
-0xAA, 0xE5, 0x34, 0xF1, 0xB9, 0x78, 0xBA, 0x4E, 0x38, 0xC7, 0xDB, 0x9A, 0xFE, 0x54, 0x32, 0xF5,
-0x08, 0x18, 0x55, 0x0A, 0x22, 0xF3, 0x1B, 0xC0, 0xAC, 0x07, 0x38, 0x93, 0x2E, 0x55, 0x58, 0x62,
-0x20, 0xAA, 0x18, 0x0B, 0x1C, 0x26, 0x56, 0xCE, 0x0B, 0x8A, 0x69, 0x1A, 0xB8, 0x85, 0xCB, 0x8F,
-0xBD, 0x8E, 0x22, 0xED, 0x4E, 0x8A, 0xA1, 0xFB, 0xA7, 0x8B, 0x08, 0xC0, 0x16, 0x31, 0x9F, 0x90,
-0xCA, 0x77, 0x74, 0x6D, 0xCF, 0xB4, 0xB4, 0x62, 0xC6, 0x33, 0xB9, 0xD8, 0xFF, 0x94, 0x22, 0x5F,
-0x3B, 0x46, 0x70, 0xD4, 0x92, 0x4B, 0x25, 0x01, 0x64, 0x3A, 0x07, 0x46, 0x65, 0xAD, 0x71, 0x36,
-0x52, 0x90, 0xFA, 0xBA, 0xE4, 0x88, 0xDA, 0x44, 0xC7, 0xF8, 0x8B, 0x9D, 0xED, 0x6B, 0x85, 0x6F,
-0xBD, 0x23, 0xD8, 0xFF, 0x9B, 0x47, 0x58, 0xDA, 0x5B, 0x1E, 0xC3, 0xAE, 0xF8, 0xF6, 0x96, 0x47,
-0x8F, 0x9E, 0x12, 0x04, 0xA0, 0xE0, 0x71, 0x55, 0xA1, 0xFE, 0xED, 0xDC, 0x66, 0x3B, 0x75, 0x68,
-0xC0, 0xA1, 0x67, 0x10, 0x0D, 0x7B, 0x2B, 0x51, 0x78, 0x05, 0xC6, 0x06, 0x16, 0xF6, 0x51, 0x9C,
-0xD2, 0xA8, 0xD0, 0x28, 0xD9, 0xFC, 0x99, 0x0F, 0x89, 0xDE, 0x3A, 0x74, 0xAA, 0x89, 0xFF, 0xA0,
-0x89, 0x3E, 0xC1, 0x8C, 0x78, 0x28, 0xA8, 0x6A, 0xB1, 0x62, 0x92, 0x38, 0x19, 0xBA, 0x3D, 0x04,
-0x0D, 0x0D, 0xF0, 0xA7, 0xD7, 0x58, 0x01, 0x4A, 0xFB, 0x2A, 0x15, 0x85, 0xBD, 0xDC, 0x2E, 0xEB,
-0x90, 0x0E, 0xC7, 0x13, 0x8F, 0x5E, 0x1A, 0xEC, 0x01, 0xD1, 0x20, 0x06, 0x35, 0x20, 0x49, 0x4F,
-0x60, 0x6D, 0xD6, 0x45, 0x78, 0x74, 0x39, 0x39, 0x8C, 0x2C, 0xBB, 0x9D, 0x96, 0xFA, 0xA3, 0x1A,
-0x3A, 0x45, 0x3E, 0x9A, 0xE1, 0x93, 0x09, 0xFE, 0x3F, 0x7D, 0x0F, 0x9A, 0x02, 0xE3, 0x87, 0x62,
-0xEC, 0xE1, 0xF7, 0x8C, 0x88, 0x50, 0x83, 0xBE, 0xBB, 0xC1, 0xB5, 0x93, 0xAC, 0xDE, 0x88, 0x89,
-0x34, 0x6F, 0xF0, 0x98, 0x5C, 0x7B, 0x1E, 0x2D, 0xDE, 0xBA, 0x1C, 0x09, 0x1D, 0xD0, 0x14, 0xAD,
-0x48, 0x2A, 0x12, 0xC8, 0x54, 0x95, 0x8D, 0x13, 0x74, 0x1F, 0x6B, 0x53, 0x38, 0xC6, 0x97, 0x48,
-0x56, 0x28, 0xFE, 0x62, 0x41, 0x9E, 0xAB, 0x38, 0xAE, 0xEC, 0xE7, 0x53, 0x0D, 0xD3, 0x2A, 0xAF,
-0x9A, 0x07, 0xBE, 0x2D, 0xBC, 0xE6, 0x88, 0x96, 0x72, 0x3F, 0x18, 0x16, 0xCB, 0x83, 0xCE, 0x24,
-0x25, 0x9A, 0x42, 0x72, 0xED, 0x32, 0x78, 0x3F, 0xC0, 0xF0, 0x59, 0x8C, 0x14, 0x47, 0xF3, 0x31,
-0xE1, 0x61, 0x90, 0xFD, 0x2E, 0xFB, 0xCE, 0xAC, 0xA2, 0x11, 0x04, 0xCC, 0x55, 0x57, 0x29, 0xF7,
-0x57, 0x40, 0x1C, 0xAC, 0xF4, 0x12, 0xA9, 0xA6, 0x00, 0x13, 0xAE, 0xA5, 0x3E, 0x67, 0x35, 0x30,
-0x8B, 0x9E, 0xFD, 0xFC, 0x69, 0xB1, 0x58, 0xAB, 0x65, 0x98, 0x87, 0x04, 0xCD, 0x39, 0x10, 0x88,
-0x69, 0xFF, 0x50, 0x78, 0xAE, 0x7D, 0x6F, 0xE8, 0x1C, 0x10, 0x67, 0xCB, 0x21, 0x91, 0xF9, 0x26,
-0xFE, 0x44, 0x69, 0xB8, 0x1D, 0xA2, 0x38, 0xBB, 0x3F, 0xF1, 0x98, 0x28, 0x27, 0x3C, 0x7C, 0xA5,
-0x22, 0x56, 0xC3, 0x3A, 0xEB, 0x3D, 0x65, 0x3B, 0x83, 0x9A, 0x03, 0xCA, 0x64, 0x8D, 0x1E, 0xA8,
-0x00, 0x00, 0x00, 0x00, 0x7D, 0x50, 0xA6, 0x7D, 0xD3, 0xA4, 0x50, 0x12, 0x00, 0x01, 0xCE, 0x2D,
-0xDD, 0xE8, 0x01, 0x00, 0xB1, 0x91, 0x32, 0xBB, 0xB1, 0xC4, 0x67, 0xFB, 0x02, 0x00, 0x00, 0x00,
-0x00, 0x04, 0x59, 0x5A};
+0x48, 0x71, 0x2A, 0xF1, 0x0B, 0xEB, 0xEF, 0x5E, 0x24, 0xEB, 0xCA, 0x45, 0xD6, 0x27, 0x14, 0xE8,
+0x74, 0x2A, 0x83, 0xAD, 0xD5, 0xAE, 0xF9, 0xCE, 0x33, 0xDC, 0x5E, 0x73, 0x71, 0xD5, 0xFE, 0x24,
+0x89, 0xBA, 0x0B, 0x26, 0x3F, 0xB1, 0xF7, 0xA5, 0x46, 0x44, 0x4D, 0x91, 0xAD, 0xEA, 0x31, 0x19,
+0x40, 0xFE, 0xA0, 0xD8, 0x9C, 0x23, 0x2E, 0x04, 0x2D, 0x88, 0xF3, 0xCA, 0x58, 0x61, 0x94, 0x32,
+0x26, 0x6F, 0x30, 0x1B, 0x51, 0xF1, 0x4C, 0xEC, 0x89, 0x43, 0x56, 0x94, 0x85, 0x40, 0x8C, 0x26,
+0x2B, 0x35, 0x0B, 0xDE, 0xA2, 0xBA, 0x8B, 0xED, 0xD2, 0x59, 0xA2, 0xD3, 0xBD, 0xBF, 0x84, 0x69,
+0x26, 0x1B, 0xAB, 0xE7, 0xA2, 0x0D, 0x28, 0x79, 0x4A, 0xD9, 0xEC, 0x7F, 0xC9, 0x23, 0x5F, 0x87,
+0x3B, 0x6D, 0xFA, 0x2B, 0xA8, 0x45, 0x71, 0x98, 0x1C, 0x99, 0x12, 0xB3, 0xB0, 0x06, 0x07, 0x77,
+0x19, 0x7B, 0x82, 0x72, 0x8E, 0x69, 0x2A, 0x60, 0xD8, 0x60, 0xDB, 0x52, 0xAB, 0x21, 0xF7, 0xF6,
+0xB6, 0x80, 0x02, 0x4F, 0x24, 0x49, 0xB6, 0x2F, 0xC7, 0xB2, 0xE0, 0xE5, 0xBB, 0x8C, 0x7C, 0x13,
+0x88, 0x12, 0xF1, 0x64, 0x8A, 0xC5, 0x1D, 0xA0, 0x92, 0x20, 0xDD, 0x8D, 0xB1, 0xA3, 0x2A, 0x36,
+0x1B, 0x6A, 0x4F, 0x87, 0xF9, 0x0D, 0x62, 0x74, 0xE5, 0x71, 0x77, 0xA2, 0xB8, 0x77, 0x09, 0x7F,
+0x33, 0x33, 0x37, 0x42, 0xE4, 0xA8, 0x5F, 0xC7, 0x24, 0xBD, 0x88, 0x70, 0xC1, 0x96, 0x5D, 0x84,
+0xFF, 0x5E, 0xC4, 0x95, 0x28, 0x9B, 0x48, 0x7F, 0x6C, 0xE0, 0xEF, 0xCB, 0x32, 0x9F, 0xC2, 0x0B,
+0x37, 0x96, 0xAA, 0x64, 0x58, 0xA4, 0x3A, 0x43, 0x77, 0x94, 0xED, 0xD6, 0x91, 0x7C, 0x0C, 0x21,
+0xDC, 0xA9, 0x57, 0x35, 0x24, 0x33, 0xAF, 0x0F, 0x90, 0x6A, 0x29, 0x0B, 0x79, 0xA4, 0xF9, 0x17,
+0x8E, 0x05, 0xB4, 0xF6, 0x48, 0x0F, 0x4A, 0x75, 0x82, 0x91, 0x95, 0xE6, 0xBD, 0xD3, 0x50, 0x25,
+0x1D, 0x6F, 0x1E, 0xD1, 0xB3, 0x57, 0x43, 0xDB, 0x02, 0x1C, 0x38, 0x31, 0x6D, 0x43, 0xF4, 0xA7,
+0x54, 0x7D, 0xE1, 0x2F, 0x82, 0x2B, 0x20, 0x52, 0x3C, 0x2C, 0x7C, 0xD3, 0x95, 0x85, 0x2D, 0x39,
+0x11, 0x5C, 0x5F, 0x5A, 0xF5, 0x4B, 0x4D, 0x08, 0xEB, 0x7F, 0x02, 0xCC, 0x22, 0x2A, 0x9C, 0x3E,
+0xF6, 0xB1, 0xB4, 0xAF, 0xA3, 0xBB, 0x80, 0x9E, 0xFD, 0xA3, 0x78, 0x30, 0x56, 0x50, 0xA5, 0x0D,
+0xD2, 0x29, 0xDD, 0x67, 0x0B, 0xCD, 0x2E, 0x8F, 0x79, 0x3B, 0x36, 0x59, 0x43, 0x74, 0x9A, 0x1D,
+0x56, 0x33, 0xCC, 0x04, 0x92, 0x3A, 0x01, 0x3B, 0x05, 0x51, 0xA8, 0xD0, 0x01, 0x12, 0x3E, 0xDD,
+0x40, 0x4D, 0x80, 0xC6, 0x78, 0xC8, 0xC6, 0xF7, 0x2D, 0x7F, 0x87, 0x10, 0x27, 0x97, 0x9D, 0xAB,
+0x32, 0xB7, 0xA2, 0x0A, 0x12, 0x32, 0x0D, 0x53, 0x40, 0x5C, 0x7D, 0x96, 0x27, 0x43, 0x8D, 0x96,
+0xD4, 0x9E, 0xED, 0xAE, 0x51, 0x83, 0x3E, 0xEA, 0x8F, 0x92, 0x1A, 0x7D, 0x4D, 0xF7, 0x16, 0xE0,
+0x41, 0x85, 0x54, 0x8F, 0x29, 0x36, 0xA0, 0x6E, 0x34, 0x54, 0x30, 0x2D, 0x2A, 0xD8, 0x80, 0x7E,
+0x90, 0x7F, 0x24, 0xA1, 0xC2, 0xD2, 0x32, 0xA6, 0x45, 0x11, 0xFF, 0x42, 0x32, 0x8C, 0x1E, 0x2F,
+0x15, 0x8F, 0x97, 0x04, 0x18, 0xE9, 0x76, 0xB6, 0x71, 0xAD, 0x36, 0x16, 0x33, 0x61, 0xFE, 0x41,
+0xD4, 0x10, 0x8C, 0x94, 0xC9, 0xC3, 0x30, 0x2F, 0x4A, 0xD7, 0x33, 0xEF, 0xBF, 0x8D, 0x68, 0x11,
+0xFD, 0x8C, 0xF5, 0xB2, 0x31, 0xD2, 0x5A, 0x47, 0xB0, 0xB8, 0xF7, 0x56, 0x7F, 0x17, 0x8B, 0x0E,
+0x07, 0x68, 0x5B, 0x6D, 0xDD, 0xCA, 0xD3, 0x58, 0xBF, 0xAD, 0x13, 0x32, 0x53, 0x55, 0x81, 0x7D,
+0x7B, 0x18, 0xB6, 0x1D, 0xB7, 0x61, 0x7D, 0xB2, 0xE4, 0x7E, 0x0D, 0x67, 0x18, 0x56, 0xD1, 0x2A,
+0xEA, 0xF5, 0x50, 0x5B, 0xED, 0x4A, 0x2D, 0x54, 0x09, 0x9C, 0x63, 0xD8, 0xAE, 0x65, 0xA7, 0x38,
+0x9F, 0x4C, 0xE4, 0xA5, 0xD8, 0xD0, 0x2A, 0x5E, 0x56, 0x82, 0x3A, 0xCC, 0xD1, 0x77, 0x2C, 0x7B,
+0xD9, 0x09, 0xB3, 0x5B, 0x10, 0x2E, 0x0F, 0xF2, 0xCB, 0xE8, 0x29, 0xF2, 0x8F, 0x77, 0x92, 0xB7,
+0x54, 0xEC, 0x08, 0xC4, 0xBB, 0x76, 0x41, 0x4E, 0x49, 0x08, 0x56, 0x47, 0x7F, 0xFB, 0x4A, 0x70,
+0x7E, 0xF7, 0x56, 0x74, 0x10, 0xC1, 0x24, 0x0E, 0x44, 0x82, 0xCD, 0x3F, 0x38, 0xD0, 0x26, 0xF3,
+0xEF, 0x37, 0x89, 0x5A, 0xF8, 0xE5, 0xF2, 0x30, 0x85, 0xE8, 0xF9, 0x5C, 0x73, 0x2B, 0xAC, 0x6F,
+0x6C, 0x9F, 0x76, 0xA6, 0x28, 0x11, 0x77, 0x30, 0x0F, 0x33, 0x24, 0x2F, 0xCF, 0xC7, 0x73, 0xFC,
+0xC1, 0x7F, 0xA7, 0x42, 0xEF, 0xCE, 0xCA, 0x64, 0xC9, 0xEE, 0x77, 0xF3, 0x91, 0x0A, 0xAB, 0xC0,
+0x5C, 0x0D, 0xA3, 0x9F, 0xB7, 0xE4, 0x7E, 0xFC, 0xB0, 0x86, 0x8B, 0xAC, 0xC0, 0x36, 0x07, 0x12,
+0xD7, 0x42, 0x2B, 0x71, 0x9E, 0x40, 0xE3, 0xAF, 0xCE, 0xBD, 0xE1, 0x24, 0x1D, 0x23, 0xDD, 0x99,
+0x7E, 0x75, 0x88, 0x8B, 0x18, 0x5B, 0x81, 0x73, 0x77, 0x82, 0x42, 0x8A, 0x53, 0x9D, 0xA6, 0x91,
+0x61, 0x24, 0x1E, 0xF8, 0x22, 0x23, 0x4B, 0x67, 0x16, 0x2C, 0xAE, 0xC0, 0x3B, 0xE4, 0xB6, 0x11,
+0x95, 0x69, 0x50, 0xBD, 0x5B, 0x93, 0x6E, 0xEE, 0xDD, 0x56, 0x59, 0xCB, 0x4B, 0xAD, 0x98, 0x84,
+0x6C, 0x3D, 0x2E, 0xBC, 0x5D, 0x30, 0x8A, 0x14, 0x4D, 0x0B, 0x54, 0x9F, 0x46, 0x79, 0xEE, 0xAC,
+0x0E, 0x9A, 0xAB, 0xC3, 0x02, 0x59, 0xF8, 0xC9, 0x28, 0x87, 0x4B, 0xF5, 0xA0, 0x11, 0x27, 0x33,
+0xCF, 0xCC, 0xAA, 0x32, 0xDF, 0x6D, 0x6A, 0x74, 0xF4, 0x67, 0x7B, 0x3A, 0xDC, 0x3F, 0x48, 0x17,
+0xC4, 0x30, 0x45, 0xC2, 0x32, 0x86, 0x7B, 0xA6, 0x02, 0xFD, 0xC5, 0x7F, 0xDE, 0xF0, 0x7C, 0x86,
+0xF7, 0xDE, 0xF9, 0x49, 0xF5, 0x74, 0xA7, 0xA0, 0xDF, 0xA0, 0xF2, 0x62, 0x92, 0xFE, 0x6F, 0x37,
+0x87, 0xA5, 0x4E, 0x29, 0x63, 0x3A, 0x7C, 0x59, 0x67, 0xFD, 0x0E, 0x84, 0x3A, 0x5D, 0x73, 0x6E,
+0x88, 0x13, 0xCD, 0x7A, 0x71, 0x63, 0x78, 0xA9, 0x25, 0x5B, 0x51, 0xA8, 0x12, 0x47, 0x74, 0xC4,
+0xC6, 0x96, 0x73, 0x06, 0x16, 0xC1, 0x83, 0x74, 0xF7, 0xED, 0xC2, 0x35, 0x08, 0xA5, 0xB0, 0x4B,
+0x17, 0xB0, 0xED, 0x72, 0x24, 0x59, 0xBC, 0xC5, 0xA4, 0x4A, 0x2A, 0xBE, 0xD8, 0x25, 0x96, 0x83,
+0x41, 0xB3, 0x7C, 0xD7, 0x29, 0x12, 0xF9, 0xDE, 0xA5, 0xD4, 0xB8, 0x2F, 0x16, 0x7B, 0x12, 0x4D,
+0xED, 0xFE, 0x1A, 0x92, 0xE9, 0x42, 0x1C, 0x1F, 0x13, 0xDB, 0x05, 0x24, 0x1D, 0xC4, 0x00, 0xC2,
+0xC2, 0x6B, 0x87, 0xB1, 0xCB, 0x30, 0x50, 0x70, 0xDC, 0x14, 0x2D, 0x80, 0x97, 0xED, 0x81, 0x40,
+0x15, 0xA0, 0x3A, 0xC0, 0xF1, 0xCD, 0xB0, 0x72, 0x7F, 0x2D, 0xD4, 0x81, 0x88, 0xD8, 0xB9, 0x1E,
+0x9A, 0xE9, 0x3F, 0x1F, 0x9A, 0x22, 0x8F, 0x23, 0xE4, 0x73, 0x6F, 0x82, 0xC9, 0x8B, 0xCA, 0x23,
+0xA3, 0x3C, 0xEC, 0x43, 0xFF, 0xED, 0x41, 0xFB, 0xA0, 0x68, 0x58, 0x4B, 0x1E, 0x1D, 0x97, 0x0B,
+0xF5, 0x5E, 0xEE, 0x20, 0x09, 0x17, 0x02, 0x7C, 0x0C, 0x60, 0x66, 0x13, 0x46, 0x92, 0xCC, 0x91,
+0xC7, 0xA6, 0x83, 0x33, 0xB7, 0x8B, 0xFD, 0x39, 0xFD, 0xBA, 0xA5, 0x31, 0x7E, 0x85, 0x77, 0xFE,
+0x13, 0x2F, 0xBD, 0x9B, 0xC4, 0x9B, 0xA1, 0x6E, 0x8E, 0xEB, 0xA5, 0xFF, 0x7F, 0x96, 0x52, 0x5C,
+0xEC, 0xDE, 0x6D, 0x08, 0x6B, 0x11, 0x5E, 0x24, 0xF1, 0x28, 0xA6, 0xFC, 0x79, 0x5D, 0x57, 0x9B,
+0xD5, 0xAD, 0x74, 0xA0, 0x4E, 0x1E, 0x91, 0x22, 0x53, 0x9A, 0x0E, 0x85, 0x19, 0x47, 0x91, 0xCE,
+0x02, 0xCB, 0x96, 0xEB, 0x58, 0xB9, 0x1A, 0x24, 0x75, 0xDD, 0x26, 0x9F, 0x28, 0xD6, 0x7F, 0x33,
+0xF3, 0xF1, 0xB6, 0x56, 0x6C, 0xA3, 0x0A, 0xE6, 0x30, 0x46, 0x6C, 0x5E, 0xEF, 0x37, 0x49, 0xEC,
+0xAF, 0xCD, 0xFC, 0x85, 0x5F, 0xA4, 0x9F, 0x40, 0x51, 0x9C, 0xBC, 0xCA, 0x50, 0xC5, 0x5C, 0xD6,
+0x9C, 0x72, 0xE0, 0x9E, 0xE0, 0x7F, 0xC0, 0x73, 0xF7, 0xE2, 0x27, 0xE4, 0x2D, 0x1E, 0xF5, 0xE2,
+0x74, 0x8A, 0x5C, 0xA3, 0xFA, 0x08, 0x83, 0x51, 0x7B, 0xE2, 0x2B, 0x96, 0xF3, 0xF4, 0x5D, 0x93,
+0x41, 0x53, 0xDC, 0xE5, 0xBC, 0xA6, 0x6B, 0x44, 0x2C, 0xF4, 0xF7, 0x2B, 0x8F, 0xBC, 0x5B, 0x2E,
+0xBE, 0x57, 0xB9, 0xF1, 0x4C, 0xA3, 0x9F, 0xFB, 0x1B, 0xCB, 0xAD, 0x12, 0x04, 0xB6, 0xE3, 0x1C,
+0xCC, 0x92, 0x83, 0x8F, 0xEE, 0x96, 0xAB, 0xEC, 0x60, 0xF4, 0x6F, 0x6E, 0x58, 0x70, 0xF7, 0xD1,
+0x2E, 0x6D, 0x8E, 0x28, 0x48, 0x3D, 0x67, 0x46, 0x13, 0x0E, 0xB8, 0xCE, 0x22, 0xCC, 0xBF, 0xB7,
+0xD3, 0xAF, 0xE9, 0xA7, 0xAD, 0xC5, 0x12, 0x21, 0x22, 0x5E, 0xF0, 0xD8, 0x24, 0x5E, 0x79, 0x2E,
+0xD4, 0x09, 0x7B, 0x10, 0x0E, 0x81, 0xBB, 0x27, 0x19, 0xAF, 0x10, 0x3A, 0xED, 0xE6, 0xC1, 0x3D,
+0x1A, 0xE8, 0x06, 0xD1, 0xC3, 0xA8, 0xD6, 0x74, 0xFD, 0xD5, 0x85, 0x0B, 0x26, 0xDD, 0x3D, 0x98,
+0xFE, 0x5C, 0x65, 0x15, 0xA7, 0x2B, 0xD1, 0x11, 0x8E, 0xED, 0x96, 0x5C, 0x72, 0xA5, 0x4C, 0xDC,
+0x0D, 0xE3, 0xE2, 0x2A, 0x6A, 0xB1, 0x22, 0x1F, 0x92, 0x6B, 0x8E, 0x40, 0x8A, 0xBE, 0xA4, 0x48,
+0xF5, 0x2C, 0x1D, 0xC3, 0x20, 0x6A, 0x85, 0x28, 0x8C, 0x42, 0x71, 0xFD, 0x87, 0x96, 0x7F, 0x97,
+0x0D, 0x0D, 0xE4, 0x9F, 0x08, 0x65, 0x36, 0x54, 0xE8, 0xBB, 0xC2, 0xF8, 0x72, 0x9A, 0xC1, 0x9D,
+0xF1, 0xC5, 0xCC, 0xE4, 0x58, 0x48, 0xD3, 0x24, 0xFA, 0xAB, 0xB2, 0xF7, 0x4E, 0x16, 0xE0, 0x8A,
+0x9E, 0x0A, 0x12, 0xCC, 0x48, 0x9C, 0xB7, 0x4C, 0x73, 0x61, 0x1D, 0x84, 0x01, 0x0E, 0xAA, 0xED,
+0x23, 0x6F, 0x22, 0x7C, 0x69, 0xCD, 0x36, 0xC8, 0x5C, 0xA2, 0x64, 0xFC, 0x23, 0x32, 0x87, 0xBF,
+0xF3, 0x93, 0xBE, 0x67, 0x9E, 0x37, 0x1E, 0x15, 0x26, 0x20, 0x0D, 0xCD, 0xBB, 0xFD, 0x8A, 0x5E,
+0x3A, 0x6F, 0x8D, 0x2C, 0x71, 0x7C, 0x0B, 0x13, 0xC5, 0xC0, 0x04, 0x3B, 0x2E, 0x7D, 0xC2, 0xDC,
+0x8B, 0x61, 0x34, 0x83, 0x4E, 0x36, 0xA7, 0x33, 0x20, 0xA2, 0x6F, 0xF6, 0xE1, 0xCF, 0x26, 0xAB,
+0x5A, 0xF9, 0x79, 0xCD, 0x1E, 0xA8, 0x7E, 0x14, 0x72, 0xEB, 0xC8, 0x4A, 0x7F, 0xB8, 0x32, 0xBD,
+0xBE, 0xE0, 0x99, 0x25, 0xF5, 0x89, 0x8A, 0xFB, 0xD2, 0x4C, 0xED, 0xC2, 0xF6, 0xC2, 0x8B, 0xC7,
+0x5B, 0x7B, 0xC1, 0x0A, 0xE6, 0xD4, 0x08, 0x7F, 0x3C, 0x91, 0x45, 0x94, 0x0D, 0x57, 0x77, 0x7B,
+0x06, 0x48, 0xAD, 0x75, 0x95, 0x6D, 0xFC, 0x19, 0x02, 0xF6, 0xCE, 0x88, 0xD8, 0xA5, 0xB9, 0x63,
+0xE9, 0x78, 0x3A, 0x4F, 0x29, 0xED, 0xA0, 0x30, 0xE0, 0xA5, 0x16, 0xAC, 0xD2, 0x65, 0x3A, 0xC1,
+0xBC, 0x0D, 0x86, 0x63, 0x0C, 0x75, 0x1D, 0x53, 0x19, 0x19, 0xE6, 0x73, 0x3A, 0x2C, 0xDC, 0x6F,
+0x2C, 0xB1, 0x6B, 0x9F, 0x5B, 0x3B, 0xFA, 0xA9, 0xE8, 0xC8, 0x50, 0x0C, 0x5E, 0x51, 0x88, 0x0C,
+0x92, 0xDD, 0xC2, 0x38, 0xD0, 0x26, 0xD7, 0x22, 0x69, 0xD2, 0x3B, 0x38, 0x40, 0x32, 0x19, 0x44,
+0x98, 0x91, 0xAD, 0xD4, 0x0B, 0x81, 0x3F, 0x6D, 0x8E, 0xA9, 0x71, 0x2E, 0x86, 0xFF, 0x2C, 0xB2,
+0x5B, 0x13, 0x2E, 0x3D, 0x3A, 0xC1, 0xBF, 0xD3, 0xA0, 0xF4, 0x6A, 0x98, 0x09, 0x85, 0x73, 0xCD,
+0xA8, 0x7C, 0x10, 0xCD, 0x42, 0x05, 0x56, 0x1F, 0x7C, 0x6B, 0xF1, 0x07, 0xCB, 0xD4, 0x56, 0xB5,
+0x31, 0xC4, 0x7C, 0x94, 0xA5, 0x58, 0x6C, 0x2B, 0xDD, 0xB4, 0x7F, 0x40, 0x14, 0xB1, 0x96, 0x86,
+0x78, 0xD4, 0x8A, 0x92, 0x16, 0x96, 0x8A, 0x94, 0x2F, 0xCE, 0xA1, 0xDA, 0xD6, 0x1B, 0x97, 0x22,
+0xFA, 0x54, 0x7F, 0xAE, 0xD7, 0x14, 0x56, 0xF3, 0x54, 0xBD, 0x14, 0x84, 0x20, 0x4A, 0x71, 0x26,
+0x5D, 0x18, 0xB6, 0x01, 0xB6, 0x6A, 0xB5, 0x90, 0x06, 0x33, 0x02, 0xF0, 0xD0, 0x18, 0x44, 0xA3,
+0x60, 0xB3, 0x3D, 0xB7, 0xDC, 0x03, 0x56, 0x60, 0x0A, 0x50, 0x07, 0x75, 0xAE, 0x15, 0xA2, 0x0F,
+0xBB, 0x59, 0x77, 0x86, 0x26, 0x5C, 0x39, 0xA6, 0x2E, 0x4B, 0x5A, 0x09, 0xA7, 0x7A, 0xD6, 0xB6,
+0xBB, 0x25, 0x2D, 0x6D, 0x1E, 0x45, 0x65, 0x54, 0xA2, 0xE5, 0xC5, 0xC8, 0x13, 0xF9, 0x46, 0xCA,
+0x11, 0x6A, 0x5F, 0x58, 0x29, 0x14, 0x29, 0x66, 0x96, 0x6B, 0xC6, 0xA1, 0x92, 0x1C, 0xA0, 0xF6,
+0x0A, 0xF0, 0x37, 0xAA, 0x7E, 0xAA, 0x50, 0x30, 0xCE, 0x35, 0xE4, 0x3D, 0xFC, 0x3F, 0x90, 0xAC,
+0xE1, 0x10, 0x6A, 0x41, 0xD3, 0x18, 0x6C, 0xA0, 0x38, 0xB2, 0xF5, 0xF4, 0xCF, 0x0D, 0x02, 0xB1,
+0x12, 0xB3, 0x92, 0xC2, 0x46, 0x44, 0x8C, 0xCA, 0x26, 0x12, 0x54, 0x16, 0xC5, 0x06, 0x81, 0x5B,
+0x52, 0x34, 0xDE, 0x18, 0x53, 0x6E, 0x8A, 0x32, 0x31, 0x7B, 0xE7, 0xCD, 0x5F, 0x62, 0x25, 0xF5,
+0x1A, 0x55, 0x79, 0x83, 0xE8, 0x41, 0x4D, 0x8F, 0x88, 0x3F, 0xC3, 0x1D, 0xF0, 0x28, 0x93, 0x54,
+0x9C, 0x6D, 0xA7, 0x4F, 0x23, 0xF7, 0xEB, 0x91, 0x6B, 0x3A, 0x1D, 0xB8, 0xE1, 0xA5, 0x94, 0xC5,
+0x55, 0x1F, 0xA8, 0x99, 0x72, 0xEF, 0x16, 0x84, 0xB3, 0xEF, 0xA7, 0x89, 0x25, 0xF5, 0x58, 0x1D,
+0x2C, 0xBC, 0xE1, 0xA0, 0x8A, 0x88, 0x8C, 0x67, 0xEF, 0xA1, 0x86, 0x9D, 0x66, 0x9F, 0xD2, 0xAB,
+0x70, 0x88, 0x72, 0x18, 0x62, 0xC0, 0xFC, 0x03, 0x38, 0x09, 0x8B, 0x2B, 0x8F, 0x78, 0x57, 0xCA,
+0x9D, 0x64, 0x6B, 0x3D, 0x04, 0xFA, 0x15, 0x13, 0x57, 0xA2, 0xDC, 0xEC, 0xF2, 0x14, 0xBE, 0xEE,
+0xD6, 0x64, 0x29, 0x33, 0xC7, 0x8B, 0xD9, 0x4D, 0x3B, 0xF4, 0x3A, 0xBB, 0xA1, 0xF0, 0x9B, 0x47,
+0xD6, 0xFF, 0x50, 0xC5, 0xD1, 0xD6, 0x8C, 0xF6, 0xD3, 0xF6, 0xBC, 0x22, 0xAE, 0x33, 0x80, 0x89,
+0xF9, 0x8F, 0x91, 0x95, 0x1A, 0x37, 0x5D, 0x9D, 0xC3, 0xA9, 0x01, 0x8D, 0x5E, 0xCC, 0x61, 0x08,
+0xC8, 0x0D, 0x64, 0x90, 0xFF, 0xF0, 0x46, 0xB9, 0xF2, 0xC8, 0x88, 0x12, 0xA8, 0x1C, 0xD7, 0xC8,
+0x1D, 0xEE, 0xA8, 0xA5, 0x75, 0xA7, 0xB9, 0x74, 0x66, 0x50, 0xA6, 0xA3, 0x84, 0x60, 0x9C, 0x7F,
+0xA3, 0x0F, 0xC8, 0x6C, 0xBB, 0x6E, 0xA5, 0x6A, 0x1D, 0x73, 0xFA, 0x6F, 0x24, 0x5F, 0x00, 0x24,
+0xC1, 0x93, 0xF2, 0x2D, 0x28, 0x50, 0xE3, 0xEA, 0xFA, 0x21, 0x6F, 0x25, 0x2E, 0x2F, 0xE5, 0xB9,
+0x65, 0xC7, 0x5B, 0xA1, 0xE1, 0xE7, 0x0E, 0x7E, 0x11, 0x53, 0x1E, 0x31, 0x37, 0xB2, 0xE7, 0x4F,
+0x7C, 0xF2, 0x19, 0x7C, 0x46, 0xB1, 0xF0, 0xD0, 0x2F, 0x3E, 0xF6, 0x9E, 0xE3, 0xA1, 0xDB, 0x8B,
+0xD9, 0xBF, 0x16, 0x7F, 0x0D, 0x85, 0xED, 0x07, 0xD6, 0x9C, 0x67, 0xD5, 0xB1, 0xD4, 0xA4, 0x12,
+0xF9, 0x08, 0x6A, 0x1A, 0x98, 0xA6, 0xC2, 0xCB, 0x34, 0x46, 0x6F, 0x66, 0x06, 0x7B, 0xC6, 0xB3,
+0x51, 0x7D, 0x1F, 0x16, 0xD4, 0x65, 0x6B, 0x2F, 0xCC, 0xF5, 0x5B, 0x8B, 0x60, 0x3A, 0x3F, 0xF2,
+0x0B, 0x4F, 0xB6, 0xF2, 0x2F, 0x94, 0xED, 0xCF, 0x4A, 0x31, 0xA7, 0x26, 0x8F, 0x39, 0x03, 0x26,
+0x0F, 0xBC, 0x78, 0x40, 0x15, 0x79, 0x24, 0x69, 0x45, 0xBA, 0x8A, 0x28, 0x4F, 0x71, 0x56, 0xD4,
+0x84, 0xD2, 0x98, 0x18, 0x36, 0x17, 0xE9, 0x72, 0x20, 0x34, 0x4B, 0x59, 0x40, 0x7A, 0x32, 0xEC,
+0xDF, 0x64, 0x8E, 0x2E, 0x18, 0x9D, 0x66, 0x54, 0xC4, 0xB8, 0x9C, 0xA2, 0x19, 0x19, 0xCC, 0x85,
+0xAA, 0x4F, 0x57, 0x54, 0x85, 0x7E, 0x5D, 0x9B, 0xFE, 0x90, 0xC2, 0xA1, 0x4D, 0x5C, 0x84, 0xFC,
+0x57, 0x8C, 0x61, 0x2D, 0xB0, 0xD4, 0xE6, 0x44, 0x4B, 0x5E, 0xD6, 0xEE, 0x72, 0x6F, 0xF0, 0x47,
+0x9A, 0xD4, 0xD0, 0xDA, 0xA5, 0xB9, 0x83, 0x27, 0x2E, 0xB2, 0x9C, 0x13, 0xF8, 0xB5, 0xDA, 0xD4,
+0x6B, 0xFE, 0x03, 0x23, 0x2E, 0xDB, 0x60, 0x72, 0xCC, 0x65, 0xB0, 0x44, 0xF7, 0xFE, 0x03, 0xCD,
+0x73, 0xB2, 0x36, 0x85, 0xE8, 0x1E, 0xB1, 0xC8, 0xFC, 0x13, 0x05, 0x2C, 0x3F, 0x78, 0x2C, 0xA9,
+0x1A, 0x06, 0xFB, 0xF4, 0x03, 0x39, 0x29, 0xEC, 0x5A, 0x85, 0x45, 0x69, 0x25, 0x21, 0xCE, 0x55,
+0x67, 0x69, 0x5A, 0x05, 0x76, 0xFE, 0x2F, 0x37, 0x66, 0x45, 0xA9, 0xCD, 0x4D, 0xAB, 0xE5, 0x2B,
+0xFA, 0xE1, 0x22, 0x17, 0x91, 0x7D, 0xD3, 0xF4, 0x3E, 0xC5, 0xFF, 0x32, 0x77, 0xFE, 0xE4, 0x9F,
+0x0A, 0xB7, 0x5C, 0xBF, 0x93, 0x69, 0x36, 0x3B, 0xBC, 0x46, 0xE2, 0xCA, 0xB5, 0xDF, 0x6F, 0x1B,
+0xE9, 0xC2, 0x4E, 0xC8, 0xFE, 0x6B, 0xEF, 0x71, 0x4C, 0x1D, 0x3B, 0xBB, 0xF4, 0x5A, 0xEB, 0xF8,
+0x99, 0xC8, 0x51, 0x6A, 0xC0, 0x85, 0x4E, 0x5A, 0x31, 0xBB, 0xBC, 0x29, 0x2B, 0x14, 0xBE, 0x00,
+0x3D, 0x9B, 0x1B, 0x03, 0xDB, 0x27, 0xA0, 0x2C, 0x5E, 0xAE, 0x1A, 0x00, 0xC1, 0x6F, 0xE9, 0x65,
+0x0D, 0x77, 0x53, 0xB7, 0x70, 0xD0, 0xB4, 0x1F, 0x29, 0xE2, 0xCD, 0x45, 0x7F, 0xC8, 0x25, 0xBF,
+0xBD, 0x62, 0xB0, 0x5A, 0x2A, 0x37, 0x10, 0x97, 0x9F, 0x57, 0x26, 0xE7, 0x51, 0xE1, 0x82, 0x93,
+0xC3, 0x99, 0xDE, 0x86, 0x04, 0x64, 0xFF, 0xF2, 0xA4, 0x1E, 0xB2, 0x59, 0xB2, 0x45, 0xBD, 0x46,
+0xE0, 0xC0, 0x25, 0x97, 0xC0, 0x60, 0xA1, 0x9E, 0xF3, 0x0A, 0x02, 0xB1, 0x9E, 0x76, 0xC8, 0x97,
+0x9B, 0x29, 0x27, 0xE1, 0x81, 0xF8, 0x30, 0xF9, 0x65, 0x8A, 0x60, 0x1B, 0x18, 0x85, 0xC5, 0x5B,
+0x15, 0x57, 0x82, 0xA9, 0xAE, 0x06, 0xE1, 0xBD, 0x87, 0x68, 0x42, 0x6C, 0x9A, 0xF3, 0x13, 0xB9,
+0xAC, 0xB9, 0x1A, 0xCD, 0x2B, 0xED, 0xDD, 0x77, 0x9B, 0xAF, 0xE4, 0xD4, 0xDB, 0x05, 0xC5, 0xDD,
+0x1F, 0xA2, 0xEE, 0x0B, 0x63, 0x87, 0x0D, 0x2E, 0x2D, 0x47, 0x62, 0x24, 0x8D, 0x42, 0x04, 0x2D,
+0xC0, 0xA8, 0xFC, 0x77, 0x1B, 0x8C, 0x37, 0xB9, 0x7F, 0x79, 0x41, 0x40, 0x51, 0xDC, 0xD3, 0xDB,
+0xD5, 0x8E, 0xDB, 0xBE, 0x7B, 0xF1, 0x27, 0x0F, 0xC4, 0x4A, 0xBA, 0x7D, 0x87, 0xBF, 0xE5, 0xF4,
+0xEB, 0x74, 0xA3, 0xB0, 0x2D, 0x96, 0xA4, 0xF6, 0x78, 0x75, 0x14, 0xDF, 0xF0, 0x0F, 0x7E, 0x10,
+0x09, 0xC7, 0xDE, 0x8E, 0xB5, 0x4C, 0xB3, 0x31, 0xAF, 0x9B, 0x3D, 0xC9, 0x60, 0xAB, 0xBC, 0x76,
+0x10, 0xDC, 0x86, 0xAC, 0xB1, 0xED, 0xBC, 0x18, 0x9C, 0xB1, 0xDF, 0x96, 0x6D, 0x5C, 0xB8, 0xCF,
+0xA3, 0x92, 0x8C, 0x5E, 0xD6, 0xB8, 0x6F, 0x6E, 0xBF, 0x82, 0xDF, 0x1F, 0xA3, 0xA8, 0x7E, 0x3C,
+0xE1, 0xFB, 0x17, 0xEB, 0xD3, 0x24, 0xAC, 0x60, 0x4F, 0x8D, 0x08, 0x4C, 0xAF, 0x8C, 0xB9, 0xD3,
+0x4A, 0x92, 0x2C, 0xDC, 0x76, 0x74, 0x21, 0x59, 0xA5, 0xC7, 0x60, 0xC3, 0xBD, 0x9E, 0x28, 0xCA,
+0x8D, 0xAA, 0x00, 0xE3, 0x43, 0xF2, 0x45, 0x3F, 0x61, 0x2F, 0xD3, 0xED, 0x2F, 0x5C, 0x9F, 0x64,
+0xE9, 0xAD, 0x61, 0x4E, 0x6E, 0x67, 0xF2, 0x1C, 0xDE, 0x59, 0x66, 0x26, 0x76, 0x3C, 0xCF, 0x05,
+0xC3, 0x08, 0x6F, 0xBF, 0x4D, 0x96, 0xA7, 0x58, 0xC7, 0x7C, 0xD6, 0xD6, 0xE8, 0x9F, 0x0A, 0xB9,
+0x98, 0x87, 0x08, 0x92, 0x44, 0xD4, 0xC3, 0x2D, 0xE7, 0x1C, 0xDC, 0xE8, 0xB5, 0xF3, 0xDC, 0x9B,
+0x87, 0xD5, 0xA7, 0xAA, 0xC1, 0x5E, 0x94, 0x1A, 0x13, 0x98, 0x67, 0x36, 0x3D, 0x93, 0x22, 0xD6,
+0xE4, 0xFB, 0x9C, 0x1E, 0x6A, 0xE6, 0x09, 0x27, 0xA8, 0x8C, 0x8E, 0xD9, 0xE2, 0xA8, 0xB7, 0x7D,
+0x46, 0x46, 0x1B, 0xC4, 0x66, 0xE8, 0xB4, 0xFD, 0x2D, 0x95, 0x89, 0xB7, 0x2E, 0x0E, 0x94, 0x8D,
+0x35, 0x93, 0xAC, 0xDC, 0x3A, 0x00, 0x00, 0x00, 0x88, 0x06, 0x44, 0xC6, 0x67, 0x07, 0xE3, 0xF1,
+0x00, 0x01, 0xD2, 0x2D, 0xF0, 0xE8, 0x01, 0x00, 0xB2, 0x24, 0x7E, 0x9D, 0xB1, 0xC4, 0x67, 0xFB,
+0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x59, 0x5A};
diff --git a/drivers/qtn/qdrv/qdrv_netdebug_checksum.h b/drivers/qtn/qdrv/qdrv_netdebug_checksum.h
index 6ed2cdf..5029bfd 100644
--- a/drivers/qtn/qdrv/qdrv_netdebug_checksum.h
+++ b/drivers/qtn/qdrv/qdrv_netdebug_checksum.h
@@ -1,3 +1,3 @@
/* Automatically generated file. Do not edit. */
-#define QDRV_NETDEBUG_CHECKSUM 0x72e35823
-#define QDRV_BUILDDATE 1479230732UL
+#define QDRV_NETDEBUG_CHECKSUM 0xe92085e7
+#define QDRV_BUILDDATE 1482513830UL
diff --git a/drivers/qtn/qdrv/qdrv_pktlogger.c b/drivers/qtn/qdrv/qdrv_pktlogger.c
index 24f3ceb..db8c8ab1 100644
--- a/drivers/qtn/qdrv/qdrv_pktlogger.c
+++ b/drivers/qtn/qdrv/qdrv_pktlogger.c
@@ -1952,8 +1952,8 @@
iphdr->frag_off = htons(frag_off);
iphdr->ttl = PKTLOGGER_IP_TTL;
iphdr->protocol = IPPROTO_UDP;
- iphdr->saddr = g_pktlogger_p->src_ip;
- iphdr->daddr = g_pktlogger_p->dst_ip;
+ put_unaligned_be32(g_pktlogger_p->src_ip, &iphdr->saddr);
+ put_unaligned_be32(g_pktlogger_p->dst_ip, &iphdr->daddr);
iphdr->check = ip_fast_csum((unsigned char *)iphdr, iphdr->ihl);
}
diff --git a/drivers/qtn/qdrv/qdrv_rx.c b/drivers/qtn/qdrv/qdrv_rx.c
index 09bfb8c..db348b4 100644
--- a/drivers/qtn/qdrv/qdrv_rx.c
+++ b/drivers/qtn/qdrv/qdrv_rx.c
@@ -1759,8 +1759,8 @@
if (br_fdb_get_hook != NULL && br_port != NULL) {
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
- if (unlikely( (!ether_addr_equal(eh->ether_dhost, skb->dev->dev_addr)) ||
- (!ether_addr_equal(eh->ether_dhost, br_port->dev->dev_addr)))) {
+ if (unlikely( (ether_addr_equal(eh->ether_dhost, skb->dev->dev_addr)) ||
+ (ether_addr_equal(eh->ether_dhost, br_port->dev->dev_addr)))) {
#else
if (unlikely( (!compare_ether_addr(eh->ether_dhost, skb->dev->dev_addr)) ||
(!compare_ether_addr(eh->ether_dhost, dev->br_port->dev->dev_addr)))) {
@@ -1786,7 +1786,7 @@
if (ETHER_IS_MULTICAST(eh->ether_dhost)) {
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
- if (!ether_addr_equal(eh->ether_dhost, vap->iv_dev->broadcast)) {
+ if (ether_addr_equal(eh->ether_dhost, vap->iv_dev->broadcast)) {
#else
if (!compare_ether_addr(eh->ether_dhost, vap->iv_dev->broadcast)) {
#endif
diff --git a/drivers/qtn/qdrv/qdrv_vap.h b/drivers/qtn/qdrv/qdrv_vap.h
index 12a05bc..144358b 100644
--- a/drivers/qtn/qdrv/qdrv_vap.h
+++ b/drivers/qtn/qdrv/qdrv_vap.h
@@ -24,6 +24,9 @@
/* Include the WLAN 802.11 layer here */
#include <linux/skbuff.h>
#include <linux/netdevice.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
+#include <linux/net/bridge/br_public.h>
+#endif
#include <net80211/if_media.h>
#include <net80211/ieee80211_var.h>
#include "qdrv_mac.h"
diff --git a/drivers/qtn/qdrv/qdrv_wlan.c b/drivers/qtn/qdrv/qdrv_wlan.c
index 5780557..5b1c60b 100644
--- a/drivers/qtn/qdrv/qdrv_wlan.c
+++ b/drivers/qtn/qdrv/qdrv_wlan.c
@@ -8214,28 +8214,29 @@
seq_printf(s, " rx_coex_bw_assoc : %u\n", qw->rx_stats.rx_coex_bw_assoc);
seq_printf(s, " rx_coex_bw_scan : %u\n", qw->rx_stats.rx_coex_bw_scan);
- seq_printf(s, "Recycling Statistics\n");
- seq_printf(s, " qdrv_free_pass : %d\n", recycle_list->stats_qdrv.free_recycle_pass);
- seq_printf(s, " qdrv_free_fail : %d\n", recycle_list->stats_qdrv.free_recycle_fail);
- seq_printf(s, " qdrv_free_fail_undersize : %d\n", recycle_list->stats_qdrv.free_recycle_fail_undersize);
- seq_printf(s, " qdrv_alloc_recycle : %d\n", recycle_list->stats_qdrv.alloc_recycle);
- seq_printf(s, " qdrv_alloc_kmalloc : %d\n", recycle_list->stats_qdrv.alloc_kmalloc);
- seq_printf(s, " eth_free_pass : %d\n", recycle_list->stats_eth.free_recycle_pass);
- seq_printf(s, " eth_free_fail : %d\n", recycle_list->stats_eth.free_recycle_fail);
- seq_printf(s, " eth_free_fail_undersize : %d\n", recycle_list->stats_eth.free_recycle_fail_undersize);
- seq_printf(s, " eth_alloc_recycle : %d\n", recycle_list->stats_eth.alloc_recycle);
- seq_printf(s, " eth_alloc_kmalloc : %d\n", recycle_list->stats_eth.alloc_kmalloc);
+ if (recycle_list) {
+ seq_printf(s, "Recycling Statistics\n");
+ seq_printf(s, " qdrv_free_pass : %d\n", recycle_list->stats_qdrv.free_recycle_pass);
+ seq_printf(s, " qdrv_free_fail : %d\n", recycle_list->stats_qdrv.free_recycle_fail);
+ seq_printf(s, " qdrv_free_fail_undersize : %d\n", recycle_list->stats_qdrv.free_recycle_fail_undersize);
+ seq_printf(s, " qdrv_alloc_recycle : %d\n", recycle_list->stats_qdrv.alloc_recycle);
+ seq_printf(s, " qdrv_alloc_kmalloc : %d\n", recycle_list->stats_qdrv.alloc_kmalloc);
+ seq_printf(s, " eth_free_pass : %d\n", recycle_list->stats_eth.free_recycle_pass);
+ seq_printf(s, " eth_free_fail : %d\n", recycle_list->stats_eth.free_recycle_fail);
+ seq_printf(s, " eth_free_fail_undersize : %d\n", recycle_list->stats_eth.free_recycle_fail_undersize);
+ seq_printf(s, " eth_alloc_recycle : %d\n", recycle_list->stats_eth.alloc_recycle);
+ seq_printf(s, " eth_alloc_kmalloc : %d\n", recycle_list->stats_eth.alloc_kmalloc);
#if defined(CONFIG_RUBY_PCIE_HOST) || defined(CONFIG_RUBY_PCIE_TARGET)
- seq_printf(s, " pcie_free_pass : %d\n", recycle_list->stats_pcie.free_recycle_pass);
- seq_printf(s, " pcie_free_fail : %d\n", recycle_list->stats_pcie.free_recycle_fail);
- seq_printf(s, " pcie_free_fail_undersize : %d\n", recycle_list->stats_pcie.free_recycle_fail_undersize);
- seq_printf(s, " pcie_alloc_recycle : %d\n", recycle_list->stats_pcie.alloc_recycle);
- seq_printf(s, " pcie_alloc_kmalloc : %d\n", recycle_list->stats_pcie.alloc_kmalloc);
+ seq_printf(s, " pcie_free_pass : %d\n", recycle_list->stats_pcie.free_recycle_pass);
+ seq_printf(s, " pcie_free_fail : %d\n", recycle_list->stats_pcie.free_recycle_fail);
+ seq_printf(s, " pcie_free_fail_undersize : %d\n", recycle_list->stats_pcie.free_recycle_fail_undersize);
+ seq_printf(s, " pcie_alloc_recycle : %d\n", recycle_list->stats_pcie.alloc_recycle);
+ seq_printf(s, " pcie_alloc_kmalloc : %d\n", recycle_list->stats_pcie.alloc_kmalloc);
#endif
- seq_printf(s, " kfree_free_pass : %d\n", recycle_list->stats_kfree.free_recycle_pass);
- seq_printf(s, " kfree_free_fail : %d\n", recycle_list->stats_kfree.free_recycle_fail);
- seq_printf(s, " kfree_free_fail_undersize : %d\n", recycle_list->stats_kfree.free_recycle_fail_undersize);
-
+ seq_printf(s, " kfree_free_pass : %d\n", recycle_list->stats_kfree.free_recycle_pass);
+ seq_printf(s, " kfree_free_fail : %d\n", recycle_list->stats_kfree.free_recycle_fail);
+ seq_printf(s, " kfree_free_fail_undersize : %d\n", recycle_list->stats_kfree.free_recycle_fail_undersize);
+ }
seq_printf(s, "BF Statistics\n");
for (i = 0; i < QTN_STATS_NUM_BF_SLOTS; i++) {
seq_printf(s, " slot %u success : %d\n", i, qw->rx_stats.rx_bf_success[i]);
diff --git a/drivers/qtn/qdrv/qdrv_wlan.h b/drivers/qtn/qdrv/qdrv_wlan.h
index 960dd6c..fe2ac8c 100644
--- a/drivers/qtn/qdrv/qdrv_wlan.h
+++ b/drivers/qtn/qdrv/qdrv_wlan.h
@@ -1079,6 +1079,11 @@
* Channel change triggered due to pm level changes
*/
uint16_t csw_by_coc;
+
+ /**
+ * reserved
+ */
+ uint16_t reserved;
};
struct tx_power_cal
diff --git a/drivers/qtn/ruby/emac_lib.c b/drivers/qtn/ruby/emac_lib.c
index 43b4f47..b482e41 100644
--- a/drivers/qtn/ruby/emac_lib.c
+++ b/drivers/qtn/ruby/emac_lib.c
@@ -674,11 +674,11 @@
if (rtl8367b_init(mii, &emac_lib_mdio_read,
&emac_lib_mdio_write,
privc->emac_cfg, privc->mac_id)) {
- goto board_init_err_out;
+ goto emac_lib_err_out;
}
#else
printk(KERN_ERR "rtl switch module not available\n");
- goto board_init_err_out;
+ goto emac_lib_err_out;
#endif
} else {
mii->read = emac_lib_mdio_read;
@@ -687,15 +687,6 @@
mii->name = "emac_eth_mii";
snprintf(mii->id, MII_BUS_ID_SIZE, "%x", privc->mac_id);
-#if 0
- mii->irq is array. Allocation not needed.
- /* Initialize irq field */
- mii->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
- if (!mii->irq) {
- goto irq_alloc_err_out;
- }
-#endif
-
for(i = 0; i < PHY_MAX_ADDR; ++i) {
mii->irq[i] = PHY_POLL;
}
@@ -703,16 +694,13 @@
/* Register bus if we are using PHY */
if ((privc->emac_cfg & EMAC_PHY_NOT_IN_USE) == 0) {
if (mdiobus_register(mii)) {
- goto mii_register_err_out;
+ goto emac_lib_err_out;
}
}
+
return mii;
-mii_register_err_out:
- kfree(mii->irq);
-
-/*irq_alloc_err_out:*/
-board_init_err_out:
+emac_lib_err_out:
mdiobus_free(mii);
mii_alloc_err_out:
diff --git a/drivers/qtn/topaz/fwt_if.c b/drivers/qtn/topaz/fwt_if.c
index 4aff537..b61c1f6 100755
--- a/drivers/qtn/topaz/fwt_if.c
+++ b/drivers/qtn/topaz/fwt_if.c
@@ -27,6 +27,7 @@
#include <linux/netdevice.h>
#include <linux/ctype.h>
#include <linux/if_ether.h>
+#include <linux/inet.h>
#include "../../net/bridge/br_public.h"
#include <net80211/if_ethersubr.h>
diff --git a/drivers/qtn/topaz/hbm.c b/drivers/qtn/topaz/hbm.c
index b96b6eb..f3143fa 100644
--- a/drivers/qtn/topaz/hbm.c
+++ b/drivers/qtn/topaz/hbm.c
@@ -586,7 +586,6 @@
if (topaz_hbm_pool_valid(pool)) {
if (!skb->hbm_no_free) {
unsigned long flags;
-
local_irq_save(flags);
topaz_hbm_flush_skb_cache(skb);
@@ -619,7 +618,6 @@
struct skb_shared_info *shinfo;
uint32_t buf_size;
uint8_t *buf_head;
- uint8_t *buf_head2;
uintptr_t inv_start;
uintptr_t inv_end;
@@ -645,8 +643,7 @@
* if we set skb buffer size as 17K
*/
buf_size = min((int)topaz_hbm_pool_buf_max_size(pool), QTN_HBM_MAX_FRAME_LEN);
- buf_head = topaz_hbm_payload_store_align_virt(buf_virt, pool, 0);
- buf_head2 = buf_head - headroom;
+ buf_head = topaz_hbm_payload_store_align_virt(buf_virt, pool, 0) - headroom;
/* invalidate all packet dcache before passing to the kernel */
if (inv)
@@ -657,10 +654,10 @@
dma_get_cache_alignment());
inv_dcache_range(inv_start, inv_end);
- __alloc_skb_init(skb, shinfo, buf_head2,
+ __alloc_skb_init(skb, shinfo, buf_head,
buf_size, 0, &topaz_hbm_skb_allocator
QTN_SKB_ALLOC_TRACE_ARGVARS);
- skb_reserve(skb, ((uint8_t *) buf_virt) - buf_head2);
+ skb_reserve(skb, ((uint8_t *) buf_virt) - buf_head);
return skb;
}
diff --git a/drivers/qtn/topaz/tqe.c b/drivers/qtn/topaz/tqe.c
index 608c7f4..f932818 100644
--- a/drivers/qtn/topaz/tqe.c
+++ b/drivers/qtn/topaz/tqe.c
@@ -21,6 +21,7 @@
#include <linux/module.h>
#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
#include <linux/io.h>
#include <asm/hardware.h>
@@ -30,10 +31,8 @@
#define TOPAZ_TQE_PROC_FILENAME "topaz_tqe"
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
-static int topaz_tqe_stat_rd(struct file *file, char __user *buffer,
- size_t count, loff_t *ppos)
+static int topaz_tqe_stat_rd(struct seq_file *sfile, void *data)
{
- char *p = buffer;
int i;
struct {
uint32_t reg;
@@ -60,17 +59,25 @@
for (i = 0; i < ARRAY_SIZE(regs); i++) {
uint32_t reg = readl(regs[i].reg);
- p += sprintf(p, "%8s = %u 0x%08x\n", regs[i].name, reg, reg);
+ seq_printf(sfile, "%8s = %u 0x%08x\n", regs[i].name, reg, reg);
}
- *ppos += p - buffer;
-
- return p - buffer;
+ return 0;
}
-static const struct file_operations fops_tqe = {
- .read = topaz_tqe_stat_rd,
+static int topaz_tqe_stat_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, topaz_tqe_stat_rd, NULL);
+}
+
+static const struct file_operations topaz_tqe_stat_fops = {
+ .owner = THIS_MODULE,
+ .open = topaz_tqe_stat_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
};
+
#else
static int topaz_tqe_stat_rd(char *page, char **start, off_t offset,
int count, int *eof, void *data)
@@ -112,7 +119,7 @@
static int __init topaz_tqe_stat_init(void)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
- if (!proc_create(TOPAZ_TQE_PROC_FILENAME, 0x444, NULL, &fops_tqe))
+ if (!proc_create(TOPAZ_TQE_PROC_FILENAME, 0x444, NULL, &topaz_tqe_stat_fops))
return -EEXIST;
#else
@@ -129,5 +136,3 @@
MODULE_DESCRIPTION("TQE");
MODULE_AUTHOR("Quantenna");
MODULE_LICENSE("GPL");
-
-
diff --git a/drivers/qtn/wlan/ieee80211_output.c b/drivers/qtn/wlan/ieee80211_output.c
index 0527d32..21c0a5c 100644
--- a/drivers/qtn/wlan/ieee80211_output.c
+++ b/drivers/qtn/wlan/ieee80211_output.c
@@ -1008,8 +1008,7 @@
*frm++ = sp->chan_util;
/* TODO: Available Admission Capacity
* parameters need to be updated with correct values */
- put_unaligned(0xffff, (__le16 *)frm);
- frm += 2;
+ ADDINT16LE(frm, 0xffff);
return frm;
}
diff --git a/drivers/qtn/wlan/ieee80211_scan.c b/drivers/qtn/wlan/ieee80211_scan.c
index c29ffa99..b9b8744 100644
--- a/drivers/qtn/wlan/ieee80211_scan.c
+++ b/drivers/qtn/wlan/ieee80211_scan.c
@@ -2040,9 +2040,9 @@
if (end - pos < 4)
break;
- type = be16toh(*(__be16 *)pos);
+ type = get_unaligned_be16(pos);
pos += 2;
- len = be16toh(*(__be16 *)pos);
+ len = get_unaligned_be16(pos);
pos += 2;
if (len > end - pos)
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index c17327e..ef1ce68 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -384,7 +384,7 @@
BUG_ON(!ops);
-#if 0
+#ifndef CONFIG_ARC_PLAT_QTN
WARN_ON(irqs_disabled());
#endif
if (dma_release_from_coherent(dev, get_order(size), cpu_addr))
diff --git a/include/linux/ip.h b/include/linux/ip.h
index 5f2004f..003f3e8 100644
--- a/include/linux/ip.h
+++ b/include/linux/ip.h
@@ -42,7 +42,7 @@
{
struct iphdr *iph = ip_hdr(skb);
-#ifndef CONFIG_QTN_PLATFORM_MISALIGN_WAR
+#ifdef CONFIG_ARC_PLAT_QTN
int err = 0;
if (unlikely(((uint32_t)iph & 0x3) == QTN_IP_REALIGN_BYTES)) {
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index 1a8e874..8532a89 100644
--- a/include/linux/ipv6.h
+++ b/include/linux/ipv6.h
@@ -94,7 +94,8 @@
static inline struct ipv6hdr *ipv6_hdr_aligned(struct sk_buff *skb)
{
struct ipv6hdr *ip6h = ipv6_hdr(skb);
-#ifndef CONFIG_QTN_PLATFORM_MISALIGN_WAR
+
+#ifdef CONFIG_ARC_PLAT_QTN
int err = 0;
if (unlikely(((uint32_t)ip6h & 0x3) == QTN_IP_REALIGN_BYTES)) {
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 0e5e2ba..2f4cbdb 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -710,9 +710,9 @@
/* one bit hole */
__u8 is_recyclable:1,
cache_is_cleaned:1,
- hbm_no_free:1;
+ hbm_no_free:1,
+ ext_l2_filter:1;
- __u8 ext_l2_filter:1;
kmemcheck_bitfield_end(flags1);
/* fields enclosed in headers_start/headers_end are copied
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index 1ab3f82..c44a7dc1 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -73,7 +73,7 @@
goto out;
}
-#ifndef CONFIG_QTN_PLATFORM_MISALIGN_WAR
+#ifdef CONFIG_ARC_PLAT_QTN
if (M_FLAG_ISSET(skb, M_HAS_MISALIGN))
dest = eth_hdr(skb)->h_dest;
#endif
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index 6348414..efcb184 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -858,7 +858,7 @@
} else {
spin_lock(&br->hash_lock);
if (likely(!fdb_find(head, addr, vid))) {
- fdb = fdb_create(br, head, source, addr, vid, 0, 0, 0);
+ fdb = fdb_create(br, head, source, addr, vid, sub_port, 0, 0);
if (fdb) {
if (unlikely(added_by_user))
fdb->added_by_user = 1;
@@ -1123,7 +1123,7 @@
} else {
spin_lock_bh(&p->br->hash_lock);
err = fdb_add_entry(p, addr, ndm->ndm_state,
-+ nlh_flags, vid, 0);
+ nlh_flags, vid, 0);
spin_unlock_bh(&p->br->hash_lock);
}
diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c
index 1e42b05..839a342 100644
--- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c
@@ -141,6 +141,11 @@
skb->dev = to->dev;
+ if (unlikely(skb->ext_l2_filter) && !br_is_wlan_dev(skb->dev)) {
+ kfree_skb(skb);
+ return;
+ }
+
if (unlikely(netpoll_tx_running(to->br->dev))) {
if (!is_skb_forwardable(skb->dev, skb))
kfree_skb(skb);
@@ -175,6 +180,11 @@
skb->dev = to->dev;
skb_forward_csum(skb);
+ if (unlikely(skb->ext_l2_filter) && !br_is_wlan_dev(skb->dev)) {
+ kfree_skb(skb);
+ return;
+ }
+
NF_HOOK(NFPROTO_BRIDGE, NF_BR_FORWARD,
dev_net(indev), NULL, skb, indev, skb->dev,
br_forward_finish);
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 64cd776..6efb47c 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -269,6 +269,7 @@
sysfs_remove_link(br->ifobj, p->dev->name);
+ dev->gflags ^= IFF_PROMISC;
nbp_delete_promisc(p);
spin_lock_bh(&br->lock);
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 693f304..cc9a278 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -44,7 +44,7 @@
br_should_route_hook_t __rcu *br_should_route_hook __read_mostly;
EXPORT_SYMBOL(br_should_route_hook);
-#ifndef CONFIG_QTN_PLATFORM_MISALIGN_WAR
+#ifdef CONFIG_ARC_PLAT_QTN
static struct sk_buff *skb_aligned(struct sk_buff *skb)
{
if ((unsigned int)skb->data & 0x3) {
@@ -95,9 +95,10 @@
if (!skb)
return NET_RX_DROP;
-#ifndef CONFIG_QTN_PLATFORM_MISALIGN_WAR
+#ifdef CONFIG_ARC_PLAT_QTN
skb = skb_aligned(skb);
#endif
+
return NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_IN,
dev_net(indev), NULL, skb, indev, NULL,
br_netif_receive_skb);
@@ -158,6 +159,11 @@
return retval;
}
+int br_wlan_report_flood(struct net_bridge *br)
+{
+ return !!br->wlan_report_flood_enable;
+}
+
int br_handle_frame_finish_multicast(struct sk_buff *skb, struct net_bridge *br,
const unsigned char *dest, u16 vid)
{
@@ -179,8 +185,11 @@
br_handle_mcast_mgmt_frame(skb, br) &&
br_handle_mcast_exception(br, dest, data)) {
if (BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) {
- mdst = br_mdb_get(br, skb, vid);
- br_report_flood(br, mdst, skb);
+ if (!br_is_wlan_dev(skb->dev) ||
+ br_wlan_report_flood(br)) {
+ mdst = br_mdb_get(br, skb, vid);
+ br_report_flood(br, mdst, skb);
+ }
br_multicast_forward(mdst, skb, skb2);
skb = NULL;
} else if(BR_INPUT_SKB_CB_UCAST_FWD(skb)) {
@@ -303,28 +312,29 @@
/* insert into forwarding database after filtering to avoid spoofing */
br = p->br;
- /* ETH_P_80211_RAW */
- /* This type of frame should be passed up the stack, not forwarded or flooded.
+ /* ETH_P_80211_RAW */
+ /* This type of frame should be passed up the stack, not forwarded or flooded.
* Note that due to the nature of the skb with this protocol, the header is an
* 802.11 header, not an Ethernet header.
*/
- if (skb->protocol == __constant_htons(ETH_P_80211_RAW))
- {
- /* Pass it up, do not forward or add entries to the bridge table */
- BR_INPUT_SKB_CB(skb)->brdev = br->dev;
- br_pass_frame_up(skb);
- goto out;
- }
+ if (skb->protocol == __constant_htons(ETH_P_80211_RAW))
+ {
+ /* Pass it up, do not forward or add entries to the bridge table */
+ BR_INPUT_SKB_CB(skb)->brdev = br->dev;
+ br_pass_frame_up(skb);
+ goto out;
+ }
if (p->flags & BR_LEARNING)
- br_fdb_update(br, p, eth_hdr(skb)->h_source, vid, false, 0);
+ br_fdb_update(br, p, eth_hdr(skb)->h_source, vid, false, skb->src_port);
+
br_handle_fwt_capacity(br);
if (!is_broadcast_ether_addr(dest) && is_multicast_ether_addr(dest) &&
- br_multicast_rcv(br, p, skb, vid))
+ br_multicast_rcv(br, p, skb, vid))
goto drop;
-#ifndef CONFIG_QTN_PLATFORM_MISALIGN_WAR
+#ifdef CONFIG_ARC_PLAT_QTN
if (M_FLAG_ISSET(skb, M_HAS_MISALIGN))
dest = eth_hdr(skb)->h_dest;
#endif
@@ -347,7 +357,7 @@
#ifdef CONFIG_IPV6
if ((eth_hdr(skb)->h_proto == __constant_htons(ETH_P_IPV6)) &&
(skb->len < sizeof(struct ipv6hdr))) {
- goto drop;
+ goto drop;
}
#endif
if (IS_ENABLED(CONFIG_INET) && skb->protocol == htons(ETH_P_ARP))
@@ -431,15 +441,14 @@
&& skb->pkt_type == PACKET_HOST))
return RX_HANDLER_PASS;
+ if (!is_valid_ether_addr(eth_hdr(skb)->h_source))
+ goto drop;
+
skb = skb_share_check(skb, GFP_ATOMIC);
if (!skb)
return RX_HANDLER_CONSUMED;
- if (!is_valid_ether_addr(eth_hdr(skb)->h_source))
- goto drop;
-
p = br_port_get_rcu(skb->dev);
-
/* For ETH_P_80211_RAW, any pointers to addresses are invalid, so
* simply pass the packet onto the br_handle_frame_finish to pass
* it up the stack.
@@ -493,9 +502,13 @@
}
/* Deliver packet to local host only */
- NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_IN, dev_net(skb->dev),
- NULL, skb, skb->dev, NULL, br_handle_local_finish);
- return RX_HANDLER_CONSUMED;
+ if (NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_IN, dev_net(skb->dev),
+ NULL, skb, skb->dev, NULL, br_handle_local_finish)) {
+ return RX_HANDLER_CONSUMED; /* consumed by filter */
+ } else {
+ *pskb = skb;
+ return RX_HANDLER_PASS; /* continue processing */
+ }
}
forward:
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index 3ab1506..965853a 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -1863,12 +1863,13 @@
struct sk_buff *skb_trimmed = NULL;
const uint8_t *src_mac = br_ether_srcmac(skb);
struct igmphdr *ih;
+ const struct iphdr *iph = ip_hdr_aligned(skb);
int err;
err = ip_mc_check_igmp(skb, &skb_trimmed);
if (err == -ENOMSG) {
- if (!ipv4_is_local_multicast(get_unaligned(&ip_hdr(skb)->daddr)))
+ if (!ipv4_is_local_multicast(iph->daddr))
BR_INPUT_SKB_CB(skb)->mrouters_only = 1;
return 0;
} else if (err < 0) {
@@ -1897,6 +1898,9 @@
break;
}
+ if ((skb_trimmed != skb) && BR_INPUT_SKB_CB(skb_trimmed)->ucast_fwd)
+ BR_INPUT_SKB_CB(skb)->ucast_fwd = 1;
+
if (skb_trimmed && skb_trimmed != skb)
kfree_skb(skb_trimmed);
@@ -1911,13 +1915,14 @@
{
struct sk_buff *skb_trimmed = NULL;
const uint8_t *src_mac = br_ether_srcmac(skb);
+ const struct ipv6hdr *ip6h = ipv6_hdr_aligned(skb);
struct mld_msg *mld;
int err;
err = ipv6_mc_check_mld(skb, &skb_trimmed);
if (err == -ENOMSG) {
- if (!ipv6_addr_is_ll_all_nodes(&ipv6_hdr(skb)->daddr))
+ if (!ipv6_addr_is_ll_all_nodes(&ip6h->daddr))
BR_INPUT_SKB_CB(skb)->mrouters_only = 1;
return 0;
} else if (err < 0) {
@@ -1944,13 +1949,12 @@
break;
}
+ if ((skb_trimmed != skb) && BR_INPUT_SKB_CB(skb_trimmed)->ucast_fwd)
+ BR_INPUT_SKB_CB(skb)->ucast_fwd = 1;
+
if (skb_trimmed && skb_trimmed != skb)
kfree_skb(skb_trimmed);
-#if 0
-442 + if ((skb2 != skb) && BR_INPUT_SKB_CB(skb2)->ucast_fwd)
-443 + BR_INPUT_SKB_CB(skb)->ucast_fwd = 1;
-#endif
return err;
}
#endif
@@ -1962,7 +1966,7 @@
BR_INPUT_SKB_CB(skb)->mrouters_only = 0;
BR_INPUT_SKB_CB(skb)->ucast_fwd = 0;
- switch (skb->protocol) {
+ switch (skb->protocol) {
case htons(ETH_P_IP):
return br_multicast_ipv4_rcv(br, port, skb, vid);
#if IS_ENABLED(CONFIG_IPV6)
@@ -1978,8 +1982,8 @@
struct bridge_mcast_own_query *query,
struct bridge_mcast_querier *querier)
{
- if (br->multicast_router == 0)
- return;
+ if (br->multicast_router == 0)
+ return;
spin_lock(&br->multicast_lock);
if (query->startup_sent < br->multicast_startup_query_count)
diff --git a/net/bridge/br_public.h b/net/bridge/br_public.h
index 0ddce55..bc5ebfe 100644
--- a/net/bridge/br_public.h
+++ b/net/bridge/br_public.h
@@ -11,6 +11,7 @@
#define _BR_PUBLIC_H
#include <linux/netdevice.h>
+#include <net/route.h>
#include <linux/if_bridge.h>
/*
* Move some structure and APIs from br_private.h to here
@@ -93,7 +94,7 @@
struct hlist_head hash[BR_HASH_SIZE];
struct hlist_head mcast_hash[BR_HASH_SIZE];
unsigned long feature_mask;
-#ifdef CONFIG_BRIDGE_NETFILTER
+#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)
struct rtable fake_rtable;
bool nf_call_iptables;
bool nf_call_ip6tables;
@@ -173,10 +174,7 @@
struct kobject *ifobj;
u32 auto_cnt;
uint16_t vlan_id;
-#ifdef CONFIG_BRIDGE_VLAN_FILTERING
- u8 vlan_enabled;
- struct net_port_vlans __rcu *vlan_info;
-#endif
+
/* address of attached device when in 3-addr mode */
struct net_bridge_fdb_entry *br_fdb_attached;
enum {
@@ -188,10 +186,17 @@
BR_SSDP_FLOOD_DISABLED,
BR_SSDP_FLOOD_ENABLED
} ssdp_flood_state;
+#ifdef CONFIG_BRIDGE_VLAN_FILTERING
+ struct net_bridge_vlan_group __rcu *vlgrp;
+ u8 vlan_enabled;
+ u8 vlan_stats_enabled;
+ __be16 vlan_proto;
+ u16 default_pvid;
+#endif
};
#define BR_MCAST_SUBPORT_REQ_LIMIT 32
-#define BR_SUB_PORT_BITMAP_SIZE (16) /* holds QTN_NODE_NUMBER bits */
+#define BR_SUB_PORT_BITMAP_SIZE (4) /* holds QTN_NODE_NUMBER bits */
struct net_bridge_port
{
@@ -242,6 +247,7 @@
#endif
#ifdef CONFIG_BRIDGE_VLAN_FILTERING
struct net_port_vlans __rcu *vlan_info;
+ struct net_bridge_vlan_group __rcu *vlgrp;
#endif
};
diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
index f8ec79e..e5dc9d8 100644
--- a/net/bridge/br_sysfs_br.c
+++ b/net/bridge/br_sysfs_br.c
@@ -272,6 +272,38 @@
}
static DEVICE_ATTR_RW(report_flood_interval);
+static ssize_t wlan_report_flood_enable_show(struct device *d,
+ struct device_attribute *attr, char *buf)
+{
+ struct net_bridge *br = to_bridge(d);
+ return sprintf(buf, "%u\n", br->wlan_report_flood_enable);
+}
+
+static ssize_t wlan_report_flood_enable_store(struct device *d,
+ struct device_attribute *attr, const char *buf,
+ size_t len)
+{
+ struct net_bridge *br = to_bridge(d);
+ char *endp;
+ long val;
+
+ if (!capable(CAP_NET_ADMIN))
+ return -EPERM;
+
+ val = simple_strtol(buf, &endp, 0);
+ if (endp == buf)
+ return -EINVAL;
+
+ rtnl_lock();
+ br->wlan_report_flood_enable = val;
+ rtnl_unlock();
+ printk("BRIDGE WLAN report flood-forwarding %s\n",
+ br->wlan_report_flood_enable ? "enabled" : "disabled");
+
+ return len;
+}
+static DEVICE_ATTR_RW(wlan_report_flood_enable);
+
static ssize_t priority_show(struct device *d, struct device_attribute *attr,
char *buf)
{
@@ -890,6 +922,7 @@
&dev_attr_multicast_query_response_interval.attr,
&dev_attr_multicast_startup_query_interval.attr,
&dev_attr_report_flood_interval.attr,
+ &dev_attr_wlan_report_flood_enable.attr,
#endif
#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)
&dev_attr_nf_call_iptables.attr,
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 3314ca3..282c599 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -248,6 +248,35 @@
* %GFP_ATOMIC.
*/
+struct sk_buff * __alloc_skb(unsigned int size,
+ gfp_t gfp_mask, int flags, int node)
+{
+ const struct skb_allocator *allocator;
+ struct sk_buff *skb;
+ struct skb_shared_info *shinfo;
+ uint8_t *data;
+
+ size = SKB_DATA_ALIGN(size);
+
+ allocator = skb_allocator_get_default();
+ skb = allocator->skb_alloc(gfp_mask, flags, node);
+ if (!skb)
+ goto out;
+
+ data = allocator->payload_alloc(&shinfo, size, gfp_mask, node);
+ if (!data)
+ goto nodata;
+
+ __alloc_skb_init(skb, shinfo, data, size, flags, allocator);
+out:
+ return skb;
+nodata:
+ allocator->skb_free(skb, flags);
+ skb = NULL;
+ goto out;
+}
+EXPORT_SYMBOL(__alloc_skb);
+
struct sk_buff *skb_allocator_kmem_caches_skb_alloc(gfp_t gfp_mask, int flags, int node)
{
struct kmem_cache *cache;
@@ -279,11 +308,14 @@
size_t size, gfp_t gfp_mask, int node)
{
uint8_t *data;
+ size_t skb_shinfo_size;
size = SKB_DATA_ALIGN(size);
- data = kmalloc_node_track_caller(size + sizeof(**shinfo), gfp_mask, node);
+ skb_shinfo_size = SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
+
+ data = kmalloc_node_track_caller(size + skb_shinfo_size, gfp_mask, node);
if (data)
- *shinfo = (void *) (data + size);
+ *shinfo = (void *)(data + size);
else
*shinfo = NULL;
@@ -356,34 +388,6 @@
}
}
-struct sk_buff * __alloc_skb(unsigned int size,
- gfp_t gfp_mask, int flags, int node)
-{
- const struct skb_allocator *allocator;
- struct sk_buff *skb;
- struct skb_shared_info *shinfo;
- uint8_t *data;
-
- size = SKB_DATA_ALIGN(size);
-
- allocator = skb_allocator_get_default();
- skb = allocator->skb_alloc(gfp_mask, flags, node);
- if (!skb)
- goto out;
-
- data = allocator->payload_alloc(&shinfo, size, gfp_mask, node);
- if (!data)
- goto nodata;
-
- __alloc_skb_init(skb, shinfo, data, size, flags, allocator);
-out:
- return skb;
-nodata:
- allocator->skb_free(skb, flags);
- skb = NULL;
- goto out;
-}
-EXPORT_SYMBOL(__alloc_skb);
/**
* __build_skb - build a network buffer
@@ -690,7 +694,7 @@
{
struct skb_shared_info *shinfo = skb_shinfo(skb);
int i;
- int nr_frags;
+
if (skb->cloned &&
atomic_sub_return(skb->nohdr ? (1 << SKB_DATAREF_SHIFT) + 1 : 1,
@@ -698,10 +702,10 @@
return;
if (unlikely(shinfo->nr_frags >= MAX_SKB_FRAGS)) {
- printk(KERN_CRIT "%s: skb 0x%p skb->head 0x%p end 0x%p "
- "datasz %d shinfo 0x%p corrupt. nr_frags = %u\n",
- __FUNCTION__, skb, skb->head, skb->end,
- skb->end - skb->head, skb_shinfo(skb), nr_frags);
+ printk(KERN_CRIT "%s: skb 0x%p allocator=%s, skb->head 0x%p end 0x%p "
+ "datasz %d shinfo 0x%p corrupt. max_frags=%d,nr_frags = %u\n",
+ __FUNCTION__, skb, skb->allocator->name, skb->head, skb->end,
+ skb->end - skb->head, shinfo, MAX_SKB_FRAGS, shinfo->nr_frags);
BUG();
}
for (i = 0; i < shinfo->nr_frags; i++)
@@ -952,8 +956,8 @@
new->tstamp = old->tstamp;
/* We do not copy old->sk */
new->dev = old->dev;
- skb_dst_copy(new, old);
memcpy(new->cb, old->cb, sizeof(old->cb));
+ skb_dst_copy(new, old);
memcpy(&new->qtn_cb, &old->qtn_cb, sizeof(old->qtn_cb));
new->src_port = old->src_port;
new->dest_port = old->dest_port;
@@ -1347,6 +1351,8 @@
*/
memcpy(data + nhead, skb->head, skb_tail_pointer(skb) - skb->head);
+ shinfo = (void *)(data + size);
+
memcpy(shinfo, skb_shinfo(skb),
offsetof(struct skb_shared_info, frags[skb_shinfo(skb)->nr_frags]));
@@ -1371,6 +1377,8 @@
}
off = (data + nhead) - skb->head;
+ /* We have freed payload now; reset allocator*/
+ skb->allocator = allocator;
skb->head = data;
skb->head_frag = 0;
skb->data += off;
@@ -1388,6 +1396,7 @@
skb_shinfo(skb) = shinfo;
atomic_set(&skb_shinfo(skb)->dataref, 1);
skb_shinfo(skb)->allocator = allocator;
+
return 0;
nofrags: