kernel: bump 4.4 to 4.4.107
Refresh patches. Update patch that no longer applied: oxnas/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> Tested-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
94952636e7
commit
b0d99b77e5
18 changed files with 66 additions and 66 deletions
|
@ -3,12 +3,12 @@
|
||||||
LINUX_RELEASE?=1
|
LINUX_RELEASE?=1
|
||||||
|
|
||||||
LINUX_VERSION-3.18 = .71
|
LINUX_VERSION-3.18 = .71
|
||||||
LINUX_VERSION-4.4 = .100
|
LINUX_VERSION-4.4 = .107
|
||||||
LINUX_VERSION-4.9 = .70
|
LINUX_VERSION-4.9 = .70
|
||||||
LINUX_VERSION-4.14 = .6
|
LINUX_VERSION-4.14 = .6
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
|
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
|
||||||
LINUX_KERNEL_HASH-4.4.100 = 9936cd99c4bd35f6bc6962c9acdd1fa2ac8999e07a9be6a94a03b5492f1bd14f
|
LINUX_KERNEL_HASH-4.4.107 = d25dc23c8b05d34518ede68f03668cd344f805049a16bc4f189da90533881a17
|
||||||
LINUX_KERNEL_HASH-4.9.70 = baaf45f3826fa0d257a42005240cced402a12c99adf2a8d77402738304d5300a
|
LINUX_KERNEL_HASH-4.9.70 = baaf45f3826fa0d257a42005240cced402a12c99adf2a8d77402738304d5300a
|
||||||
LINUX_KERNEL_HASH-4.14.6 = 0907678ba9ea146ddbdecd0a0b6363f56b896b5c61c9a15e809effb3ea346ccc
|
LINUX_KERNEL_HASH-4.14.6 = 0907678ba9ea146ddbdecd0a0b6363f56b896b5c61c9a15e809effb3ea346ccc
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
||||||
|
|
||||||
--- a/drivers/net/phy/b53/b53_common.c
|
--- a/drivers/net/phy/b53/b53_common.c
|
||||||
+++ b/drivers/net/phy/b53/b53_common.c
|
+++ b/drivers/net/phy/b53/b53_common.c
|
||||||
@@ -27,6 +27,7 @@
|
@@ -28,6 +28,7 @@
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/of_net.h>
|
#include <linux/of_net.h>
|
||||||
#include <linux/platform_data/b53.h>
|
#include <linux/platform_data/b53.h>
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
||||||
|
|
||||||
#include "b53_regs.h"
|
#include "b53_regs.h"
|
||||||
#include "b53_priv.h"
|
#include "b53_priv.h"
|
||||||
@@ -1578,6 +1579,28 @@ static int b53_switch_init(struct b53_de
|
@@ -1579,6 +1580,28 @@ static int b53_switch_init(struct b53_de
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
||||||
|
|
||||||
--- a/drivers/mtd/nand/nand_base.c
|
--- a/drivers/mtd/nand/nand_base.c
|
||||||
+++ b/drivers/mtd/nand/nand_base.c
|
+++ b/drivers/mtd/nand/nand_base.c
|
||||||
@@ -3989,6 +3989,9 @@ int nand_scan_ident(struct mtd_info *mtd
|
@@ -3992,6 +3992,9 @@ int nand_scan_ident(struct mtd_info *mtd
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (chip->flash_node) {
|
if (chip->flash_node) {
|
||||||
|
|
|
@ -176,7 +176,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
if (rc)
|
if (rc)
|
||||||
--- a/include/linux/phy.h
|
--- a/include/linux/phy.h
|
||||||
+++ b/include/linux/phy.h
|
+++ b/include/linux/phy.h
|
||||||
@@ -191,6 +191,13 @@ struct mii_bus {
|
@@ -187,6 +187,13 @@ struct mii_bus {
|
||||||
* interrupt at the index matching its address
|
* interrupt at the index matching its address
|
||||||
*/
|
*/
|
||||||
int *irq;
|
int *irq;
|
||||||
|
|
|
@ -105,7 +105,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
rc = mdiobus_register(mdio);
|
rc = mdiobus_register(mdio);
|
||||||
--- a/include/linux/phy.h
|
--- a/include/linux/phy.h
|
||||||
+++ b/include/linux/phy.h
|
+++ b/include/linux/phy.h
|
||||||
@@ -194,10 +194,8 @@ struct mii_bus {
|
@@ -190,10 +190,8 @@ struct mii_bus {
|
||||||
|
|
||||||
/* GPIO reset pulse width in microseconds */
|
/* GPIO reset pulse width in microseconds */
|
||||||
int reset_delay_us;
|
int reset_delay_us;
|
||||||
|
|
|
@ -21,7 +21,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
||||||
|
|
||||||
--- a/drivers/pinctrl/Kconfig
|
--- a/drivers/pinctrl/Kconfig
|
||||||
+++ b/drivers/pinctrl/Kconfig
|
+++ b/drivers/pinctrl/Kconfig
|
||||||
@@ -247,6 +247,7 @@ config PINCTRL_ZYNQ
|
@@ -248,6 +248,7 @@ config PINCTRL_ZYNQ
|
||||||
This selectes the pinctrl driver for Xilinx Zynq.
|
This selectes the pinctrl driver for Xilinx Zynq.
|
||||||
|
|
||||||
source "drivers/pinctrl/bcm/Kconfig"
|
source "drivers/pinctrl/bcm/Kconfig"
|
||||||
|
|
|
@ -464,7 +464,7 @@
|
||||||
module_init(psb6970_init);
|
module_init(psb6970_init);
|
||||||
--- a/drivers/net/phy/rtl8306.c
|
--- a/drivers/net/phy/rtl8306.c
|
||||||
+++ b/drivers/net/phy/rtl8306.c
|
+++ b/drivers/net/phy/rtl8306.c
|
||||||
@@ -876,7 +876,7 @@ rtl8306_config_init(struct phy_device *p
|
@@ -877,7 +877,7 @@ rtl8306_config_init(struct phy_device *p
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
/* Only init the switch for the primary PHY */
|
/* Only init the switch for the primary PHY */
|
||||||
|
@ -473,7 +473,7 @@
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
val.value.i = 1;
|
val.value.i = 1;
|
||||||
@@ -886,7 +886,7 @@ rtl8306_config_init(struct phy_device *p
|
@@ -887,7 +887,7 @@ rtl8306_config_init(struct phy_device *p
|
||||||
priv->dev.ops = &rtl8306_ops;
|
priv->dev.ops = &rtl8306_ops;
|
||||||
priv->do_cpu = 0;
|
priv->do_cpu = 0;
|
||||||
priv->page = -1;
|
priv->page = -1;
|
||||||
|
@ -482,7 +482,7 @@
|
||||||
|
|
||||||
chipid = rtl_get(dev, RTL_REG_CHIPID);
|
chipid = rtl_get(dev, RTL_REG_CHIPID);
|
||||||
chipver = rtl_get(dev, RTL_REG_CHIPVER);
|
chipver = rtl_get(dev, RTL_REG_CHIPVER);
|
||||||
@@ -932,13 +932,13 @@ rtl8306_fixup(struct phy_device *pdev)
|
@@ -933,13 +933,13 @@ rtl8306_fixup(struct phy_device *pdev)
|
||||||
u16 chipid;
|
u16 chipid;
|
||||||
|
|
||||||
/* Attach to primary LAN port and WAN port */
|
/* Attach to primary LAN port and WAN port */
|
||||||
|
@ -498,7 +498,7 @@
|
||||||
chipid = rtl_get(&priv.dev, RTL_REG_CHIPID);
|
chipid = rtl_get(&priv.dev, RTL_REG_CHIPID);
|
||||||
if (chipid == 0x5988)
|
if (chipid == 0x5988)
|
||||||
pdev->phy_id = RTL8306_MAGIC;
|
pdev->phy_id = RTL8306_MAGIC;
|
||||||
@@ -956,14 +956,14 @@ rtl8306_probe(struct phy_device *pdev)
|
@@ -957,14 +957,14 @@ rtl8306_probe(struct phy_device *pdev)
|
||||||
* share one rtl_priv instance between virtual phy
|
* share one rtl_priv instance between virtual phy
|
||||||
* devices on the same bus
|
* devices on the same bus
|
||||||
*/
|
*/
|
||||||
|
@ -515,7 +515,7 @@
|
||||||
|
|
||||||
found:
|
found:
|
||||||
pdev->priv = priv;
|
pdev->priv = priv;
|
||||||
@@ -984,7 +984,7 @@ rtl8306_config_aneg(struct phy_device *p
|
@@ -985,7 +985,7 @@ rtl8306_config_aneg(struct phy_device *p
|
||||||
struct rtl_priv *priv = pdev->priv;
|
struct rtl_priv *priv = pdev->priv;
|
||||||
|
|
||||||
/* Only for WAN */
|
/* Only for WAN */
|
||||||
|
@ -524,7 +524,7 @@
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Restart autonegotiation */
|
/* Restart autonegotiation */
|
||||||
@@ -1000,7 +1000,7 @@ rtl8306_read_status(struct phy_device *p
|
@@ -1001,7 +1001,7 @@ rtl8306_read_status(struct phy_device *p
|
||||||
struct rtl_priv *priv = pdev->priv;
|
struct rtl_priv *priv = pdev->priv;
|
||||||
struct switch_dev *dev = &priv->dev;
|
struct switch_dev *dev = &priv->dev;
|
||||||
|
|
||||||
|
@ -533,7 +533,7 @@
|
||||||
/* WAN */
|
/* WAN */
|
||||||
pdev->speed = rtl_get(dev, RTL_PORT_REG(4, SPEED)) ? SPEED_100 : SPEED_10;
|
pdev->speed = rtl_get(dev, RTL_PORT_REG(4, SPEED)) ? SPEED_100 : SPEED_10;
|
||||||
pdev->duplex = rtl_get(dev, RTL_PORT_REG(4, DUPLEX)) ? DUPLEX_FULL : DUPLEX_HALF;
|
pdev->duplex = rtl_get(dev, RTL_PORT_REG(4, DUPLEX)) ? DUPLEX_FULL : DUPLEX_HALF;
|
||||||
@@ -1041,6 +1041,7 @@ static struct phy_driver rtl8306_driver
|
@@ -1044,6 +1044,7 @@ static struct phy_driver rtl8306_driver
|
||||||
.config_init = &rtl8306_config_init,
|
.config_init = &rtl8306_config_init,
|
||||||
.config_aneg = &rtl8306_config_aneg,
|
.config_aneg = &rtl8306_config_aneg,
|
||||||
.read_status = &rtl8306_read_status,
|
.read_status = &rtl8306_read_status,
|
||||||
|
@ -541,7 +541,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1048,7 +1049,7 @@ static int __init
|
@@ -1051,7 +1052,7 @@ static int __init
|
||||||
rtl_init(void)
|
rtl_init(void)
|
||||||
{
|
{
|
||||||
phy_register_fixup_for_id(PHY_ANY_ID, rtl8306_fixup);
|
phy_register_fixup_for_id(PHY_ANY_ID, rtl8306_fixup);
|
||||||
|
|
|
@ -75,7 +75,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
|
||||||
|
|
||||||
--- a/mm/page_alloc.c
|
--- a/mm/page_alloc.c
|
||||||
+++ b/mm/page_alloc.c
|
+++ b/mm/page_alloc.c
|
||||||
@@ -5357,7 +5357,7 @@ static void __init_refok alloc_node_mem_
|
@@ -5372,7 +5372,7 @@ static void __init_refok alloc_node_mem_
|
||||||
mem_map = NODE_DATA(0)->node_mem_map;
|
mem_map = NODE_DATA(0)->node_mem_map;
|
||||||
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
|
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
|
||||||
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
||||||
|
|
|
@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
#define PACKET_FANOUT_LB 1
|
#define PACKET_FANOUT_LB 1
|
||||||
--- a/net/packet/af_packet.c
|
--- a/net/packet/af_packet.c
|
||||||
+++ b/net/packet/af_packet.c
|
+++ b/net/packet/af_packet.c
|
||||||
@@ -1784,6 +1784,7 @@ static int packet_rcv_spkt(struct sk_buf
|
@@ -1777,6 +1777,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||||
{
|
{
|
||||||
struct sock *sk;
|
struct sock *sk;
|
||||||
struct sockaddr_pkt *spkt;
|
struct sockaddr_pkt *spkt;
|
||||||
|
@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When we registered the protocol we saved the socket in the data
|
* When we registered the protocol we saved the socket in the data
|
||||||
@@ -1791,6 +1792,7 @@ static int packet_rcv_spkt(struct sk_buf
|
@@ -1784,6 +1785,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sk = pt->af_packet_priv;
|
sk = pt->af_packet_priv;
|
||||||
|
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Yank back the headers [hope the device set this
|
* Yank back the headers [hope the device set this
|
||||||
@@ -1803,7 +1805,7 @@ static int packet_rcv_spkt(struct sk_buf
|
@@ -1796,7 +1798,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||||
* so that this procedure is noop.
|
* so that this procedure is noop.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
@@ -2006,12 +2008,12 @@ static int packet_rcv(struct sk_buff *sk
|
@@ -1999,12 +2001,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||||
int skb_len = skb->len;
|
int skb_len = skb->len;
|
||||||
unsigned int snaplen, res;
|
unsigned int snaplen, res;
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
goto drop;
|
goto drop;
|
||||||
|
|
||||||
@@ -2131,12 +2133,12 @@ static int tpacket_rcv(struct sk_buff *s
|
@@ -2124,12 +2126,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
|
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
|
||||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
|
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
goto drop;
|
goto drop;
|
||||||
|
|
||||||
@@ -3127,6 +3129,7 @@ static int packet_create(struct net *net
|
@@ -3126,6 +3128,7 @@ static int packet_create(struct net *net
|
||||||
mutex_init(&po->pg_vec_lock);
|
mutex_init(&po->pg_vec_lock);
|
||||||
po->rollover = NULL;
|
po->rollover = NULL;
|
||||||
po->prot_hook.func = packet_rcv;
|
po->prot_hook.func = packet_rcv;
|
||||||
|
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
if (sock->type == SOCK_PACKET)
|
if (sock->type == SOCK_PACKET)
|
||||||
po->prot_hook.func = packet_rcv_spkt;
|
po->prot_hook.func = packet_rcv_spkt;
|
||||||
@@ -3756,6 +3759,16 @@ packet_setsockopt(struct socket *sock, i
|
@@ -3755,6 +3758,16 @@ packet_setsockopt(struct socket *sock, i
|
||||||
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
default:
|
default:
|
||||||
return -ENOPROTOOPT;
|
return -ENOPROTOOPT;
|
||||||
}
|
}
|
||||||
@@ -3809,6 +3822,13 @@ static int packet_getsockopt(struct sock
|
@@ -3807,6 +3820,13 @@ static int packet_getsockopt(struct sock
|
||||||
case PACKET_VNET_HDR:
|
case PACKET_VNET_HDR:
|
||||||
val = po->has_vnet_hdr;
|
val = po->has_vnet_hdr;
|
||||||
break;
|
break;
|
||||||
|
@ -124,7 +124,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
break;
|
break;
|
||||||
--- a/net/packet/internal.h
|
--- a/net/packet/internal.h
|
||||||
+++ b/net/packet/internal.h
|
+++ b/net/packet/internal.h
|
||||||
@@ -129,6 +129,7 @@ struct packet_sock {
|
@@ -128,6 +128,7 @@ struct packet_sock {
|
||||||
struct net_device __rcu *cached_dev;
|
struct net_device __rcu *cached_dev;
|
||||||
int (*xmit)(struct sk_buff *skb);
|
int (*xmit)(struct sk_buff *skb);
|
||||||
struct packet_type prot_hook ____cacheline_aligned_in_smp;
|
struct packet_type prot_hook ____cacheline_aligned_in_smp;
|
||||||
|
|
|
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
#endif
|
#endif
|
||||||
@@ -3597,6 +3636,17 @@ static int __net_init ip6_route_net_init
|
@@ -3601,6 +3640,17 @@ static int __net_init ip6_route_net_init
|
||||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
|
@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
net->ipv6.sysctl.flush_delay = 0;
|
net->ipv6.sysctl.flush_delay = 0;
|
||||||
@@ -3615,6 +3665,8 @@ out:
|
@@ -3619,6 +3669,8 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
|
@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
out_ip6_prohibit_entry:
|
out_ip6_prohibit_entry:
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
out_ip6_null_entry:
|
out_ip6_null_entry:
|
||||||
@@ -3632,6 +3684,7 @@ static void __net_exit ip6_route_net_exi
|
@@ -3636,6 +3688,7 @@ static void __net_exit ip6_route_net_exi
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||||
|
@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
#endif
|
#endif
|
||||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||||
}
|
}
|
||||||
@@ -3705,6 +3758,9 @@ void __init ip6_route_init_special_entri
|
@@ -3709,6 +3762,9 @@ void __init ip6_route_init_special_entri
|
||||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
|
|
|
@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -4259,6 +4259,9 @@ static enum gro_result dev_gro_receive(s
|
@@ -4260,6 +4260,9 @@ static enum gro_result dev_gro_receive(s
|
||||||
enum gro_result ret;
|
enum gro_result ret;
|
||||||
int grow;
|
int grow;
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
if (!(skb->dev->features & NETIF_F_GRO))
|
if (!(skb->dev->features & NETIF_F_GRO))
|
||||||
goto normal;
|
goto normal;
|
||||||
|
|
||||||
@@ -5425,6 +5428,48 @@ static void __netdev_adjacent_dev_unlink
|
@@ -5426,6 +5429,48 @@ static void __netdev_adjacent_dev_unlink
|
||||||
&upper_dev->adj_list.lower);
|
&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,
|
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||||
struct net_device *upper_dev, bool master,
|
struct net_device *upper_dev, bool master,
|
||||||
void *private)
|
void *private)
|
||||||
@@ -5496,6 +5541,7 @@ static int __netdev_upper_dev_link(struc
|
@@ -5497,6 +5542,7 @@ static int __netdev_upper_dev_link(struc
|
||||||
goto rollback_lower_mesh;
|
goto rollback_lower_mesh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -5622,6 +5668,7 @@ void netdev_upper_dev_unlink(struct net_
|
@@ -5623,6 +5669,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||||
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
|
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
|
||||||
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
|
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
}
|
}
|
||||||
@@ -6162,6 +6209,7 @@ int dev_set_mac_address(struct net_devic
|
@@ -6163,6 +6210,7 @@ int dev_set_mac_address(struct net_devic
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
dev->addr_assign_type = NET_ADDR_SET;
|
dev->addr_assign_type = NET_ADDR_SET;
|
||||||
|
|
|
@ -86,7 +86,7 @@
|
||||||
help
|
help
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -2746,10 +2746,20 @@ static int xmit_one(struct sk_buff *skb,
|
@@ -2747,10 +2747,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||||
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
|
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
|
||||||
dev_queue_xmit_nit(skb, dev);
|
dev_queue_xmit_nit(skb, dev);
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
}
|
}
|
||||||
--- a/fs/proc/proc_tty.c
|
--- a/fs/proc/proc_tty.c
|
||||||
+++ b/fs/proc/proc_tty.c
|
+++ b/fs/proc/proc_tty.c
|
||||||
@@ -143,7 +143,10 @@ static const struct file_operations proc
|
@@ -144,7 +144,10 @@ static const struct file_operations proc
|
||||||
void proc_tty_register_driver(struct tty_driver *driver)
|
void proc_tty_register_driver(struct tty_driver *driver)
|
||||||
{
|
{
|
||||||
struct proc_dir_entry *ent;
|
struct proc_dir_entry *ent;
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
if (!driver->driver_name || driver->proc_entry ||
|
if (!driver->driver_name || driver->proc_entry ||
|
||||||
!driver->ops->proc_fops)
|
!driver->ops->proc_fops)
|
||||||
return;
|
return;
|
||||||
@@ -160,6 +163,9 @@ void proc_tty_unregister_driver(struct t
|
@@ -161,6 +164,9 @@ void proc_tty_unregister_driver(struct t
|
||||||
{
|
{
|
||||||
struct proc_dir_entry *ent;
|
struct proc_dir_entry *ent;
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
ent = driver->proc_entry;
|
ent = driver->proc_entry;
|
||||||
if (!ent)
|
if (!ent)
|
||||||
return;
|
return;
|
||||||
@@ -174,6 +180,9 @@ void proc_tty_unregister_driver(struct t
|
@@ -175,6 +181,9 @@ void proc_tty_unregister_driver(struct t
|
||||||
*/
|
*/
|
||||||
void __init proc_tty_init(void)
|
void __init proc_tty_init(void)
|
||||||
{
|
{
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
}
|
}
|
||||||
--- a/mm/vmstat.c
|
--- a/mm/vmstat.c
|
||||||
+++ b/mm/vmstat.c
|
+++ b/mm/vmstat.c
|
||||||
@@ -1553,10 +1553,12 @@ static int __init setup_vmstat(void)
|
@@ -1555,10 +1555,12 @@ static int __init setup_vmstat(void)
|
||||||
cpu_notifier_register_done();
|
cpu_notifier_register_done();
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--- a/kernel/sched/core.c
|
--- a/kernel/sched/core.c
|
||||||
+++ b/kernel/sched/core.c
|
+++ b/kernel/sched/core.c
|
||||||
@@ -2097,6 +2097,7 @@ int wake_up_state(struct task_struct *p,
|
@@ -2096,6 +2096,7 @@ int wake_up_state(struct task_struct *p,
|
||||||
{
|
{
|
||||||
return try_to_wake_up(p, state, 0);
|
return try_to_wake_up(p, state, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,7 +115,7 @@
|
||||||
case UPIO_AU:
|
case UPIO_AU:
|
||||||
p->serial_out(p, offset, value);
|
p->serial_out(p, offset, value);
|
||||||
p->serial_in(p, UART_LCR); /* safe, no side-effects */
|
p->serial_in(p, UART_LCR); /* safe, no side-effects */
|
||||||
@@ -2457,6 +2477,7 @@ static int serial8250_request_std_resour
|
@@ -2460,6 +2480,7 @@ static int serial8250_request_std_resour
|
||||||
case UPIO_MEM32:
|
case UPIO_MEM32:
|
||||||
case UPIO_MEM32BE:
|
case UPIO_MEM32BE:
|
||||||
case UPIO_MEM:
|
case UPIO_MEM:
|
||||||
|
@ -123,7 +123,7 @@
|
||||||
if (!port->mapbase)
|
if (!port->mapbase)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -2494,6 +2515,7 @@ static void serial8250_release_std_resou
|
@@ -2497,6 +2518,7 @@ static void serial8250_release_std_resou
|
||||||
case UPIO_MEM32:
|
case UPIO_MEM32:
|
||||||
case UPIO_MEM32BE:
|
case UPIO_MEM32BE:
|
||||||
case UPIO_MEM:
|
case UPIO_MEM:
|
||||||
|
|
|
@ -2512,10 +2512,10 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
{
|
{
|
||||||
- struct nand_chip *chip = mtd->priv;
|
- struct nand_chip *chip = mtd->priv;
|
||||||
+ struct nand_chip *chip = mtd_to_nand(mtd);
|
+ struct nand_chip *chip = mtd_to_nand(mtd);
|
||||||
|
int chipnr = (int)(to >> chip->chip_shift);
|
||||||
struct mtd_oob_ops ops;
|
struct mtd_oob_ops ops;
|
||||||
int ret;
|
int ret;
|
||||||
|
@@ -2725,15 +2760,12 @@ static int nand_do_write_oob(struct mtd_
|
||||||
@@ -2722,15 +2757,12 @@ static int nand_do_write_oob(struct mtd_
|
|
||||||
struct mtd_oob_ops *ops)
|
struct mtd_oob_ops *ops)
|
||||||
{
|
{
|
||||||
int chipnr, page, status, len;
|
int chipnr, page, status, len;
|
||||||
|
@ -2533,7 +2533,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
|
|
||||||
/* Do not allow write past end of page */
|
/* Do not allow write past end of page */
|
||||||
if ((ops->ooboffs + ops->ooblen) > len) {
|
if ((ops->ooboffs + ops->ooblen) > len) {
|
||||||
@@ -2847,7 +2879,7 @@ out:
|
@@ -2850,7 +2882,7 @@ out:
|
||||||
*/
|
*/
|
||||||
static int single_erase(struct mtd_info *mtd, int page)
|
static int single_erase(struct mtd_info *mtd, int page)
|
||||||
{
|
{
|
||||||
|
@ -2542,7 +2542,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
/* Send commands to erase a block */
|
/* Send commands to erase a block */
|
||||||
chip->cmdfunc(mtd, NAND_CMD_ERASE1, -1, page);
|
chip->cmdfunc(mtd, NAND_CMD_ERASE1, -1, page);
|
||||||
chip->cmdfunc(mtd, NAND_CMD_ERASE2, -1, -1);
|
chip->cmdfunc(mtd, NAND_CMD_ERASE2, -1, -1);
|
||||||
@@ -2879,7 +2911,7 @@ int nand_erase_nand(struct mtd_info *mtd
|
@@ -2882,7 +2914,7 @@ int nand_erase_nand(struct mtd_info *mtd
|
||||||
int allowbbt)
|
int allowbbt)
|
||||||
{
|
{
|
||||||
int page, status, pages_per_block, ret, chipnr;
|
int page, status, pages_per_block, ret, chipnr;
|
||||||
|
@ -2551,7 +2551,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
loff_t len;
|
loff_t len;
|
||||||
|
|
||||||
pr_debug("%s: start = 0x%012llx, len = %llu\n",
|
pr_debug("%s: start = 0x%012llx, len = %llu\n",
|
||||||
@@ -2918,7 +2950,7 @@ int nand_erase_nand(struct mtd_info *mtd
|
@@ -2921,7 +2953,7 @@ int nand_erase_nand(struct mtd_info *mtd
|
||||||
while (len) {
|
while (len) {
|
||||||
/* Check if we have a bad block, we do not erase bad blocks! */
|
/* Check if we have a bad block, we do not erase bad blocks! */
|
||||||
if (nand_block_checkbad(mtd, ((loff_t) page) <<
|
if (nand_block_checkbad(mtd, ((loff_t) page) <<
|
||||||
|
@ -2560,7 +2560,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
pr_warn("%s: attempt to erase a bad block at page 0x%08x\n",
|
pr_warn("%s: attempt to erase a bad block at page 0x%08x\n",
|
||||||
__func__, page);
|
__func__, page);
|
||||||
instr->state = MTD_ERASE_FAILED;
|
instr->state = MTD_ERASE_FAILED;
|
||||||
@@ -3005,7 +3037,20 @@ static void nand_sync(struct mtd_info *m
|
@@ -3008,7 +3040,20 @@ static void nand_sync(struct mtd_info *m
|
||||||
*/
|
*/
|
||||||
static int nand_block_isbad(struct mtd_info *mtd, loff_t offs)
|
static int nand_block_isbad(struct mtd_info *mtd, loff_t offs)
|
||||||
{
|
{
|
||||||
|
@ -2582,7 +2582,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3094,7 +3139,7 @@ static int nand_suspend(struct mtd_info
|
@@ -3097,7 +3142,7 @@ static int nand_suspend(struct mtd_info
|
||||||
*/
|
*/
|
||||||
static void nand_resume(struct mtd_info *mtd)
|
static void nand_resume(struct mtd_info *mtd)
|
||||||
{
|
{
|
||||||
|
@ -2591,7 +2591,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
|
|
||||||
if (chip->state == FL_PM_SUSPENDED)
|
if (chip->state == FL_PM_SUSPENDED)
|
||||||
nand_release_device(mtd);
|
nand_release_device(mtd);
|
||||||
@@ -3266,7 +3311,7 @@ ext_out:
|
@@ -3269,7 +3314,7 @@ ext_out:
|
||||||
|
|
||||||
static int nand_setup_read_retry_micron(struct mtd_info *mtd, int retry_mode)
|
static int nand_setup_read_retry_micron(struct mtd_info *mtd, int retry_mode)
|
||||||
{
|
{
|
||||||
|
@ -2600,7 +2600,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
uint8_t feature[ONFI_SUBFEATURE_PARAM_LEN] = {retry_mode};
|
uint8_t feature[ONFI_SUBFEATURE_PARAM_LEN] = {retry_mode};
|
||||||
|
|
||||||
return chip->onfi_set_features(mtd, chip, ONFI_FEATURE_ADDR_READ_RETRY,
|
return chip->onfi_set_features(mtd, chip, ONFI_FEATURE_ADDR_READ_RETRY,
|
||||||
@@ -3937,10 +3982,13 @@ ident_done:
|
@@ -3940,10 +3985,13 @@ ident_done:
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2617,7 +2617,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
|
|
||||||
if (of_get_nand_bus_width(dn) == 16)
|
if (of_get_nand_bus_width(dn) == 16)
|
||||||
chip->options |= NAND_BUSWIDTH_16;
|
chip->options |= NAND_BUSWIDTH_16;
|
||||||
@@ -3949,6 +3997,7 @@ static int nand_dt_init(struct mtd_info
|
@@ -3952,6 +4000,7 @@ static int nand_dt_init(struct mtd_info
|
||||||
chip->bbt_options |= NAND_BBT_USE_FLASH;
|
chip->bbt_options |= NAND_BBT_USE_FLASH;
|
||||||
|
|
||||||
ecc_mode = of_get_nand_ecc_mode(dn);
|
ecc_mode = of_get_nand_ecc_mode(dn);
|
||||||
|
@ -2625,7 +2625,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
ecc_strength = of_get_nand_ecc_strength(dn);
|
ecc_strength = of_get_nand_ecc_strength(dn);
|
||||||
ecc_step = of_get_nand_ecc_step_size(dn);
|
ecc_step = of_get_nand_ecc_step_size(dn);
|
||||||
|
|
||||||
@@ -3961,6 +4010,9 @@ static int nand_dt_init(struct mtd_info
|
@@ -3964,6 +4013,9 @@ static int nand_dt_init(struct mtd_info
|
||||||
if (ecc_mode >= 0)
|
if (ecc_mode >= 0)
|
||||||
chip->ecc.mode = ecc_mode;
|
chip->ecc.mode = ecc_mode;
|
||||||
|
|
||||||
|
@ -2635,7 +2635,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
if (ecc_strength >= 0)
|
if (ecc_strength >= 0)
|
||||||
chip->ecc.strength = ecc_strength;
|
chip->ecc.strength = ecc_strength;
|
||||||
|
|
||||||
@@ -3984,15 +4036,16 @@ int nand_scan_ident(struct mtd_info *mtd
|
@@ -3987,15 +4039,16 @@ int nand_scan_ident(struct mtd_info *mtd
|
||||||
struct nand_flash_dev *table)
|
struct nand_flash_dev *table)
|
||||||
{
|
{
|
||||||
int i, nand_maf_id, nand_dev_id;
|
int i, nand_maf_id, nand_dev_id;
|
||||||
|
@ -2658,7 +2658,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
|
|
||||||
if (!mtd->name && mtd->dev.parent)
|
if (!mtd->name && mtd->dev.parent)
|
||||||
mtd->name = dev_name(mtd->dev.parent);
|
mtd->name = dev_name(mtd->dev.parent);
|
||||||
@@ -4055,7 +4108,7 @@ EXPORT_SYMBOL(nand_scan_ident);
|
@@ -4058,7 +4111,7 @@ EXPORT_SYMBOL(nand_scan_ident);
|
||||||
*/
|
*/
|
||||||
static bool nand_ecc_strength_good(struct mtd_info *mtd)
|
static bool nand_ecc_strength_good(struct mtd_info *mtd)
|
||||||
{
|
{
|
||||||
|
@ -2667,7 +2667,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
struct nand_ecc_ctrl *ecc = &chip->ecc;
|
struct nand_ecc_ctrl *ecc = &chip->ecc;
|
||||||
int corr, ds_corr;
|
int corr, ds_corr;
|
||||||
|
|
||||||
@@ -4083,10 +4136,10 @@ static bool nand_ecc_strength_good(struc
|
@@ -4086,10 +4139,10 @@ static bool nand_ecc_strength_good(struc
|
||||||
*/
|
*/
|
||||||
int nand_scan_tail(struct mtd_info *mtd)
|
int nand_scan_tail(struct mtd_info *mtd)
|
||||||
{
|
{
|
||||||
|
@ -2680,7 +2680,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
|
|
||||||
/* New bad blocks should be marked in OOB, flash-based BBT, or both */
|
/* New bad blocks should be marked in OOB, flash-based BBT, or both */
|
||||||
BUG_ON((chip->bbt_options & NAND_BBT_NO_OOB_BBM) &&
|
BUG_ON((chip->bbt_options & NAND_BBT_NO_OOB_BBM) &&
|
||||||
@@ -4113,19 +4166,15 @@ int nand_scan_tail(struct mtd_info *mtd)
|
@@ -4116,19 +4169,15 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
/*
|
/*
|
||||||
* If no default placement scheme is given, select an appropriate one.
|
* If no default placement scheme is given, select an appropriate one.
|
||||||
*/
|
*/
|
||||||
|
@ -2703,7 +2703,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
pr_warn("No oob scheme defined for oobsize %d\n",
|
pr_warn("No oob scheme defined for oobsize %d\n",
|
||||||
@@ -4168,7 +4217,7 @@ int nand_scan_tail(struct mtd_info *mtd)
|
@@ -4171,7 +4220,7 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
ecc->write_oob = nand_write_oob_std;
|
ecc->write_oob = nand_write_oob_std;
|
||||||
if (!ecc->read_subpage)
|
if (!ecc->read_subpage)
|
||||||
ecc->read_subpage = nand_read_subpage;
|
ecc->read_subpage = nand_read_subpage;
|
||||||
|
@ -2712,7 +2712,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
ecc->write_subpage = nand_write_subpage_hwecc;
|
ecc->write_subpage = nand_write_subpage_hwecc;
|
||||||
|
|
||||||
case NAND_ECC_HW_SYNDROME:
|
case NAND_ECC_HW_SYNDROME:
|
||||||
@@ -4246,10 +4295,8 @@ int nand_scan_tail(struct mtd_info *mtd)
|
@@ -4249,10 +4298,8 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See nand_bch_init() for details. */
|
/* See nand_bch_init() for details. */
|
||||||
|
@ -2725,7 +2725,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
if (!ecc->priv) {
|
if (!ecc->priv) {
|
||||||
pr_warn("BCH ECC initialization failed!\n");
|
pr_warn("BCH ECC initialization failed!\n");
|
||||||
BUG();
|
BUG();
|
||||||
@@ -4280,20 +4327,9 @@ int nand_scan_tail(struct mtd_info *mtd)
|
@@ -4283,20 +4330,9 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
if (!ecc->write_oob_raw)
|
if (!ecc->write_oob_raw)
|
||||||
ecc->write_oob_raw = ecc->write_oob;
|
ecc->write_oob_raw = ecc->write_oob;
|
||||||
|
|
||||||
|
@ -2749,7 +2749,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the number of read / write steps for one page depending on ECC
|
* Set the number of read / write steps for one page depending on ECC
|
||||||
@@ -4306,6 +4342,21 @@ int nand_scan_tail(struct mtd_info *mtd)
|
@@ -4309,6 +4345,21 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
}
|
}
|
||||||
ecc->total = ecc->steps * ecc->bytes;
|
ecc->total = ecc->steps * ecc->bytes;
|
||||||
|
|
||||||
|
@ -2771,7 +2771,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
/* Allow subpage writes up to ecc.steps. Not possible for MLC flash */
|
/* Allow subpage writes up to ecc.steps. Not possible for MLC flash */
|
||||||
if (!(chip->options & NAND_NO_SUBPAGE_WRITE) && nand_is_slc(chip)) {
|
if (!(chip->options & NAND_NO_SUBPAGE_WRITE) && nand_is_slc(chip)) {
|
||||||
switch (ecc->steps) {
|
switch (ecc->steps) {
|
||||||
@@ -4362,10 +4413,6 @@ int nand_scan_tail(struct mtd_info *mtd)
|
@@ -4365,10 +4416,6 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
mtd->_block_markbad = nand_block_markbad;
|
mtd->_block_markbad = nand_block_markbad;
|
||||||
mtd->writebufsize = mtd->writesize;
|
mtd->writebufsize = mtd->writesize;
|
||||||
|
|
||||||
|
@ -2782,7 +2782,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
/*
|
/*
|
||||||
* Initialize bitflip_threshold to its default prior scan_bbt() call.
|
* Initialize bitflip_threshold to its default prior scan_bbt() call.
|
||||||
* scan_bbt() might invoke mtd_read(), thus bitflip_threshold must be
|
* scan_bbt() might invoke mtd_read(), thus bitflip_threshold must be
|
||||||
@@ -4421,7 +4468,7 @@ EXPORT_SYMBOL(nand_scan);
|
@@ -4424,7 +4471,7 @@ EXPORT_SYMBOL(nand_scan);
|
||||||
*/
|
*/
|
||||||
void nand_release(struct mtd_info *mtd)
|
void nand_release(struct mtd_info *mtd)
|
||||||
{
|
{
|
||||||
|
|
|
@ -87,7 +87,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
||||||
}
|
}
|
||||||
--- a/drivers/mtd/nand/nand_base.c
|
--- a/drivers/mtd/nand/nand_base.c
|
||||||
+++ b/drivers/mtd/nand/nand_base.c
|
+++ b/drivers/mtd/nand/nand_base.c
|
||||||
@@ -3202,8 +3202,7 @@ static void nand_set_defaults(struct nan
|
@@ -3205,8 +3205,7 @@ static void nand_set_defaults(struct nan
|
||||||
|
|
||||||
if (!chip->controller) {
|
if (!chip->controller) {
|
||||||
chip->controller = &chip->hwcontrol;
|
chip->controller = &chip->hwcontrol;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/pinctrl/Kconfig
|
--- a/drivers/pinctrl/Kconfig
|
||||||
+++ b/drivers/pinctrl/Kconfig
|
+++ b/drivers/pinctrl/Kconfig
|
||||||
@@ -227,6 +227,15 @@ config PINCTRL_COH901
|
@@ -228,6 +228,15 @@ config PINCTRL_COH901
|
||||||
COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
|
COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
|
||||||
ports of 8 GPIO pins each.
|
ports of 8 GPIO pins each.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue