summaryrefslogtreecommitdiff
path: root/target/linux/generic/files/drivers
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2017-10-29 19:32:10 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2017-12-16 22:11:19 +0100
commitb3f95490b9bec020314eb32016988ee262d52884 (patch)
treef8289c19587108bb3b687575776f559eee6f01fd /target/linux/generic/files/drivers
parenta362df6f253e4460504fd870d6a7af40ef86ad70 (diff)
downloadmtk-20170518-b3f95490b9bec020314eb32016988ee262d52884.zip
mtk-20170518-b3f95490b9bec020314eb32016988ee262d52884.tar.gz
mtk-20170518-b3f95490b9bec020314eb32016988ee262d52884.tar.bz2
kernel: generic: Add kernel 4.14 support
This adds initial support for kernel 4.14 based on the patches for kernel 4.9. In the configuration I deactivated some of the new possible security features like: CONFIG_REFCOUNT_FULL CONFIG_SLAB_FREELIST_HARDENED CONFIG_SOFTLOCKUP_DETECTOR CONFIG_WARN_ALL_UNSEEDED_RANDOM And these overlay FS options are also deactivated: CONFIG_OVERLAY_FS_INDEX CONFIG_OVERLAY_FS_REDIRECT_DIR I activated this: CONFIG_FORTIFY_SOURCE CONFIG_POSIX_TIMERS CONFIG_SLAB_MERGE_DEFAULT CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED I am not sure if I did the porting correct for the following patches: target/linux/generic/backport-4.14/020-backport_netfilter_rtcache.patch target/linux/generic/hack-4.14/220-gc_sections.patch target/linux/generic/hack-4.14/321-powerpc_crtsavres_prereq.patch target/linux/generic/pending-4.14/305-mips_module_reloc.patch target/linux/generic/pending-4.14/611-netfilter_match_bypass_default_table.patch target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Diffstat (limited to 'target/linux/generic/files/drivers')
-rw-r--r--target/linux/generic/files/drivers/net/phy/b53/b53_common.c1
-rw-r--r--target/linux/generic/files/drivers/net/phy/rtl8306.c3
-rw-r--r--target/linux/generic/files/drivers/net/phy/swconfig.c36
3 files changed, 32 insertions, 8 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
index 4b88d1f..670588c 100644
--- a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
+++ b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
@@ -24,6 +24,7 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/switch.h>
+#include <linux/phy.h>
#include <linux/of.h>
#include <linux/of_net.h>
#include <linux/platform_data/b53.h>
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8306.c b/target/linux/generic/files/drivers/net/phy/rtl8306.c
index 7bbac40..6d09c10 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8306.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8306.c
@@ -25,6 +25,7 @@
#include <linux/switch.h>
#include <linux/delay.h>
#include <linux/phy.h>
+#include <linux/version.h>
//#define DEBUG 1
@@ -1032,7 +1033,9 @@ rtl8306_read_status(struct phy_device *pdev)
static struct phy_driver rtl8306_driver = {
.name = "Realtek RTL8306S",
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,13,0))
.flags = PHY_HAS_MAGICANEG,
+#endif
.phy_id = RTL8306_MAGIC,
.phy_id_mask = 0xffffffff,
.features = PHY_BASIC_FEATURES,
diff --git a/target/linux/generic/files/drivers/net/phy/swconfig.c b/target/linux/generic/files/drivers/net/phy/swconfig.c
index f6f26e4..78569a9 100644
--- a/target/linux/generic/files/drivers/net/phy/swconfig.c
+++ b/target/linux/generic/files/drivers/net/phy/swconfig.c
@@ -269,13 +269,7 @@ static void swconfig_defaults_init(struct switch_dev *dev)
}
-static struct genl_family switch_fam = {
- .id = GENL_ID_GENERATE,
- .name = "switch",
- .hdrsize = 0,
- .version = 1,
- .maxattr = SWITCH_ATTR_MAX,
-};
+static struct genl_family switch_fam;
static const struct nla_policy switch_policy[SWITCH_ATTR_MAX+1] = {
[SWITCH_ATTR_ID] = { .type = NLA_U32 },
@@ -597,8 +591,13 @@ swconfig_parse_ports(struct sk_buff *msg, struct nlattr *head,
port = &val->value.ports[val->len];
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0)
if (nla_parse_nested(tb, SWITCH_PORT_ATTR_MAX, nla,
port_policy))
+#else
+ if (nla_parse_nested(tb, SWITCH_PORT_ATTR_MAX, nla,
+ port_policy, NULL))
+#endif
return -EINVAL;
if (!tb[SWITCH_PORT_ID])
@@ -619,7 +618,11 @@ swconfig_parse_link(struct sk_buff *msg, struct nlattr *nla,
{
struct nlattr *tb[SWITCH_LINK_ATTR_MAX + 1];
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0)
if (nla_parse_nested(tb, SWITCH_LINK_ATTR_MAX, nla, link_policy))
+#else
+ if (nla_parse_nested(tb, SWITCH_LINK_ATTR_MAX, nla, link_policy, NULL))
+#endif
return -EINVAL;
link->duplex = !!tb[SWITCH_LINK_FLAG_DUPLEX];
@@ -1051,6 +1054,19 @@ static struct genl_ops swconfig_ops[] = {
}
};
+static struct genl_family switch_fam = {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0)
+ .id = GENL_ID_GENERATE,
+#endif
+ .name = "switch",
+ .hdrsize = 0,
+ .version = 1,
+ .maxattr = SWITCH_ATTR_MAX,
+ .module = THIS_MODULE,
+ .ops = swconfig_ops,
+ .n_ops = ARRAY_SIZE(swconfig_ops),
+};
+
#ifdef CONFIG_OF
void
of_switch_load_portmap(struct switch_dev *dev)
@@ -1222,8 +1238,12 @@ static int __init
swconfig_init(void)
{
INIT_LIST_HEAD(&swdevs);
-
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0)
return genl_register_family_with_ops(&switch_fam, swconfig_ops);
+#else
+ return genl_register_family(&switch_fam);
+#endif
}
static void __exit