-LINUX_VERSION-5.10 = .220
-LINUX_KERNEL_HASH-5.10.220 = 7cc3aff924e9707a5dbf1200c79a7f01617e097b9b175d02bda8ca762aeee19b
+LINUX_VERSION-5.10 = .221
+LINUX_KERNEL_HASH-5.10.221 = da1dd47febac4f7856654038a47703666da3afba348b8e96e39584e0972e2725
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -279,6 +279,7 @@ static void xhci_pci_quirks(struct devic
+@@ -286,6 +286,7 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x0015) {
xhci->quirks |= XHCI_RESET_ON_RESUME;
xhci->quirks |= XHCI_ZERO_64B_REGS;
return -EINVAL;
if (lock)
regulator_lock(rdev);
-@@ -3234,7 +3235,8 @@ int regulator_list_hardware_vsel(struct
+@@ -3235,7 +3236,8 @@ int regulator_list_hardware_vsel(struct
struct regulator_dev *rdev = regulator->rdev;
const struct regulator_ops *ops = rdev->desc->ops;
return -EINVAL;
if (ops->set_voltage_sel != regulator_set_voltage_sel_regmap)
return -EOPNOTSUPP;
-@@ -4157,6 +4159,9 @@ int regulator_set_voltage_time(struct re
+@@ -4158,6 +4160,9 @@ int regulator_set_voltage_time(struct re
for (i = 0; i < rdev->desc->n_voltages; i++) {
/* We only look for exact voltage matches here */
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
-@@ -4162,6 +4162,9 @@ int regulator_set_voltage_time(struct re
+@@ -4163,6 +4163,9 @@ int regulator_set_voltage_time(struct re
if (i < rdev->desc->linear_min_sel)
continue;
if (lock)
regulator_lock(rdev);
ret = ops->list_voltage(rdev, selector);
-@@ -3235,9 +3236,10 @@ int regulator_list_hardware_vsel(struct
+@@ -3236,9 +3237,10 @@ int regulator_list_hardware_vsel(struct
struct regulator_dev *rdev = regulator->rdev;
const struct regulator_ops *ops = rdev->desc->ops;
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -927,10 +928,10 @@ static void tcp_v6_send_response(const s
+@@ -929,10 +930,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
#endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
-@@ -1474,8 +1474,8 @@ struct sk_buff *inet_gro_receive(struct
+@@ -1483,8 +1483,8 @@ struct sk_buff *inet_gro_receive(struct
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out_unlock;
--- a/drivers/tty/serial/sc16is7xx.c
+++ b/drivers/tty/serial/sc16is7xx.c
-@@ -710,6 +710,8 @@ static bool sc16is7xx_port_irq(struct sc
+@@ -723,6 +723,8 @@ static bool sc16is7xx_port_irq(struct sc
if (rxlen)
sc16is7xx_handle_rx(port, rxlen, iir);
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
-@@ -1287,6 +1290,9 @@
+@@ -1288,6 +1291,9 @@
#define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220
#define MAX_TUNING_LOOP 40
-@@ -3190,7 +3190,7 @@ static void sdhci_timeout_timer(struct t
+@@ -3193,7 +3193,7 @@ static void sdhci_timeout_timer(struct t
spin_lock_irqsave(&host->lock, flags);
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
mmc_hostname(host->mmc));
sdhci_dumpregs(host);
-@@ -3212,7 +3212,7 @@ static void sdhci_timeout_data_timer(str
+@@ -3215,7 +3215,7 @@ static void sdhci_timeout_data_timer(str
if (host->data || host->data_cmd ||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {
--- a/drivers/tty/serial/sc16is7xx.c
+++ b/drivers/tty/serial/sc16is7xx.c
-@@ -525,8 +525,9 @@ static int sc16is7xx_set_baud(struct uar
+@@ -537,8 +537,9 @@ static int sc16is7xx_set_baud(struct uar
/* Enable enhanced features */
regcache_cache_bypass(s->regmap, true);
regcache_cache_bypass(s->regmap, false);
/* Put LCR back to the normal mode */
-@@ -856,7 +857,7 @@ static unsigned int sc16is7xx_get_mctrl(
+@@ -869,7 +870,7 @@ static unsigned int sc16is7xx_get_mctrl(
/* DCD and DSR are not wired and CTS/RTS is handled automatically
* so just indicate DSR and CAR asserted
*/
}
static void sc16is7xx_set_mctrl(struct uart_port *port, unsigned int mctrl)
-@@ -943,14 +944,19 @@ static void sc16is7xx_set_termios(struct
+@@ -956,14 +957,19 @@ static void sc16is7xx_set_termios(struct
regcache_cache_bypass(s->regmap, true);
sc16is7xx_port_write(port, SC16IS7XX_XON1_REG, termios->c_cc[VSTART]);
sc16is7xx_port_write(port, SC16IS7XX_XOFF1_REG, termios->c_cc[VSTOP]);
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -291,6 +291,7 @@ static void xhci_pci_quirks(struct devic
+@@ -298,6 +298,7 @@ static void xhci_pci_quirks(struct devic
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
xhci->quirks |= XHCI_LPM_SUPPORT;
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
static const struct drm_display_mode innolux_at070tn92_mode = {
.clock = 33333,
.hdisplay = 800,
-@@ -4090,6 +4122,9 @@ static const struct of_device_id platfor
+@@ -4091,6 +4123,9 @@ static const struct of_device_id platfor
.compatible = "innolux,at043tn24",
.data = &innolux_at043tn24,
}, {
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -4328,9 +4328,9 @@ void xhci_queue_new_dequeue_state(struct
+@@ -4327,9 +4327,9 @@ void xhci_queue_new_dequeue_state(struct
}
ep = &xhci->devs[slot_id]->eps[ep_index];
if ((ep->ep_state & SET_DEQ_PENDING)) {
--- a/arch/mips/bmips/setup.c
+++ b/arch/mips/bmips/setup.c
-@@ -209,4 +209,4 @@ static int __init plat_dev_init(void)
+@@ -210,4 +210,4 @@ static int __init plat_dev_init(void)
return 0;
}
struct bmips_quirk {
const char *compatible;
void (*quirk_fn)(void);
-@@ -146,17 +185,161 @@ const char *get_system_type(void)
+@@ -147,17 +186,161 @@ const char *get_system_type(void)
return "Generic BMIPS kernel";
}
struct bmips_quirk {
const char *compatible;
void (*quirk_fn)(void);
-@@ -344,9 +370,90 @@ void __init plat_time_init(void)
+@@ -345,9 +371,90 @@ void __init plat_time_init(void)
mips_hpt_frequency = freq;
}
const struct bmips_quirk *q;
set_io_port_base(0);
-@@ -365,6 +472,18 @@ void __init plat_mem_setup(void)
+@@ -366,6 +473,18 @@ void __init plat_mem_setup(void)
__dt_setup_arch(dtb);
set_dev_node(bus->bridge, pcibus_to_node(bus));
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -554,6 +554,7 @@ struct pci_host_bridge {
+@@ -563,6 +563,7 @@ struct pci_host_bridge {
unsigned int native_dpc:1; /* OS may use PCIe DPC */
unsigned int preserve_config:1; /* Preserve FW resource setup */
unsigned int size_windows:1; /* Enable root bus sizing */
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -3738,6 +3738,8 @@ static __net_initdata struct pernet_oper
+@@ -3740,6 +3740,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3985,6 +3988,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3987,6 +3990,16 @@ packet_setsockopt(struct socket *sock, i
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -4041,6 +4054,13 @@ static int packet_getsockopt(struct sock
+@@ -4043,6 +4056,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
-@@ -1032,6 +1046,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -1034,6 +1048,7 @@ static const int fib6_prop[RTN_MAX + 1]
[RTN_BLACKHOLE] = -EINVAL,
[RTN_UNREACHABLE] = -EHOSTUNREACH,
[RTN_PROHIBIT] = -EACCES,
[RTN_THROW] = -EAGAIN,
[RTN_NAT] = -EINVAL,
[RTN_XRESOLVE] = -EINVAL,
-@@ -1067,6 +1082,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -1069,6 +1084,10 @@ static void ip6_rt_init_dst_reject(struc
rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit;
break;
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -4450,6 +4469,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4453,6 +4472,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
/*
* Allocate a dst for local (unicast / anycast) address.
*/
-@@ -4937,7 +4967,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -4940,7 +4970,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -6130,6 +6161,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6133,6 +6164,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -6141,6 +6174,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6144,6 +6177,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
-@@ -6332,6 +6366,8 @@ static int __net_init ip6_route_net_init
+@@ -6335,6 +6369,8 @@ static int __net_init ip6_route_net_init
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.fib6_has_custom_rules = false;
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
sizeof(*net->ipv6.ip6_prohibit_entry),
GFP_KERNEL);
-@@ -6342,11 +6378,21 @@ static int __net_init ip6_route_net_init
+@@ -6345,11 +6381,21 @@ static int __net_init ip6_route_net_init
ip6_template_metrics, true);
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
-@@ -6373,6 +6419,8 @@ out:
+@@ -6376,6 +6422,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -6392,6 +6440,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6395,6 +6443,7 @@ static void __net_exit ip6_route_net_exi
kfree(net->ipv6.ip6_null_entry);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6475,6 +6524,9 @@ void __init ip6_route_init_special_entri
+@@ -6478,6 +6527,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_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);
(transaction layer end-to-end CRC checking).
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -1427,6 +1427,8 @@ void pci_walk_bus(struct pci_bus *top, i
+@@ -1436,6 +1436,8 @@ void pci_walk_bus(struct pci_bus *top, i
void *userdata);
int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -1968,6 +1968,13 @@ static void sfp_sm_module(struct sfp *sf
+@@ -1967,6 +1967,13 @@ static void sfp_sm_module(struct sfp *sf
return;
}