kernel: bump 5.10 to 5.10.84
All patches automatically rebased. Build system: x86_64 Build-tested: bcm2711/RPi4B Run-tested: bcm2711/RPi4B Signed-off-by: John Audia <graysky@archlinux.us>
This commit is contained in:
		 John Audia
					John Audia
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							d4b25007ea
						
					
				
				
					commit
					187c8f9153
				
			| @@ -7,10 +7,10 @@ ifdef CONFIG_TESTING_KERNEL | |||||||
| endif | endif | ||||||
|  |  | ||||||
| LINUX_VERSION-5.4 = .167 | LINUX_VERSION-5.4 = .167 | ||||||
| LINUX_VERSION-5.10 = .83 | LINUX_VERSION-5.10 = .84 | ||||||
|  |  | ||||||
| LINUX_KERNEL_HASH-5.4.167 = b4e43116217ee02009aba7eab3081e64560b81ce42bc6096fcd81257f470a5a7 | LINUX_KERNEL_HASH-5.4.167 = b4e43116217ee02009aba7eab3081e64560b81ce42bc6096fcd81257f470a5a7 | ||||||
| LINUX_KERNEL_HASH-5.10.83 = ef259a43f33ddb56001283f4f4e50af29b8a48fa066aed7371a90ebf38c29b70 | LINUX_KERNEL_HASH-5.10.84 = 6e96271d72dd106c4bd83931ca16fda622413b34c5649e2916116c38c12e233d | ||||||
|  |  | ||||||
| remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | ||||||
| sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) | sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> | |||||||
|  	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && |  	if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && | ||||||
| --- a/drivers/usb/host/xhci-ring.c | --- a/drivers/usb/host/xhci-ring.c | ||||||
| +++ b/drivers/usb/host/xhci-ring.c | +++ b/drivers/usb/host/xhci-ring.c | ||||||
| @@ -659,6 +659,16 @@ void xhci_find_new_dequeue_state(struct | @@ -666,6 +666,16 @@ void xhci_find_new_dequeue_state(struct | ||||||
|   |   | ||||||
|  	} while (!cycle_found || !td_last_trb_found); |  	} while (!cycle_found || !td_last_trb_found); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -190,7 +190,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201118094758.506730-1-maxi | |||||||
|  #include <drm/drm_atomic_helper.h> |  #include <drm/drm_atomic_helper.h> | ||||||
|  #include <drm/drm_dp_mst_helper.h> |  #include <drm/drm_dp_mst_helper.h> | ||||||
|  #include <drm/drm_dp_helper.h> |  #include <drm/drm_dp_helper.h> | ||||||
| @@ -252,8 +253,10 @@ static int dm_dp_mst_get_modes(struct dr | @@ -264,8 +265,10 @@ static int dm_dp_mst_get_modes(struct dr | ||||||
|   |   | ||||||
|  static struct drm_encoder * |  static struct drm_encoder * | ||||||
|  dm_mst_atomic_best_encoder(struct drm_connector *connector, |  dm_mst_atomic_best_encoder(struct drm_connector *connector, | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> | |||||||
|  |  | ||||||
| --- a/drivers/usb/host/xhci-ring.c | --- a/drivers/usb/host/xhci-ring.c | ||||||
| +++ b/drivers/usb/host/xhci-ring.c | +++ b/drivers/usb/host/xhci-ring.c | ||||||
| @@ -4262,9 +4262,9 @@ void xhci_queue_new_dequeue_state(struct | @@ -4269,9 +4269,9 @@ void xhci_queue_new_dequeue_state(struct | ||||||
|  	} |  	} | ||||||
|  	ep = &xhci->devs[slot_id]->eps[ep_index]; |  	ep = &xhci->devs[slot_id]->eps[ep_index]; | ||||||
|  	if ((ep->ep_state & SET_DEQ_PENDING)) { |  	if ((ep->ep_state & SET_DEQ_PENDING)) { | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  |  | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -6802,15 +6802,10 @@ void __netif_napi_del(struct napi_struct | @@ -6805,15 +6805,10 @@ void __netif_napi_del(struct napi_struct | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL(__netif_napi_del); |  EXPORT_SYMBOL(__netif_napi_del); | ||||||
|   |   | ||||||
| @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  	weight = n->weight; |  	weight = n->weight; | ||||||
|   |   | ||||||
|  	/* This NAPI_STATE_SCHED test is for avoiding a race |  	/* This NAPI_STATE_SCHED test is for avoiding a race | ||||||
| @@ -6830,7 +6825,7 @@ static int napi_poll(struct napi_struct | @@ -6833,7 +6828,7 @@ static int napi_poll(struct napi_struct | ||||||
|  			    n->poll, work, weight); |  			    n->poll, work, weight); | ||||||
|   |   | ||||||
|  	if (likely(work < weight)) |  	if (likely(work < weight)) | ||||||
| @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|   |   | ||||||
|  	/* Drivers must not modify the NAPI state if they |  	/* Drivers must not modify the NAPI state if they | ||||||
|  	 * consume the entire weight.  In such cases this code |  	 * consume the entire weight.  In such cases this code | ||||||
| @@ -6839,7 +6834,7 @@ static int napi_poll(struct napi_struct | @@ -6842,7 +6837,7 @@ static int napi_poll(struct napi_struct | ||||||
|  	 */ |  	 */ | ||||||
|  	if (unlikely(napi_disable_pending(n))) { |  	if (unlikely(napi_disable_pending(n))) { | ||||||
|  		napi_complete(n); |  		napi_complete(n); | ||||||
| @@ -53,7 +53,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	if (n->gro_bitmask) { |  	if (n->gro_bitmask) { | ||||||
| @@ -6857,12 +6852,29 @@ static int napi_poll(struct napi_struct | @@ -6860,12 +6855,29 @@ static int napi_poll(struct napi_struct | ||||||
|  	if (unlikely(!list_empty(&n->poll_list))) { |  	if (unlikely(!list_empty(&n->poll_list))) { | ||||||
|  		pr_warn_once("%s: Budget exhausted after napi rescheduled\n", |  		pr_warn_once("%s: Budget exhausted after napi rescheduled\n", | ||||||
|  			     n->dev ? n->dev->name : "backlog"); |  			     n->dev ? n->dev->name : "backlog"); | ||||||
|   | |||||||
| @@ -131,7 +131,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack) |  static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack) | ||||||
|  { |  { | ||||||
|  	const struct net_device_ops *ops = dev->netdev_ops; |  	const struct net_device_ops *ops = dev->netdev_ops; | ||||||
| @@ -4264,6 +4286,21 @@ int gro_normal_batch __read_mostly = 8; | @@ -4267,6 +4289,21 @@ int gro_normal_batch __read_mostly = 8; | ||||||
|  static inline void ____napi_schedule(struct softnet_data *sd, |  static inline void ____napi_schedule(struct softnet_data *sd, | ||||||
|  				     struct napi_struct *napi) |  				     struct napi_struct *napi) | ||||||
|  { |  { | ||||||
| @@ -153,7 +153,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  	list_add_tail(&napi->poll_list, &sd->poll_list); |  	list_add_tail(&napi->poll_list, &sd->poll_list); | ||||||
|  	__raise_softirq_irqoff(NET_RX_SOFTIRQ); |  	__raise_softirq_irqoff(NET_RX_SOFTIRQ); | ||||||
|  } |  } | ||||||
| @@ -6755,6 +6792,12 @@ void netif_napi_add(struct net_device *d | @@ -6758,6 +6795,12 @@ void netif_napi_add(struct net_device *d | ||||||
|  	set_bit(NAPI_STATE_NPSVC, &napi->state); |  	set_bit(NAPI_STATE_NPSVC, &napi->state); | ||||||
|  	list_add_rcu(&napi->dev_list, &dev->napi_list); |  	list_add_rcu(&napi->dev_list, &dev->napi_list); | ||||||
|  	napi_hash_add(napi); |  	napi_hash_add(napi); | ||||||
| @@ -166,7 +166,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL(netif_napi_add); |  EXPORT_SYMBOL(netif_napi_add); | ||||||
|   |   | ||||||
| @@ -6771,9 +6814,28 @@ void napi_disable(struct napi_struct *n) | @@ -6774,9 +6817,28 @@ void napi_disable(struct napi_struct *n) | ||||||
|  	hrtimer_cancel(&n->timer); |  	hrtimer_cancel(&n->timer); | ||||||
|   |   | ||||||
|  	clear_bit(NAPI_STATE_DISABLE, &n->state); |  	clear_bit(NAPI_STATE_DISABLE, &n->state); | ||||||
| @@ -195,7 +195,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  static void flush_gro_hash(struct napi_struct *napi) |  static void flush_gro_hash(struct napi_struct *napi) | ||||||
|  { |  { | ||||||
|  	int i; |  	int i; | ||||||
| @@ -6799,6 +6861,11 @@ void __netif_napi_del(struct napi_struct | @@ -6802,6 +6864,11 @@ void __netif_napi_del(struct napi_struct | ||||||
|   |   | ||||||
|  	flush_gro_hash(napi); |  	flush_gro_hash(napi); | ||||||
|  	napi->gro_bitmask = 0; |  	napi->gro_bitmask = 0; | ||||||
| @@ -207,7 +207,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL(__netif_napi_del); |  EXPORT_SYMBOL(__netif_napi_del); | ||||||
|   |   | ||||||
| @@ -6880,6 +6947,51 @@ static int napi_poll(struct napi_struct | @@ -6883,6 +6950,51 @@ static int napi_poll(struct napi_struct | ||||||
|  	return work; |  	return work; | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   | |||||||
| @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|   *	@n: NAPI context |   *	@n: NAPI context | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -4290,8 +4290,9 @@ static inline void ____napi_schedule(str | @@ -4293,8 +4293,9 @@ static inline void ____napi_schedule(str | ||||||
|   |   | ||||||
|  	if (test_bit(NAPI_STATE_THREADED, &napi->state)) { |  	if (test_bit(NAPI_STATE_THREADED, &napi->state)) { | ||||||
|  		/* Paired with smp_mb__before_atomic() in |  		/* Paired with smp_mb__before_atomic() in | ||||||
| @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  		 * wake_up_process() when it's not NULL. |  		 * wake_up_process() when it's not NULL. | ||||||
|  		 */ |  		 */ | ||||||
|  		thread = READ_ONCE(napi->thread); |  		thread = READ_ONCE(napi->thread); | ||||||
| @@ -6765,6 +6766,49 @@ static void init_gro_hash(struct napi_st | @@ -6768,6 +6769,49 @@ static void init_gro_hash(struct napi_st | ||||||
|  	napi->gro_bitmask = 0; |  	napi->gro_bitmask = 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org> | |||||||
|  enum gro_result { |  enum gro_result { | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -4297,6 +4297,8 @@ static inline void ____napi_schedule(str | @@ -4300,6 +4300,8 @@ static inline void ____napi_schedule(str | ||||||
|  		 */ |  		 */ | ||||||
|  		thread = READ_ONCE(napi->thread); |  		thread = READ_ONCE(napi->thread); | ||||||
|  		if (thread) { |  		if (thread) { | ||||||
| @@ -54,7 +54,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org> | |||||||
|  			wake_up_process(thread); |  			wake_up_process(thread); | ||||||
|  			return; |  			return; | ||||||
|  		} |  		} | ||||||
| @@ -6557,7 +6559,8 @@ bool napi_complete_done(struct napi_stru | @@ -6560,7 +6562,8 @@ bool napi_complete_done(struct napi_stru | ||||||
|   |   | ||||||
|  		WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED)); |  		WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED)); | ||||||
|   |   | ||||||
| @@ -64,7 +64,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org> | |||||||
|   |   | ||||||
|  		/* If STATE_MISSED was set, leave STATE_SCHED set, |  		/* If STATE_MISSED was set, leave STATE_SCHED set, | ||||||
|  		 * because we will call napi->poll() one more time. |  		 * because we will call napi->poll() one more time. | ||||||
| @@ -6993,16 +6996,25 @@ static int napi_poll(struct napi_struct | @@ -6996,16 +6999,25 @@ static int napi_poll(struct napi_struct | ||||||
|   |   | ||||||
|  static int napi_thread_wait(struct napi_struct *napi) |  static int napi_thread_wait(struct napi_struct *napi) | ||||||
|  { |  { | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org> | |||||||
|  |  | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -7000,7 +7000,7 @@ static int napi_thread_wait(struct napi_ | @@ -7003,7 +7003,7 @@ static int napi_thread_wait(struct napi_ | ||||||
|   |   | ||||||
|  	set_current_state(TASK_INTERRUPTIBLE); |  	set_current_state(TASK_INTERRUPTIBLE); | ||||||
|   |   | ||||||
| @@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org> | |||||||
|  		/* Testing SCHED_THREADED bit here to make sure the current |  		/* Testing SCHED_THREADED bit here to make sure the current | ||||||
|  		 * kthread owns this napi and could poll on this napi. |  		 * kthread owns this napi and could poll on this napi. | ||||||
|  		 * Testing SCHED bit is not enough because SCHED bit might be |  		 * Testing SCHED bit is not enough because SCHED bit might be | ||||||
| @@ -7018,6 +7018,7 @@ static int napi_thread_wait(struct napi_ | @@ -7021,6 +7021,7 @@ static int napi_thread_wait(struct napi_ | ||||||
|  		set_current_state(TASK_INTERRUPTIBLE); |  		set_current_state(TASK_INTERRUPTIBLE); | ||||||
|  	} |  	} | ||||||
|  	__set_current_state(TASK_RUNNING); |  	__set_current_state(TASK_RUNNING); | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	__u16			tc_index;	/* traffic control index */ |  	__u16			tc_index;	/* traffic control index */ | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -6059,6 +6059,9 @@ static enum gro_result dev_gro_receive(s | @@ -6062,6 +6062,9 @@ static enum gro_result dev_gro_receive(s | ||||||
|  	int same_flow; |  	int same_flow; | ||||||
|  	int grow; |  	int grow; | ||||||
|   |   | ||||||
| @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	if (netif_elide_gro(skb->dev)) |  	if (netif_elide_gro(skb->dev)) | ||||||
|  		goto normal; |  		goto normal; | ||||||
|   |   | ||||||
| @@ -8036,6 +8039,48 @@ static void __netdev_adjacent_dev_unlink | @@ -8039,6 +8042,48 @@ static void __netdev_adjacent_dev_unlink | ||||||
|  					   &upper_dev->adj_list.lower); |  					   &upper_dev->adj_list.lower); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -91,7 +91,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 *upper_priv, void *upper_info, |  				   void *upper_priv, void *upper_info, | ||||||
| @@ -8087,6 +8132,7 @@ static int __netdev_upper_dev_link(struc | @@ -8090,6 +8135,7 @@ static int __netdev_upper_dev_link(struc | ||||||
|  	if (ret) |  	if (ret) | ||||||
|  		return ret; |  		return ret; | ||||||
|   |   | ||||||
| @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, |  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, | ||||||
|  					    &changeupper_info.info); |  					    &changeupper_info.info); | ||||||
|  	ret = notifier_to_errno(ret); |  	ret = notifier_to_errno(ret); | ||||||
| @@ -8183,6 +8229,7 @@ static void __netdev_upper_dev_unlink(st | @@ -8186,6 +8232,7 @@ static void __netdev_upper_dev_unlink(st | ||||||
|   |   | ||||||
|  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); |  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); | ||||||
|   |   | ||||||
| @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, |  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, | ||||||
|  				      &changeupper_info.info); |  				      &changeupper_info.info); | ||||||
|   |   | ||||||
| @@ -8969,6 +9016,7 @@ int dev_set_mac_address(struct net_devic | @@ -8972,6 +9019,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; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | --- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | ||||||
| +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | +++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | ||||||
| @@ -533,6 +533,8 @@ | @@ -535,6 +535,8 @@ | ||||||
|  	pinctrl-0 = <&serial_nand_pins>; |  	pinctrl-0 = <&serial_nand_pins>; | ||||||
|  	status = "okay"; |  	status = "okay"; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ | |||||||
|  	}, |  	}, | ||||||
|  	[PORT_NPCM] = { |  	[PORT_NPCM] = { | ||||||
|  		.name		= "Nuvoton 16550", |  		.name		= "Nuvoton 16550", | ||||||
| @@ -2732,6 +2732,11 @@ serial8250_do_set_termios(struct uart_po | @@ -2725,6 +2725,11 @@ serial8250_do_set_termios(struct uart_po | ||||||
|  	unsigned long flags; |  	unsigned long flags; | ||||||
|  	unsigned int baud, quot, frac = 0; |  	unsigned int baud, quot, frac = 0; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -16,8 +16,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  |  | ||||||
| (limited to 'drivers/net/ethernet/marvell/mvneta.c') | (limited to 'drivers/net/ethernet/marvell/mvneta.c') | ||||||
|  |  | ||||||
| diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c |  | ||||||
| index 80e4b500695e6..46b7604805f76 100644 |  | ||||||
| --- a/drivers/net/ethernet/marvell/mvneta.c | --- a/drivers/net/ethernet/marvell/mvneta.c | ||||||
| +++ b/drivers/net/ethernet/marvell/mvneta.c | +++ b/drivers/net/ethernet/marvell/mvneta.c | ||||||
| @@ -38,6 +38,7 @@ | @@ -38,6 +38,7 @@ | ||||||
| @@ -28,7 +26,7 @@ index 80e4b500695e6..46b7604805f76 100644 | |||||||
|  #include <linux/bpf_trace.h> |  #include <linux/bpf_trace.h> | ||||||
|   |   | ||||||
|  /* Registers */ |  /* Registers */ | ||||||
| @@ -4908,14 +4909,14 @@ static void mvneta_setup_rx_prio_map(struct mvneta_port *pp) | @@ -4933,14 +4934,14 @@ static void mvneta_setup_rx_prio_map(str | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  static int mvneta_setup_mqprio(struct net_device *dev, |  static int mvneta_setup_mqprio(struct net_device *dev, | ||||||
| @@ -46,7 +44,7 @@ index 80e4b500695e6..46b7604805f76 100644 | |||||||
|   |   | ||||||
|  	if (num_tc > rxq_number) |  	if (num_tc > rxq_number) | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
| @@ -4926,13 +4927,15 @@ static int mvneta_setup_mqprio(struct net_device *dev, | @@ -4951,13 +4952,15 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  		return 0; |  		return 0; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -66,6 +64,3 @@ index 80e4b500695e6..46b7604805f76 100644 | |||||||
|   |   | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
| --  |  | ||||||
| cgit 1.2.3-1.el7 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -15,11 +15,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  |  | ||||||
| (limited to 'drivers/net/ethernet/marvell/mvneta.c') | (limited to 'drivers/net/ethernet/marvell/mvneta.c') | ||||||
|  |  | ||||||
| diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c |  | ||||||
| index 46b7604805f76..d3ce87e69d2a8 100644 |  | ||||||
| --- a/drivers/net/ethernet/marvell/mvneta.c | --- a/drivers/net/ethernet/marvell/mvneta.c | ||||||
| +++ b/drivers/net/ethernet/marvell/mvneta.c | +++ b/drivers/net/ethernet/marvell/mvneta.c | ||||||
| @@ -4915,7 +4915,9 @@ static int mvneta_setup_mqprio(struct net_device *dev, | @@ -4940,7 +4940,9 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  	u8 num_tc; |  	u8 num_tc; | ||||||
|  	int i; |  	int i; | ||||||
|   |   | ||||||
| @@ -30,6 +28,3 @@ index 46b7604805f76..d3ce87e69d2a8 100644 | |||||||
|  	num_tc = mqprio->qopt.num_tc; |  	num_tc = mqprio->qopt.num_tc; | ||||||
|   |   | ||||||
|  	if (num_tc > rxq_number) |  	if (num_tc > rxq_number) | ||||||
| --  |  | ||||||
| cgit 1.2.3-1.el7 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -20,8 +20,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  |  | ||||||
| (limited to 'drivers/net/ethernet/marvell/mvneta.c') | (limited to 'drivers/net/ethernet/marvell/mvneta.c') | ||||||
|  |  | ||||||
| diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c |  | ||||||
| index d3ce87e69d2a8..aba452e8abfe6 100644 |  | ||||||
| --- a/drivers/net/ethernet/marvell/mvneta.c | --- a/drivers/net/ethernet/marvell/mvneta.c | ||||||
| +++ b/drivers/net/ethernet/marvell/mvneta.c | +++ b/drivers/net/ethernet/marvell/mvneta.c | ||||||
| @@ -493,7 +493,6 @@ struct mvneta_port { | @@ -493,7 +493,6 @@ struct mvneta_port { | ||||||
| @@ -32,7 +30,7 @@ index d3ce87e69d2a8..aba452e8abfe6 100644 | |||||||
|   |   | ||||||
|  	phy_interface_t phy_interface; |  	phy_interface_t phy_interface; | ||||||
|  	struct device_node *dn; |  	struct device_node *dn; | ||||||
| @@ -4897,13 +4896,12 @@ static void mvneta_clear_rx_prio_map(struct mvneta_port *pp) | @@ -4922,13 +4921,12 @@ static void mvneta_clear_rx_prio_map(str | ||||||
|  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, 0); |  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, 0); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -50,7 +48,7 @@ index d3ce87e69d2a8..aba452e8abfe6 100644 | |||||||
|   |   | ||||||
|  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, val); |  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, val); | ||||||
|  } |  } | ||||||
| @@ -4912,8 +4910,8 @@ static int mvneta_setup_mqprio(struct net_device *dev, | @@ -4937,8 +4935,8 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  			       struct tc_mqprio_qopt_offload *mqprio) |  			       struct tc_mqprio_qopt_offload *mqprio) | ||||||
|  { |  { | ||||||
|  	struct mvneta_port *pp = netdev_priv(dev); |  	struct mvneta_port *pp = netdev_priv(dev); | ||||||
| @@ -60,7 +58,7 @@ index d3ce87e69d2a8..aba452e8abfe6 100644 | |||||||
|   |   | ||||||
|  	if (mqprio->qopt.hw != TC_MQPRIO_HW_OFFLOAD_TCS) |  	if (mqprio->qopt.hw != TC_MQPRIO_HW_OFFLOAD_TCS) | ||||||
|  		return 0; |  		return 0; | ||||||
| @@ -4923,21 +4921,28 @@ static int mvneta_setup_mqprio(struct net_device *dev, | @@ -4948,21 +4946,28 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  	if (num_tc > rxq_number) |  	if (num_tc > rxq_number) | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
|   |   | ||||||
| @@ -75,12 +73,12 @@ index d3ce87e69d2a8..aba452e8abfe6 100644 | |||||||
| -	memcpy(pp->prio_tc_map, mqprio->qopt.prio_tc_map, | -	memcpy(pp->prio_tc_map, mqprio->qopt.prio_tc_map, | ||||||
| -	       sizeof(pp->prio_tc_map)); | -	       sizeof(pp->prio_tc_map)); | ||||||
| +	netdev_set_num_tc(dev, mqprio->qopt.num_tc); | +	netdev_set_num_tc(dev, mqprio->qopt.num_tc); | ||||||
| + |   | ||||||
|  | -	mvneta_setup_rx_prio_map(pp); | ||||||
| +	for (tc = 0; tc < mqprio->qopt.num_tc; tc++) { | +	for (tc = 0; tc < mqprio->qopt.num_tc; tc++) { | ||||||
| +		netdev_set_tc_queue(dev, tc, mqprio->qopt.count[tc], | +		netdev_set_tc_queue(dev, tc, mqprio->qopt.count[tc], | ||||||
| +				    mqprio->qopt.offset[tc]); | +				    mqprio->qopt.offset[tc]); | ||||||
|   | + | ||||||
| -	mvneta_setup_rx_prio_map(pp); |  | ||||||
| +		for (rxq = mqprio->qopt.offset[tc]; | +		for (rxq = mqprio->qopt.offset[tc]; | ||||||
| +		     rxq < mqprio->qopt.count[tc] + mqprio->qopt.offset[tc]; | +		     rxq < mqprio->qopt.count[tc] + mqprio->qopt.offset[tc]; | ||||||
| +		     rxq++) { | +		     rxq++) { | ||||||
| @@ -97,6 +95,3 @@ index d3ce87e69d2a8..aba452e8abfe6 100644 | |||||||
|   |   | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
| --  |  | ||||||
| cgit 1.2.3-1.el7 |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -20,8 +20,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  |  | ||||||
| (limited to 'drivers/net/ethernet/marvell/mvneta.c') | (limited to 'drivers/net/ethernet/marvell/mvneta.c') | ||||||
|  |  | ||||||
| diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c |  | ||||||
| index aba452e8abfe6..2368ae3f0e10d 100644 |  | ||||||
| --- a/drivers/net/ethernet/marvell/mvneta.c | --- a/drivers/net/ethernet/marvell/mvneta.c | ||||||
| +++ b/drivers/net/ethernet/marvell/mvneta.c | +++ b/drivers/net/ethernet/marvell/mvneta.c | ||||||
| @@ -248,12 +248,39 @@ | @@ -248,12 +248,39 @@ | ||||||
| @@ -64,7 +62,7 @@ index aba452e8abfe6..2368ae3f0e10d 100644 | |||||||
|  #define MVNETA_LPI_CTRL_0                        0x2cc0 |  #define MVNETA_LPI_CTRL_0                        0x2cc0 | ||||||
|  #define MVNETA_LPI_CTRL_1                        0x2cc4 |  #define MVNETA_LPI_CTRL_1                        0x2cc4 | ||||||
|  #define      MVNETA_LPI_REQUEST_ENABLE           BIT(0) |  #define      MVNETA_LPI_REQUEST_ENABLE           BIT(0) | ||||||
| @@ -4906,11 +4933,74 @@ static void mvneta_map_vlan_prio_to_rxq(struct mvneta_port *pp, u8 pri, u8 rxq) | @@ -4931,11 +4958,74 @@ static void mvneta_map_vlan_prio_to_rxq( | ||||||
|  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, val); |  	mvreg_write(pp, MVNETA_VLAN_PRIO_TO_RXQ, val); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -140,7 +138,7 @@ index aba452e8abfe6..2368ae3f0e10d 100644 | |||||||
|  	u8 num_tc; |  	u8 num_tc; | ||||||
|   |   | ||||||
|  	if (mqprio->qopt.hw != TC_MQPRIO_HW_OFFLOAD_TCS) |  	if (mqprio->qopt.hw != TC_MQPRIO_HW_OFFLOAD_TCS) | ||||||
| @@ -4924,6 +5014,7 @@ static int mvneta_setup_mqprio(struct net_device *dev, | @@ -4949,6 +5039,7 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  	mvneta_clear_rx_prio_map(pp); |  	mvneta_clear_rx_prio_map(pp); | ||||||
|   |   | ||||||
|  	if (!num_tc) { |  	if (!num_tc) { | ||||||
| @@ -148,7 +146,7 @@ index aba452e8abfe6..2368ae3f0e10d 100644 | |||||||
|  		netdev_reset_tc(dev); |  		netdev_reset_tc(dev); | ||||||
|  		return 0; |  		return 0; | ||||||
|  	} |  	} | ||||||
| @@ -4944,6 +5035,33 @@ static int mvneta_setup_mqprio(struct net_device *dev, | @@ -4969,6 +5060,33 @@ static int mvneta_setup_mqprio(struct ne | ||||||
|  		} |  		} | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -182,6 +180,3 @@ index aba452e8abfe6..2368ae3f0e10d 100644 | |||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| --  |  | ||||||
| cgit 1.2.3-1.el7 |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user