-LINUX_VERSION-5.10 = .183
-LINUX_KERNEL_HASH-5.10.183 = 409497c635caf49614de21950ec091eb621a5d5fe1f63fc418ef68ac38b56119
+LINUX_VERSION-5.10 = .184
+LINUX_KERNEL_HASH-5.10.184 = 77a9bebc1d1fa057212a3ac62c2a0784aafcdef149032df8898ebc9ed3c62908
case IPV6_2292HOPOPTS:
--- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c
-@@ -948,7 +948,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
+@@ -941,7 +941,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
goto drop;
}
static const char *const ioctl_names[] = {
"CONNECT",
"SHUTDOWN",
-@@ -2679,6 +2684,7 @@ void vchiq_platform_conn_state_changed(s
+@@ -2681,6 +2686,7 @@ void vchiq_platform_conn_state_changed(s
static const struct of_device_id vchiq_of_match[] = {
{ .compatible = "brcm,bcm2835-vchiq", .data = &bcm2835_drvdata },
{ .compatible = "brcm,bcm2836-vchiq", .data = &bcm2836_drvdata },
static struct vchiq_drvdata bcm2835_drvdata = {
.cache_line_size = 32,
-@@ -2765,6 +2766,7 @@ static int vchiq_probe(struct platform_d
+@@ -2767,6 +2768,7 @@ static int vchiq_probe(struct platform_d
VCHIQ_VERSION, VCHIQ_VERSION_MIN,
MAJOR(vchiq_devid), MINOR(vchiq_devid));
bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
-@@ -2781,6 +2783,7 @@ static int vchiq_remove(struct platform_
+@@ -2783,6 +2785,7 @@ static int vchiq_remove(struct platform_
{
platform_device_unregister(bcm2835_audio);
platform_device_unregister(bcm2835_camera);
static struct platform_device *vcsm_cma;
static struct vchiq_drvdata bcm2835_drvdata = {
-@@ -2767,6 +2768,7 @@ static int vchiq_probe(struct platform_d
+@@ -2769,6 +2770,7 @@ static int vchiq_probe(struct platform_d
MAJOR(vchiq_devid), MINOR(vchiq_devid));
vcsm_cma = vchiq_register_child(pdev, "vcsm-cma");
bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
-@@ -2783,6 +2785,7 @@ static int vchiq_remove(struct platform_
+@@ -2785,6 +2787,7 @@ static int vchiq_remove(struct platform_
{
platform_device_unregister(bcm2835_audio);
platform_device_unregister(bcm2835_camera);
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -2710,6 +2710,12 @@ vchiq_register_child(struct platform_dev
+@@ -2712,6 +2712,12 @@ vchiq_register_child(struct platform_dev
child = NULL;
}
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -2696,6 +2696,7 @@ vchiq_register_child(struct platform_dev
+@@ -2698,6 +2698,7 @@ vchiq_register_child(struct platform_dev
{
struct platform_device_info pdevinfo;
struct platform_device *child;
memset(&pdevinfo, 0, sizeof(pdevinfo));
-@@ -2711,10 +2712,20 @@ vchiq_register_child(struct platform_dev
+@@ -2713,10 +2714,20 @@ vchiq_register_child(struct platform_dev
}
/*
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -2705,12 +2705,20 @@ vchiq_register_child(struct platform_dev
+@@ -2707,12 +2707,20 @@ vchiq_register_child(struct platform_dev
pdevinfo.id = PLATFORM_DEVID_NONE;
pdevinfo.dma_mask = DMA_BIT_MASK(32);
static struct vchiq_drvdata bcm2835_drvdata = {
.cache_line_size = 32,
-@@ -2796,6 +2797,7 @@ static int vchiq_probe(struct platform_d
+@@ -2798,6 +2799,7 @@ static int vchiq_probe(struct platform_d
bcm2835_codec = vchiq_register_child(pdev, "bcm2835-codec");
bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
return 0;
-@@ -2808,6 +2810,7 @@ failed_platform_init:
+@@ -2810,6 +2812,7 @@ failed_platform_init:
static int vchiq_remove(struct platform_device *pdev)
{
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -2720,22 +2720,8 @@ vchiq_register_child(struct platform_dev
+@@ -2722,22 +2722,8 @@ vchiq_register_child(struct platform_dev
child->dev.of_node = np;
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -2720,8 +2720,18 @@ vchiq_register_child(struct platform_dev
+@@ -2722,8 +2722,18 @@ vchiq_register_child(struct platform_dev
child->dev.of_node = np;
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6815,15 +6815,10 @@ void __netif_napi_del(struct napi_struct
+@@ -6817,15 +6817,10 @@ void __netif_napi_del(struct napi_struct
}
EXPORT_SYMBOL(__netif_napi_del);
weight = n->weight;
/* This NAPI_STATE_SCHED test is for avoiding a race
-@@ -6843,7 +6838,7 @@ static int napi_poll(struct napi_struct
+@@ -6845,7 +6840,7 @@ static int napi_poll(struct napi_struct
n->poll, work, weight);
if (likely(work < weight))
/* Drivers must not modify the NAPI state if they
* consume the entire weight. In such cases this code
-@@ -6852,7 +6847,7 @@ static int napi_poll(struct napi_struct
+@@ -6854,7 +6849,7 @@ static int napi_poll(struct napi_struct
*/
if (unlikely(napi_disable_pending(n))) {
napi_complete(n);
}
if (n->gro_bitmask) {
-@@ -6870,12 +6865,29 @@ static int napi_poll(struct napi_struct
+@@ -6872,12 +6867,29 @@ static int napi_poll(struct napi_struct
if (unlikely(!list_empty(&n->poll_list))) {
pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
n->dev ? n->dev->name : "backlog");
/**
* napi_synchronize - wait until NAPI is not running
-@@ -1865,6 +1855,8 @@ enum netdev_ml_priv_type {
+@@ -1868,6 +1858,8 @@ enum netdev_ml_priv_type {
*
* @wol_enabled: Wake-on-LAN is enabled
*
* @net_notifier_list: List of per-net netdev notifier block
* that follow this device when it is moved
* to another network namespace.
-@@ -2184,6 +2176,7 @@ struct net_device {
+@@ -2187,6 +2179,7 @@ struct net_device {
struct lock_class_key *qdisc_running_key;
bool proto_down;
unsigned wol_enabled:1;
list_add_tail(&napi->poll_list, &sd->poll_list);
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
}
-@@ -6768,6 +6805,12 @@ void netif_napi_add(struct net_device *d
+@@ -6770,6 +6807,12 @@ void netif_napi_add(struct net_device *d
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
napi_hash_add(napi);
}
EXPORT_SYMBOL(netif_napi_add);
-@@ -6784,9 +6827,28 @@ void napi_disable(struct napi_struct *n)
+@@ -6786,9 +6829,28 @@ void napi_disable(struct napi_struct *n)
hrtimer_cancel(&n->timer);
clear_bit(NAPI_STATE_DISABLE, &n->state);
static void flush_gro_hash(struct napi_struct *napi)
{
int i;
-@@ -6812,6 +6874,11 @@ void __netif_napi_del(struct napi_struct
+@@ -6814,6 +6876,11 @@ void __netif_napi_del(struct napi_struct
flush_gro_hash(napi);
napi->gro_bitmask = 0;
}
EXPORT_SYMBOL(__netif_napi_del);
-@@ -6893,6 +6960,51 @@ static int napi_poll(struct napi_struct
+@@ -6895,6 +6962,51 @@ static int napi_poll(struct napi_struct
return work;
}
* wake_up_process() when it's not NULL.
*/
thread = READ_ONCE(napi->thread);
-@@ -6778,6 +6779,49 @@ static void init_gro_hash(struct napi_st
+@@ -6780,6 +6781,49 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0;
}
wake_up_process(thread);
return;
}
-@@ -6570,7 +6572,8 @@ bool napi_complete_done(struct napi_stru
+@@ -6572,7 +6574,8 @@ bool napi_complete_done(struct napi_stru
WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
/* If STATE_MISSED was set, leave STATE_SCHED set,
* because we will call napi->poll() one more time.
-@@ -7006,16 +7009,25 @@ static int napi_poll(struct napi_struct
+@@ -7008,16 +7011,25 @@ static int napi_poll(struct napi_struct
static int napi_thread_wait(struct napi_struct *napi)
{
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -7013,7 +7013,7 @@ static int napi_thread_wait(struct napi_
+@@ -7015,7 +7015,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
/* Testing SCHED_THREADED bit here to make sure the current
* kthread owns this napi and could poll on this napi.
* Testing SCHED bit is not enough because SCHED bit might be
-@@ -7031,6 +7031,7 @@ static int napi_thread_wait(struct napi_
+@@ -7033,6 +7033,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
}
__set_current_state(TASK_RUNNING);
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -850,6 +850,27 @@ typedef u16 (*select_queue_fallback_t)(s
+@@ -853,6 +853,27 @@ typedef u16 (*select_queue_fallback_t)(s
struct sk_buff *skb,
struct net_device *sb_dev);
enum tc_setup_type {
TC_SETUP_QDISC_MQPRIO,
TC_SETUP_CLSU32,
-@@ -1296,6 +1317,8 @@ struct netdev_net_notifier {
+@@ -1299,6 +1320,8 @@ struct netdev_net_notifier {
* struct net_device *(*ndo_get_peer_dev)(struct net_device *dev);
* If a device is paired with a peer device, return the peer instance.
* The caller must be under RCU read context.
*/
struct net_device_ops {
int (*ndo_init)(struct net_device *dev);
-@@ -1504,6 +1527,8 @@ struct net_device_ops {
+@@ -1507,6 +1530,8 @@ struct net_device_ops {
int (*ndo_tunnel_ctl)(struct net_device *dev,
struct ip_tunnel_parm *p, int cmd);
struct net_device * (*ndo_get_peer_dev)(struct net_device *dev);
};
/**
-@@ -2851,6 +2876,8 @@ void dev_remove_offload(struct packet_of
+@@ -2854,6 +2879,8 @@ void dev_remove_offload(struct packet_of
int dev_get_iflink(const struct net_device *dev);
int dev_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb);
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -852,11 +852,18 @@ typedef u16 (*select_queue_fallback_t)(s
+@@ -855,11 +855,18 @@ typedef u16 (*select_queue_fallback_t)(s
enum net_device_path_type {
DEV_PATH_ETHERNET = 0,
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -853,6 +853,7 @@ typedef u16 (*select_queue_fallback_t)(s
+@@ -856,6 +856,7 @@ typedef u16 (*select_queue_fallback_t)(s
enum net_device_path_type {
DEV_PATH_ETHERNET = 0,
DEV_PATH_VLAN,
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -864,10 +864,20 @@ struct net_device_path {
+@@ -867,10 +867,20 @@ struct net_device_path {
u16 id;
__be16 proto;
} encap;
struct net_device_path_stack {
int num_paths;
-@@ -877,6 +887,12 @@ struct net_device_path_stack {
+@@ -880,6 +890,12 @@ struct net_device_path_stack {
struct net_device_path_ctx {
const struct net_device *dev;
const u8 *daddr;
static int pppoe_recvmsg(struct socket *sock, struct msghdr *m,
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -854,6 +854,7 @@ enum net_device_path_type {
+@@ -857,6 +857,7 @@ enum net_device_path_type {
DEV_PATH_ETHERNET = 0,
DEV_PATH_VLAN,
DEV_PATH_BRIDGE,
};
struct net_device_path {
-@@ -863,6 +864,7 @@ struct net_device_path {
+@@ -866,6 +867,7 @@ struct net_device_path {
struct {
u16 id;
__be16 proto;
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -855,6 +855,7 @@ enum net_device_path_type {
+@@ -858,6 +858,7 @@ enum net_device_path_type {
DEV_PATH_VLAN,
DEV_PATH_BRIDGE,
DEV_PATH_PPPOE,
};
struct net_device_path {
-@@ -875,6 +876,10 @@ struct net_device_path {
+@@ -878,6 +879,10 @@ struct net_device_path {
u16 vlan_id;
__be16 vlan_proto;
} bridge;
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -872,6 +872,7 @@ struct net_device_path {
+@@ -875,6 +875,7 @@ struct net_device_path {
DEV_PATH_BR_VLAN_KEEP,
DEV_PATH_BR_VLAN_TAG,
DEV_PATH_BR_VLAN_UNTAG,
- 0 - disabled (default)
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
-@@ -2575,26 +2575,24 @@ int nf_conntrack_init_start(void)
+@@ -2578,26 +2578,24 @@ int nf_conntrack_init_start(void)
spin_lock_init(&nf_conntrack_locks[i]);
if (!nf_conntrack_htable_size) {
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_SR is not set
# CONFIG_BLK_DEV_SVWKS is not set
-# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_BLK_DEV_THROTTLING is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
-@@ -2576,7 +2576,7 @@ int nf_conntrack_init_start(void)
+@@ -2579,7 +2579,7 @@ int nf_conntrack_init_start(void)
if (!nf_conntrack_htable_size) {
nf_conntrack_htable_size
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -1648,6 +1648,7 @@ enum netdev_priv_flags {
+@@ -1651,6 +1651,7 @@ enum netdev_priv_flags {
IFF_FAILOVER_SLAVE = 1<<28,
IFF_L3MDEV_RX_HANDLER = 1<<29,
IFF_LIVE_RENAME_OK = 1<<30,
};
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
-@@ -1680,6 +1681,7 @@ enum netdev_priv_flags {
+@@ -1683,6 +1684,7 @@ enum netdev_priv_flags {
#define IFF_FAILOVER_SLAVE IFF_FAILOVER_SLAVE
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
#define IFF_LIVE_RENAME_OK IFF_LIVE_RENAME_OK
/* Specifies the type of the struct net_device::ml_priv pointer */
enum netdev_ml_priv_type {
-@@ -2020,6 +2022,11 @@ struct net_device {
+@@ -2023,6 +2025,11 @@ struct net_device {
const struct tlsdev_ops *tlsdev_ops;
#endif
const struct header_ops *header_ops;
unsigned int flags;
-@@ -2110,6 +2117,10 @@ struct net_device {
+@@ -2113,6 +2120,10 @@ struct net_device {
struct mpls_dev __rcu *mpls_ptr;
#endif
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -2059,6 +2059,8 @@ struct net_device {
+@@ -2062,6 +2062,8 @@ struct net_device {
struct netdev_hw_addr_list mc;
struct netdev_hw_addr_list dev_addrs;
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6071,6 +6071,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6073,6 +6073,9 @@ static enum gro_result dev_gro_receive(s
int same_flow;
int grow;
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -8049,6 +8052,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8051,6 +8054,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
-@@ -8100,6 +8145,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8102,6 +8147,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -8196,6 +8242,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8198,6 +8244,7 @@ static void __netdev_upper_dev_unlink(st
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
-@@ -8982,6 +9029,7 @@ int dev_set_mac_address(struct net_devic
+@@ -8984,6 +9031,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
static inline void
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -856,6 +856,7 @@ enum net_device_path_type {
+@@ -859,6 +859,7 @@ enum net_device_path_type {
DEV_PATH_BRIDGE,
DEV_PATH_PPPOE,
DEV_PATH_DSA,
};
struct net_device_path {
-@@ -881,6 +882,12 @@ struct net_device_path {
+@@ -884,6 +885,12 @@ struct net_device_path {
int port;
u16 proto;
} dsa;
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -901,7 +901,7 @@ struct net_device_path_stack {
+@@ -904,7 +904,7 @@ struct net_device_path_stack {
struct net_device_path_ctx {
const struct net_device *dev;
--- a/drivers/ata/ahci.h
+++ b/drivers/ata/ahci.h
-@@ -240,8 +240,6 @@ enum {
- as default lpm_policy */
- AHCI_HFLAG_SUSPEND_PHYS = (1 << 26), /* handle PHYs during
- suspend/resume */
-- AHCI_HFLAG_IGN_NOTSUPP_POWER_ON = (1 << 27), /* ignore -EOPNOTSUPP
-- from phy_power_on() */
- AHCI_HFLAG_NO_SXS = (1 << 28), /* SXS not supported */
+@@ -241,8 +241,6 @@ enum {
+ as default lpm_policy */
+ AHCI_HFLAG_SUSPEND_PHYS = BIT(26), /* handle PHYs during
+ suspend/resume */
+- AHCI_HFLAG_IGN_NOTSUPP_POWER_ON = BIT(27), /* ignore -EOPNOTSUPP
+- from phy_power_on() */
+ AHCI_HFLAG_NO_SXS = BIT(28), /* SXS not supported */
/* ap->flags bits */
--- a/drivers/ata/ahci_mvebu.c
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -788,6 +788,16 @@ struct xps_map {
+@@ -791,6 +791,16 @@ struct xps_map {
#define XPS_MIN_MAP_ALLOC ((L1_CACHE_ALIGN(offsetof(struct xps_map, queues[1])) \
- sizeof(struct xps_map)) / sizeof(u16))
/*
* This structure holds all XPS maps for device. Maps are indexed by CPU.
*/
-@@ -1475,6 +1485,9 @@ struct net_device_ops {
+@@ -1478,6 +1488,9 @@ struct net_device_ops {
const struct sk_buff *skb,
u16 rxq_index,
u32 flow_id);