kernel: bump 5.15 to 5.15.146
Changelog: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.146 All patches automatically rebased. Build system: x86_64 Build-tested: ramips/tplink_archer-a6-v3 Run-tested: ramips/tplink_archer-a6-v3 Signed-off-by: John Audia <therealgraysky@proton.me> (cherry picked from commit 37bb3893929fc3277e7d26ff0012d86526c98b77) [Refresh on top of OpenWrt 23.05] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
		 John Audia
					John Audia
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							6e39d2426b
						
					
				
				
					commit
					40cfdf5ffe
				
			| @@ -1,2 +1,2 @@ | |||||||
| LINUX_VERSION-5.15 = .145 | LINUX_VERSION-5.15 = .146 | ||||||
| LINUX_KERNEL_HASH-5.15.145 = b2a49d87605f3a9491581150315e22337c1afb599efc1e2737481be3a2d6d620 | LINUX_KERNEL_HASH-5.15.146 = 5a807a5fa2a80ada957d8079681dfb5cc196ec26f43244d1c8a4fd7af592d192 | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> | |||||||
|  |  | ||||||
| --- a/net/bluetooth/smp.c | --- a/net/bluetooth/smp.c | ||||||
| +++ b/net/bluetooth/smp.c | +++ b/net/bluetooth/smp.c | ||||||
| @@ -2207,7 +2207,7 @@ mackey_and_ltk: | @@ -2214,7 +2214,7 @@ mackey_and_ltk: | ||||||
|  	if (err) |  	if (err) | ||||||
|  		return SMP_UNSPECIFIED; |  		return SMP_UNSPECIFIED; | ||||||
|   |   | ||||||
| @@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> | |||||||
|  		if (hcon->out) { |  		if (hcon->out) { | ||||||
|  			sc_dhkey_check(smp); |  			sc_dhkey_check(smp); | ||||||
|  			SMP_ALLOW_CMD(smp, SMP_CMD_DHKEY_CHECK); |  			SMP_ALLOW_CMD(smp, SMP_CMD_DHKEY_CHECK); | ||||||
| @@ -2222,9 +2222,6 @@ mackey_and_ltk: | @@ -2229,9 +2229,6 @@ mackey_and_ltk: | ||||||
|  	confirm_hint = 0; |  	confirm_hint = 0; | ||||||
|   |   | ||||||
|  confirm: |  confirm: | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> | |||||||
|  |  | ||||||
| --- a/drivers/spi/spi.c | --- a/drivers/spi/spi.c | ||||||
| +++ b/drivers/spi/spi.c | +++ b/drivers/spi/spi.c | ||||||
| @@ -3480,6 +3480,7 @@ static int __spi_validate_bits_per_word( | @@ -3492,6 +3492,7 @@ static int __spi_validate_bits_per_word( | ||||||
|   */ |   */ | ||||||
|  int spi_setup(struct spi_device *spi) |  int spi_setup(struct spi_device *spi) | ||||||
|  { |  { | ||||||
| @@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> | |||||||
|  	unsigned	bad_bits, ugly_bits; |  	unsigned	bad_bits, ugly_bits; | ||||||
|  	int		status; |  	int		status; | ||||||
|   |   | ||||||
| @@ -3501,6 +3502,14 @@ int spi_setup(struct spi_device *spi) | @@ -3513,6 +3514,14 @@ int spi_setup(struct spi_device *spi) | ||||||
|  		(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL | |  		(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL | | ||||||
|  		 SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL))) |  		 SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL))) | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
|   | |||||||
| @@ -19,7 +19,7 @@ Subject: [PATCH 210/210] b44: register adm switch | |||||||
|   |   | ||||||
|  #include <linux/uaccess.h> |  #include <linux/uaccess.h> | ||||||
|  #include <asm/io.h> |  #include <asm/io.h> | ||||||
| @@ -2243,6 +2245,69 @@ static void b44_adjust_link(struct net_d | @@ -2245,6 +2247,69 @@ static void b44_adjust_link(struct net_d | ||||||
|  	} |  	} | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -89,7 +89,7 @@ Subject: [PATCH 210/210] b44: register adm switch | |||||||
|  static int b44_register_phy_one(struct b44 *bp) |  static int b44_register_phy_one(struct b44 *bp) | ||||||
|  { |  { | ||||||
|  	__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, }; |  	__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, }; | ||||||
| @@ -2279,6 +2344,9 @@ static int b44_register_phy_one(struct b | @@ -2281,6 +2346,9 @@ static int b44_register_phy_one(struct b | ||||||
|  	if (!mdiobus_is_registered_device(bp->mii_bus, bp->phy_addr) && |  	if (!mdiobus_is_registered_device(bp->mii_bus, bp->phy_addr) && | ||||||
|  	    (sprom->boardflags_lo & (B44_BOARDFLAG_ROBO | B44_BOARDFLAG_ADM))) { |  	    (sprom->boardflags_lo & (B44_BOARDFLAG_ROBO | B44_BOARDFLAG_ADM))) { | ||||||
|   |   | ||||||
| @@ -99,7 +99,7 @@ Subject: [PATCH 210/210] b44: register adm switch | |||||||
|  		dev_info(sdev->dev, |  		dev_info(sdev->dev, | ||||||
|  			 "could not find PHY at %i, use fixed one\n", |  			 "could not find PHY at %i, use fixed one\n", | ||||||
|  			 bp->phy_addr); |  			 bp->phy_addr); | ||||||
| @@ -2473,6 +2541,7 @@ static void b44_remove_one(struct ssb_de | @@ -2475,6 +2543,7 @@ static void b44_remove_one(struct ssb_de | ||||||
|  	unregister_netdev(dev); |  	unregister_netdev(dev); | ||||||
|  	if (bp->flags & B44_FLAG_EXTERNAL_PHY) |  	if (bp->flags & B44_FLAG_EXTERNAL_PHY) | ||||||
|  		b44_unregister_phy_one(bp); |  		b44_unregister_phy_one(bp); | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/drivers/net/ethernet/broadcom/b44.c | --- a/drivers/net/ethernet/broadcom/b44.c | ||||||
| +++ b/drivers/net/ethernet/broadcom/b44.c | +++ b/drivers/net/ethernet/broadcom/b44.c | ||||||
| @@ -429,10 +429,34 @@ static void b44_wap54g10_workaround(stru | @@ -430,10 +430,34 @@ static void b44_wap54g10_workaround(stru | ||||||
|  error: |  error: | ||||||
|  	pr_warn("PHY: cannot reset MII transceiver isolate bit\n"); |  	pr_warn("PHY: cannot reset MII transceiver isolate bit\n"); | ||||||
|  } |  } | ||||||
| @@ -35,7 +35,7 @@ | |||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
|  static int b44_setup_phy(struct b44 *bp) |  static int b44_setup_phy(struct b44 *bp) | ||||||
| @@ -441,6 +465,7 @@ static int b44_setup_phy(struct b44 *bp) | @@ -442,6 +466,7 @@ static int b44_setup_phy(struct b44 *bp) | ||||||
|  	int err; |  	int err; | ||||||
|   |   | ||||||
|  	b44_wap54g10_workaround(bp); |  	b44_wap54g10_workaround(bp); | ||||||
| @@ -43,7 +43,7 @@ | |||||||
|   |   | ||||||
|  	if (bp->flags & B44_FLAG_EXTERNAL_PHY) |  	if (bp->flags & B44_FLAG_EXTERNAL_PHY) | ||||||
|  		return 0; |  		return 0; | ||||||
| @@ -2173,6 +2198,8 @@ static int b44_get_invariants(struct b44 | @@ -2175,6 +2200,8 @@ static int b44_get_invariants(struct b44 | ||||||
|  	 * valid PHY address. */ |  	 * valid PHY address. */ | ||||||
|  	bp->phy_addr &= 0x1F; |  	bp->phy_addr &= 0x1F; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -43,7 +43,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org> | |||||||
|   |   | ||||||
|  #include <asm/byteorder.h> |  #include <asm/byteorder.h> | ||||||
|  #include <asm/irq.h> |  #include <asm/irq.h> | ||||||
| @@ -5557,6 +5561,72 @@ static void fotg210_init(struct fotg210_ | @@ -5554,6 +5558,72 @@ static void fotg210_init(struct fotg210_ | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  /* |  /* | ||||||
| @@ -116,7 +116,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org> | |||||||
|   * fotg210_hcd_probe - initialize faraday FOTG210 HCDs |   * fotg210_hcd_probe - initialize faraday FOTG210 HCDs | ||||||
|   * |   * | ||||||
|   * Allocates basic resources for this USB host controller, and |   * Allocates basic resources for this USB host controller, and | ||||||
| @@ -5633,6 +5703,12 @@ static int fotg210_hcd_probe(struct plat | @@ -5630,6 +5700,12 @@ static int fotg210_hcd_probe(struct plat | ||||||
|   |   | ||||||
|  	fotg210_init(fotg210); |  	fotg210_init(fotg210); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  |  | ||||||
| --- a/drivers/net/usb/ax88179_178a.c | --- a/drivers/net/usb/ax88179_178a.c | ||||||
| +++ b/drivers/net/usb/ax88179_178a.c | +++ b/drivers/net/usb/ax88179_178a.c | ||||||
| @@ -1377,11 +1377,12 @@ static int ax88179_bind(struct usbnet *d | @@ -1363,11 +1363,12 @@ static int ax88179_bind(struct usbnet *d | ||||||
|  	dev->mii.phy_id = 0x03; |  	dev->mii.phy_id = 0x03; | ||||||
|  	dev->mii.supports_gmii = 1; |  	dev->mii.supports_gmii = 1; | ||||||
|   |   | ||||||
| @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|   |   | ||||||
|  	/* Enable checksum offload */ |  	/* Enable checksum offload */ | ||||||
|  	*tmp = AX_RXCOE_IP | AX_RXCOE_TCP | AX_RXCOE_UDP | |  	*tmp = AX_RXCOE_IP | AX_RXCOE_TCP | AX_RXCOE_UDP | | ||||||
| @@ -1587,17 +1588,19 @@ ax88179_tx_fixup(struct usbnet *dev, str | @@ -1573,17 +1574,19 @@ ax88179_tx_fixup(struct usbnet *dev, str | ||||||
|  { |  { | ||||||
|  	u32 tx_hdr1, tx_hdr2; |  	u32 tx_hdr1, tx_hdr2; | ||||||
|  	int frame_size = dev->maxpacket; |  	int frame_size = dev->maxpacket; | ||||||
| @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net> | |||||||
|  	if ((skb_header_cloned(skb) || headroom < 0) && |  	if ((skb_header_cloned(skb) || headroom < 0) && | ||||||
|  	    pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { |  	    pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { | ||||||
|  		dev_kfree_skb_any(skb); |  		dev_kfree_skb_any(skb); | ||||||
| @@ -1608,6 +1611,8 @@ ax88179_tx_fixup(struct usbnet *dev, str | @@ -1594,6 +1597,8 @@ ax88179_tx_fixup(struct usbnet *dev, str | ||||||
|  	put_unaligned_le32(tx_hdr1, ptr); |  	put_unaligned_le32(tx_hdr1, ptr); | ||||||
|  	put_unaligned_le32(tx_hdr2, ptr + 4); |  	put_unaligned_le32(tx_hdr2, ptr + 4); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -148,7 +148,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |||||||
|   * of_find_node_by_phandle - Find a node given a phandle |   * of_find_node_by_phandle - Find a node given a phandle | ||||||
| --- a/drivers/spi/spi.c | --- a/drivers/spi/spi.c | ||||||
| +++ b/drivers/spi/spi.c | +++ b/drivers/spi/spi.c | ||||||
| @@ -2128,8 +2128,8 @@ of_register_spi_device(struct spi_contro | @@ -2140,8 +2140,8 @@ of_register_spi_device(struct spi_contro | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	/* Select device driver */ |  	/* Select device driver */ | ||||||
|   | |||||||
| @@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	help |  	help | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -3597,6 +3597,11 @@ static int xmit_one(struct sk_buff *skb, | @@ -3600,6 +3600,11 @@ static int xmit_one(struct sk_buff *skb, | ||||||
|  	if (dev_nit_active(dev)) |  	if (dev_nit_active(dev)) | ||||||
|  		dev_queue_xmit_nit(skb, dev); |  		dev_queue_xmit_nit(skb, dev); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -43,7 +43,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support | |||||||
|   |   | ||||||
|  #define QUECTEL_VENDOR_ID			0x2c7c |  #define QUECTEL_VENDOR_ID			0x2c7c | ||||||
|  /* These Quectel products use Quectel's vendor ID */ |  /* These Quectel products use Quectel's vendor ID */ | ||||||
| @@ -1146,6 +1151,11 @@ static const struct usb_device_id option | @@ -1147,6 +1152,11 @@ static const struct usb_device_id option | ||||||
|  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ |  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ | ||||||
|  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */ |  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */ | ||||||
|  	  .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) }, |  	  .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) }, | ||||||
| @@ -55,7 +55,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support | |||||||
|  	/* Quectel products using Qualcomm vendor ID */ |  	/* Quectel products using Qualcomm vendor ID */ | ||||||
|  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)}, |  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)}, | ||||||
|  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20), |  	{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20), | ||||||
| @@ -1187,6 +1197,11 @@ static const struct usb_device_id option | @@ -1188,6 +1198,11 @@ static const struct usb_device_id option | ||||||
|  	  .driver_info = ZLP }, |  	  .driver_info = ZLP }, | ||||||
|  	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), |  	{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), | ||||||
|  	  .driver_info = RSVD(4) }, |  	  .driver_info = RSVD(4) }, | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	__u8			inner_protocol_type:1; |  	__u8			inner_protocol_type:1; | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -6074,6 +6074,9 @@ static enum gro_result dev_gro_receive(s | @@ -6077,6 +6077,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; | ||||||
|   |   | ||||||
| @@ -8088,6 +8091,48 @@ static void __netdev_adjacent_dev_unlink | @@ -8091,6 +8094,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, | ||||||
| @@ -8139,6 +8184,7 @@ static int __netdev_upper_dev_link(struc | @@ -8142,6 +8187,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); | ||||||
| @@ -8235,6 +8281,7 @@ static void __netdev_upper_dev_unlink(st | @@ -8238,6 +8284,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); | ||||||
|   |   | ||||||
| @@ -9054,6 +9101,7 @@ int dev_set_mac_address(struct net_devic | @@ -9057,6 +9104,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; | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  #endif |  #endif | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -4583,7 +4583,7 @@ static int rps_ipi_queued(struct softnet | @@ -4586,7 +4586,7 @@ static int rps_ipi_queued(struct softnet | ||||||
|  #ifdef CONFIG_RPS |  #ifdef CONFIG_RPS | ||||||
|  	struct softnet_data *mysd = this_cpu_ptr(&softnet_data); |  	struct softnet_data *mysd = this_cpu_ptr(&softnet_data); | ||||||
|   |   | ||||||
| @@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  		sd->rps_ipi_next = mysd->rps_ipi_list; |  		sd->rps_ipi_next = mysd->rps_ipi_list; | ||||||
|  		mysd->rps_ipi_list = sd; |  		mysd->rps_ipi_list = sd; | ||||||
|   |   | ||||||
| @@ -5764,6 +5764,8 @@ static DEFINE_PER_CPU(struct work_struct | @@ -5767,6 +5767,8 @@ static DEFINE_PER_CPU(struct work_struct | ||||||
|  /* Network device is going away, flush any packets still pending */ |  /* Network device is going away, flush any packets still pending */ | ||||||
|  static void flush_backlog(struct work_struct *work) |  static void flush_backlog(struct work_struct *work) | ||||||
|  { |  { | ||||||
| @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	struct sk_buff *skb, *tmp; |  	struct sk_buff *skb, *tmp; | ||||||
|  	struct softnet_data *sd; |  	struct softnet_data *sd; | ||||||
|   |   | ||||||
| @@ -5779,9 +5781,18 @@ static void flush_backlog(struct work_st | @@ -5782,9 +5784,18 @@ static void flush_backlog(struct work_st | ||||||
|  			input_queue_head_incr(sd); |  			input_queue_head_incr(sd); | ||||||
|  		} |  		} | ||||||
|  	} |  	} | ||||||
| @@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) { |  	skb_queue_walk_safe(&sd->process_queue, skb, tmp) { | ||||||
|  		if (skb->dev->reg_state == NETREG_UNREGISTERING) { |  		if (skb->dev->reg_state == NETREG_UNREGISTERING) { | ||||||
|  			__skb_unlink(skb, &sd->process_queue); |  			__skb_unlink(skb, &sd->process_queue); | ||||||
| @@ -5789,7 +5800,18 @@ static void flush_backlog(struct work_st | @@ -5792,7 +5803,18 @@ static void flush_backlog(struct work_st | ||||||
|  			input_queue_head_incr(sd); |  			input_queue_head_incr(sd); | ||||||
|  		} |  		} | ||||||
|  	} |  	} | ||||||
| @@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static bool flush_required(int cpu) |  static bool flush_required(int cpu) | ||||||
| @@ -6472,6 +6494,7 @@ static int process_backlog(struct napi_s | @@ -6475,6 +6497,7 @@ static int process_backlog(struct napi_s | ||||||
|   |   | ||||||
|  		local_irq_disable(); |  		local_irq_disable(); | ||||||
|  		rps_lock(sd); |  		rps_lock(sd); | ||||||
| @@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  		if (skb_queue_empty(&sd->input_pkt_queue)) { |  		if (skb_queue_empty(&sd->input_pkt_queue)) { | ||||||
|  			/* |  			/* | ||||||
|  			 * Inline a custom version of __napi_complete(). |  			 * Inline a custom version of __napi_complete(). | ||||||
| @@ -6481,7 +6504,8 @@ static int process_backlog(struct napi_s | @@ -6484,7 +6507,8 @@ static int process_backlog(struct napi_s | ||||||
|  			 * We can use a plain write instead of clear_bit(), |  			 * We can use a plain write instead of clear_bit(), | ||||||
|  			 * and we dont need an smp_mb() memory barrier. |  			 * and we dont need an smp_mb() memory barrier. | ||||||
|  			 */ |  			 */ | ||||||
| @@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  			again = false; |  			again = false; | ||||||
|  		} else { |  		} else { | ||||||
|  			skb_queue_splice_tail_init(&sd->input_pkt_queue, |  			skb_queue_splice_tail_init(&sd->input_pkt_queue, | ||||||
| @@ -6898,6 +6922,57 @@ int dev_set_threaded(struct net_device * | @@ -6901,6 +6925,57 @@ int dev_set_threaded(struct net_device * | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL(dev_set_threaded); |  EXPORT_SYMBOL(dev_set_threaded); | ||||||
|   |   | ||||||
| @@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  void netif_napi_add(struct net_device *dev, struct napi_struct *napi, |  void netif_napi_add(struct net_device *dev, struct napi_struct *napi, | ||||||
|  		    int (*poll)(struct napi_struct *, int), int weight) |  		    int (*poll)(struct napi_struct *, int), int weight) | ||||||
|  { |  { | ||||||
| @@ -11378,6 +11453,9 @@ static int dev_cpu_dead(unsigned int old | @@ -11381,6 +11456,9 @@ static int dev_cpu_dead(unsigned int old | ||||||
|  	raise_softirq_irqoff(NET_TX_SOFTIRQ); |  	raise_softirq_irqoff(NET_TX_SOFTIRQ); | ||||||
|  	local_irq_enable(); |  	local_irq_enable(); | ||||||
|   |   | ||||||
| @@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  #ifdef CONFIG_RPS |  #ifdef CONFIG_RPS | ||||||
|  	remsd = oldsd->rps_ipi_list; |  	remsd = oldsd->rps_ipi_list; | ||||||
|  	oldsd->rps_ipi_list = NULL; |  	oldsd->rps_ipi_list = NULL; | ||||||
| @@ -11717,6 +11795,7 @@ static int __init net_dev_init(void) | @@ -11720,6 +11798,7 @@ static int __init net_dev_init(void) | ||||||
|  		sd->cpu = i; |  		sd->cpu = i; | ||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com> | |||||||
|  |  | ||||||
| --- a/drivers/spi/spi.c | --- a/drivers/spi/spi.c | ||||||
| +++ b/drivers/spi/spi.c | +++ b/drivers/spi/spi.c | ||||||
| @@ -1234,6 +1234,70 @@ static int spi_transfer_wait(struct spi_ | @@ -1246,6 +1246,70 @@ static int spi_transfer_wait(struct spi_ | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -82,7 +82,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com> | |||||||
|  static void _spi_transfer_delay_ns(u32 ns) |  static void _spi_transfer_delay_ns(u32 ns) | ||||||
|  { |  { | ||||||
|  	if (!ns) |  	if (!ns) | ||||||
| @@ -2021,6 +2085,75 @@ void spi_flush_queue(struct spi_controll | @@ -2033,6 +2097,75 @@ void spi_flush_queue(struct spi_controll | ||||||
|  /*-------------------------------------------------------------------------*/ |  /*-------------------------------------------------------------------------*/ | ||||||
|   |   | ||||||
|  #if defined(CONFIG_OF) |  #if defined(CONFIG_OF) | ||||||
| @@ -158,7 +158,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com> | |||||||
|  static int of_spi_parse_dt(struct spi_controller *ctlr, struct spi_device *spi, |  static int of_spi_parse_dt(struct spi_controller *ctlr, struct spi_device *spi, | ||||||
|  			   struct device_node *nc) |  			   struct device_node *nc) | ||||||
|  { |  { | ||||||
| @@ -2139,6 +2272,10 @@ of_register_spi_device(struct spi_contro | @@ -2151,6 +2284,10 @@ of_register_spi_device(struct spi_contro | ||||||
|  	if (rc) |  	if (rc) | ||||||
|  		goto err_out; |  		goto err_out; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -72,7 +72,7 @@ Signed-off-by: Wolfram Sang <wsa@kernel.org> | |||||||
|  	idev->adapter.dev.parent = &pdev->dev; |  	idev->adapter.dev.parent = &pdev->dev; | ||||||
| --- a/drivers/i2c/busses/i2c-aspeed.c | --- a/drivers/i2c/busses/i2c-aspeed.c | ||||||
| +++ b/drivers/i2c/busses/i2c-aspeed.c | +++ b/drivers/i2c/busses/i2c-aspeed.c | ||||||
| @@ -1028,7 +1028,7 @@ static int aspeed_i2c_probe_bus(struct p | @@ -1044,7 +1044,7 @@ static int aspeed_i2c_probe_bus(struct p | ||||||
|  	bus->adap.algo = &aspeed_i2c_algo; |  	bus->adap.algo = &aspeed_i2c_algo; | ||||||
|  	bus->adap.dev.parent = &pdev->dev; |  	bus->adap.dev.parent = &pdev->dev; | ||||||
|  	bus->adap.dev.of_node = pdev->dev.of_node; |  	bus->adap.dev.of_node = pdev->dev.of_node; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user