From 101c974800743b3a42b99ac32b070eb7c9ba0b81 Mon Sep 17 00:00:00 2001 From: LEAN-ESX Date: Thu, 10 Oct 2019 09:34:30 -0700 Subject: [PATCH] x64: improve docker support --- include/image.mk | 2 +- ...arameters-depend-on-HW-configuration.patch | 63 ++++++++ ...et-sched-Introduce-act_ctinfo-action.patch | 2 +- ...-spi-nor-Add-support-for-mx25u12835f.patch | 25 ++++ ...ix-regression-in-usbport-led-trigger.patch | 79 ---------- .../hack-4.19/202-reduce_module_size.patch | 24 ---- .../211-host_tools_portability.patch | 40 ------ .../640-bridge-only-accept-EAP-locally.patch | 59 +++++++- ...etfilter-connmark-introduce-savedscp.patch | 135 ++++++++++++++++++ ...w-NOR-driver-to-write-fewer-bytes-th.patch | 4 +- ...25p80-mx-disable-software-protection.patch | 2 +- ...or-fix-Spansion-regressions-aliased-.patch | 4 +- ...ort-limiting-4K-sectors-support-base.patch | 2 +- ...pi-nor-Add-Winbond-w25q128jv-support.patch | 2 +- .../pending-4.19/701-phy_extension.patch | 95 ------------ target/linux/x86/Makefile | 4 +- target/linux/x86/base-files/etc/docker-init | 9 ++ target/linux/x86/base-files/etc/docker-web | 9 ++ 18 files changed, 307 insertions(+), 253 deletions(-) create mode 100644 target/linux/generic/backport-4.19/200-v5.2-usb-dwc2-Set-lpm-mode-parameters-depend-on-HW-configuration.patch create mode 100644 target/linux/generic/backport-4.19/460-v5.0-mtd-spi-nor-Add-support-for-mx25u12835f.patch delete mode 100644 target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch delete mode 100644 target/linux/generic/hack-4.19/202-reduce_module_size.patch delete mode 100644 target/linux/generic/hack-4.19/211-host_tools_portability.patch create mode 100644 target/linux/generic/hack-4.19/645-netfilter-connmark-introduce-savedscp.patch delete mode 100644 target/linux/generic/pending-4.19/701-phy_extension.patch create mode 100755 target/linux/x86/base-files/etc/docker-init create mode 100755 target/linux/x86/base-files/etc/docker-web diff --git a/include/image.mk b/include/image.mk index a2b106d90..f0d3379bb 100644 --- a/include/image.mk +++ b/include/image.mk @@ -203,7 +203,7 @@ define Image/mkfs/squashfs $(STAGING_DIR_HOST)/bin/mksquashfs4 $(call mkfs_target_dir,$(1)) $@ \ -nopad -noappend -root-owned \ -comp $(SQUASHFSCOMP) $(SQUASHFSOPT) \ - -processors 1 \ + -processors 16 \ $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH)) endef diff --git a/target/linux/generic/backport-4.19/200-v5.2-usb-dwc2-Set-lpm-mode-parameters-depend-on-HW-configuration.patch b/target/linux/generic/backport-4.19/200-v5.2-usb-dwc2-Set-lpm-mode-parameters-depend-on-HW-configuration.patch new file mode 100644 index 000000000..b41bbf539 --- /dev/null +++ b/target/linux/generic/backport-4.19/200-v5.2-usb-dwc2-Set-lpm-mode-parameters-depend-on-HW-configuration.patch @@ -0,0 +1,63 @@ +From 28b5c129ca6e585ec95c160ec4297bc6c6360b6f Mon Sep 17 00:00:00 2001 +From: Minas Harutyunyan +Date: Mon, 4 Mar 2019 17:08:07 +0400 +Subject: usb: dwc2: Set lpm mode parameters depend on HW configuration + +If core not supported lpm, i.e. BCM2835 then confusing warnings seen +in log. + +To avoid these warnings, added function dwc2_set_param_lpm() to set +lpm and other lpm related parameters based on lpm support by core. + +Signed-off-by: Minas Harutyunyan +Signed-off-by: Felipe Balbi +--- + drivers/usb/dwc2/params.c | 23 ++++++++++++++++++----- + 1 file changed, 18 insertions(+), 5 deletions(-) + +--- a/drivers/usb/dwc2/params.c ++++ b/drivers/usb/dwc2/params.c +@@ -272,6 +272,23 @@ static void dwc2_set_param_power_down(st + hsotg->params.power_down = val; + } + ++static void dwc2_set_param_lpm(struct dwc2_hsotg *hsotg) ++{ ++ struct dwc2_core_params *p = &hsotg->params; ++ ++ p->lpm = hsotg->hw_params.lpm_mode; ++ if (p->lpm) { ++ p->lpm_clock_gating = true; ++ p->besl = true; ++ p->hird_threshold_en = true; ++ p->hird_threshold = 4; ++ } else { ++ p->lpm_clock_gating = false; ++ p->besl = false; ++ p->hird_threshold_en = false; ++ } ++} ++ + /** + * dwc2_set_default_params() - Set all core parameters to their + * auto-detected default values. +@@ -290,6 +307,7 @@ static void dwc2_set_default_params(stru + dwc2_set_param_speed(hsotg); + dwc2_set_param_phy_utmi_width(hsotg); + dwc2_set_param_power_down(hsotg); ++ dwc2_set_param_lpm(hsotg); + p->phy_ulpi_ddr = false; + p->phy_ulpi_ext_vbus = false; + +@@ -302,11 +320,6 @@ static void dwc2_set_default_params(stru + p->reload_ctl = (hw->snpsid >= DWC2_CORE_REV_2_92a); + p->uframe_sched = true; + p->external_id_pin_ctl = false; +- p->lpm = true; +- p->lpm_clock_gating = true; +- p->besl = true; +- p->hird_threshold_en = true; +- p->hird_threshold = 4; + p->ipg_isoc_en = false; + p->max_packet_count = hw->max_packet_count; + p->max_transfer_size = hw->max_transfer_size; diff --git a/target/linux/generic/backport-4.19/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch b/target/linux/generic/backport-4.19/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch index d0047435f..909c68e1b 100644 --- a/target/linux/generic/backport-4.19/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch +++ b/target/linux/generic/backport-4.19/380-v5.3-net-sched-Introduce-act_ctinfo-action.patch @@ -555,7 +555,7 @@ Signed-off-by: Kevin Darbyshire-Bryant +{ + struct tc_action_net *tn = net_generic(net, ctinfo_net_id); + -+ return tc_action_net_init(tn, &act_ctinfo_ops); ++ return tc_action_net_init(net, tn, &act_ctinfo_ops); +} + +static void __net_exit ctinfo_exit_net(struct list_head *net_list) diff --git a/target/linux/generic/backport-4.19/460-v5.0-mtd-spi-nor-Add-support-for-mx25u12835f.patch b/target/linux/generic/backport-4.19/460-v5.0-mtd-spi-nor-Add-support-for-mx25u12835f.patch new file mode 100644 index 000000000..1bdf35b98 --- /dev/null +++ b/target/linux/generic/backport-4.19/460-v5.0-mtd-spi-nor-Add-support-for-mx25u12835f.patch @@ -0,0 +1,25 @@ +From 81554171373018b83f3554b9e725d2b5bf1844a5 Mon Sep 17 00:00:00 2001 +From: Alexander Sverdlin +Date: Fri, 13 Jul 2018 15:06:46 +0200 +Subject: [PATCH] mtd: spi-nor: Add support for mx25u12835f + +This chip supports dual and quad read and uniform 4K-byte erase. + +Signed-off-by: Alexander Sverdlin +Reviewed-by: Tudor Ambarus +Signed-off-by: Boris Brezillon +--- + drivers/mtd/spi-nor/spi-nor.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/mtd/spi-nor/spi-nor.c ++++ b/drivers/mtd/spi-nor/spi-nor.c +@@ -1088,6 +1088,8 @@ static const struct flash_info spi_nor_i + { "mx25u6435f", INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) }, + { "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) }, + { "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) }, ++ { "mx25u12835f", INFO(0xc22538, 0, 64 * 1024, 256, ++ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) }, + { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) }, diff --git a/target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch b/target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch deleted file mode 100644 index e24cac3dd..000000000 --- a/target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 38a3549ffc0033761063cc5c7b994ab075694db8 Mon Sep 17 00:00:00 2001 -From: Christian Lamparter -Date: Tue, 25 Dec 2018 21:11:08 +0100 -Subject: [RFC PATCH] leds: fix regression in usbport led trigger - -In the patch "usb: simplify usbport trigger" together with -"leds: triggers: add device attribute support" caused an -regression for the usbport trigger. it will no longer -enumerate any "ports" (i.e the sysfs directory stays empty) -if the usb host drivers are fully initialized before the -usbport trigger was loaded. - -The reason is that the usbport driver registers the sysfs -entries in the ports subdirectory during the activate() -callback. Whereas the patch -"leds: triggers: add device attribute support" made it so -that the sysfs "ports" group was only being added after -the activate() callback succeeded. - -This patch moves the device_add_groups() in front of the -call to the trigger's activate() function in order to -solve the problem. - -Fixes: 6f7b0bad8839 ("usb: simplify usbport trigger") -Signed-off-by: Christian Lamparter ---- - drivers/leds/led-triggers.c | 19 ++++++++++--------- - 1 file changed, 10 insertions(+), 9 deletions(-) - ---- a/drivers/leds/led-triggers.c -+++ b/drivers/leds/led-triggers.c -@@ -134,6 +134,12 @@ int led_trigger_set(struct led_classdev - led_set_brightness(led_cdev, LED_OFF); - } - if (trig) { -+ ret = device_add_groups(led_cdev->dev, trig->groups); -+ if (ret) { -+ dev_err(led_cdev->dev, "Failed to add trigger attributes\n"); -+ goto err_add_groups; -+ } -+ - write_lock_irqsave(&trig->leddev_list_lock, flags); - list_add_tail(&led_cdev->trig_list, &trig->led_cdevs); - write_unlock_irqrestore(&trig->leddev_list_lock, flags); -@@ -146,12 +152,6 @@ int led_trigger_set(struct led_classdev - - if (ret) - goto err_activate; -- -- ret = device_add_groups(led_cdev->dev, trig->groups); -- if (ret) { -- dev_err(led_cdev->dev, "Failed to add trigger attributes\n"); -- goto err_add_groups; -- } - } - - if (event) { -@@ -165,17 +165,18 @@ int led_trigger_set(struct led_classdev - - return 0; - --err_add_groups: -- -+err_activate: -+ device_remove_groups(led_cdev->dev, trig->groups); - if (trig->deactivate) - trig->deactivate(led_cdev); --err_activate: - - led_cdev->trigger = NULL; - led_cdev->trigger_data = NULL; - write_lock_irqsave(&led_cdev->trigger->leddev_list_lock, flags); - list_del(&led_cdev->trig_list); - write_unlock_irqrestore(&led_cdev->trigger->leddev_list_lock, flags); -+ -+err_add_groups: - led_set_brightness(led_cdev, LED_OFF); - - return ret; diff --git a/target/linux/generic/hack-4.19/202-reduce_module_size.patch b/target/linux/generic/hack-4.19/202-reduce_module_size.patch deleted file mode 100644 index 644a18c99..000000000 --- a/target/linux/generic/hack-4.19/202-reduce_module_size.patch +++ /dev/null @@ -1,24 +0,0 @@ -From fd66884da2f96d2a7ea73f58b1b86251b959a913 Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Fri, 7 Jul 2017 16:56:19 +0200 -Subject: kernel: strip unnecessary symbol table information from kernel modules - -reduces default squashfs size on ar71xx by about 4k - -lede-commit: 058d331a39077f159ca8922f1f422a1346d6aa67 -Signed-off-by: Felix Fietkau ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/Makefile -+++ b/Makefile -@@ -427,7 +427,7 @@ KBUILD_AFLAGS_KERNEL := - KBUILD_CFLAGS_KERNEL := - KBUILD_AFLAGS_MODULE := -DMODULE - KBUILD_CFLAGS_MODULE := -DMODULE --KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds -+KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s) - KBUILD_LDFLAGS := - GCC_PLUGINS_CFLAGS := - diff --git a/target/linux/generic/hack-4.19/211-host_tools_portability.patch b/target/linux/generic/hack-4.19/211-host_tools_portability.patch deleted file mode 100644 index f3c285879..000000000 --- a/target/linux/generic/hack-4.19/211-host_tools_portability.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7f698012384ccb1ed10cc758acfd085096fdb307 Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Fri, 7 Jul 2017 17:02:03 +0200 -Subject: kernel: fix linux 4.9 host tools portability issues - -Signed-off-by: Felix Fietkau ---- - tools/build/Build.include | 2 +- - tools/perf/pmu-events/jevents.c | 1 + - tools/perf/pmu-events/json.c | 1 - - 3 files changed, 2 insertions(+), 2 deletions(-) - ---- a/tools/build/Build.include -+++ b/tools/build/Build.include -@@ -98,4 +98,4 @@ cxx_flags = -Wp,-MD,$(depfile) -Wp,-MT,$ - ### - ## HOSTCC C flags - --host_c_flags = -Wp,-MD,$(depfile) -Wp,-MT,$@ $(KBUILD_HOSTCFLAGS) -D"BUILD_STR(s)=\#s" $(HOSTCFLAGS_$(basetarget).o) $(HOSTCFLAGS_$(obj)) -+host_c_flags = -MD -MF $(depfile) -MT $@ $(CHOSTFLAGS) -D"BUILD_STR(s)=\#s" $(CHOSTFLAGS_$(basetarget).o) $(CHOSTFLAGS_$(obj)) ---- a/tools/perf/pmu-events/jevents.c -+++ b/tools/perf/pmu-events/jevents.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - #include - #include - #include ---- a/tools/perf/pmu-events/json.c -+++ b/tools/perf/pmu-events/json.c -@@ -38,7 +38,6 @@ - #include - #include "jsmn.h" - #include "json.h" --#include - - - static char *mapfile(const char *fn, size_t *size) diff --git a/target/linux/generic/hack-4.19/640-bridge-only-accept-EAP-locally.patch b/target/linux/generic/hack-4.19/640-bridge-only-accept-EAP-locally.patch index 3de404807..f77a1965c 100644 --- a/target/linux/generic/hack-4.19/640-bridge-only-accept-EAP-locally.patch +++ b/target/linux/generic/hack-4.19/640-bridge-only-accept-EAP-locally.patch @@ -1,4 +1,3 @@ -From c6905cfdeb31a5c049db3da434b10fa0d3e83569 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 7 Jul 2017 17:18:54 +0200 Subject: bridge: only accept EAP locally @@ -7,9 +6,9 @@ When bridging, do not forward EAP frames to other ports, only deliver them locally, regardless of the state. Signed-off-by: Felix Fietkau +[add disable_eap_hack sysfs attribute] +Signed-off-by: Etienne Champetier --- - net/bridge/br_input.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c @@ -19,7 +18,7 @@ Signed-off-by: Felix Fietkau + BR_INPUT_SKB_CB(skb)->brdev = br->dev; + -+ if (skb->protocol == htons(ETH_P_PAE)) ++ if (skb->protocol == htons(ETH_P_PAE) && !br->disable_eap_hack) + return br_pass_frame_up(skb); + if (p->state == BR_STATE_LEARNING) @@ -29,3 +28,55 @@ Signed-off-by: Felix Fietkau BR_INPUT_SKB_CB(skb)->src_port_isolated = !!(p->flags & BR_ISOLATED); if (IS_ENABLED(CONFIG_INET) && +--- a/net/bridge/br_private.h ++++ b/net/bridge/br_private.h +@@ -337,6 +337,8 @@ struct net_bridge { + u16 group_fwd_mask; + u16 group_fwd_mask_required; + ++ bool disable_eap_hack; ++ + /* STP */ + bridge_id designated_root; + bridge_id bridge_id; +--- a/net/bridge/br_sysfs_br.c ++++ b/net/bridge/br_sysfs_br.c +@@ -170,6 +170,30 @@ static ssize_t group_fwd_mask_store(stru + } + static DEVICE_ATTR_RW(group_fwd_mask); + ++static ssize_t disable_eap_hack_show(struct device *d, ++ struct device_attribute *attr, ++ char *buf) ++{ ++ struct net_bridge *br = to_bridge(d); ++ return sprintf(buf, "%u\n", br->disable_eap_hack); ++} ++ ++static int set_disable_eap_hack(struct net_bridge *br, unsigned long val) ++{ ++ br->disable_eap_hack = !!val; ++ ++ return 0; ++} ++ ++static ssize_t disable_eap_hack_store(struct device *d, ++ struct device_attribute *attr, ++ const char *buf, ++ size_t len) ++{ ++ return store_bridge_parm(d, buf, len, set_disable_eap_hack); ++} ++static DEVICE_ATTR_RW(disable_eap_hack); ++ + static ssize_t priority_show(struct device *d, struct device_attribute *attr, + char *buf) + { +@@ -810,6 +834,7 @@ static struct attribute *bridge_attrs[] + &dev_attr_ageing_time.attr, + &dev_attr_stp_state.attr, + &dev_attr_group_fwd_mask.attr, ++ &dev_attr_disable_eap_hack.attr, + &dev_attr_priority.attr, + &dev_attr_bridge_id.attr, + &dev_attr_root_id.attr, diff --git a/target/linux/generic/hack-4.19/645-netfilter-connmark-introduce-savedscp.patch b/target/linux/generic/hack-4.19/645-netfilter-connmark-introduce-savedscp.patch new file mode 100644 index 000000000..0c4ef92c0 --- /dev/null +++ b/target/linux/generic/hack-4.19/645-netfilter-connmark-introduce-savedscp.patch @@ -0,0 +1,135 @@ +From f171924dcf1d0b31fb7bd1cff113d7a1f7f05ec2 Mon Sep 17 00:00:00 2001 +From: Kevin Darbyshire-Bryant +Date: Sat, 23 Mar 2019 09:29:49 +0000 +Subject: [PATCH] netfilter: connmark: introduce savedscp + +savedscp is a method of storing the DSCP of an ip packet into conntrack +mark. In combination with a suitable tc filter action (act_ctinfo) DSCP +values are able to be stored in the mark on egress and restored on +ingress across links that otherwise alter or bleach DSCP. + +This is useful for qdiscs such as CAKE which are able to shape according +to policies based on DSCP. + +Ingress classification is traditionally a challenging task since +iptables rules haven't yet run and tc filter/eBPF programs are pre-NAT +lookups, hence are unable to see internal IPv4 addresses as used on the +typical home masquerading gateway. + +x_tables CONNMARK savedscp action solves the problem of storing the DSCP +to the conntrack mark in a way suitable for the new act_ctinfo tc action +to restore. + +The savedsp option accepts 2 parameters, a 32bit 'dscpmask' and a 32bit +'statemask'. The dscp mask must be a minimum of 6 contiguous bits and +represents the area where the DSCP will be stored in the connmark. The +state mask is a minimum 1 bit length mask that must not overlap with the +dscpmask. It represents a flag which is set when the DSCP has been +stored in the conntrack mark. This is useful to implement a 'one shot' +iptables based classification where the 'complicated' iptables rules are +only run once to classify the connection on initial (egress) packet and +subsequent packets are all marked/restored with the same DSCP. A state +mask of zero disables the setting of a status bit/s. + +example syntax with a suitably modified iptables user space application: + +iptables -A QOS_MARK_eth0 -t mangle -j CONNMARK --savedscp-mark 0xfc000000/0x01000000 + +Would store the DSCP in the top 6 bits of the 32bit mark field, and use +the LSB of the top byte as the 'DSCP has been stored' marker. + +|----0xFC----conntrack mark----000000---| +| Bits 31-26 | bit 25 | bit24 |~~~ Bit 0| +| DSCP | unused | flag |unused | +|-----------------------0x01---000000---| + ^ ^ + | | + ---| Conditional flag + | set this when dscp +|-ip diffserv-| stored in mark +| 6 bits | +|-------------| + +an identically configured tc action to restore looks like: + +tc filter show dev eth0 ingress +filter parent ffff: protocol all pref 10 u32 chain 0 +filter parent ffff: protocol all pref 10 u32 chain 0 fh 800: ht divisor 1 +filter parent ffff: protocol all pref 10 u32 chain 0 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:1 not_in_hw + match 00000000/00000000 at 0 + action order 1: ctinfo zone 0 pipe + index 2 ref 1 bind 1 dscp 0xfc000000/0x1000000 + + action order 2: mirred (Egress Redirect to device ifb4eth0) stolen + index 1 ref 1 bind 1 + +|----0xFC----conntrack mark----000000---| +| Bits 31-26 | bit 25 | bit24 |~~~ Bit 0| +| DSCP | unused | flag |unused | +|-----------------------0x01---000000---| + | | + | | + ---| Conditional flag + v only restore if set +|-ip diffserv-| +| 6 bits | +|-------------| + +Signed-off-by: Kevin Darbyshire-Bryant +--- + include/uapi/linux/netfilter/xt_connmark.h | 3 ++- + net/netfilter/xt_connmark.c | 17 +++++++++++++++++ + 2 files changed, 19 insertions(+), 1 deletion(-) + +--- a/include/uapi/linux/netfilter/xt_connmark.h ++++ b/include/uapi/linux/netfilter/xt_connmark.h +@@ -16,7 +16,8 @@ + enum { + XT_CONNMARK_SET = 0, + XT_CONNMARK_SAVE, +- XT_CONNMARK_RESTORE ++ XT_CONNMARK_RESTORE, ++ XT_CONNMARK_SAVEDSCP + }; + + enum { +--- a/net/netfilter/xt_connmark.c ++++ b/net/netfilter/xt_connmark.c +@@ -42,6 +42,7 @@ connmark_tg_shift(struct sk_buff *skb, c + u_int32_t new_targetmark; + struct nf_conn *ct; + u_int32_t newmark; ++ u_int8_t dscp; + + ct = nf_ct_get(skb, &ctinfo); + if (ct == NULL) +@@ -74,6 +75,21 @@ connmark_tg_shift(struct sk_buff *skb, c + nf_conntrack_event_cache(IPCT_MARK, ct); + } + break; ++ case XT_CONNMARK_SAVEDSCP: ++ if (skb->protocol == htons(ETH_P_IP)) ++ dscp = ipv4_get_dsfield(ip_hdr(skb)) >> 2; ++ else if (skb->protocol == htons(ETH_P_IPV6)) ++ dscp = ipv6_get_dsfield(ipv6_hdr(skb)) >> 2; ++ else /* protocol doesn't have diffserv */ ++ break; ++ ++ newmark = (ct->mark & ~info->ctmark) | ++ (info->ctmask | (dscp << info->shift_bits)); ++ if (ct->mark != newmark) { ++ ct->mark = newmark; ++ nf_conntrack_event_cache(IPCT_MARK, ct); ++ } ++ break; + case XT_CONNMARK_RESTORE: + new_targetmark = (ct->mark & info->ctmask); + if (info->shift_dir == D_SHIFT_RIGHT) +@@ -86,6 +102,7 @@ connmark_tg_shift(struct sk_buff *skb, c + skb->mark = newmark; + break; + } ++out: + return XT_CONTINUE; + } + diff --git a/target/linux/generic/pending-4.19/450-mtd-spi-nor-allow-NOR-driver-to-write-fewer-bytes-th.patch b/target/linux/generic/pending-4.19/450-mtd-spi-nor-allow-NOR-driver-to-write-fewer-bytes-th.patch index ecc3ea1de..6981c6d94 100644 --- a/target/linux/generic/pending-4.19/450-mtd-spi-nor-allow-NOR-driver-to-write-fewer-bytes-th.patch +++ b/target/linux/generic/pending-4.19/450-mtd-spi-nor-allow-NOR-driver-to-write-fewer-bytes-th.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -1455,7 +1455,7 @@ static int spi_nor_write(struct mtd_info +@@ -1457,7 +1457,7 @@ static int spi_nor_write(struct mtd_info write_enable(nor); ret = nor->write(nor, addr, page_remain, buf + i); @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau goto write_err; written = ret; -@@ -1464,13 +1464,6 @@ static int spi_nor_write(struct mtd_info +@@ -1466,13 +1466,6 @@ static int spi_nor_write(struct mtd_info goto write_err; *retlen += written; i += written; diff --git a/target/linux/generic/pending-4.19/465-m25p80-mx-disable-software-protection.patch b/target/linux/generic/pending-4.19/465-m25p80-mx-disable-software-protection.patch index fa25c6556..0c5d6cfa6 100644 --- a/target/linux/generic/pending-4.19/465-m25p80-mx-disable-software-protection.patch +++ b/target/linux/generic/pending-4.19/465-m25p80-mx-disable-software-protection.patch @@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2733,6 +2733,7 @@ static int spi_nor_init(struct spi_nor * +@@ -2735,6 +2735,7 @@ static int spi_nor_init(struct spi_nor * */ if (JEDEC_MFR(nor->info) == SNOR_MFR_ATMEL || JEDEC_MFR(nor->info) == SNOR_MFR_INTEL || diff --git a/target/linux/generic/pending-4.19/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch b/target/linux/generic/pending-4.19/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch index dcb86f69b..fb6ae7df7 100644 --- a/target/linux/generic/pending-4.19/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch +++ b/target/linux/generic/pending-4.19/466-Revert-mtd-spi-nor-fix-Spansion-regressions-aliased-.patch @@ -17,7 +17,7 @@ Signed-off-by: Matthias Schiffer --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2735,6 +2735,7 @@ static int spi_nor_init(struct spi_nor * +@@ -2737,6 +2737,7 @@ static int spi_nor_init(struct spi_nor * JEDEC_MFR(nor->info) == SNOR_MFR_INTEL || JEDEC_MFR(nor->info) == SNOR_MFR_MACRONIX || JEDEC_MFR(nor->info) == SNOR_MFR_SST || @@ -25,7 +25,7 @@ Signed-off-by: Matthias Schiffer nor->info->flags & SPI_NOR_HAS_LOCK) { write_enable(nor); write_sr(nor, 0); -@@ -2871,7 +2872,8 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2873,7 +2874,8 @@ int spi_nor_scan(struct spi_nor *nor, co /* NOR protection support for STmicro/Micron chips and similar */ if (JEDEC_MFR(info) == SNOR_MFR_MICRON || diff --git a/target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch b/target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch index a2ab6f3da..12d785856 100644 --- a/target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch +++ b/target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch @@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau depends on ARCH_AT91 || (ARM && COMPILE_TEST && !ARCH_EBSA110) --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2647,10 +2647,12 @@ static int spi_nor_select_erase(struct s +@@ -2649,10 +2649,12 @@ static int spi_nor_select_erase(struct s #ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS /* prefer "small sector" erase if possible */ diff --git a/target/linux/generic/pending-4.19/475-mtd-spi-nor-Add-Winbond-w25q128jv-support.patch b/target/linux/generic/pending-4.19/475-mtd-spi-nor-Add-Winbond-w25q128jv-support.patch index 8b5dc4eb0..72c447033 100644 --- a/target/linux/generic/pending-4.19/475-mtd-spi-nor-Add-Winbond-w25q128jv-support.patch +++ b/target/linux/generic/pending-4.19/475-mtd-spi-nor-Add-Winbond-w25q128jv-support.patch @@ -20,7 +20,7 @@ Changes in v2: --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -1239,6 +1239,11 @@ static const struct flash_info spi_nor_i +@@ -1241,6 +1241,11 @@ static const struct flash_info spi_nor_i SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) }, diff --git a/target/linux/generic/pending-4.19/701-phy_extension.patch b/target/linux/generic/pending-4.19/701-phy_extension.patch deleted file mode 100644 index a340872e5..000000000 --- a/target/linux/generic/pending-4.19/701-phy_extension.patch +++ /dev/null @@ -1,95 +0,0 @@ -From: John Crispin -Subject: net: phy: add phy_ethtool_ioctl() - -Signed-off-by: John Crispin ---- - drivers/net/phy/phy.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ - include/linux/phy.h | 1 + - 2 files changed, 45 insertions(+) - ---- a/drivers/net/phy/phy.c -+++ b/drivers/net/phy/phy.c -@@ -382,6 +382,73 @@ void phy_ethtool_ksettings_get(struct ph - } - EXPORT_SYMBOL(phy_ethtool_ksettings_get); - -+static int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd) -+{ -+ cmd->supported = phydev->supported; -+ -+ cmd->advertising = phydev->advertising; -+ cmd->lp_advertising = phydev->lp_advertising; -+ -+ ethtool_cmd_speed_set(cmd, phydev->speed); -+ cmd->duplex = phydev->duplex; -+ if (phydev->interface == PHY_INTERFACE_MODE_MOCA) -+ cmd->port = PORT_BNC; -+ else -+ cmd->port = PORT_MII; -+ cmd->phy_address = phydev->mdio.addr; -+ cmd->transceiver = phy_is_internal(phydev) ? -+ XCVR_INTERNAL : XCVR_EXTERNAL; -+ cmd->autoneg = phydev->autoneg; -+ cmd->eth_tp_mdix_ctrl = phydev->mdix_ctrl; -+ cmd->eth_tp_mdix = phydev->mdix; -+ -+ return 0; -+} -+ -+int phy_ethtool_ioctl(struct phy_device *phydev, void *useraddr) -+{ -+ u32 cmd; -+ int tmp; -+ struct ethtool_cmd ecmd = { ETHTOOL_GSET }; -+ struct ethtool_value edata = { ETHTOOL_GLINK }; -+ -+ if (get_user(cmd, (u32 *) useraddr)) -+ return -EFAULT; -+ -+ switch (cmd) { -+ case ETHTOOL_GSET: -+ phy_ethtool_gset(phydev, &ecmd); -+ if (copy_to_user(useraddr, &ecmd, sizeof(ecmd))) -+ return -EFAULT; -+ return 0; -+ -+ case ETHTOOL_SSET: -+ if (copy_from_user(&ecmd, useraddr, sizeof(ecmd))) -+ return -EFAULT; -+ return phy_ethtool_sset(phydev, &ecmd); -+ -+ case ETHTOOL_NWAY_RST: -+ /* if autoneg is off, it's an error */ -+ tmp = phy_read(phydev, MII_BMCR); -+ if (tmp & BMCR_ANENABLE) { -+ tmp |= (BMCR_ANRESTART); -+ phy_write(phydev, MII_BMCR, tmp); -+ return 0; -+ } -+ return -EINVAL; -+ -+ case ETHTOOL_GLINK: -+ edata.data = (phy_read(phydev, -+ MII_BMSR) & BMSR_LSTATUS) ? 1 : 0; -+ if (copy_to_user(useraddr, &edata, sizeof(edata))) -+ return -EFAULT; -+ return 0; -+ } -+ -+ return -EOPNOTSUPP; -+} -+EXPORT_SYMBOL(phy_ethtool_ioctl); -+ - /** - * phy_mii_ioctl - generic PHY MII ioctl interface - * @phydev: the phy_device struct ---- a/include/linux/phy.h -+++ b/include/linux/phy.h -@@ -1045,6 +1045,7 @@ void phy_ethtool_ksettings_get(struct ph - struct ethtool_link_ksettings *cmd); - int phy_ethtool_ksettings_set(struct phy_device *phydev, - const struct ethtool_link_ksettings *cmd); -+int phy_ethtool_ioctl(struct phy_device *phydev, void *useraddr); - int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd); - int phy_start_interrupts(struct phy_device *phydev); - void phy_print_status(struct phy_device *phydev); diff --git a/target/linux/x86/Makefile b/target/linux/x86/Makefile index a24a47bf9..992b61931 100644 --- a/target/linux/x86/Makefile +++ b/target/linux/x86/Makefile @@ -21,11 +21,11 @@ include $(INCLUDE_DIR)/target.mk DEFAULT_PACKAGES += partx-utils mkf2fs fdisk e2fsprogs wpad kmod-usb-hid \ kmod-ath5k kmod-ath9k kmod-ath9k-htc kmod-ath10k kmod-rt2800-usb kmod-e1000e kmod-igb kmod-igbvf kmod-ixgbe kmod-pcnet32 kmod-tulip kmod-vmxnet3 kmod-i40e kmod-i40evf kmod-fs-f2fs \ -htop lm-sensors autocore automount autosamba luci-app-zerotier luci-app-ipsec-vpnd luci-app-pptp-server luci-proto-bonding luci-app-zerotier \ +htop lm-sensors autocore automount autosamba luci-app-zerotier luci-app-ipsec-vpnd luci-app-pptp-server luci-proto-bonding luci-app-zerotier luci-app-unblockmusic \ ath10k-firmware-qca988x ath10k-firmware-qca9888 ath10k-firmware-qca9984 brcmfmac-firmware-43602a1-pcie intel-microcode amd64-microcode\ alsa-utils kmod-ac97 kmod-sound-hda-core kmod-sound-hda-codec-realtek kmod-sound-hda-codec-via kmod-sound-via82xx kmod-usb-audio \ kmod-usb-net kmod-usb-net-asix kmod-usb-net-asix-ax88179 kmod-usb-net-rtl8150 kmod-usb-net-rtl8152 \ -shadowsocks-libev-ss-redir v2ray shadowsocksr-libev-server shadowsocksr-libev-ssr-local +shadowsocks-libev-ss-redir v2ray shadowsocksr-libev-server shadowsocksr-libev-ssr-local dsmboot cfdisk docker-ce $(eval $(call BuildTarget)) diff --git a/target/linux/x86/base-files/etc/docker-init b/target/linux/x86/base-files/etc/docker-init new file mode 100755 index 000000000..e9dbfb778 --- /dev/null +++ b/target/linux/x86/base-files/etc/docker-init @@ -0,0 +1,9 @@ +#!/bin/sh + +echo "n +p +3 + + +w +" | fdisk /dev/sda && mkfs.ext4 /dev/sda3 \ No newline at end of file diff --git a/target/linux/x86/base-files/etc/docker-web b/target/linux/x86/base-files/etc/docker-web new file mode 100755 index 000000000..e9dbfb778 --- /dev/null +++ b/target/linux/x86/base-files/etc/docker-web @@ -0,0 +1,9 @@ +#!/bin/sh + +echo "n +p +3 + + +w +" | fdisk /dev/sda && mkfs.ext4 /dev/sda3 \ No newline at end of file