Refreshed all patches.
Fixes:
- CVE-2013-1798
- CVE-2019-3016
Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
endif
LINUX_VERSION-4.14 = .171
-LINUX_VERSION-4.19 = .101
+LINUX_VERSION-4.19 = .105
LINUX_KERNEL_HASH-4.14.171 = 4fe02489e4b4a187eccf0ef87df6100534c9d485e76d876b1fa247c7635332a0
-LINUX_KERNEL_HASH-4.19.101 = be26156abdb38ac0576a34a235ef456bb8ca67fbbe56fc6649b8d069159f8bc4
+LINUX_KERNEL_HASH-4.19.105 = f82c778ab404feb3dce6c08bff089fe2e1d86b62fc40cf2950112ea7aa22bf12
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
--- a/drivers/tty/serial/ar933x_uart.c
+++ b/drivers/tty/serial/ar933x_uart.c
-@@ -328,6 +328,10 @@ static void ar933x_uart_set_termios(stru
+@@ -286,6 +286,10 @@ static void ar933x_uart_set_termios(stru
ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
AR933X_UART_CS_HOST_INT_EN);
/* reenable the UART */
ar933x_uart_rmw(up, AR933X_UART_CS_REG,
AR933X_UART_CS_IF_MODE_M << AR933X_UART_CS_IF_MODE_S,
-@@ -460,6 +464,10 @@ static int ar933x_uart_startup(struct ua
+@@ -418,6 +422,10 @@ static int ar933x_uart_startup(struct ua
ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
AR933X_UART_CS_HOST_INT_EN);
* No flags defined yet.
--- a/net/core/utils.c
+++ b/net/core/utils.c
-@@ -447,8 +447,14 @@ void inet_proto_csum_replace16(__sum16 *
+@@ -464,8 +464,14 @@ void inet_proto_csum_replace16(__sum16 *
bool pseudohdr)
{
__be32 diff[] = {
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -7977,8 +7977,6 @@ int alloc_contig_range(unsigned long sta
+@@ -8007,8 +8007,6 @@ int alloc_contig_range(unsigned long sta
/* Make sure the range is really isolated. */
if (test_pages_isolated(outer_start, end, false)) {
+make sense for developers (since it avoids problems with namespaces).
--- a/drivers/of/Kconfig
+++ b/drivers/of/Kconfig
-@@ -104,4 +104,11 @@ config OF_OVERLAY
- config OF_NUMA
+@@ -108,4 +108,11 @@ config OF_DMA_DEFAULT_COHERENT
+ # arches should select this if DMA is coherent by default for OF devices
bool
+config OF_CONFIGFS
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1301,6 +1301,18 @@ static const struct flash_info *spi_nor_
+@@ -1305,6 +1305,18 @@ static const struct flash_info *spi_nor_
}
dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n",
id[0], id[1], id[2]);
/*
-@@ -128,9 +128,9 @@ struct user_sve_header {
+@@ -129,9 +129,9 @@ struct user_sve_header {
*/
/* Offset from the start of struct user_sve_header to the register data */
/*
* The register data content and layout depends on the value of the
-@@ -176,39 +176,36 @@ struct user_sve_header {
+@@ -177,39 +177,36 @@ struct user_sve_header {
* Additional data might be appended in the future.
*/
#define SVE_PT_SVE_FPCR_OFFSET(vq) \
(SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE)
-@@ -219,8 +216,8 @@ struct user_sve_header {
+@@ -220,8 +217,8 @@ struct user_sve_header {
#define SVE_PT_SVE_SIZE(vq, flags) \
((SVE_PT_SVE_FPCR_OFFSET(vq) + SVE_PT_SVE_FPCR_SIZE \
config MODULES_TREE_LOOKUP
--- a/kernel/module.c
+++ b/kernel/module.c
-@@ -3027,9 +3027,11 @@ static int setup_load_info(struct load_i
+@@ -3029,9 +3029,11 @@ static int setup_load_info(struct load_i
static int check_modinfo(struct module *mod, struct load_info *info, int flags)
{
if (flags & MODULE_INIT_IGNORE_VERMAGIC)
modmagic = NULL;
-@@ -3050,6 +3052,7 @@ static int check_modinfo(struct module *
+@@ -3052,6 +3054,7 @@ static int check_modinfo(struct module *
mod->name);
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
}
do { \
--- a/ipc/msg.c
+++ b/ipc/msg.c
-@@ -1291,6 +1291,9 @@ void __init msg_init(void)
+@@ -1292,6 +1292,9 @@ void __init msg_init(void)
{
msg_init_ns(&init_ipc_ns);
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1094,6 +1094,7 @@ static const struct flash_info spi_nor_i
+@@ -1099,6 +1099,7 @@ static const struct flash_info spi_nor_i
{ "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) },
{ "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
-@@ -1280,11 +1281,12 @@ static const struct flash_info spi_nor_i
+@@ -1284,11 +1285,12 @@ static const struct flash_info spi_nor_i
{ },
};
tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
if (tmp < 0) {
-@@ -1295,10 +1297,16 @@ static const struct flash_info *spi_nor_
+@@ -1299,10 +1301,16 @@ static const struct flash_info *spi_nor_
for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) {
info = &spi_nor_ids[tmp];
if (info->id_len) {
dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n",
id[0], id[1], id[2]);
return ERR_PTR(-ENODEV);
-@@ -2832,7 +2840,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -2836,7 +2844,7 @@ int spi_nor_scan(struct spi_nor *nor, co
info = spi_nor_match_id(name);
/* Try to auto-detect if chip name wasn't specified or not found */
if (!info)
if (IS_ERR_OR_NULL(info))
return -ENOENT;
-@@ -2843,7 +2851,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -2847,7 +2855,7 @@ int spi_nor_scan(struct spi_nor *nor, co
if (name && info->id_len) {
const struct flash_info *jinfo;
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1091,6 +1091,8 @@ static const struct flash_info spi_nor_i
+@@ -1096,6 +1096,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) },
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
-@@ -809,6 +809,14 @@ config CMDLINE_FORCE
+@@ -810,6 +810,14 @@ config CMDLINE_FORCE
This is useful if you cannot or don't want to change the
command-line options your boot loader passes to the kernel.
---
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -4257,6 +4257,15 @@ static int mvneta_ethtool_set_eee(struct
+@@ -4272,6 +4272,15 @@ static int mvneta_ethtool_set_eee(struct
return phylink_ethtool_set_eee(pp->phylink, eee);
}
static const struct net_device_ops mvneta_netdev_ops = {
.ndo_open = mvneta_open,
.ndo_stop = mvneta_stop,
-@@ -4267,6 +4276,7 @@ static const struct net_device_ops mvnet
+@@ -4282,6 +4291,7 @@ static const struct net_device_ops mvnet
.ndo_fix_features = mvneta_fix_features,
.ndo_get_stats64 = mvneta_get_stats64,
.ndo_do_ioctl = mvneta_ioctl,
#define MVNETA_MIB_COUNTERS_BASE 0x3000
#define MVNETA_MIB_LATE_COLLISION 0x7c
#define MVNETA_DA_FILT_SPEC_MCAST 0x3400
-@@ -3344,6 +3346,7 @@ static void mvneta_validate(struct net_d
+@@ -3359,6 +3361,7 @@ static void mvneta_validate(struct net_d
if (state->interface != PHY_INTERFACE_MODE_NA &&
state->interface != PHY_INTERFACE_MODE_QSGMII &&
state->interface != PHY_INTERFACE_MODE_SGMII &&
!phy_interface_mode_is_8023z(state->interface) &&
!phy_interface_mode_is_rgmii(state->interface)) {
bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
-@@ -3356,9 +3359,15 @@ static void mvneta_validate(struct net_d
+@@ -3371,9 +3374,15 @@ static void mvneta_validate(struct net_d
/* Asymmetric pause is unsupported */
phylink_set(mask, Pause);
if (!phy_interface_mode_is_8023z(state->interface)) {
/* 10M and 100M are only supported in non-802.3z mode */
-@@ -3419,12 +3428,14 @@ static void mvneta_mac_config(struct net
+@@ -3434,12 +3443,14 @@ static void mvneta_mac_config(struct net
struct mvneta_port *pp = netdev_priv(ndev);
u32 new_ctrl0, gmac_ctrl0 = mvreg_read(pp, MVNETA_GMAC_CTRL_0);
u32 new_ctrl2, gmac_ctrl2 = mvreg_read(pp, MVNETA_GMAC_CTRL_2);
new_clk = gmac_clk & ~MVNETA_GMAC_1MS_CLOCK_ENABLE;
new_an = gmac_an & ~(MVNETA_GMAC_INBAND_AN_ENABLE |
MVNETA_GMAC_INBAND_RESTART_AN |
-@@ -3457,7 +3468,7 @@ static void mvneta_mac_config(struct net
+@@ -3472,7 +3483,7 @@ static void mvneta_mac_config(struct net
if (state->duplex)
new_an |= MVNETA_GMAC_CONFIG_FULL_DUPLEX;
new_an |= MVNETA_GMAC_CONFIG_GMII_SPEED;
else if (state->speed == SPEED_100)
new_an |= MVNETA_GMAC_CONFIG_MII_SPEED;
-@@ -3496,10 +3507,18 @@ static void mvneta_mac_config(struct net
+@@ -3511,10 +3522,18 @@ static void mvneta_mac_config(struct net
MVNETA_GMAC_FORCE_LINK_DOWN);
}
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -493,7 +493,7 @@ struct mvneta_port {
+@@ -495,7 +495,7 @@ struct mvneta_port {
#if defined(__LITTLE_ENDIAN)
struct mvneta_tx_desc {
u32 command; /* Options used by HW for packet transmitting.*/
u16 data_size; /* Data size of transmitted packet in bytes */
u32 buf_phys_addr; /* Physical addr of transmitted buffer */
u32 reserved2; /* hw_cmd - (for future use, PMT) */
-@@ -518,7 +518,7 @@ struct mvneta_rx_desc {
+@@ -520,7 +520,7 @@ struct mvneta_rx_desc {
#else
struct mvneta_tx_desc {
u16 data_size; /* Data size of transmitted packet in bytes */
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3346,7 +3346,6 @@ static void mvneta_validate(struct net_d
+@@ -3361,7 +3361,6 @@ static void mvneta_validate(struct net_d
if (state->interface != PHY_INTERFACE_MODE_NA &&
state->interface != PHY_INTERFACE_MODE_QSGMII &&
state->interface != PHY_INTERFACE_MODE_SGMII &&
!phy_interface_mode_is_8023z(state->interface) &&
!phy_interface_mode_is_rgmii(state->interface)) {
bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
-@@ -3360,14 +3359,9 @@ static void mvneta_validate(struct net_d
+@@ -3375,14 +3374,9 @@ static void mvneta_validate(struct net_d
/* Asymmetric pause is unsupported */
phylink_set(mask, Pause);
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -4253,8 +4253,7 @@ static int mvneta_ethtool_set_eee(struct
+@@ -4268,8 +4268,7 @@ static int mvneta_ethtool_set_eee(struct
/* The Armada 37x documents do not give limits for this other than
* it being an 8-bit register. */
#include <linux/phy.h>
#include <linux/phylink.h>
#include <linux/platform_device.h>
-@@ -436,6 +437,7 @@ struct mvneta_port {
+@@ -438,6 +439,7 @@ struct mvneta_port {
struct device_node *dn;
unsigned int tx_csum_limit;
struct phylink *phylink;
struct mvneta_bm *bm_priv;
struct mvneta_bm_pool *pool_long;
-@@ -3153,6 +3155,8 @@ static void mvneta_start_dev(struct mvne
+@@ -3168,6 +3170,8 @@ static void mvneta_start_dev(struct mvne
{
int cpu;
mvneta_max_rx_size_set(pp, pp->pkt_size);
mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
-@@ -3215,6 +3219,8 @@ static void mvneta_stop_dev(struct mvnet
+@@ -3230,6 +3234,8 @@ static void mvneta_stop_dev(struct mvnet
mvneta_tx_reset(pp);
mvneta_rx_reset(pp);
}
static void mvneta_percpu_enable(void *arg)
-@@ -3340,6 +3346,7 @@ static int mvneta_set_mac_addr(struct ne
+@@ -3355,6 +3361,7 @@ static int mvneta_set_mac_addr(struct ne
static void mvneta_validate(struct net_device *ndev, unsigned long *supported,
struct phylink_link_state *state)
{
__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
/* We only support QSGMII, SGMII, 802.3z and RGMII modes */
-@@ -3360,8 +3367,13 @@ static void mvneta_validate(struct net_d
+@@ -3375,8 +3382,13 @@ static void mvneta_validate(struct net_d
phylink_set(mask, Pause);
/* Half-duplex at speeds higher than 100Mbit is unsupported */
if (!phy_interface_mode_is_8023z(state->interface)) {
/* 10M and 100M are only supported in non-802.3z mode */
-@@ -3375,6 +3387,11 @@ static void mvneta_validate(struct net_d
+@@ -3390,6 +3402,11 @@ static void mvneta_validate(struct net_d
__ETHTOOL_LINK_MODE_MASK_NBITS);
bitmap_and(state->advertising, state->advertising, mask,
__ETHTOOL_LINK_MODE_MASK_NBITS);
}
static int mvneta_mac_link_state(struct net_device *ndev,
-@@ -3386,7 +3403,9 @@ static int mvneta_mac_link_state(struct
+@@ -3401,7 +3418,9 @@ static int mvneta_mac_link_state(struct
gmac_stat = mvreg_read(pp, MVNETA_GMAC_STATUS);
if (gmac_stat & MVNETA_GMAC_SPEED_1000)
else if (gmac_stat & MVNETA_GMAC_SPEED_100)
state->speed = SPEED_100;
else
-@@ -3501,12 +3520,20 @@ static void mvneta_mac_config(struct net
+@@ -3516,12 +3535,20 @@ static void mvneta_mac_config(struct net
MVNETA_GMAC_FORCE_LINK_DOWN);
}
if (new_ctrl0 != gmac_ctrl0)
mvreg_write(pp, MVNETA_GMAC_CTRL_0, new_ctrl0);
if (new_ctrl2 != gmac_ctrl2)
-@@ -4419,7 +4446,7 @@ static int mvneta_port_power_up(struct m
+@@ -4434,7 +4461,7 @@ static int mvneta_port_power_up(struct m
if (phy_mode == PHY_INTERFACE_MODE_QSGMII)
mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_QSGMII_SERDES_PROTO);
else if (phy_mode == PHY_INTERFACE_MODE_SGMII ||
mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_SGMII_SERDES_PROTO);
else if (!phy_interface_mode_is_rgmii(phy_mode))
return -EINVAL;
-@@ -4436,6 +4463,7 @@ static int mvneta_probe(struct platform_
+@@ -4451,6 +4478,7 @@ static int mvneta_probe(struct platform_
struct mvneta_port *pp;
struct net_device *dev;
struct phylink *phylink;
const char *dt_mac_addr;
char hw_mac_addr[ETH_ALEN];
const char *mac_from;
-@@ -4461,6 +4489,14 @@ static int mvneta_probe(struct platform_
+@@ -4476,6 +4504,14 @@ static int mvneta_probe(struct platform_
goto err_free_irq;
}
phylink = phylink_create(dev, pdev->dev.fwnode, phy_mode,
&mvneta_phylink_ops);
if (IS_ERR(phylink)) {
-@@ -4477,6 +4513,7 @@ static int mvneta_probe(struct platform_
+@@ -4492,6 +4528,7 @@ static int mvneta_probe(struct platform_
pp = netdev_priv(dev);
spin_lock_init(&pp->lock);
pp->phylink = phylink;
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3151,11 +3151,26 @@ static int mvneta_setup_txqs(struct mvne
+@@ -3166,11 +3166,26 @@ static int mvneta_setup_txqs(struct mvne
return 0;
}
mvneta_max_rx_size_set(pp, pp->pkt_size);
mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
-@@ -3527,12 +3542,15 @@ static void mvneta_mac_config(struct net
+@@ -3542,12 +3557,15 @@ static void mvneta_mac_config(struct net
if (state->speed == SPEED_2500)
new_ctrl4 |= MVNETA_GMAC4_SHORT_PREAMBLE_ENABLE;
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3387,6 +3387,7 @@ static void mvneta_validate(struct net_d
+@@ -3402,6 +3402,7 @@ static void mvneta_validate(struct net_d
phylink_set(mask, 1000baseX_Full);
}
if (pp->comphy || state->interface == PHY_INTERFACE_MODE_2500BASEX) {