<div dir="ltr"><div><div style="font-size:12.8px">From: Graham Fairweather <<a href="mailto:xotic750@gmail.com" target="_blank">xotic750@gmail.com</a>></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Increment <span style="color:rgb(0,0,0);font-family:Helvetica,Arial,sans-serif;font-size:14.4px;line-height:21.6px">PATCH number, added MD5 sum for release.</span></div><div style="font-size:12.8px">Patches were refreshed.</div><div style=""><font color="#1155cc"><span style="font-size:12.8px"><u><a href="https://www.kernel.org/">https://www.kernel.org/</a></u></span></font><br></div><div style="font-size:12.8px">Signed-off-by: Graham Fairweather <<a href="mailto:xotic750@gmail.com" target="_blank">xotic750@gmail.com</a>></div><div style="font-size:12.8px">---</div></div><div> include/<a href="http://kernel-version.mk">kernel-version.mk</a>                                                                        |  4 ++--</div><div> target/linux/brcm63xx/patches-4.4/202-MTD-DEVICES-m25p80-use-parsers-if-provided-in-flash-.patch |  2 +-</div><div> target/linux/brcm63xx/patches-4.4/203-MTD-DEVICES-m25p80-add-support-for-limiting-reads.patch    |  4 ++--</div><div> target/linux/brcm63xx/patches-4.4/414-MTD-m25p80-allow-passing-pp_data.patch                     |  2 +-</div><div> target/linux/generic/patches-4.4/045-mtd-devices-m25p80-add-support-for-mmap-read-request.patch  |  2 +-</div><div> target/linux/generic/patches-4.4/081-spi-bcm53xx-add-spi_flash_read-callback-for-MMIO-bas.patch  | 12 ++++++------</div><div> target/linux/generic/patches-4.4/630-packet_socket_type.patch                                    | 10 +++++-----</div><div> target/linux/generic/patches-4.4/642-bridge_port_isolate.patch                                   |  4 ++--</div><div> target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch                           |  4 ++--</div><div> target/linux/generic/patches-4.4/655-increase_skb_pad.patch                                      |  2 +-</div><div> target/linux/generic/patches-4.4/656-skb_reduce_truesize-helper.patch                            |  2 +-</div><div> target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch                  | 26 +++++++++++++-------------</div><div> target/linux/generic/patches-4.4/721-phy_packets.patch                                           |  8 ++++----</div><div> target/linux/generic/patches-4.4/903-debloat_direct_io.patch                                     |  4 ++--</div><div> 14 files changed, 43 insertions(+), 43 deletions(-)</div><div>diff --git a/include/<a href="http://kernel-version.mk">kernel-version.mk</a> b/include/<a href="http://kernel-version.mk">kernel-version.mk</a></div><div>index ba6bf66..cdb404f 100644</div><div>--- a/include/<a href="http://kernel-version.mk">kernel-version.mk</a></div><div>+++ b/include/<a href="http://kernel-version.mk">kernel-version.mk</a></div><div>@@ -5,12 +5,12 @@ LINUX_RELEASE?=1</div><div> LINUX_VERSION-3.18 = .29</div><div> LINUX_VERSION-4.1 = .23</div><div> LINUX_VERSION-4.3 = .4</div><div>-LINUX_VERSION-4.4 = .7</div><div>+LINUX_VERSION-4.4 = .9</div><div> </div><div> LINUX_KERNEL_MD5SUM-3.18.29 = b25737a0bc98e80d12200de93f239c28</div><div> LINUX_KERNEL_MD5SUM-4.1.23 = 5cb969fa874e110118722398b7c72c5d</div><div> LINUX_KERNEL_MD5SUM-4.3.4 = 5275d02132107c28b85f986bad576d91</div><div>-LINUX_KERNEL_MD5SUM-4.4.7 = 4345597c9a10bd73c28b6ae3a854d8d7</div><div>+LINUX_KERNEL_MD5SUM-4.4.9 = ec1e5011cc2ab3f441e39716dcf4730e</div><div> </div><div> ifdef KERNEL_PATCHVER</div><div>   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))</div><div>diff --git a/target/linux/brcm63xx/patches-4.4/202-MTD-DEVICES-m25p80-use-parsers-if-provided-in-flash-.patch b/target/linux/brcm63xx/patches-4.4/202-MTD-DEVICES-m25p80-use-parsers-if-provided-in-flash-.patch</div><div>index be62e67..4793836 100644</div><div>--- a/target/linux/brcm63xx/patches-4.4/202-MTD-DEVICES-m25p80-use-parsers-if-provided-in-flash-.patch</div><div>+++ b/target/linux/brcm63xx/patches-4.4/202-MTD-DEVICES-m25p80-use-parsers-if-provided-in-flash-.patch</div><div>@@ -11,7 +11,7 @@ Signed-off-by: Jonas Gorski <<a href="mailto:jonas.gorski@gmail.com">jonas.gorski@gmail.com</a>></div><div> </div><div> --- a/drivers/mtd/devices/m25p80.c</div><div> +++ b/drivers/mtd/devices/m25p80.c</div><div>-@@ -229,7 +229,8 @@ static int m25p_probe(struct spi_device</div><div>+@@ -251,7 +251,8 @@ static int m25p_probe(struct spi_device</div><div>  </div><div>  <span class="" style="white-space:pre">   </span>ppdata.of_node = spi->dev.of_node;</div><div>  </div><div>diff --git a/target/linux/brcm63xx/patches-4.4/203-MTD-DEVICES-m25p80-add-support-for-limiting-reads.patch b/target/linux/brcm63xx/patches-4.4/203-MTD-DEVICES-m25p80-add-support-for-limiting-reads.patch</div><div>index 3877442..75a874d 100644</div><div>--- a/target/linux/brcm63xx/patches-4.4/203-MTD-DEVICES-m25p80-add-support-for-limiting-reads.patch</div><div>+++ b/target/linux/brcm63xx/patches-4.4/203-MTD-DEVICES-m25p80-add-support-for-limiting-reads.patch</div><div>@@ -28,7 +28,7 @@ Signed-off-by: Jonas Gorski <<a href="mailto:jonas.gorski@gmail.com">jonas.gorski@gmail.com</a>></div><div>  <span class="" style="white-space:pre">                  </span>size_t *retlen, u_char *buf)</div><div>  {</div><div>  <span class="" style="white-space:pre"> </span>struct m25p *flash = nor->priv;</div><div>-@@ -152,6 +153,29 @@ static int m25p80_read(struct spi_nor *n</div><div>+@@ -174,6 +175,29 @@ static int m25p80_read(struct spi_nor *n</div><div>  <span class="" style="white-space:pre">    </span>return 0;</div><div>  }</div><div>  </div><div>@@ -58,7 +58,7 @@ Signed-off-by: Jonas Gorski <<a href="mailto:jonas.gorski@gmail.com">jonas.gorski@gmail.com</a>></div><div>  static int m25p80_erase(struct spi_nor *nor, loff_t offset)</div><div>  {</div><div>  <span class="" style="white-space:pre">    </span>struct m25p *flash = nor->priv;</div><div>-@@ -223,6 +247,9 @@ static int m25p_probe(struct spi_device</div><div>+@@ -245,6 +269,9 @@ static int m25p_probe(struct spi_device</div><div>  <span class="" style="white-space:pre">        </span>else</div><div>  <span class="" style="white-space:pre">            </span>flash_name = spi->modalias;</div><div>  </div><div>diff --git a/target/linux/brcm63xx/patches-4.4/414-MTD-m25p80-allow-passing-pp_data.patch b/target/linux/brcm63xx/patches-4.4/414-MTD-m25p80-allow-passing-pp_data.patch</div><div>index e421e9a..bbb565e 100644</div><div>--- a/target/linux/brcm63xx/patches-4.4/414-MTD-m25p80-allow-passing-pp_data.patch</div><div>+++ b/target/linux/brcm63xx/patches-4.4/414-MTD-m25p80-allow-passing-pp_data.patch</div><div>@@ -10,7 +10,7 @@ Subject: [PATCH 64/79] MTD: m25p80: allow passing pp_data</div><div> </div><div> --- a/drivers/mtd/devices/m25p80.c</div><div> +++ b/drivers/mtd/devices/m25p80.c</div><div>-@@ -250,6 +250,9 @@ static int m25p_probe(struct spi_device</div><div>+@@ -272,6 +272,9 @@ static int m25p_probe(struct spi_device</div><div>  <span class="" style="white-space:pre">   </span>if (data)</div><div>  <span class="" style="white-space:pre">               </span>flash->max_transfer_len = data->max_transfer_len;</div><div>  </div><div>diff --git a/target/linux/generic/patches-4.4/045-mtd-devices-m25p80-add-support-for-mmap-read-request.patch b/target/linux/generic/patches-4.4/045-mtd-devices-m25p80-add-support-for-mmap-read-request.patch</div><div>index ee85f44..c4c7e6e 100644</div><div>--- a/target/linux/generic/patches-4.4/045-mtd-devices-m25p80-add-support-for-mmap-read-request.patch</div><div>+++ b/target/linux/generic/patches-4.4/045-mtd-devices-m25p80-add-support-for-mmap-read-request.patch</div><div>@@ -15,7 +15,7 @@ Signed-off-by: Brian Norris <<a href="mailto:computersforpeace@gmail.com">computersforpeace@gmail.com</a>></div><div> </div><div> --- a/drivers/mtd/devices/m25p80.c</div><div> +++ b/drivers/mtd/devices/m25p80.c</div><div>-@@ -131,6 +131,28 @@ static int m25p80_read(struct spi_nor *nor, loff_t from, size_t len,</div><div>+@@ -131,6 +131,28 @@ static int m25p80_read(struct spi_nor *n</div><div>  <span class="" style="white-space:pre"> </span>/* convert the dummy cycles to the number of bytes */</div><div>  <span class="" style="white-space:pre">   </span>dummy /= 8;</div><div>  </div><div>diff --git a/target/linux/generic/patches-4.4/081-spi-bcm53xx-add-spi_flash_read-callback-for-MMIO-bas.patch b/target/linux/generic/patches-4.4/081-spi-bcm53xx-add-spi_flash_read-callback-for-MMIO-bas.patch</div><div>index 5f131e7..730f41e 100644</div><div>--- a/target/linux/generic/patches-4.4/081-spi-bcm53xx-add-spi_flash_read-callback-for-MMIO-bas.patch</div><div>+++ b/target/linux/generic/patches-4.4/081-spi-bcm53xx-add-spi_flash_read-callback-for-MMIO-bas.patch</div><div>@@ -34,7 +34,7 @@ Signed-off-by: Mark Brown <<a href="mailto:broonie@kernel.org">broonie@kernel.org</a>></div><div>  };</div><div>  </div><div>  static inline u32 bcm53xxspi_read(struct bcm53xxspi *b53spi, u16 offset)</div><div>-@@ -32,6 +35,50 @@ static inline void bcm53xxspi_write(struct bcm53xxspi *b53spi, u16 offset,</div><div>+@@ -32,6 +35,50 @@ static inline void bcm53xxspi_write(stru</div><div>  <span class="" style="white-space:pre">     </span>bcma_write32(b53spi->core, offset, value);</div><div>  }</div><div>  </div><div>@@ -85,7 +85,7 @@ Signed-off-by: Mark Brown <<a href="mailto:broonie@kernel.org">broonie@kernel.org</a>></div><div>  static inline unsigned int bcm53xxspi_calc_timeout(size_t len)</div><div>  {</div><div>  <span class="" style="white-space:pre">       </span>/* Do some magic calculation based on length and buad. Add 10% and 1. */</div><div>-@@ -176,6 +223,8 @@ static int bcm53xxspi_transfer_one(struct spi_master *master,</div><div>+@@ -176,6 +223,8 @@ static int bcm53xxspi_transfer_one(struc</div><div>  <span class="" style="white-space:pre">   </span>u8 *buf;</div><div>  <span class="" style="white-space:pre">        </span>size_t left;</div><div>  </div><div>@@ -94,7 +94,7 @@ Signed-off-by: Mark Brown <<a href="mailto:broonie@kernel.org">broonie@kernel.org</a>></div><div>  <span class="" style="white-space:pre">      </span>if (t->tx_buf) {</div><div>  <span class="" style="white-space:pre">             </span>buf = (u8 *)t->tx_buf;</div><div>  <span class="" style="white-space:pre">               </span>left = t->len;</div><div>-@@ -206,6 +255,22 @@ static int bcm53xxspi_transfer_one(struct spi_master *master,</div><div>+@@ -206,6 +255,22 @@ static int bcm53xxspi_transfer_one(struc</div><div>  <span class="" style="white-space:pre">        </span>return 0;</div><div>  }</div><div>  </div><div>@@ -117,7 +117,7 @@ Signed-off-by: Mark Brown <<a href="mailto:broonie@kernel.org">broonie@kernel.org</a>></div><div>  /**************************************************</div><div>   * BCMA</div><div>   **************************************************/</div><div>-@@ -222,6 +287,7 @@ MODULE_DEVICE_TABLE(bcma, bcm53xxspi_bcma_tbl);</div><div>+@@ -222,6 +287,7 @@ MODULE_DEVICE_TABLE(bcma, bcm53xxspi_bcm</div><div>  </div><div>  static int bcm53xxspi_bcma_probe(struct bcma_device *core)</div><div>  {</div><div>@@ -125,7 +125,7 @@ Signed-off-by: Mark Brown <<a href="mailto:broonie@kernel.org">broonie@kernel.org</a>></div><div>  <span class="" style="white-space:pre">        </span>struct bcm53xxspi *b53spi;</div><div>  <span class="" style="white-space:pre">      </span>struct spi_master *master;</div><div>  <span class="" style="white-space:pre">      </span>int err;</div><div>-@@ -231,7 +297,7 @@ static int bcm53xxspi_bcma_probe(struct bcma_device *core)</div><div>+@@ -231,7 +297,7 @@ static int bcm53xxspi_bcma_probe(struct</div><div>  <span class="" style="white-space:pre">               </span>return -ENOTSUPP;</div><div>  <span class="" style="white-space:pre">       </span>}</div><div>  </div><div>@@ -134,7 +134,7 @@ Signed-off-by: Mark Brown <<a href="mailto:broonie@kernel.org">broonie@kernel.org</a>></div><div>  <span class="" style="white-space:pre">       </span>if (!master)</div><div>  <span class="" style="white-space:pre">            </span>return -ENOMEM;</div><div>  </div><div>-@@ -239,11 +305,19 @@ static int bcm53xxspi_bcma_probe(struct bcma_device *core)</div><div>+@@ -239,11 +305,19 @@ static int bcm53xxspi_bcma_probe(struct</div><div>  <span class="" style="white-space:pre"> </span>b53spi->master = master;</div><div>  <span class="" style="white-space:pre">     </span>b53spi->core = core;</div><div>  </div><div>diff --git a/target/linux/generic/patches-4.4/630-packet_socket_type.patch b/target/linux/generic/patches-4.4/630-packet_socket_type.patch</div><div>index d649bf0..48c4220 100644</div><div>--- a/target/linux/generic/patches-4.4/630-packet_socket_type.patch</div><div>+++ b/target/linux/generic/patches-4.4/630-packet_socket_type.patch</div><div>@@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <<a href="mailto:nbd@openwrt.org">nbd@openwrt.org</a>></div><div>  <span class="" style="white-space:pre">             </span>goto out;</div><div>  </div><div>  <span class="" style="white-space:pre">    </span>if (!net_eq(dev_net(dev), sock_net(sk)))</div><div>-@@ -1982,12 +1984,12 @@ static int packet_rcv(struct sk_buff *sk</div><div>+@@ -1986,12 +1988,12 @@ static int packet_rcv(struct sk_buff *sk</div><div>  <span class="" style="white-space:pre">        </span>int skb_len = skb->len;</div><div>  <span class="" style="white-space:pre">      </span>unsigned int snaplen, res;</div><div>  </div><div>@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <<a href="mailto:nbd@openwrt.org">nbd@openwrt.org</a>></div><div>  <span class="" style="white-space:pre">   </span>if (!net_eq(dev_net(dev), sock_net(sk)))</div><div>  <span class="" style="white-space:pre">                </span>goto drop;</div><div>  </div><div>-@@ -2107,12 +2109,12 @@ static int tpacket_rcv(struct sk_buff *s</div><div>+@@ -2111,12 +2113,12 @@ static int tpacket_rcv(struct sk_buff *s</div><div>  <span class="" style="white-space:pre">   </span>BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);</div><div>  <span class="" style="white-space:pre">       </span>BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);</div><div>  </div><div>@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <<a href="mailto:nbd@openwrt.org">nbd@openwrt.org</a>></div><div>  <span class="" style="white-space:pre">    </span>if (!net_eq(dev_net(dev), sock_net(sk)))</div><div>  <span class="" style="white-space:pre">                </span>goto drop;</div><div>  </div><div>-@@ -3097,6 +3099,7 @@ static int packet_create(struct net *net</div><div>+@@ -3092,6 +3094,7 @@ static int packet_create(struct net *net</div><div>  <span class="" style="white-space:pre">       </span>mutex_init(&po->pg_vec_lock);</div><div>  <span class="" style="white-space:pre">    </span>po->rollover = NULL;</div><div>  <span class="" style="white-space:pre"> </span>po->prot_hook.func = packet_rcv;</div><div>@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <<a href="mailto:nbd@openwrt.org">nbd@openwrt.org</a>></div><div>  </div><div>  <span class="" style="white-space:pre">  </span>if (sock->type == SOCK_PACKET)</div><div>  <span class="" style="white-space:pre">               </span>po->prot_hook.func = packet_rcv_spkt;</div><div>-@@ -3712,6 +3715,16 @@ packet_setsockopt(struct socket *sock, i</div><div>+@@ -3707,6 +3710,16 @@ packet_setsockopt(struct socket *sock, i</div><div>  <span class="" style="white-space:pre">          </span>po->xmit = val ? packet_direct_xmit : dev_queue_xmit;</div><div>  <span class="" style="white-space:pre">                </span>return 0;</div><div>  <span class="" style="white-space:pre">       </span>}</div><div>@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <<a href="mailto:nbd@openwrt.org">nbd@openwrt.org</a>></div><div>  <span class="" style="white-space:pre">     </span>default:</div><div>  <span class="" style="white-space:pre">                </span>return -ENOPROTOOPT;</div><div>  <span class="" style="white-space:pre">    </span>}</div><div>-@@ -3764,6 +3777,13 @@ static int packet_getsockopt(struct sock</div><div>+@@ -3759,6 +3772,13 @@ static int packet_getsockopt(struct sock</div><div>  <span class="" style="white-space:pre"> </span>case PACKET_VNET_HDR:</div><div>  <span class="" style="white-space:pre">           </span>val = po->has_vnet_hdr;</div><div>  <span class="" style="white-space:pre">              </span>break;</div><div>diff --git a/target/linux/generic/patches-4.4/642-bridge_port_isolate.patch b/target/linux/generic/patches-4.4/642-bridge_port_isolate.patch</div><div>index 0be8c8f..1dc32b6 100644</div><div>--- a/target/linux/generic/patches-4.4/642-bridge_port_isolate.patch</div><div>+++ b/target/linux/generic/patches-4.4/642-bridge_port_isolate.patch</div><div>@@ -11,8 +11,8 @@ Isolating individual bridge ports</div><div>  #define BR_PROXYARP_WIFI<span class="" style="white-space:pre">   </span>BIT(10)</div><div> +#define BR_ISOLATE_MODE<span class="" style="white-space:pre">  </span>BIT(11)</div><div>  </div><div>- /* values as per ieee8021QBridgeFdbAgingTime */</div><div>- #define BR_MIN_AGEING_TIME<span class="" style="white-space:pre">     </span>(10 * HZ)</div><div>+ #define BR_DEFAULT_AGEING_TIME<span class="" style="white-space:pre">  </span>(300 * HZ)</div><div>+ </div><div> --- a/net/bridge/br_sysfs_if.c</div><div> +++ b/net/bridge/br_sysfs_if.c</div><div> @@ -173,6 +173,22 @@ BRPORT_ATTR_FLAG(unicast_flood, BR_FLOOD</div><div>diff --git a/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch b/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch</div><div>index 59aa1ed..f729f38 100644</div><div>--- a/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch</div><div>+++ b/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch</div><div>@@ -11,8 +11,8 @@ Implement optinal multicast->unicast conversion for igmp snooping</div><div>  #define BR_ISOLATE_MODE<span class="" style="white-space:pre">       </span>BIT(11)</div><div> +#define BR_MULTICAST_TO_UCAST<span class="" style="white-space:pre">    </span>BIT(12)</div><div>  </div><div>- /* values as per ieee8021QBridgeFdbAgingTime */</div><div>- #define BR_MIN_AGEING_TIME<span class="" style="white-space:pre">     </span>(10 * HZ)</div><div>+ #define BR_DEFAULT_AGEING_TIME<span class="" style="white-space:pre">  </span>(300 * HZ)</div><div>+ </div><div> --- a/net/bridge/br_multicast.c</div><div> +++ b/net/bridge/br_multicast.c</div><div> @@ -42,12 +42,13 @@ static void br_multicast_add_router(stru</div><div>diff --git a/target/linux/generic/patches-4.4/655-increase_skb_pad.patch b/target/linux/generic/patches-4.4/655-increase_skb_pad.patch</div><div>index e46e470..ad95d4c 100644</div><div>--- a/target/linux/generic/patches-4.4/655-increase_skb_pad.patch</div><div>+++ b/target/linux/generic/patches-4.4/655-increase_skb_pad.patch</div><div>@@ -1,6 +1,6 @@</div><div> --- a/include/linux/skbuff.h</div><div> +++ b/include/linux/skbuff.h</div><div>-@@ -2155,7 +2155,7 @@ static inline int pskb_network_may_pull(</div><div>+@@ -2179,7 +2179,7 @@ static inline int pskb_network_may_pull(</div><div>   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)</div><div>   */</div><div>  #ifndef NET_SKB_PAD</div><div>diff --git a/target/linux/generic/patches-4.4/656-skb_reduce_truesize-helper.patch b/target/linux/generic/patches-4.4/656-skb_reduce_truesize-helper.patch</div><div>index 341a31b..dad7448 100644</div><div>--- a/target/linux/generic/patches-4.4/656-skb_reduce_truesize-helper.patch</div><div>+++ b/target/linux/generic/patches-4.4/656-skb_reduce_truesize-helper.patch</div><div>@@ -14,7 +14,7 @@ when needed.</div><div> </div><div> --- a/include/linux/skbuff.h</div><div> +++ b/include/linux/skbuff.h</div><div>-@@ -2200,6 +2200,24 @@ static inline void pskb_trim_unique(stru</div><div>+@@ -2224,6 +2224,24 @@ static inline void pskb_trim_unique(stru</div><div>  <span class="" style="white-space:pre">       </span>BUG_ON(err);</div><div>  }</div><div>  </div><div>diff --git a/target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch</div><div>index 7123c80..0d4409e 100644</div><div>--- a/target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch</div><div>+++ b/target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch</div><div>@@ -295,15 +295,15 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div>  </div><div>  <span class="" style="white-space:pre">           </span>__skb_tunnel_rx(skb, t->dev, t->net);</div><div>  </div><div>-@@ -1179,6 +1316,7 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, str</div><div>+@@ -1224,6 +1361,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str</div><div>  <span class="" style="white-space:pre">      </span>__u32 mtu;</div><div>  <span class="" style="white-space:pre">      </span>u8 tproto;</div><div>  <span class="" style="white-space:pre">      </span>int err;</div><div> +<span class="" style="white-space:pre">        </span>struct __ip6_tnl_fmr *fmr;</div><div>  </div><div>  <span class="" style="white-space:pre">   </span>tproto = ACCESS_ONCE(t->parms.proto);</div><div>- <span class="" style="white-space:pre"> </span>if (tproto != IPPROTO_IPIP && tproto != 0)</div><div>-@@ -1198,6 +1336,18 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, str</div><div>+ <span class="" style="white-space:pre">        </span>if ((tproto != IPPROTO_IPV6 && tproto != 0) ||</div><div>+@@ -1254,6 +1392,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str</div><div>  <span class="" style="white-space:pre">   </span>if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)</div><div>  <span class="" style="white-space:pre">          </span>fl6.flowi6_mark = skb->mark;</div><div>  </div><div>@@ -321,8 +321,8 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div> +</div><div>  <span class="" style="white-space:pre">       </span>err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu);</div><div>  <span class="" style="white-space:pre">        </span>if (err != 0) {</div><div>- <span class="" style="white-space:pre">          </span>/* XXX: send ICMP error even if DF is not set. */</div><div>-@@ -1366,6 +1516,14 @@ ip6_tnl_change(struct ip6_tnl *t, const</div><div>+ <span class="" style="white-space:pre">          </span>if (err == -EMSGSIZE)</div><div>+@@ -1368,6 +1518,14 @@ ip6_tnl_change(struct ip6_tnl *t, const</div><div>  <span class="" style="white-space:pre">     </span>t->parms.flowinfo = p->flowinfo;</div><div>  <span class="" style="white-space:pre">  </span>t->parms.link = p->link;</div><div>  <span class="" style="white-space:pre">  </span>t->parms.proto = p->proto;</div><div>@@ -337,7 +337,7 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div>  <span class="" style="white-space:pre">   </span>ip6_tnl_dst_reset(t);</div><div>  <span class="" style="white-space:pre">   </span>ip6_tnl_link_config(t);</div><div>  <span class="" style="white-space:pre"> </span>return 0;</div><div>-@@ -1404,6 +1562,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_</div><div>+@@ -1406,6 +1564,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_</div><div>  <span class="" style="white-space:pre">   </span>p->flowinfo = u->flowinfo;</div><div>  <span class="" style="white-space:pre">        </span>p->link = u->link;</div><div>  <span class="" style="white-space:pre">        </span>p->proto = u->proto;</div><div>@@ -345,7 +345,7 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div>  <span class="" style="white-space:pre"> </span>memcpy(p->name, u->name, sizeof(u->name));</div><div>  }</div><div>  </div><div>-@@ -1699,6 +1858,15 @@ static int ip6_tnl_validate(struct nlatt</div><div>+@@ -1701,6 +1860,15 @@ static int ip6_tnl_validate(struct nlatt</div><div>  <span class="" style="white-space:pre"> </span>return 0;</div><div>  }</div><div>  </div><div>@@ -361,7 +361,7 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div>  static void ip6_tnl_netlink_parms(struct nlattr *data[],</div><div>  <span class="" style="white-space:pre">                          </span>  struct __ip6_tnl_parm *parms)</div><div>  {</div><div>-@@ -1730,6 +1898,46 @@ static void ip6_tnl_netlink_parms(struct</div><div>+@@ -1732,6 +1900,46 @@ static void ip6_tnl_netlink_parms(struct</div><div>  </div><div>  <span class="" style="white-space:pre">    </span>if (data[IFLA_IPTUN_PROTO])</div><div>  <span class="" style="white-space:pre">             </span>parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);</div><div>@@ -408,7 +408,7 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div>  }</div><div>  </div><div>  static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,</div><div>-@@ -1782,6 +1990,12 @@ static void ip6_tnl_dellink(struct net_d</div><div>+@@ -1784,6 +1992,12 @@ static void ip6_tnl_dellink(struct net_d</div><div>  </div><div>  static size_t ip6_tnl_get_size(const struct net_device *dev)</div><div>  {</div><div>@@ -421,7 +421,7 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div>  <span class="" style="white-space:pre">        </span>return</div><div>  <span class="" style="white-space:pre">          </span>/* IFLA_IPTUN_LINK */</div><div>  <span class="" style="white-space:pre">           </span>nla_total_size(4) +</div><div>-@@ -1799,6 +2013,24 @@ static size_t ip6_tnl_get_size(const str</div><div>+@@ -1801,6 +2015,24 @@ static size_t ip6_tnl_get_size(const str</div><div>  <span class="" style="white-space:pre">               </span>nla_total_size(4) +</div><div>  <span class="" style="white-space:pre">             </span>/* IFLA_IPTUN_PROTO */</div><div>  <span class="" style="white-space:pre">          </span>nla_total_size(1) +</div><div>@@ -446,7 +446,7 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div>  <span class="" style="white-space:pre">                </span>0;</div><div>  }</div><div>  </div><div>-@@ -1806,6 +2038,9 @@ static int ip6_tnl_fill_info(struct sk_b</div><div>+@@ -1808,6 +2040,9 @@ static int ip6_tnl_fill_info(struct sk_b</div><div>  {</div><div>  <span class="" style="white-space:pre"> </span>struct ip6_tnl *tunnel = netdev_priv(dev);</div><div>  <span class="" style="white-space:pre">      </span>struct __ip6_tnl_parm *parm = &tunnel->parms;</div><div>@@ -456,7 +456,7 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div>  </div><div>  <span class="" style="white-space:pre">    </span>if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||</div><div>  <span class="" style="white-space:pre"> </span>    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||</div><div>-@@ -1814,8 +2049,27 @@ static int ip6_tnl_fill_info(struct sk_b</div><div>+@@ -1816,8 +2051,27 @@ static int ip6_tnl_fill_info(struct sk_b</div><div>  <span class="" style="white-space:pre">     </span>    nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||</div><div>  <span class="" style="white-space:pre">  </span>    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||</div><div>  <span class="" style="white-space:pre">      </span>    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||</div><div>@@ -485,7 +485,7 @@ Signed-off-by: Steven Barth <<a href="mailto:cyrus@openwrt.org">cyrus@openwrt.org</a>></div><div>  <span class="" style="white-space:pre">        </span>return 0;</div><div>  </div><div>  nla_put_failure:</div><div>-@@ -1839,6 +2093,7 @@ static const struct nla_policy ip6_tnl_p</div><div>+@@ -1841,6 +2095,7 @@ static const struct nla_policy ip6_tnl_p</div><div>  <span class="" style="white-space:pre">      </span>[IFLA_IPTUN_FLOWINFO]<span class="" style="white-space:pre">             </span>= { .type = NLA_U32 },</div><div>  <span class="" style="white-space:pre">  </span>[IFLA_IPTUN_FLAGS]<span class="" style="white-space:pre">                </span>= { .type = NLA_U32 },</div><div>  <span class="" style="white-space:pre">  </span>[IFLA_IPTUN_PROTO]<span class="" style="white-space:pre">                </span>= { .type = NLA_U8 },</div><div>diff --git a/target/linux/generic/patches-4.4/721-phy_packets.patch b/target/linux/generic/patches-4.4/721-phy_packets.patch</div><div>index 04bafcd..79af5f9 100644</div><div>--- a/target/linux/generic/patches-4.4/721-phy_packets.patch</div><div>+++ b/target/linux/generic/patches-4.4/721-phy_packets.patch</div><div>@@ -1,6 +1,6 @@</div><div> --- a/include/linux/netdevice.h</div><div> +++ b/include/linux/netdevice.h</div><div>-@@ -1297,6 +1297,7 @@ enum netdev_priv_flags {</div><div>+@@ -1298,6 +1298,7 @@ enum netdev_priv_flags {</div><div>  <span class="" style="white-space:pre">    </span>IFF_NO_QUEUE<span class="" style="white-space:pre">                      </span>= 1<<21,</div><div>  <span class="" style="white-space:pre">  </span>IFF_OPENVSWITCH<span class="" style="white-space:pre">                   </span>= 1<<22,</div><div>  <span class="" style="white-space:pre">  </span>IFF_L3MDEV_SLAVE<span class="" style="white-space:pre">          </span>= 1<<23,</div><div>@@ -8,7 +8,7 @@</div><div>  };</div><div>  </div><div>  #define IFF_802_1Q_VLAN<span class="" style="white-space:pre">                      </span>IFF_802_1Q_VLAN</div><div>-@@ -1323,6 +1324,7 @@ enum netdev_priv_flags {</div><div>+@@ -1324,6 +1325,7 @@ enum netdev_priv_flags {</div><div>  #define IFF_NO_QUEUE<span class="" style="white-space:pre">                 </span>IFF_NO_QUEUE</div><div>  #define IFF_OPENVSWITCH<span class="" style="white-space:pre">                     </span>IFF_OPENVSWITCH</div><div>  #define IFF_L3MDEV_SLAVE<span class="" style="white-space:pre">         </span>IFF_L3MDEV_SLAVE</div><div>@@ -41,7 +41,7 @@</div><div>   */</div><div> --- a/include/linux/skbuff.h</div><div> +++ b/include/linux/skbuff.h</div><div>-@@ -2186,6 +2186,10 @@ static inline int pskb_trim(struct sk_bu</div><div>+@@ -2210,6 +2210,10 @@ static inline int pskb_trim(struct sk_bu</div><div>  <span class="" style="white-space:pre">  </span>return (len < skb->len) ? __pskb_trim(skb, len) : 0;</div><div>  }</div><div>  </div><div>@@ -52,7 +52,7 @@</div><div>  /**</div><div>   *<span class="" style="white-space:pre">        </span>pskb_trim_unique - remove end from a paged unique (not cloned) buffer</div><div>   *<span class="" style="white-space:pre">        </span>@skb: buffer to alter</div><div>-@@ -2308,16 +2312,6 @@ static inline struct sk_buff *dev_alloc_</div><div>+@@ -2332,16 +2336,6 @@ static inline struct sk_buff *dev_alloc_</div><div>  }</div><div>  </div><div>  </div><div>diff --git a/target/linux/generic/patches-4.4/903-debloat_direct_io.patch b/target/linux/generic/patches-4.4/903-debloat_direct_io.patch</div><div>index ee85c40..460da1d 100644</div><div>--- a/target/linux/generic/patches-4.4/903-debloat_direct_io.patch</div><div>+++ b/target/linux/generic/patches-4.4/903-debloat_direct_io.patch</div><div>@@ -26,7 +26,7 @@</div><div>  endif</div><div> --- a/include/linux/fs.h</div><div> +++ b/include/linux/fs.h</div><div>-@@ -2681,6 +2681,7 @@ enum {</div><div>+@@ -2691,6 +2691,7 @@ enum {</div><div>  <span class="" style="white-space:pre">      </span>DIO_SKIP_DIO_COUNT = 0x08,</div><div>  };</div><div>  </div><div>@@ -34,7 +34,7 @@</div><div>  void dio_end_io(struct bio *bio, int error);</div><div>  </div><div>  ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode,</div><div>-@@ -2688,6 +2689,18 @@ ssize_t __blockdev_direct_IO(struct kioc</div><div>+@@ -2698,6 +2699,18 @@ ssize_t __blockdev_direct_IO(struct kioc</div><div>  <span class="" style="white-space:pre">                 </span>     loff_t offset, get_block_t get_block,</div><div>  <span class="" style="white-space:pre">                    </span>     dio_iodone_t end_io, dio_submit_t submit_io,</div><div>  <span class="" style="white-space:pre">                     </span>     int flags);</div><div><br></div></div>