Refreshed all patches.
Compile-tested on: ar71xx
Runtime-tested on: ar71xx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .119
-LINUX_VERSION-4.9 = .123
LINUX_VERSION-4.14 = .66
+LINUX_VERSION-4.9 = .124
LINUX_KERNEL_HASH-3.18.119 = 2bab623ed868b679eac224f62212cc285264061bedf1e32897f72e35aa26160d
-LINUX_KERNEL_HASH-4.9.123 = 8d12ceab9f8cbfd0555c881b35ed4384cf3ea8e223d894c030b04786005e5071
LINUX_KERNEL_HASH-4.14.66 = a38061ca4c864d11a72beb3dc5918a99f13372fe9ee35508d004fdfabd460413
+LINUX_KERNEL_HASH-4.9.124 = 5ca6b0d48c8dd1265005169f1b97149a4e893668c0d8aa566a73c7663c8e4311
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
#define IP6_MF 0x0001
#define IP6_OFFSET 0xFFF8
-@@ -450,8 +450,8 @@ static inline void __ipv6_addr_set_half(
+@@ -443,8 +443,8 @@ static inline void __ipv6_addr_set_half(
}
#endif
#endif
}
static inline void ipv6_addr_set(struct in6_addr *addr,
-@@ -510,6 +510,8 @@ static inline bool ipv6_prefix_equal(con
+@@ -503,6 +503,8 @@ static inline bool ipv6_prefix_equal(con
const __be32 *a1 = addr1->s6_addr32;
const __be32 *a2 = addr2->s6_addr32;
unsigned int pdw, pbi;
/* check complete u32 in prefix */
pdw = prefixlen >> 5;
-@@ -518,7 +520,9 @@ static inline bool ipv6_prefix_equal(con
+@@ -511,7 +513,9 @@ static inline bool ipv6_prefix_equal(con
/* check incomplete u32 in prefix */
pbi = prefixlen & 0x1f;
return false;
return true;
-@@ -662,13 +666,13 @@ static inline void ipv6_addr_set_v4mappe
+@@ -655,13 +659,13 @@ static inline void ipv6_addr_set_v4mappe
*/
static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
{
if (xb)
return i * 32 + 31 - __fls(ntohl(xb));
}
-@@ -837,17 +841,18 @@ static inline int ip6_default_np_autolab
+@@ -830,17 +834,18 @@ static inline int ip6_default_np_autolab
static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
__be32 flowlabel)
{
if (tcp_small_queue_check(sk, skb, 0))
break;
-@@ -3546,8 +3546,6 @@ void __tcp_send_ack(struct sock *sk, u32
+@@ -3542,8 +3542,6 @@ void __tcp_send_ack(struct sock *sk, u32
/* We do not want pure acks influencing TCP Small Queues or fq/pacing
* too much.
* SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784
BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
-@@ -3230,7 +3230,7 @@ static int bnx2x_poll(struct napi_struct
+@@ -3236,7 +3236,7 @@ static int bnx2x_poll(struct napi_struct
* has been updated when NAPI was scheduled.
*/
if (IS_FCOE_FP(fp)) {
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3260,6 +3262,7 @@ static int packet_create(struct net *net
+@@ -3262,6 +3264,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3873,6 +3876,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3875,6 +3878,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -3925,6 +3938,13 @@ static int packet_getsockopt(struct sock
+@@ -3927,6 +3940,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
+++ b/arch/arm64/boot/dts/freescale/traverse-ls1043v.dts
@@ -251,3 +251,29 @@
&sata {
- status = "disabled";
+ status = "disabled";
};
+
+/* Additions for Layerscape SDK (4.4/4.9) Kernel only
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, quirk_fsl_no_msi);
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -1823,6 +1823,7 @@ void pcibios_release_device(struct pci_d
+@@ -1825,6 +1825,7 @@ void pcibios_release_device(struct pci_d
void pcibios_penalize_isa_irq(int irq, int active);
int pcibios_alloc_irq(struct pci_dev *dev);
void pcibios_free_irq(struct pci_dev *dev);
+module_exit(fsl_guts_exit);
--- a/include/linux/fsl/guts.h
+++ b/include/linux/fsl/guts.h
-@@ -29,83 +29,112 @@
+@@ -30,83 +30,112 @@
* #ifdefs.
*/
struct ccsr_guts {
while (ep_ring->dequeue != td->last_trb)
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1604,14 +1604,38 @@ int xhci_urb_dequeue(struct usb_hcd *hcd
+@@ -1609,14 +1609,38 @@ int xhci_urb_dequeue(struct usb_hcd *hcd
ret = -ENOMEM;
goto done;
}
};
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
-@@ -380,8 +380,8 @@ static int socfpga_dwmac_resume(struct d
+@@ -390,8 +390,8 @@ static int socfpga_dwmac_resume(struct d
* control register 0, and can be modified by the phy driver
* framework.
*/
{ .compatible = "rockchip,rk3399-gmac", .data = &rk3399_ops },
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
-@@ -341,7 +341,7 @@ static int socfpga_dwmac_probe(struct pl
+@@ -351,7 +351,7 @@ static int socfpga_dwmac_probe(struct pl
* mode. Create a copy of the core reset handle so it can be used by
* the driver later.
*/
struct mii_regs {
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
-@@ -269,7 +269,10 @@ static int socfpga_dwmac_set_phy_mode(st
+@@ -270,7 +270,10 @@ static int socfpga_dwmac_set_phy_mode(st
ctrl &= ~(SYSMGR_EMACGRP_CTRL_PHYSEL_MASK << reg_shift);
ctrl |= val << reg_shift;