kernel: update kernel 4.9 to 4.9.37
- Refreshed all patches - Removed upstreamed - Adapted 4 patches: 473-fix-marvell-phy-initialization-issues.patch ----------------------------------------------- Removed hunk 5 which got upstreamed 403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch 404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch -------------------------------------------------------------- Adapted these 2 RFC patches, merging the delta's from an upstream commit (see below) which made it before these 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux- stable.git/commit/?h=v4.9.36&id=97ace183074d306942b903a148aebd5d061758f0 180-usb-xhci-add-support-for-performing-fake-doorbell.patch ----------------------------------------------------------- - Moved fake_doorbell bitmask due to new item Compile tested on: cns3xxx, imx6 Run tested on: cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
committed by
Hauke Mehrtens
parent
027aea8af7
commit
cd54b2d42b
@@ -26,8 +26,8 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1256,6 +1256,13 @@ static int spansion_quad_enable(struct s
|
||||
return -EINVAL;
|
||||
@@ -1263,6 +1263,13 @@ static int spansion_quad_enable(struct s
|
||||
return ret;
|
||||
}
|
||||
|
||||
+ ret = spi_nor_wait_till_ready(nor);
|
||||
|
||||
@@ -206,7 +206,7 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
|
||||
if (ret < 0)
|
||||
goto write_err;
|
||||
written = ret;
|
||||
@@ -1312,6 +1401,47 @@ static int spi_nor_check(struct spi_nor
|
||||
@@ -1319,6 +1408,47 @@ static int spi_nor_check(struct spi_nor
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -254,7 +254,7 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
|
||||
int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
|
||||
{
|
||||
const struct flash_info *info = NULL;
|
||||
@@ -1360,6 +1490,14 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1367,6 +1497,14 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
mutex_init(&nor->lock);
|
||||
|
||||
/*
|
||||
@@ -269,7 +269,7 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
|
||||
* Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up
|
||||
* with the software protection bits set
|
||||
*/
|
||||
@@ -1517,6 +1655,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1524,6 +1662,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
|
||||
nor->read_dummy = spi_nor_read_dummy_cycles(nor);
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ Acked-by: Marek Vasut <marek.vasut@gmail.com>
|
||||
static struct seq_rw_config stfsm_s25fl_write4_configs[] = {
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1625,16 +1625,16 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1632,16 +1632,16 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
/* Dedicated 4-byte command set */
|
||||
switch (nor->flash_read) {
|
||||
case SPI_NOR_QUAD:
|
||||
|
||||
@@ -116,7 +116,7 @@ Acked-by: Marek Vasut <marek.vasut@gmail.com>
|
||||
/* Enable/disable 4-byte addressing mode. */
|
||||
static inline int set_4byte(struct spi_nor *nor, const struct flash_info *info,
|
||||
int enable)
|
||||
@@ -1621,27 +1697,10 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1628,27 +1704,10 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
else if (mtd->size > 0x1000000) {
|
||||
/* enable 4-byte addressing if the device exceeds 16MiB */
|
||||
nor->addr_width = 4;
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
From: Tobias Wolf <dev-NTEO@vplace.de>
|
||||
Date: Wed, 23 Nov 2016 10:40:07 +0100
|
||||
Subject: [PATCH] of: Add check to of_scan_flat_dt() before accessing
|
||||
initial_boot_params
|
||||
|
||||
An empty __dtb_start to __dtb_end section might result in initial_boot_params
|
||||
being null for arch/mips/ralink. This showed that the boot process hangs
|
||||
indefinitely in of_scan_flat_dt().
|
||||
|
||||
Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
|
||||
---
|
||||
|
||||
--- a/drivers/of/fdt.c
|
||||
+++ b/drivers/of/fdt.c
|
||||
@@ -741,9 +741,12 @@ int __init of_scan_flat_dt(int (*it)(uns
|
||||
const char *pathp;
|
||||
int offset, rc = 0, depth = -1;
|
||||
|
||||
- for (offset = fdt_next_node(blob, -1, &depth);
|
||||
- offset >= 0 && depth >= 0 && !rc;
|
||||
- offset = fdt_next_node(blob, offset, &depth)) {
|
||||
+ if (!blob)
|
||||
+ return 0;
|
||||
+
|
||||
+ for (offset = fdt_next_node(blob, -1, &depth);
|
||||
+ offset >= 0 && depth >= 0 && !rc;
|
||||
+ offset = fdt_next_node(blob, offset, &depth)) {
|
||||
|
||||
pathp = fdt_get_name(blob, offset, NULL);
|
||||
if (*pathp == '/')
|
||||
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/spi/spi.c
|
||||
+++ b/drivers/spi/spi.c
|
||||
@@ -698,7 +698,7 @@ static void spi_set_cs(struct spi_device
|
||||
@@ -700,7 +700,7 @@ static void spi_set_cs(struct spi_device
|
||||
enable = !enable;
|
||||
|
||||
if (gpio_is_valid(spi->cs_gpio))
|
||||
|
||||
@@ -4,7 +4,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1588,6 +1588,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1595,6 +1595,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
|
||||
if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
|
||||
JEDEC_MFR(info) == SNOR_MFR_INTEL ||
|
||||
|
||||
@@ -302,7 +302,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
/**
|
||||
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
|
||||
* @t: the outgoing tunnel device
|
||||
@@ -1283,6 +1423,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
@@ -1285,6 +1425,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
{
|
||||
struct ip6_tnl *t = netdev_priv(dev);
|
||||
struct ipv6hdr *ipv6h = ipv6_hdr(skb);
|
||||
@@ -310,7 +310,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
int encap_limit = -1;
|
||||
__u16 offset;
|
||||
struct flowi6 fl6;
|
||||
@@ -1338,6 +1479,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
@@ -1343,6 +1484,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
fl6.flowi6_mark = skb->mark;
|
||||
}
|
||||
|
||||
@@ -329,7 +329,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
|
||||
return -1;
|
||||
|
||||
@@ -1463,6 +1616,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
@@ -1470,6 +1623,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
t->parms.flowinfo = p->flowinfo;
|
||||
t->parms.link = p->link;
|
||||
t->parms.proto = p->proto;
|
||||
@@ -344,7 +344,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
dst_cache_reset(&t->dst_cache);
|
||||
ip6_tnl_link_config(t);
|
||||
return 0;
|
||||
@@ -1501,6 +1662,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
@@ -1508,6 +1669,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
p->flowinfo = u->flowinfo;
|
||||
p->link = u->link;
|
||||
p->proto = u->proto;
|
||||
@@ -352,7 +352,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
memcpy(p->name, u->name, sizeof(u->name));
|
||||
}
|
||||
|
||||
@@ -1878,6 +2040,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
@@ -1885,6 +2047,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -368,7 +368,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
static void ip6_tnl_netlink_parms(struct nlattr *data[],
|
||||
struct __ip6_tnl_parm *parms)
|
||||
{
|
||||
@@ -1912,6 +2083,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
@@ -1919,6 +2090,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
|
||||
if (data[IFLA_IPTUN_COLLECT_METADATA])
|
||||
parms->collect_md = true;
|
||||
@@ -415,7 +415,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
}
|
||||
|
||||
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
|
||||
@@ -2021,6 +2232,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
@@ -2028,6 +2239,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
|
||||
static size_t ip6_tnl_get_size(const struct net_device *dev)
|
||||
{
|
||||
@@ -428,7 +428,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
return
|
||||
/* IFLA_IPTUN_LINK */
|
||||
nla_total_size(4) +
|
||||
@@ -2048,6 +2265,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
@@ -2055,6 +2272,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
nla_total_size(2) +
|
||||
/* IFLA_IPTUN_COLLECT_METADATA */
|
||||
nla_total_size(0) +
|
||||
@@ -453,7 +453,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
0;
|
||||
}
|
||||
|
||||
@@ -2055,6 +2290,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2062,6 +2297,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
{
|
||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||
struct __ip6_tnl_parm *parm = &tunnel->parms;
|
||||
@@ -463,7 +463,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
|
||||
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
|
||||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
|
||||
@@ -2063,9 +2301,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2070,9 +2308,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
|
||||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
|
||||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
|
||||
@@ -492,7 +492,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
|
||||
@@ -2103,6 +2359,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
@@ -2110,6 +2366,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
[IFLA_IPTUN_ENCAP_SPORT] = { .type = NLA_U16 },
|
||||
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
|
||||
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
|
||||
|
||||
@@ -88,7 +88,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
default:
|
||||
--- a/net/ipv6/fib6_rules.c
|
||||
+++ b/net/ipv6/fib6_rules.c
|
||||
@@ -88,6 +88,10 @@ static int fib6_rule_action(struct fib_r
|
||||
@@ -77,6 +77,10 @@ static int fib6_rule_action(struct fib_r
|
||||
err = -EACCES;
|
||||
rt = net->ipv6.ip6_prohibit_entry;
|
||||
goto discard_pkt;
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -4512,6 +4512,9 @@ static enum gro_result dev_gro_receive(s
|
||||
@@ -4513,6 +4513,9 @@ static enum gro_result dev_gro_receive(s
|
||||
enum gro_result ret;
|
||||
int grow;
|
||||
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!(skb->dev->features & NETIF_F_GRO))
|
||||
goto normal;
|
||||
|
||||
@@ -5789,6 +5792,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
@@ -5790,6 +5793,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
&upper_dev->adj_list.lower);
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||
struct net_device *upper_dev, bool master,
|
||||
void *upper_priv, void *upper_info)
|
||||
@@ -5987,6 +6032,8 @@ void netdev_upper_dev_unlink(struct net_
|
||||
@@ -5988,6 +6033,8 @@ void netdev_upper_dev_unlink(struct net_
|
||||
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
|
||||
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
|
||||
|
||||
@@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||
&changeupper_info.info);
|
||||
}
|
||||
@@ -6587,6 +6634,7 @@ int dev_set_mac_address(struct net_devic
|
||||
@@ -6588,6 +6635,7 @@ int dev_set_mac_address(struct net_devic
|
||||
if (err)
|
||||
return err;
|
||||
dev->addr_assign_type = NET_ADDR_SET;
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
* @phydev: the phy_device struct
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -813,6 +813,7 @@ int phy_ethtool_ksettings_get(struct phy
|
||||
@@ -816,6 +816,7 @@ int phy_ethtool_ksettings_get(struct phy
|
||||
struct ethtool_link_ksettings *cmd);
|
||||
int phy_ethtool_ksettings_set(struct phy_device *phydev,
|
||||
const struct ethtool_link_ksettings *cmd);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -496,6 +496,12 @@ struct phy_driver {
|
||||
@@ -499,6 +499,12 @@ struct phy_driver {
|
||||
/* Determines the negotiated speed and duplex */
|
||||
int (*read_status)(struct phy_device *phydev);
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
--- a/drivers/net/phy/phy_device.c
|
||||
+++ b/drivers/net/phy/phy_device.c
|
||||
@@ -1267,6 +1267,9 @@ int genphy_update_link(struct phy_device
|
||||
@@ -1309,6 +1309,9 @@ int genphy_update_link(struct phy_device
|
||||
{
|
||||
int status;
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
phy_suspend(phydev);
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -514,6 +514,12 @@ struct phy_driver {
|
||||
@@ -517,6 +517,12 @@ struct phy_driver {
|
||||
*/
|
||||
int (*did_interrupt)(struct phy_device *phydev);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/phy/phy_device.c
|
||||
+++ b/drivers/net/phy/phy_device.c
|
||||
@@ -1485,7 +1485,7 @@ int genphy_config_init(struct phy_device
|
||||
@@ -1527,7 +1527,7 @@ int genphy_config_init(struct phy_device
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
{
|
||||
/* Do nothing for now */
|
||||
return 0;
|
||||
@@ -1724,7 +1724,7 @@ static struct phy_driver genphy_driver[]
|
||||
@@ -1798,7 +1798,7 @@ static struct phy_driver genphy_driver[]
|
||||
.phy_id = 0xffffffff,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Generic PHY",
|
||||
@@ -18,7 +18,7 @@
|
||||
.config_init = genphy_config_init,
|
||||
.features = PHY_GBIT_FEATURES | SUPPORTED_MII |
|
||||
SUPPORTED_AUI | SUPPORTED_FIBRE |
|
||||
@@ -1738,7 +1738,7 @@ static struct phy_driver genphy_driver[]
|
||||
@@ -1812,7 +1812,7 @@ static struct phy_driver genphy_driver[]
|
||||
.phy_id = 0xffffffff,
|
||||
.phy_id_mask = 0xffffffff,
|
||||
.name = "Generic 10G PHY",
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
phy_device_free(phydev);
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -856,6 +856,23 @@ void mdio_bus_exit(void);
|
||||
@@ -859,6 +859,23 @@ void mdio_bus_exit(void);
|
||||
|
||||
extern struct bus_type mdio_bus_type;
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
help
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -2931,10 +2931,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -2932,10 +2932,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
return -ENOMEM;
|
||||
--- a/mm/vmalloc.c
|
||||
+++ b/mm/vmalloc.c
|
||||
@@ -2703,6 +2703,8 @@ static const struct file_operations proc
|
||||
@@ -2713,6 +2713,8 @@ static const struct file_operations proc
|
||||
|
||||
static int __init proc_vmalloc_init(void)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user