LINUX_VERSION-3.18 = .71
LINUX_VERSION-4.4 = .108
-LINUX_VERSION-4.9 = .73
+LINUX_VERSION-4.9 = .75
LINUX_VERSION-4.14 = .12
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
LINUX_KERNEL_HASH-4.4.108 = 5a001198625ce9f7b0ef1e4b43e033aea859e1ef3509532412cce8f0375ba51a
-LINUX_KERNEL_HASH-4.9.73 = 558b65c53f6d6c421d897ad4b651e51ba341fe4dd97122ec922e23ebd2c16e2b
+LINUX_KERNEL_HASH-4.9.75 = de6c31b7668d4047e370f4625362a02b9ebf7da56d5c0879a4961f620ab1cadf
LINUX_KERNEL_HASH-4.14.12 = 6608f7d480efc5c1078888e9344f4e0b0cd9bef0b6541cbdaec7d138e03856af
ifdef KERNEL_PATCHVER
#include "xhci.h"
#include "xhci-trace.h"
-@@ -236,6 +238,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -239,6 +241,458 @@ static void xhci_pme_acpi_rtd3_enable(st
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
#endif /* CONFIG_ACPI */
/* called during probe() after chip reset completes */
static int xhci_pci_setup(struct usb_hcd *hcd)
{
-@@ -275,6 +729,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -278,6 +732,22 @@ static int xhci_pci_probe(struct pci_dev
struct hc_driver *driver;
struct usb_hcd *hcd;
driver = (struct hc_driver *)id->driver_data;
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
-@@ -332,6 +802,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -335,6 +805,16 @@ static void xhci_pci_remove(struct pci_d
{
struct xhci_hcd *xhci;
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -193,7 +193,7 @@ static void xhci_pci_quirks(struct devic
- }
+@@ -196,7 +196,7 @@ static void xhci_pci_quirks(struct devic
+ xhci->quirks |= XHCI_TRUST_TX_LENGTH;
if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
pdev->device == 0x0015)
- xhci->quirks |= XHCI_RESET_ON_RESUME;
memcpy(p, foc->val, foc->len);
--- a/net/ipv4/igmp.c
+++ b/net/ipv4/igmp.c
-@@ -509,7 +509,7 @@ static struct sk_buff *add_grec(struct s
+@@ -533,7 +533,7 @@ static struct sk_buff *add_grec(struct s
if (!skb)
return NULL;
psrc = (__be32 *)skb_put(skb, sizeof(__be32));
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
-@@ -3886,14 +3886,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -3892,14 +3892,16 @@ static bool tcp_parse_aligned_timestamp(
{
const __be32 *ptr = (const __be32 *)(th + 1);
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
-@@ -367,7 +367,7 @@ struct tcp_sock {
+@@ -368,7 +368,7 @@ struct tcp_sock {
u32 *saved_syn;
};
TSQ_THROTTLED,
TSQ_QUEUED,
TCP_TSQ_DEFERRED, /* tcp_tasklet_func() found socket was owned */
-@@ -378,6 +378,15 @@ enum tsq_flags {
+@@ -379,6 +379,15 @@ enum tsq_flags {
*/
};
buf_int_enable_value |= NPS_ENET_ENABLE << RX_RDY_SHIFT;
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
-@@ -1615,7 +1615,7 @@ static int fec_enet_rx_napi(struct napi_
+@@ -1623,7 +1623,7 @@ static int fec_enet_rx_napi(struct napi_
fec_enet_tx(ndev);
if (pkts < budget) {
--- a/Makefile
+++ b/Makefile
-@@ -1197,7 +1197,6 @@ all: modules
+@@ -1200,7 +1200,6 @@ all: modules
PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
-@@ -1227,7 +1226,6 @@ _modinst_:
+@@ -1230,7 +1229,6 @@ _modinst_:
rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \
fi
}
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
-@@ -1791,10 +1791,12 @@ static int __init setup_vmstat(void)
+@@ -1792,10 +1792,12 @@ static int __init setup_vmstat(void)
cpu_notifier_register_done();
#endif
#ifdef CONFIG_PROC_FS
help
--- a/init/main.c
+++ b/init/main.c
-@@ -351,6 +351,29 @@ static inline void setup_nr_cpu_ids(void
+@@ -352,6 +352,29 @@ static inline void setup_nr_cpu_ids(void
static inline void smp_prepare_cpus(unsigned int maxcpus) { }
#endif
/*
* We need to store the untouched command line for future reference.
* We also need to store the touched command line since the parameter
-@@ -503,6 +526,7 @@ asmlinkage __visible void __init start_k
+@@ -505,6 +528,7 @@ asmlinkage __visible void __init start_k
pr_notice("%s", linux_banner);
setup_arch(&command_line);
mm_init_cpumask(&init_mm);
}
--- a/init/main.c
+++ b/init/main.c
-@@ -87,6 +87,10 @@
+@@ -88,6 +88,10 @@
#include <asm/sections.h>
#include <asm/cacheflush.h>
static int kernel_init(void *);
extern void init_IRQ(void);
-@@ -537,6 +541,18 @@ asmlinkage __visible void __init start_k
+@@ -539,6 +543,18 @@ asmlinkage __visible void __init start_k
page_alloc_init();
pr_notice("Kernel command line: %s\n", boot_command_line);
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -2634,9 +2634,11 @@ static int mvneta_poll(struct napi_struc
+@@ -2630,9 +2630,11 @@ static int mvneta_poll(struct napi_struc
mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
if (cause_misc & (MVNETA_CAUSE_PHY_STATUS_CHANGE |
}
/* Release Tx descriptors */
-@@ -2951,8 +2953,7 @@ static void mvneta_start_dev(struct mvne
+@@ -2947,8 +2949,7 @@ static void mvneta_start_dev(struct mvne
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
MVNETA_CAUSE_PHY_STATUS_CHANGE |
phylink_start(pp->phylink);
netif_tx_start_all_queues(pp->dev);
-@@ -3443,8 +3444,7 @@ static int mvneta_cpu_online(unsigned in
+@@ -3439,8 +3440,7 @@ static int mvneta_cpu_online(unsigned in
on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
MVNETA_CAUSE_PHY_STATUS_CHANGE |
netif_tx_start_all_queues(pp->dev);
spin_unlock(&pp->lock);
return 0;
-@@ -3485,8 +3485,7 @@ static int mvneta_cpu_dead(unsigned int
+@@ -3481,8 +3481,7 @@ static int mvneta_cpu_dead(unsigned int
on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
MVNETA_CAUSE_PHY_STATUS_CHANGE |
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3619,6 +3619,13 @@ mvneta_ethtool_get_link_ksettings(struct
+@@ -3615,6 +3615,13 @@ mvneta_ethtool_get_link_ksettings(struct
return phylink_ethtool_ksettings_get(pp->phylink, cmd);
}
/* Set interrupt coalescing for ethtools */
static int mvneta_ethtool_set_coalesce(struct net_device *dev,
struct ethtool_coalesce *c)
-@@ -3892,6 +3899,7 @@ static const struct net_device_ops mvnet
+@@ -3888,6 +3895,7 @@ static const struct net_device_ops mvnet
};
const struct ethtool_ops mvneta_eth_tool_ops = {
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3183,6 +3183,12 @@ static int mvneta_mac_link_state(struct
+@@ -3179,6 +3179,12 @@ static int mvneta_mac_link_state(struct
state->link = !!(gmac_stat & MVNETA_GMAC_LINK_UP);
state->duplex = !!(gmac_stat & MVNETA_GMAC_FULL_DUPLEX);
return 1;
}
-@@ -3225,6 +3231,8 @@ static void mvneta_mac_config(struct net
+@@ -3221,6 +3227,8 @@ static void mvneta_mac_config(struct net
if (phylink_test(state->advertising, Pause))
new_an |= MVNETA_GMAC_ADVERT_SYM_FLOW_CTRL;
switch (mode) {
case MLO_AN_SGMII:
-@@ -3249,7 +3257,7 @@ static void mvneta_mac_config(struct net
+@@ -3245,7 +3253,7 @@ static void mvneta_mac_config(struct net
/* The MAC only supports FD mode */
MVNETA_GMAC_CONFIG_FULL_DUPLEX;
new_an |= MVNETA_GMAC_AN_FLOW_CTRL_EN;
break;
-@@ -3715,6 +3723,22 @@ static int mvneta_ethtool_set_ringparam(
+@@ -3711,6 +3719,22 @@ static int mvneta_ethtool_set_ringparam(
return 0;
}
static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset,
u8 *data)
{
-@@ -3906,6 +3930,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3902,6 +3926,8 @@ const struct ethtool_ops mvneta_eth_tool
.get_drvinfo = mvneta_ethtool_get_drvinfo,
.get_ringparam = mvneta_ethtool_get_ringparam,
.set_ringparam = mvneta_ethtool_set_ringparam,
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3157,10 +3157,11 @@ static void mvneta_validate_support(stru
+@@ -3153,10 +3153,11 @@ static void mvneta_validate_support(stru
phylink_set(mask, 10baseT_Full);
phylink_set(mask, 100baseT_Half);
phylink_set(mask, 100baseT_Full);
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3147,6 +3147,8 @@ static void mvneta_validate_support(stru
+@@ -3143,6 +3143,8 @@ static void mvneta_validate_support(stru
phylink_set(mask, BNC);
phylink_set(mask, Backplane);
/* Half-duplex at speeds higher than 100Mbit is unsupported */
phylink_set(mask, 1000baseT_Full);
phylink_set(mask, 1000baseX_Full);
-@@ -3159,9 +3161,6 @@ static void mvneta_validate_support(stru
+@@ -3155,9 +3157,6 @@ static void mvneta_validate_support(stru
phylink_set(mask, 100baseT_Full);
}
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3309,7 +3309,8 @@ static void mvneta_mac_link_down(struct
+@@ -3305,7 +3305,8 @@ static void mvneta_mac_link_down(struct
}
}
u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)];
u32 indir[MVNETA_RSS_LU_TABLE_SIZE];
-@@ -3294,6 +3311,18 @@ static void mvneta_mac_config(struct net
+@@ -3290,6 +3307,18 @@ static void mvneta_mac_config(struct net
mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, new_an);
}
static void mvneta_mac_link_down(struct net_device *ndev, unsigned int mode)
{
struct mvneta_port *pp = netdev_priv(ndev);
-@@ -3307,6 +3336,9 @@ static void mvneta_mac_link_down(struct
+@@ -3303,6 +3332,9 @@ static void mvneta_mac_link_down(struct
val |= MVNETA_GMAC_FORCE_LINK_DOWN;
mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
}
}
static void mvneta_mac_link_up(struct net_device *ndev, unsigned int mode,
-@@ -3323,6 +3355,11 @@ static void mvneta_mac_link_up(struct ne
+@@ -3319,6 +3351,11 @@ static void mvneta_mac_link_up(struct ne
}
mvneta_port_up(pp);
}
static const struct phylink_mac_ops mvneta_phylink_ops = {
-@@ -3775,6 +3812,13 @@ static void mvneta_ethtool_update_stats(
+@@ -3771,6 +3808,13 @@ static void mvneta_ethtool_update_stats(
high = readl_relaxed(base + s->offset + 4);
val = (u64)high << 32 | low;
break;
}
pp->ethtool_stats[i] += val;
-@@ -3910,6 +3954,47 @@ static u16 mvneta_select_queue(struct ne
+@@ -3906,6 +3950,47 @@ static u16 mvneta_select_queue(struct ne
}
static const struct net_device_ops mvneta_netdev_ops = {
.ndo_open = mvneta_open,
.ndo_stop = mvneta_stop,
-@@ -3942,6 +4027,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3938,6 +4023,8 @@ const struct ethtool_ops mvneta_eth_tool
.set_rxfh = mvneta_ethtool_set_rxfh,
.get_link_ksettings = mvneta_ethtool_get_link_ksettings,
.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3954,6 +3954,22 @@ static u16 mvneta_select_queue(struct ne
+@@ -3950,6 +3950,22 @@ static u16 mvneta_select_queue(struct ne
}
static int mvneta_ethtool_get_eee(struct net_device *dev,
struct ethtool_eee *eee)
{
-@@ -4027,6 +4043,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -4023,6 +4039,8 @@ const struct ethtool_ops mvneta_eth_tool
.set_rxfh = mvneta_ethtool_set_rxfh,
.get_link_ksettings = mvneta_ethtool_get_link_ksettings,
.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
-@@ -443,6 +443,16 @@ static struct dmi_system_id __initdata r
+@@ -447,6 +447,16 @@ static struct dmi_system_id __initdata r
},
},