Pārlūkot izejas kodu

kernel: Update kernel 5.4 to version 5.4.50

Run tested: ath79, ipq40xx
Build tested: ath79, ipq40xx

Signed-off-by: Hauke Mehrtens <[email protected]>
Hauke Mehrtens 5 gadi atpakaļ
vecāks
revīzija
68d9cb8214
55 mainītis faili ar 100 papildinājumiem un 383 dzēšanām
  1. 2 2
      include/kernel-version.mk
  2. 1 1
      target/linux/apm821xx/patches-5.4/301-fix-memory-map-wndr4700.patch
  3. 1 1
      target/linux/ath79/patches-5.4/0005-usb-add-more-OF-quirk-properties.patch
  4. 1 1
      target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch
  5. 1 1
      target/linux/bcm27xx/patches-5.4/950-0034-amba_pl011-Add-cts-event-workaround-DT-property.patch
  6. 1 1
      target/linux/bcm27xx/patches-5.4/950-0144-rtc-rv3028-Add-backup-switchover-mode-support.patch
  7. 2 2
      target/linux/bcm27xx/patches-5.4/950-0211-bcmgenet-Better-coalescing-parameter-defaults.patch
  8. 2 2
      target/linux/bcm27xx/patches-5.4/950-0222-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
  9. 2 2
      target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
  10. 1 1
      target/linux/bcm27xx/patches-5.4/950-0295-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
  11. 1 1
      target/linux/bcm27xx/patches-5.4/950-0340-drm-v3d-The-third-IRQ-is-optional.patch
  12. 3 3
      target/linux/bcm27xx/patches-5.4/950-0447-PCI-of-Add-inbound-resource-parsing-to-helpers.patch
  13. 1 1
      target/linux/bcm63xx/patches-5.4/206-USB-EHCI-allow-limiting-ports-for-ehci-platform.patch
  14. 8 8
      target/linux/generic/backport-5.4/393-v5.5-sch_cake-drop-unused-variable-tin_quantum_prio.patch
  15. 0 96
      target/linux/generic/backport-5.4/396-5.8-sch_cake-don-t-try-to-reallocate-or-unshare-skb-unco.patch
  16. 0 62
      target/linux/generic/backport-5.4/397-5.8-sch_cake-don-t-call-diffserv-parsing-code-when-it-is.patch
  17. 0 40
      target/linux/generic/backport-5.4/398-5.8-sch_cake-fix-a-few-style-nits.patch
  18. 3 3
      target/linux/generic/backport-5.4/737-v5.5-net-phy-add-core-phylib-sfp-support.patch
  19. 3 3
      target/linux/generic/backport-5.4/750-v5.5-net-phy-add-support-for-clause-37-auto-negotiation.patch
  20. 3 3
      target/linux/generic/backport-5.4/803-v5.8-i2c-pxa-use-official-address-byte-helper.patch
  21. 5 5
      target/linux/generic/backport-5.4/806-v5.8-i2c-pxa-re-arrange-functions-to-flow-better.patch
  22. 4 4
      target/linux/generic/backport-5.4/808-v5.8-i2c-pxa-add-and-use-definitions-for-IBMR-register.patch
  23. 1 1
      target/linux/generic/backport-5.4/809-v5.8-i2c-pxa-always-set-fm-and-hs-members-for-each-type.patch
  24. 1 1
      target/linux/generic/backport-5.4/811-v5.8-i2c-pxa-move-DT-IDs-along-side-platform-IDs.patch
  25. 0 47
      target/linux/generic/backport-5.4/812-v5.8-i2c-pxa-fix-i2c_pxa_scream_blue_murder-debug-output.patch
  26. 4 4
      target/linux/generic/backport-5.4/815-v5.8-i2c-pxa-consolidate-i2c_pxa_-xfer-implementations.patch
  27. 2 2
      target/linux/generic/backport-5.4/816-v5.8-i2c-pxa-avoid-complaints-with-non-responsive-slaves.patch
  28. 3 3
      target/linux/generic/backport-5.4/817-v5.8-i2c-pxa-ensure-timeout-messages-are-unique.patch
  29. 1 1
      target/linux/generic/backport-5.4/818-v5.8-i2c-pxa-remove-some-unnecessary-debug.patch
  30. 0 38
      target/linux/generic/backport-5.4/819-v5.8-i2c-pxa-clear-all-master-action-bits-in-i2c_pxa_stop.patch
  31. 1 1
      target/linux/generic/hack-5.4/259-regmap_dynamic.patch
  32. 1 1
      target/linux/generic/hack-5.4/260-crypto_test_dependencies.patch
  33. 1 1
      target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch
  34. 1 1
      target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch
  35. 1 1
      target/linux/generic/hack-5.4/702-phy_add_aneg_done_function.patch
  36. 1 1
      target/linux/generic/hack-5.4/721-phy_packets.patch
  37. 1 1
      target/linux/generic/hack-5.4/901-debloat_sock_diag.patch
  38. 1 1
      target/linux/generic/hack-5.4/902-debloat_proc.patch
  39. 1 1
      target/linux/generic/pending-5.4/110-ehci_hcd_ignore_oc.patch
  40. 5 5
      target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
  41. 1 1
      target/linux/generic/pending-5.4/703-phy-add-detach-callback-to-struct-phy_driver.patch
  42. 2 2
      target/linux/generic/pending-5.4/820-libata-Assign-OF-node-to-the-SCSI-device.patch
  43. 8 8
      target/linux/generic/pending-5.4/834-ledtrig-libata.patch
  44. 1 1
      target/linux/ipq806x/patches-5.4/0072-add-ipq806x-with-no-clocks.patch
  45. 2 2
      target/linux/layerscape/patches-5.4/701-net-0234-enetc-WA-for-MDIO-register-access-issue.patch
  46. 1 1
      target/linux/layerscape/patches-5.4/701-net-0236-enetc-Replace-enetc_gregs-with-a-readers-writer-lock.patch
  47. 2 2
      target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch
  48. 1 1
      target/linux/layerscape/patches-5.4/812-pcie-0002-PCI-dwc-Use-interrupt-disabling-instead-of-masking.patch
  49. 1 1
      target/linux/layerscape/patches-5.4/812-pcie-0003-PCI-dwc-fix-the-msi-failure-after-pm-operations.patch
  50. 1 1
      target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch
  51. 1 1
      target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch
  52. 1 1
      target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch
  53. 1 1
      target/linux/mediatek/patches-5.4/0900-bt-mtk-serial-fix.patch
  54. 1 1
      target/linux/mpc85xx/patches-5.4/102-powerpc-add-cmdline-override.patch
  55. 5 5
      target/linux/oxnas/patches-5.4/999-libata-hacks.patch

+ 2 - 2
include/kernel-version.mk

@@ -8,11 +8,11 @@ endif
 
 LINUX_VERSION-4.14 = .187
 LINUX_VERSION-4.19 = .131
-LINUX_VERSION-5.4 = .48
+LINUX_VERSION-5.4 = .50
 
 LINUX_KERNEL_HASH-4.14.187 = 5b223475eaeea196aa7e127d3f253bca5c35d8afdc72ca75230ce1ecdd1454bd
 LINUX_KERNEL_HASH-4.19.131 = 19dfb9f6cc4ba30104b65dcce7d78240a4ae188cb366747d5f8eae35e98964ba
-LINUX_KERNEL_HASH-5.4.48 = bf20ddafcd04c114d34654bb10d1eb74f1864f3d14b676c6f0d42d60bbcf1d53
+LINUX_KERNEL_HASH-5.4.50 = ad10f4c1e900f4e3eb4903b65dbcb4ca74250de63aa9fa7105b9b3c3f9a8a6e2
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

+ 1 - 1
target/linux/apm821xx/patches-5.4/301-fix-memory-map-wndr4700.patch

@@ -1,6 +1,6 @@
 --- a/arch/powerpc/platforms/4xx/pci.c
 +++ b/arch/powerpc/platforms/4xx/pci.c
-@@ -1904,9 +1904,9 @@ static void __init ppc4xx_configure_pcie
+@@ -1902,9 +1902,9 @@ static void __init ppc4xx_configure_pcie
  		 * if it works
  		 */
  		out_le32(mbase + PECFG_PIM0LAL, 0x00000000);

+ 1 - 1
target/linux/ath79/patches-5.4/0005-usb-add-more-OF-quirk-properties.patch

@@ -10,7 +10,7 @@ Signed-off-by: John Crispin <[email protected]>
 
 --- a/drivers/usb/host/ehci-platform.c
 +++ b/drivers/usb/host/ehci-platform.c
-@@ -159,6 +159,11 @@ static int ehci_platform_probe(struct pl
+@@ -269,6 +269,11 @@ static int ehci_platform_probe(struct pl
  	ehci = hcd_to_ehci(hcd);
  
  	if (pdata == &ehci_platform_defaults && dev->dev.of_node) {

+ 1 - 1
target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch

@@ -706,7 +706,7 @@
  EXPORT_SYMBOL(xfrm_parse_spi);
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
-@@ -3958,14 +3958,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -3968,14 +3968,16 @@ static bool tcp_parse_aligned_timestamp(
  {
  	const __be32 *ptr = (const __be32 *)(th + 1);
  

+ 1 - 1
target/linux/bcm27xx/patches-5.4/950-0034-amba_pl011-Add-cts-event-workaround-DT-property.patch

@@ -36,7 +36,7 @@ Signed-off-by: Phil Elwell <[email protected]>
    - reg
 --- a/drivers/tty/serial/amba-pl011.c
 +++ b/drivers/tty/serial/amba-pl011.c
-@@ -2659,6 +2659,11 @@ static int pl011_probe(struct amba_devic
+@@ -2660,6 +2660,11 @@ static int pl011_probe(struct amba_devic
  	if (IS_ERR(uap->clk))
  		return PTR_ERR(uap->clk);
  

+ 1 - 1
target/linux/bcm27xx/patches-5.4/950-0144-rtc-rv3028-Add-backup-switchover-mode-support.patch

@@ -26,7 +26,7 @@ Signed-off-by: Phil Howard <[email protected]>
  	struct nvmem_config nvmem_cfg = {
  		.name = "rv3028_nvram",
  		.word_size = 1,
-@@ -669,6 +671,21 @@ static int rv3028_probe(struct i2c_clien
+@@ -671,6 +673,21 @@ static int rv3028_probe(struct i2c_clien
  	if (ret)
  		return ret;
  

+ 2 - 2
target/linux/bcm27xx/patches-5.4/950-0211-bcmgenet-Better-coalescing-parameter-defaults.patch

@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <[email protected]>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2151,7 +2151,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2149,7 +2149,7 @@ static void bcmgenet_init_tx_ring(struct
  
  	bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
  	bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <[email protected]>
  	/* Disable rate control for now */
  	bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
  				  TDMA_FLOW_PERIOD);
-@@ -3575,9 +3575,12 @@ static int bcmgenet_probe(struct platfor
+@@ -3573,9 +3573,12 @@ static int bcmgenet_probe(struct platfor
  	netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
  
  	/* Set default coalescing parameters */

+ 2 - 2
target/linux/bcm27xx/patches-5.4/950-0222-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch

@@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1452,6 +1452,103 @@ command_cleanup:
+@@ -1453,6 +1453,103 @@ command_cleanup:
  }
  
  /*
@@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
   * non-error returns are a promise to giveback() the urb later
   * we drop ownership so next owner (or urb unlink) can get it
   */
-@@ -5327,6 +5424,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5334,6 +5431,7 @@ static const struct hc_driver xhci_hc_dr
  	.endpoint_reset =	xhci_endpoint_reset,
  	.check_bandwidth =	xhci_check_bandwidth,
  	.reset_bandwidth =	xhci_reset_bandwidth,

+ 2 - 2
target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch

@@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
  #define USB_VENDOR_ID_BELKIN		0x050d
  #define USB_DEVICE_ID_FLIP_KVM		0x3201
  
-@@ -1231,6 +1234,9 @@
+@@ -1234,6 +1237,9 @@
  #define USB_VENDOR_ID_XAT	0x2505
  #define USB_DEVICE_ID_XAT_CSR	0x0220
  
@@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
-@@ -177,6 +178,7 @@ static const struct hid_device_id hid_qu
+@@ -178,6 +179,7 @@ static const struct hid_device_id hid_qu
  	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
  	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
  	{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },

+ 1 - 1
target/linux/bcm27xx/patches-5.4/950-0295-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch

@@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell <[email protected]>
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
  	/* MIPS chips strapped for BE will automagically configure the
-@@ -1997,6 +2001,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -1995,6 +1999,11 @@ static void reset_umac(struct bcmgenet_p
  	bcmgenet_rbuf_ctrl_set(priv, 0);
  	udelay(10);
  

+ 1 - 1
target/linux/bcm27xx/patches-5.4/950-0340-drm-v3d-The-third-IRQ-is-optional.patch

@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <[email protected]>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -3476,7 +3476,7 @@ static int bcmgenet_probe(struct platfor
+@@ -3474,7 +3474,7 @@ static int bcmgenet_probe(struct platfor
  	priv = netdev_priv(dev);
  	priv->irq0 = platform_get_irq(pdev, 0);
  	priv->irq1 = platform_get_irq(pdev, 1);

+ 3 - 3
target/linux/bcm27xx/patches-5.4/950-0447-PCI-of-Add-inbound-resource-parsing-to-helpers.patch

@@ -65,7 +65,7 @@ Cc: [email protected]
 
 --- a/drivers/pci/controller/dwc/pcie-designware-host.c
 +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
-@@ -343,12 +343,8 @@ int dw_pcie_host_init(struct pcie_port *
+@@ -345,12 +345,8 @@ int dw_pcie_host_init(struct pcie_port *
  	if (!bridge)
  		return -ENOMEM;
  
@@ -82,7 +82,7 @@ Cc: [email protected]
  
 --- a/drivers/pci/controller/pci-aardvark.c
 +++ b/drivers/pci/controller/pci-aardvark.c
-@@ -1023,7 +1023,8 @@ static int advk_pcie_probe(struct platfo
+@@ -1019,7 +1019,8 @@ static int advk_pcie_probe(struct platfo
  		return ret;
  	}
  
@@ -224,7 +224,7 @@ Cc: [email protected]
  		return ret;
 --- a/drivers/pci/controller/pcie-rcar.c
 +++ b/drivers/pci/controller/pcie-rcar.c
-@@ -1143,7 +1143,8 @@ static int rcar_pcie_probe(struct platfo
+@@ -1144,7 +1144,8 @@ static int rcar_pcie_probe(struct platfo
  	pcie->dev = dev;
  	platform_set_drvdata(pdev, pcie);
  

+ 1 - 1
target/linux/bcm63xx/patches-5.4/206-USB-EHCI-allow-limiting-ports-for-ehci-platform.patch

@@ -34,7 +34,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  
 --- a/drivers/usb/host/ehci-platform.c
 +++ b/drivers/usb/host/ehci-platform.c
-@@ -57,6 +57,9 @@ static int ehci_platform_reset(struct us
+@@ -62,6 +62,9 @@ static int ehci_platform_reset(struct us
  
  	ehci->has_synopsys_hc_bug = pdata->has_synopsys_hc_bug;
  

+ 8 - 8
target/linux/generic/backport-5.4/393-v5.5-sch_cake-drop-unused-variable-tin_quantum_prio.patch

@@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	s32	tin_deficit;
  	u32	tin_backlog;
  	u32	tin_dropped;
-@@ -1919,7 +1918,7 @@ begin:
+@@ -1943,7 +1942,7 @@ begin:
  		while (b->tin_deficit < 0 ||
  		       !(b->sparse_flow_count + b->bulk_flow_count)) {
  			if (b->tin_deficit <= 0)
@@ -41,7 +41,7 @@ Signed-off-by: David S. Miller <[email protected]>
  			if (b->sparse_flow_count + b->bulk_flow_count)
  				empty = false;
  
-@@ -2241,8 +2240,7 @@ static int cake_config_besteffort(struct
+@@ -2265,8 +2264,7 @@ static int cake_config_besteffort(struct
  
  	cake_set_rate(b, rate, mtu,
  		      us_to_ns(q->target), us_to_ns(q->interval));
@@ -51,7 +51,7 @@ Signed-off-by: David S. Miller <[email protected]>
  
  	return 0;
  }
-@@ -2253,8 +2251,7 @@ static int cake_config_precedence(struct
+@@ -2277,8 +2275,7 @@ static int cake_config_precedence(struct
  	struct cake_sched_data *q = qdisc_priv(sch);
  	u32 mtu = psched_mtu(qdisc_dev(sch));
  	u64 rate = q->rate_bps;
@@ -61,7 +61,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	u32 i;
  
  	q->tin_cnt = 8;
-@@ -2267,18 +2264,14 @@ static int cake_config_precedence(struct
+@@ -2291,18 +2288,14 @@ static int cake_config_precedence(struct
  		cake_set_rate(b, rate, mtu, us_to_ns(q->target),
  			      us_to_ns(q->interval));
  
@@ -83,7 +83,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	}
  
  	return 0;
-@@ -2347,8 +2340,7 @@ static int cake_config_diffserv8(struct
+@@ -2371,8 +2364,7 @@ static int cake_config_diffserv8(struct
  	struct cake_sched_data *q = qdisc_priv(sch);
  	u32 mtu = psched_mtu(qdisc_dev(sch));
  	u64 rate = q->rate_bps;
@@ -93,7 +93,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	u32 i;
  
  	q->tin_cnt = 8;
-@@ -2364,18 +2356,14 @@ static int cake_config_diffserv8(struct
+@@ -2388,18 +2380,14 @@ static int cake_config_diffserv8(struct
  		cake_set_rate(b, rate, mtu, us_to_ns(q->target),
  			      us_to_ns(q->interval));
  
@@ -115,7 +115,7 @@ Signed-off-by: David S. Miller <[email protected]>
  	}
  
  	return 0;
-@@ -2414,17 +2402,11 @@ static int cake_config_diffserv4(struct
+@@ -2438,17 +2426,11 @@ static int cake_config_diffserv4(struct
  	cake_set_rate(&q->tins[3], rate >> 2, mtu,
  		      us_to_ns(q->target), us_to_ns(q->interval));
  
@@ -137,7 +137,7 @@ Signed-off-by: David S. Miller <[email protected]>
  
  	return 0;
  }
-@@ -2455,15 +2437,10 @@ static int cake_config_diffserv3(struct
+@@ -2479,15 +2461,10 @@ static int cake_config_diffserv3(struct
  	cake_set_rate(&q->tins[2], rate >> 2, mtu,
  		      us_to_ns(q->target), us_to_ns(q->interval));
  

+ 0 - 96
target/linux/generic/backport-5.4/396-5.8-sch_cake-don-t-try-to-reallocate-or-unshare-skb-unco.patch

@@ -1,96 +0,0 @@
-From 9208d2863ac689a563b92f2161d8d1e7127d0add Mon Sep 17 00:00:00 2001
-From: Ilya Ponetayev <[email protected]>
-Date: Thu, 25 Jun 2020 22:12:07 +0200
-Subject: [PATCH] sch_cake: don't try to reallocate or unshare skb
- unconditionally
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-cake_handle_diffserv() tries to linearize mac and network header parts of
-skb and to make it writable unconditionally. In some cases it leads to full
-skb reallocation, which reduces throughput and increases CPU load. Some
-measurements of IPv4 forward + NAPT on MIPS router with 580 MHz single-core
-CPU was conducted. It appears that on kernel 4.9 skb_try_make_writable()
-reallocates skb, if skb was allocated in ethernet driver via so-called
-'build skb' method from page cache (it was discovered by strange increase
-of kmalloc-2048 slab at first).
-
-Obtain DSCP value via read-only skb_header_pointer() call, and leave
-linearization only for DSCP bleaching or ECN CE setting. And, as an
-additional optimisation, skip diffserv parsing entirely if it is not needed
-by the current configuration.
-
-Fixes: c87b4ecdbe8d ("sch_cake: Make sure we can write the IP header before changing DSCP bits")
-Signed-off-by: Ilya Ponetayev <[email protected]>
-[ fix a few style issues, reflow commit message ]
-Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
-Signed-off-by: David S. Miller <[email protected]>
-Signed-off-by: Kevin Darbyshire-Bryant <[email protected]>
----
- net/sched/sch_cake.c | 41 ++++++++++++++++++++++++++++++-----------
- 1 file changed, 30 insertions(+), 11 deletions(-)
-
---- a/net/sched/sch_cake.c
-+++ b/net/sched/sch_cake.c
-@@ -1553,30 +1553,49 @@ static unsigned int cake_drop(struct Qdi
- 
- static u8 cake_handle_diffserv(struct sk_buff *skb, u16 wash)
- {
--	int wlen = skb_network_offset(skb);
-+	const int offset = skb_network_offset(skb);
-+	u16 *buf, buf_;
- 	u8 dscp;
- 
- 	switch (tc_skb_protocol(skb)) {
- 	case htons(ETH_P_IP):
--		wlen += sizeof(struct iphdr);
--		if (!pskb_may_pull(skb, wlen) ||
--		    skb_try_make_writable(skb, wlen))
-+		buf = skb_header_pointer(skb, offset, sizeof(buf_), &buf_);
-+		if (unlikely(!buf))
- 			return 0;
- 
--		dscp = ipv4_get_dsfield(ip_hdr(skb)) >> 2;
--		if (wash && dscp)
-+		/* ToS is in the second byte of iphdr */
-+		dscp = ipv4_get_dsfield((struct iphdr *)buf) >> 2;
-+
-+		if (wash && dscp) {
-+			const int wlen = offset + sizeof(struct iphdr);
-+
-+			if (!pskb_may_pull(skb, wlen) ||
-+			    skb_try_make_writable(skb, wlen))
-+				return 0;
-+
- 			ipv4_change_dsfield(ip_hdr(skb), INET_ECN_MASK, 0);
-+		}
-+
- 		return dscp;
- 
- 	case htons(ETH_P_IPV6):
--		wlen += sizeof(struct ipv6hdr);
--		if (!pskb_may_pull(skb, wlen) ||
--		    skb_try_make_writable(skb, wlen))
-+		buf = skb_header_pointer(skb, offset, sizeof(buf_), &buf_);
-+		if (unlikely(!buf))
- 			return 0;
- 
--		dscp = ipv6_get_dsfield(ipv6_hdr(skb)) >> 2;
--		if (wash && dscp)
-+		/* Traffic class is in the first and second bytes of ipv6hdr */
-+		dscp = ipv6_get_dsfield((struct ipv6hdr *)buf) >> 2;
-+
-+		if (wash && dscp) {
-+			const int wlen = offset + sizeof(struct ipv6hdr);
-+
-+			if (!pskb_may_pull(skb, wlen) ||
-+			    skb_try_make_writable(skb, wlen))
-+				return 0;
-+
- 			ipv6_change_dsfield(ipv6_hdr(skb), INET_ECN_MASK, 0);
-+		}
-+
- 		return dscp;
- 
- 	case htons(ETH_P_ARP):

+ 0 - 62
target/linux/generic/backport-5.4/397-5.8-sch_cake-don-t-call-diffserv-parsing-code-when-it-is.patch

@@ -1,62 +0,0 @@
-From 8c95eca0bb8c4bd2231a0d581f1ad0d50c90488c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= <[email protected]>
-Date: Thu, 25 Jun 2020 22:12:08 +0200
-Subject: [PATCH] sch_cake: don't call diffserv parsing code when it is not
- needed
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-As a further optimisation of the diffserv parsing codepath, we can skip it
-entirely if CAKE is configured to neither use diffserv-based
-classification, nor to zero out the diffserv bits.
-
-Fixes: c87b4ecdbe8d ("sch_cake: Make sure we can write the IP header before changing DSCP bits")
-Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
-Signed-off-by: David S. Miller <[email protected]>
-Signed-off-by: Kevin Darbyshire-Bryant <[email protected]>
----
- net/sched/sch_cake.c | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
---- a/net/sched/sch_cake.c
-+++ b/net/sched/sch_cake.c
-@@ -1551,7 +1551,7 @@ static unsigned int cake_drop(struct Qdi
- 	return idx + (tin << 16);
- }
- 
--static u8 cake_handle_diffserv(struct sk_buff *skb, u16 wash)
-+static u8 cake_handle_diffserv(struct sk_buff *skb, bool wash)
- {
- 	const int offset = skb_network_offset(skb);
- 	u16 *buf, buf_;
-@@ -1612,14 +1612,17 @@ static struct cake_tin_data *cake_select
- {
- 	struct cake_sched_data *q = qdisc_priv(sch);
- 	u32 tin, mark;
-+	bool wash;
- 	u8 dscp;
- 
- 	/* Tin selection: Default to diffserv-based selection, allow overriding
--	 * using firewall marks or skb->priority.
-+	 * using firewall marks or skb->priority. Call DSCP parsing early if
-+	 * wash is enabled, otherwise defer to below to skip unneeded parsing.
- 	 */
--	dscp = cake_handle_diffserv(skb,
--				    q->rate_flags & CAKE_FLAG_WASH);
- 	mark = (skb->mark & q->fwmark_mask) >> q->fwmark_shft;
-+	wash = !!(q->rate_flags & CAKE_FLAG_WASH);
-+	if (wash)
-+		dscp = cake_handle_diffserv(skb, wash);
- 
- 	if (q->tin_mode == CAKE_DIFFSERV_BESTEFFORT)
- 		tin = 0;
-@@ -1633,6 +1636,8 @@ static struct cake_tin_data *cake_select
- 		tin = q->tin_order[TC_H_MIN(skb->priority) - 1];
- 
- 	else {
-+		if (!wash)
-+			dscp = cake_handle_diffserv(skb, wash);
- 		tin = q->tin_index[dscp];
- 
- 		if (unlikely(tin >= q->tin_cnt))

+ 0 - 40
target/linux/generic/backport-5.4/398-5.8-sch_cake-fix-a-few-style-nits.patch

@@ -1,40 +0,0 @@
-From 3f608f0c41360b11b04c763f348b712f651c8bac Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= <[email protected]>
-Date: Thu, 25 Jun 2020 22:12:09 +0200
-Subject: [PATCH] sch_cake: fix a few style nits
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-I spotted a few nits when comparing the in-tree version of sch_cake with
-the out-of-tree one: A redundant error variable declaration shadowing an
-outer declaration, and an indentation alignment issue. Fix both of these.
-
-Fixes: 046f6fd5daef ("sched: Add Common Applications Kept Enhanced (cake) qdisc")
-Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
-Signed-off-by: David S. Miller <[email protected]>
-Signed-off-by: Kevin Darbyshire-Bryant <[email protected]>
----
- net/sched/sch_cake.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/net/sched/sch_cake.c
-+++ b/net/sched/sch_cake.c
-@@ -2717,7 +2717,7 @@ static int cake_init(struct Qdisc *sch,
- 	qdisc_watchdog_init(&q->watchdog, sch);
- 
- 	if (opt) {
--		int err = cake_change(sch, opt, extack);
-+		err = cake_change(sch, opt, extack);
- 
- 		if (err)
- 			return err;
-@@ -3034,7 +3034,7 @@ static int cake_dump_class_stats(struct
- 			PUT_STAT_S32(BLUE_TIMER_US,
- 				     ktime_to_us(
- 					     ktime_sub(now,
--						     flow->cvars.blue_timer)));
-+						       flow->cvars.blue_timer)));
- 		}
- 		if (flow->cvars.dropping) {
- 			PUT_STAT_S32(DROP_NEXT_US,

+ 3 - 3
target/linux/generic/backport-5.4/737-v5.5-net-phy-add-core-phylib-sfp-support.patch

@@ -54,7 +54,7 @@ Signed-off-by: Russell King <[email protected]>
  #include <linux/mdio.h>
  #include <linux/io.h>
  #include <linux/uaccess.h>
-@@ -1183,6 +1184,65 @@ phy_standalone_show(struct device *dev,
+@@ -1185,6 +1186,65 @@ phy_standalone_show(struct device *dev,
  static DEVICE_ATTR_RO(phy_standalone);
  
  /**
@@ -120,7 +120,7 @@ Signed-off-by: Russell King <[email protected]>
   * phy_attach_direct - attach a network device to a given PHY device pointer
   * @dev: network device to attach
   * @phydev: Pointer to phy_device to attach
-@@ -1259,6 +1319,9 @@ int phy_attach_direct(struct net_device
+@@ -1261,6 +1321,9 @@ int phy_attach_direct(struct net_device
  		dev->phydev = phydev;
  	}
  
@@ -130,7 +130,7 @@ Signed-off-by: Russell King <[email protected]>
  	/* Some Ethernet drivers try to connect to a PHY device before
  	 * calling register_netdevice() -> netdev_register_kobject() and
  	 * does the dev->dev.kobj initialization. Here we only check for
-@@ -2287,6 +2350,9 @@ static int phy_remove(struct device *dev
+@@ -2289,6 +2352,9 @@ static int phy_remove(struct device *dev
  	phydev->state = PHY_DOWN;
  	mutex_unlock(&phydev->lock);
  

+ 3 - 3
target/linux/generic/backport-5.4/750-v5.5-net-phy-add-support-for-clause-37-auto-negotiation.patch

@@ -20,7 +20,7 @@ Signed-off-by: David S. Miller <[email protected]>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1679,6 +1679,40 @@ static int genphy_config_advert(struct p
+@@ -1681,6 +1681,40 @@ static int genphy_config_advert(struct p
  }
  
  /**
@@ -61,7 +61,7 @@ Signed-off-by: David S. Miller <[email protected]>
   * genphy_config_eee_advert - disable unwanted eee mode advertisement
   * @phydev: target phy_device struct
   *
-@@ -1787,6 +1821,54 @@ int __genphy_config_aneg(struct phy_devi
+@@ -1789,6 +1823,54 @@ int __genphy_config_aneg(struct phy_devi
  EXPORT_SYMBOL(__genphy_config_aneg);
  
  /**
@@ -116,7 +116,7 @@ Signed-off-by: David S. Miller <[email protected]>
   * genphy_aneg_done - return auto-negotiation status
   * @phydev: target phy_device struct
   *
-@@ -1958,6 +2040,63 @@ int genphy_read_status(struct phy_device
+@@ -1960,6 +2042,63 @@ int genphy_read_status(struct phy_device
  EXPORT_SYMBOL(genphy_read_status);
  
  /**

+ 3 - 3
target/linux/generic/backport-5.4/803-v5.8-i2c-pxa-use-official-address-byte-helper.patch

@@ -18,7 +18,7 @@ Signed-off-by: Russell King <[email protected]>
 
 --- a/drivers/i2c/busses/i2c-pxa.c
 +++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -675,16 +675,6 @@ static void i2c_pxa_slave_stop(struct px
+@@ -674,16 +674,6 @@ static void i2c_pxa_slave_stop(struct px
   * PXA I2C Master mode
   */
  
@@ -35,7 +35,7 @@ Signed-off-by: Russell King <[email protected]>
  static inline void i2c_pxa_start_message(struct pxa_i2c *i2c)
  {
  	u32 icr;
-@@ -692,8 +682,8 @@ static inline void i2c_pxa_start_message
+@@ -691,8 +681,8 @@ static inline void i2c_pxa_start_message
  	/*
  	 * Step 1: target slave address into IDBR
  	 */
@@ -46,7 +46,7 @@ Signed-off-by: Russell King <[email protected]>
  
  	/*
  	 * Step 2: initiate the write.
-@@ -1006,8 +996,8 @@ static void i2c_pxa_irq_txempty(struct p
+@@ -1003,8 +993,8 @@ static void i2c_pxa_irq_txempty(struct p
  		/*
  		 * Write the next address.
  		 */

+ 5 - 5
target/linux/generic/backport-5.4/806-v5.8-i2c-pxa-re-arrange-functions-to-flow-better.patch

@@ -18,7 +18,7 @@ Signed-off-by: Russell King <[email protected]>
 
 --- a/drivers/i2c/busses/i2c-pxa.c
 +++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -327,7 +327,6 @@ static void i2c_pxa_scream_blue_murder(s
+@@ -326,7 +326,6 @@ static void i2c_pxa_scream_blue_murder(s
  #endif /* ifdef DEBUG / else */
  
  static void i2c_pxa_master_complete(struct pxa_i2c *i2c, int ret);
@@ -26,7 +26,7 @@ Signed-off-by: Russell King <[email protected]>
  
  static inline int i2c_pxa_is_slavemode(struct pxa_i2c *i2c)
  {
-@@ -700,34 +699,6 @@ static inline void i2c_pxa_stop_message(
+@@ -697,34 +696,6 @@ static inline void i2c_pxa_stop_message(
  	writel(icr, _ICR(i2c));
  }
  
@@ -61,7 +61,7 @@ Signed-off-by: Russell King <[email protected]>
  /*
   * PXA I2C send master code
   * 1. Load master code to IDBR and send it.
-@@ -756,140 +727,6 @@ static int i2c_pxa_send_mastercode(struc
+@@ -753,140 +724,6 @@ static int i2c_pxa_send_mastercode(struc
  	return (timeout == 0) ? I2C_RETRY : 0;
  }
  
@@ -202,7 +202,7 @@ Signed-off-by: Russell King <[email protected]>
  /*
   * i2c_pxa_master_complete - complete the message and wake up.
   */
-@@ -1096,6 +933,71 @@ static irqreturn_t i2c_pxa_handler(int t
+@@ -1093,6 +930,71 @@ static irqreturn_t i2c_pxa_handler(int t
  	return IRQ_HANDLED;
  }
  
@@ -274,7 +274,7 @@ Signed-off-by: Russell King <[email protected]>
  
  static int i2c_pxa_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
  {
-@@ -1129,6 +1031,103 @@ static const struct i2c_algorithm i2c_px
+@@ -1126,6 +1028,103 @@ static const struct i2c_algorithm i2c_px
  	.functionality	= i2c_pxa_functionality,
  };
  

+ 4 - 4
target/linux/generic/backport-5.4/808-v5.8-i2c-pxa-add-and-use-definitions-for-IBMR-register.patch

@@ -27,7 +27,7 @@ Signed-off-by: Russell King <[email protected]>
  #define ICR_START	(1 << 0)	   /* start bit */
  #define ICR_STOP	(1 << 1)	   /* stop bit */
  #define ICR_ACKNAK	(1 << 2)	   /* send ACK(0) or NAK(1) */
-@@ -335,7 +338,7 @@ static void i2c_pxa_abort(struct pxa_i2c
+@@ -334,7 +337,7 @@ static void i2c_pxa_abort(struct pxa_i2c
  		return;
  	}
  
@@ -36,7 +36,7 @@ Signed-off-by: Russell King <[email protected]>
  		unsigned long icr = readl(_ICR(i2c));
  
  		icr &= ~ICR_START;
-@@ -390,7 +393,8 @@ static int i2c_pxa_wait_master(struct px
+@@ -389,7 +392,8 @@ static int i2c_pxa_wait_master(struct px
  		 * quick check of the i2c lines themselves to ensure they've
  		 * gone high...
  		 */
@@ -46,7 +46,7 @@ Signed-off-by: Russell King <[email protected]>
  			if (i2c_debug > 0)
  				dev_dbg(&i2c->adap.dev, "%s: done\n", __func__);
  			return 1;
-@@ -575,7 +579,7 @@ static void i2c_pxa_slave_start(struct p
+@@ -574,7 +578,7 @@ static void i2c_pxa_slave_start(struct p
  	timeout = 0x10000;
  
  	while (1) {
@@ -55,7 +55,7 @@ Signed-off-by: Russell King <[email protected]>
  			break;
  
  		timeout--;
-@@ -638,7 +642,7 @@ static void i2c_pxa_slave_start(struct p
+@@ -637,7 +641,7 @@ static void i2c_pxa_slave_start(struct p
  	timeout = 0x10000;
  
  	while (1) {

+ 1 - 1
target/linux/generic/backport-5.4/809-v5.8-i2c-pxa-always-set-fm-and-hs-members-for-each-type.patch

@@ -53,7 +53,7 @@ Signed-off-by: Russell King <[email protected]>
  	},
  	[REGS_A3700] = {
  		.ibmr =	0x00,
-@@ -1232,8 +1240,8 @@ static int i2c_pxa_probe(struct platform
+@@ -1229,8 +1237,8 @@ static int i2c_pxa_probe(struct platform
  	i2c->reg_idbr = i2c->reg_base + pxa_reg_layout[i2c_type].idbr;
  	i2c->reg_icr = i2c->reg_base + pxa_reg_layout[i2c_type].icr;
  	i2c->reg_isr = i2c->reg_base + pxa_reg_layout[i2c_type].isr;

+ 1 - 1
target/linux/generic/backport-5.4/811-v5.8-i2c-pxa-move-DT-IDs-along-side-platform-IDs.patch

@@ -32,7 +32,7 @@ Signed-off-by: Russell King <[email protected]>
  static const struct platform_device_id i2c_pxa_id_table[] = {
  	{ "pxa2xx-i2c",		REGS_PXA2XX },
  	{ "pxa3xx-pwri2c",	REGS_PXA3XX },
-@@ -1181,15 +1190,6 @@ static const struct i2c_algorithm i2c_px
+@@ -1178,15 +1187,6 @@ static const struct i2c_algorithm i2c_px
  	.functionality	= i2c_pxa_functionality,
  };
  

+ 0 - 47
target/linux/generic/backport-5.4/812-v5.8-i2c-pxa-fix-i2c_pxa_scream_blue_murder-debug-output.patch

@@ -1,47 +0,0 @@
-From: Russell King <[email protected]>
-Bcc: [email protected]
-Cc: [email protected]
-Subject: [PATCH 10/17] i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output
-MIME-Version: 1.0
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-Content-Type: text/plain; charset="utf-8"
-
-The IRQ log output is supposed to appear on a single line.  However,
-commit 3a2dc1677b60 ("i2c: pxa: Update debug function to dump more info
-on error") resulted in it being printed one-entry-per-line, which is
-excessively long.
-
-Fixing this is not a trivial matter; using pr_cont() doesn't work as
-the previous dev_dbg() may not have been compiled in, or may be
-dynamic.
-
-Since the rest of this function output is at error level, and is also
-debug output, promote this to error level as well to avoid this
-problem.
-
-Reduce the number of always zero prefix digits to save screen real-
-estate.
-
-Signed-off-by: Russell King <[email protected]>
----
- drivers/i2c/busses/i2c-pxa.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
---- a/drivers/i2c/busses/i2c-pxa.c
-+++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -364,11 +364,10 @@ static void i2c_pxa_scream_blue_murder(s
- 	dev_err(dev, "IBMR: %08x IDBR: %08x ICR: %08x ISR: %08x\n",
- 		readl(_IBMR(i2c)), readl(_IDBR(i2c)), readl(_ICR(i2c)),
- 		readl(_ISR(i2c)));
--	dev_dbg(dev, "log: ");
-+	dev_err(dev, "log:");
- 	for (i = 0; i < i2c->irqlogidx; i++)
--		pr_debug("[%08x:%08x] ", i2c->isrlog[i], i2c->icrlog[i]);
--
--	pr_debug("\n");
-+		pr_cont(" [%03x:%05x]", i2c->isrlog[i], i2c->icrlog[i]);
-+	pr_cont("\n");
- }
- 
- #else /* ifdef DEBUG */

+ 4 - 4
target/linux/generic/backport-5.4/815-v5.8-i2c-pxa-consolidate-i2c_pxa_-xfer-implementations.patch

@@ -18,7 +18,7 @@ Signed-off-by: Russell King <[email protected]>
 
 --- a/drivers/i2c/busses/i2c-pxa.c
 +++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -1061,18 +1061,20 @@ static int i2c_pxa_do_xfer(struct pxa_i2
+@@ -1059,18 +1059,20 @@ static int i2c_pxa_do_xfer(struct pxa_i2
  	return ret;
  }
  
@@ -44,7 +44,7 @@ Signed-off-by: Russell King <[email protected]>
  		udelay(100);
  	}
  	i2c_pxa_scream_blue_murder(i2c, "exhausted retries");
-@@ -1082,6 +1084,14 @@ static int i2c_pxa_xfer(struct i2c_adapt
+@@ -1080,6 +1082,14 @@ static int i2c_pxa_xfer(struct i2c_adapt
  	return ret;
  }
  
@@ -59,7 +59,7 @@ Signed-off-by: Russell King <[email protected]>
  static u32 i2c_pxa_functionality(struct i2c_adapter *adap)
  {
  	return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL |
-@@ -1165,7 +1175,6 @@ static int i2c_pxa_pio_xfer(struct i2c_a
+@@ -1163,7 +1173,6 @@ static int i2c_pxa_pio_xfer(struct i2c_a
  			    struct i2c_msg msgs[], int num)
  {
  	struct pxa_i2c *i2c = adap->algo_data;
@@ -67,7 +67,7 @@ Signed-off-by: Russell King <[email protected]>
  
  	/* If the I2C controller is disabled we need to reset it
  	  (probably due to a suspend/resume destroying state). We do
-@@ -1174,20 +1183,7 @@ static int i2c_pxa_pio_xfer(struct i2c_a
+@@ -1172,20 +1181,7 @@ static int i2c_pxa_pio_xfer(struct i2c_a
  	if (!(readl(_ICR(i2c)) & ICR_IUE))
  		i2c_pxa_reset(i2c);
  

+ 2 - 2
target/linux/generic/backport-5.4/816-v5.8-i2c-pxa-avoid-complaints-with-non-responsive-slaves.patch

@@ -33,7 +33,7 @@ Signed-off-by: Russell King <[email protected]>
  #define BUS_ERROR               (-EREMOTEIO)
  #define XFER_NAKED              (-ECONNREFUSED)
  #define I2C_RETRY               (-2000) /* an error has occurred retry transmit */
-@@ -840,7 +841,7 @@ static void i2c_pxa_irq_txempty(struct p
+@@ -838,7 +839,7 @@ static void i2c_pxa_irq_txempty(struct p
  		 */
  		if (isr & ISR_ACKNAK) {
  			if (i2c->msg_ptr == 0 && i2c->msg_idx == 0)
@@ -42,7 +42,7 @@ Signed-off-by: Russell King <[email protected]>
  			else
  				ret = XFER_NAKED;
  		}
-@@ -1068,16 +1069,19 @@ static int i2c_pxa_internal_xfer(struct
+@@ -1066,16 +1067,19 @@ static int i2c_pxa_internal_xfer(struct
  {
  	int ret, i;
  

+ 3 - 3
target/linux/generic/backport-5.4/817-v5.8-i2c-pxa-ensure-timeout-messages-are-unique.patch

@@ -16,7 +16,7 @@ Signed-off-by: Russell King <[email protected]>
 
 --- a/drivers/i2c/busses/i2c-pxa.c
 +++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -1054,7 +1054,7 @@ static int i2c_pxa_do_xfer(struct pxa_i2
+@@ -1052,7 +1052,7 @@ static int i2c_pxa_do_xfer(struct pxa_i2
  	ret = i2c->msg_idx;
  
  	if (!timeout && i2c->msg_num) {
@@ -25,7 +25,7 @@ Signed-off-by: Russell King <[email protected]>
  		ret = I2C_RETRY;
  	}
  
-@@ -1124,7 +1124,7 @@ static int i2c_pxa_pio_set_master(struct
+@@ -1122,7 +1122,7 @@ static int i2c_pxa_pio_set_master(struct
  	if (timeout < 0) {
  		show_state(i2c);
  		dev_err(&i2c->adap.dev,
@@ -34,7 +34,7 @@ Signed-off-by: Russell King <[email protected]>
  		return I2C_RETRY;
  	}
  
-@@ -1168,7 +1168,7 @@ static int i2c_pxa_do_pio_xfer(struct px
+@@ -1166,7 +1166,7 @@ static int i2c_pxa_do_pio_xfer(struct px
  
  out:
  	if (timeout == 0) {

+ 1 - 1
target/linux/generic/backport-5.4/818-v5.8-i2c-pxa-remove-some-unnecessary-debug.patch

@@ -20,7 +20,7 @@ Signed-off-by: Russell King <[email protected]>
 
 --- a/drivers/i2c/busses/i2c-pxa.c
 +++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -1116,10 +1116,8 @@ static int i2c_pxa_pio_set_master(struct
+@@ -1114,10 +1114,8 @@ static int i2c_pxa_pio_set_master(struct
  	/*
  	 * Wait for the bus to become free.
  	 */

+ 0 - 38
target/linux/generic/backport-5.4/819-v5.8-i2c-pxa-clear-all-master-action-bits-in-i2c_pxa_stop.patch

@@ -1,38 +0,0 @@
-From: Russell King <[email protected]>
-Bcc: [email protected]
-Subject: [PATCH 5/7] i2c: pxa: clear all master action bits in
- i2c_pxa_stop_message()
-MIME-Version: 1.0
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-Content-Type: text/plain; charset="utf-8"
-
-If we timeout during a message transfer, the control register may
-contain bits that cause an action to be set. Read-modify-writing the
-register leaving these bits set may trigger the hardware to attempt
-one of these actions unintentionally.
-
-Always clear these bits when cleaning up after a message or after
-a timeout.
-
-Signed-off-by: Russell King <[email protected]>
----
- drivers/i2c/busses/i2c-pxa.c | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
---- a/drivers/i2c/busses/i2c-pxa.c
-+++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -754,11 +754,9 @@ static inline void i2c_pxa_stop_message(
- {
- 	u32 icr;
- 
--	/*
--	 * Clear the STOP and ACK flags
--	 */
-+	/* Clear the START, STOP, ACK, TB and MA flags */
- 	icr = readl(_ICR(i2c));
--	icr &= ~(ICR_STOP | ICR_ACKNAK);
-+	icr &= ~(ICR_START | ICR_STOP | ICR_ACKNAK | ICR_TB | ICR_MA);
- 	writel(icr, _ICR(i2c));
- }
- 

+ 1 - 1
target/linux/generic/hack-5.4/259-regmap_dynamic.patch

@@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #include <linux/mutex.h>
  #include <linux/err.h>
  #include <linux/of.h>
-@@ -3124,3 +3125,5 @@ static int __init regmap_initcall(void)
+@@ -3125,3 +3126,5 @@ static int __init regmap_initcall(void)
  	return 0;
  }
  postcore_initcall(regmap_initcall);

+ 1 - 1
target/linux/generic/hack-5.4/260-crypto_test_dependencies.patch

@@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS
 --- a/crypto/algboss.c
 +++ b/crypto/algboss.c
-@@ -242,8 +242,12 @@ static int cryptomgr_schedule_test(struc
+@@ -240,8 +240,12 @@ static int cryptomgr_schedule_test(struc
  	type = alg->cra_flags;
  
  	/* Do not test internal algorithms. */

+ 1 - 1
target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch

@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  EXPORT_SYMBOL(default_qdisc_ops);
  
  /* Main transmission queue. */
-@@ -1034,12 +1034,12 @@ static void attach_one_default_qdisc(str
+@@ -1035,12 +1035,12 @@ static void attach_one_default_qdisc(str
  				     void *_unused)
  {
  	struct Qdisc *qdisc;

+ 1 - 1
target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch

@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 
 --- a/net/sched/sch_generic.c
 +++ b/net/sched/sch_generic.c
-@@ -594,211 +594,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea
+@@ -595,211 +595,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea
  	.owner		=	THIS_MODULE,
  };
  

+ 1 - 1
target/linux/generic/hack-5.4/702-phy_add_aneg_done_function.patch

@@ -15,7 +15,7 @@
  
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1909,6 +1909,9 @@ int genphy_update_link(struct phy_device
+@@ -1911,6 +1911,9 @@ int genphy_update_link(struct phy_device
  	if (bmcr & BMCR_ANRESTART)
  		goto done;
  

+ 1 - 1
target/linux/generic/hack-5.4/721-phy_packets.patch

@@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -3195,10 +3195,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3191,10 +3191,20 @@ static int xmit_one(struct sk_buff *skb,
  	if (dev_nit_active(dev))
  		dev_queue_xmit_nit(skb, dev);
  

+ 1 - 1
target/linux/generic/hack-5.4/901-debloat_sock_diag.patch

@@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie)
  {
  	struct dst_entry *dst = __sk_dst_get(sk);
-@@ -1746,9 +1759,11 @@ static void __sk_free(struct sock *sk)
+@@ -1747,9 +1760,11 @@ static void __sk_free(struct sock *sk)
  	if (likely(sk->sk_net_refcnt))
  		sock_inuse_add(sock_net(sk), -1);
  

+ 1 - 1
target/linux/generic/hack-5.4/902-debloat_proc.patch

@@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3606,6 +3606,8 @@ static __net_initdata struct pernet_oper
+@@ -3608,6 +3608,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {

+ 1 - 1
target/linux/generic/pending-5.4/110-ehci_hcd_ignore_oc.patch

@@ -48,7 +48,7 @@ Signed-off-by: Florian Fainelli <[email protected]>
  			/*
 --- a/drivers/usb/host/ehci-platform.c
 +++ b/drivers/usb/host/ehci-platform.c
-@@ -206,6 +206,8 @@ static int ehci_platform_probe(struct pl
+@@ -319,6 +319,8 @@ static int ehci_platform_probe(struct pl
  		hcd->has_tt = 1;
  	if (pdata->reset_on_resume)
  		priv->reset_on_resume = true;

+ 5 - 5
target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch

@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	__u16			tc_index;	/* traffic control index */
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -5471,6 +5471,9 @@ static enum gro_result dev_gro_receive(s
+@@ -5469,6 +5469,9 @@ static enum gro_result dev_gro_receive(s
  	int same_flow;
  	int grow;
  
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (netif_elide_gro(skb->dev))
  		goto normal;
  
-@@ -7264,6 +7267,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -7262,6 +7265,48 @@ static void __netdev_adjacent_dev_unlink
  					   &upper_dev->adj_list.lower);
  }
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  static int __netdev_upper_dev_link(struct net_device *dev,
  				   struct net_device *upper_dev, bool master,
  				   void *upper_priv, void *upper_info,
-@@ -7314,6 +7359,7 @@ static int __netdev_upper_dev_link(struc
+@@ -7312,6 +7357,7 @@ static int __netdev_upper_dev_link(struc
  	if (ret)
  		return ret;
  
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  					    &changeupper_info.info);
  	ret = notifier_to_errno(ret);
-@@ -7407,6 +7453,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -7405,6 +7451,7 @@ void netdev_upper_dev_unlink(struct net_
  
  	__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
  
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
  				      &changeupper_info.info);
  
-@@ -8137,6 +8184,7 @@ int dev_set_mac_address(struct net_devic
+@@ -8135,6 +8182,7 @@ int dev_set_mac_address(struct net_devic
  	if (err)
  		return err;
  	dev->addr_assign_type = NET_ADDR_SET;

+ 1 - 1
target/linux/generic/pending-5.4/703-phy-add-detach-callback-to-struct-phy_driver.patch

@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1463,6 +1463,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1465,6 +1465,9 @@ void phy_detach(struct phy_device *phyde
  	struct module *ndev_owner = NULL;
  	struct mii_bus *bus;
  

+ 2 - 2
target/linux/generic/pending-5.4/820-libata-Assign-OF-node-to-the-SCSI-device.patch

@@ -41,7 +41,7 @@ ChangeLog v1->v2:
  
  #include "libata.h"
  #include "libata-transport.h"
-@@ -4570,6 +4571,34 @@ int ata_scsi_add_hosts(struct ata_host *
+@@ -4573,6 +4574,34 @@ int ata_scsi_add_hosts(struct ata_host *
  	return rc;
  }
  
@@ -76,7 +76,7 @@ ChangeLog v1->v2:
  void ata_scsi_scan_host(struct ata_port *ap, int sync)
  {
  	int tries = 5;
-@@ -4595,6 +4624,7 @@ void ata_scsi_scan_host(struct ata_port
+@@ -4598,6 +4627,7 @@ void ata_scsi_scan_host(struct ata_port
  						 NULL);
  			if (!IS_ERR(sdev)) {
  				dev->sdev = sdev;

+ 8 - 8
target/linux/generic/pending-5.4/834-ledtrig-libata.patch

@@ -45,7 +45,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	depends on ACPI
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
-@@ -715,6 +715,19 @@ u64 ata_tf_read_block(const struct ata_t
+@@ -714,6 +714,19 @@ u64 ata_tf_read_block(const struct ata_t
  	return block;
  }
  
@@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  /**
   *	ata_build_rw_tf - Build ATA taskfile for given read/write request
   *	@tf: Target ATA taskfile
-@@ -5116,6 +5129,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5115,6 +5128,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
  		if (tag < 0)
  			return NULL;
  	}
@@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  
  	qc = __ata_qc_from_tag(ap, tag);
  	qc->tag = qc->hw_tag = tag;
-@@ -6050,6 +6066,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -6049,6 +6065,9 @@ struct ata_port *ata_port_alloc(struct a
  	ap->stats.unhandled_irq = 1;
  	ap->stats.idle_irq = 1;
  #endif
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	ata_sff_port_init(ap);
  
  	return ap;
-@@ -6085,6 +6104,12 @@ static void ata_host_release(struct kref
+@@ -6084,6 +6103,12 @@ static void ata_host_release(struct kref
  
  		kfree(ap->pmp_link);
  		kfree(ap->slave_link);
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  		kfree(ap);
  		host->ports[i] = NULL;
  	}
-@@ -6548,7 +6573,23 @@ int ata_host_register(struct ata_host *h
+@@ -6547,7 +6572,23 @@ int ata_host_register(struct ata_host *h
  		host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
  		host->ports[i]->local_port_no = i + 1;
  	}
@@ -124,17 +124,17 @@ Signed-off-by: Daniel Golle <[email protected]>
  		rc = ata_tport_add(host->dev,host->ports[i]);
 --- a/include/linux/libata.h
 +++ b/include/linux/libata.h
-@@ -22,6 +22,9 @@
- #include <linux/acpi.h>
+@@ -23,6 +23,9 @@
  #include <linux/cdrom.h>
  #include <linux/sched.h>
+ #include <linux/async.h>
 +#ifdef CONFIG_ATA_LEDS
 +#include <linux/leds.h>
 +#endif
  
  /*
   * Define if arch has non-standard setup.  This is a _PCI_ standard
-@@ -876,6 +879,12 @@ struct ata_port {
+@@ -879,6 +882,12 @@ struct ata_port {
  #ifdef CONFIG_ATA_ACPI
  	struct ata_acpi_gtm	__acpi_init_gtm; /* use ata_acpi_init_gtm() */
  #endif

+ 1 - 1
target/linux/ipq806x/patches-5.4/0072-add-ipq806x-with-no-clocks.patch

@@ -1,6 +1,6 @@
 --- a/drivers/firmware/qcom_scm.c
 +++ b/drivers/firmware/qcom_scm.c
-@@ -601,6 +601,7 @@ static const struct of_device_id qcom_sc
+@@ -598,6 +598,7 @@ static const struct of_device_id qcom_sc
  							     SCM_HAS_BUS_CLK)
  	},
  	{ .compatible = "qcom,scm-ipq4019" },

+ 2 - 2
target/linux/layerscape/patches-5.4/701-net-0234-enetc-WA-for-MDIO-register-access-issue.patch

@@ -74,7 +74,7 @@ Signed-off-by: Alex Marginean <[email protected]>
 -	enetc_wr_reg(v->rbier, 0);
 +	enetc_wr_reg_hot(v->rbier, 0);
  
- 	for_each_set_bit(i, &v->tx_rings_map, v->count_tx_rings)
+ 	for_each_set_bit(i, &v->tx_rings_map, ENETC_MAX_NUM_TXQS)
 -		enetc_wr_reg(v->tbier_base + ENETC_BDR_OFF(i), 0);
 +		enetc_wr_reg_hot(v->tbier_base + ENETC_BDR_OFF(i), 0);
 +
@@ -103,7 +103,7 @@ Signed-off-by: Alex Marginean <[email protected]>
 -	enetc_wr_reg(v->rbier, ENETC_RBIER_RXTIE);
 +	enetc_wr_reg_hot(v->rbier, ENETC_RBIER_RXTIE);
  
- 	for_each_set_bit(i, &v->tx_rings_map, v->count_tx_rings)
+ 	for_each_set_bit(i, &v->tx_rings_map, ENETC_MAX_NUM_TXQS)
 -		enetc_wr_reg(v->tbier_base + ENETC_BDR_OFF(i),
 -			     ENETC_TBIER_TXTIE);
 +		enetc_wr_reg_hot(v->tbier_base + ENETC_BDR_OFF(i),

+ 1 - 1
target/linux/layerscape/patches-5.4/701-net-0236-enetc-Replace-enetc_gregs-with-a-readers-writer-lock.patch

@@ -114,7 +114,7 @@ Signed-off-by: Claudiu Manoil <[email protected]>
  	/* disable interrupts */
  	enetc_wr_reg_hot(v->rbier, 0);
 @@ -273,7 +262,7 @@ static irqreturn_t enetc_msix(int irq, v
- 	for_each_set_bit(i, &v->tx_rings_map, v->count_tx_rings)
+ 	for_each_set_bit(i, &v->tx_rings_map, ENETC_MAX_NUM_TXQS)
  		enetc_wr_reg_hot(v->tbier_base + ENETC_BDR_OFF(i), 0);
  
 -	spin_unlock_irqrestore(lock, flags);

+ 2 - 2
target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch

@@ -152,7 +152,7 @@ This reverts commit cf9441adb1a35506d7606866c382b9d8614169b5.
  			       dev_name(&pdev->dev), asrc_priv);
 --- a/sound/soc/fsl/fsl_esai.c
 +++ b/sound/soc/fsl/fsl_esai.c
-@@ -973,8 +973,10 @@ static int fsl_esai_probe(struct platfor
+@@ -977,8 +977,10 @@ static int fsl_esai_probe(struct platfor
  				PTR_ERR(esai_priv->spbaclk));
  
  	irq = platform_get_irq(pdev, 0);
@@ -194,7 +194,7 @@ This reverts commit cf9441adb1a35506d7606866c382b9d8614169b5.
  			       dev_name(&pdev->dev), spdif_priv);
 --- a/sound/soc/fsl/fsl_ssi.c
 +++ b/sound/soc/fsl/fsl_ssi.c
-@@ -1510,8 +1510,10 @@ static int fsl_ssi_probe(struct platform
+@@ -1515,8 +1515,10 @@ static int fsl_ssi_probe(struct platform
  	}
  
  	ssi->irq = platform_get_irq(pdev, 0);

+ 1 - 1
target/linux/layerscape/patches-5.4/812-pcie-0002-PCI-dwc-Use-interrupt-disabling-instead-of-masking.patch

@@ -39,7 +39,7 @@ Signed-off-by: Fugang Duan <[email protected]>
  
  	raw_spin_unlock_irqrestore(&pp->lock, flags);
  }
-@@ -657,15 +657,10 @@ void dw_pcie_setup_rc(struct pcie_port *
+@@ -659,15 +659,10 @@ void dw_pcie_setup_rc(struct pcie_port *
  		num_ctrls = pp->num_vectors / MAX_MSI_IRQS_PER_CTRL;
  
  		/* Initialize IRQ Status array */

+ 1 - 1
target/linux/layerscape/patches-5.4/812-pcie-0003-PCI-dwc-fix-the-msi-failure-after-pm-operations.patch

@@ -17,7 +17,7 @@ Acked-by: Hou Zhiqiang <[email protected]>
 
 --- a/drivers/pci/controller/dwc/pcie-designware-host.c
 +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
-@@ -654,6 +654,12 @@ void dw_pcie_setup_rc(struct pcie_port *
+@@ -656,6 +656,12 @@ void dw_pcie_setup_rc(struct pcie_port *
  	dw_pcie_setup(pci);
  
  	if (!pp->ops->msi_host_init) {

+ 1 - 1
target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch

@@ -54,7 +54,7 @@ Signed-off-by: Peter Chen <[email protected]>
  	 * All 3.1 IP version constants are greater than the 3.0 IP
 --- a/drivers/usb/dwc3/gadget.c
 +++ b/drivers/usb/dwc3/gadget.c
-@@ -3389,6 +3389,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3427,6 +3427,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
  	dwc->gadget.sg_supported	= true;
  	dwc->gadget.name		= "dwc3-gadget";
  	dwc->gadget.lpm_capable		= true;

+ 1 - 1
target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch

@@ -174,7 +174,7 @@ Signed-off-by: Peter Chen <[email protected]>
   * bursts that are required to move all packets in this TD.  Only SuperSpeed
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -5354,6 +5354,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5361,6 +5361,7 @@ static const struct hc_driver xhci_hc_dr
  	.disable_usb3_lpm_timeout =	xhci_disable_usb3_lpm_timeout,
  	.find_raw_port_number =	xhci_find_raw_port_number,
  	.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,

+ 1 - 1
target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch

@@ -24,7 +24,7 @@ Signed-off-by: Peter Chen <[email protected]>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -5371,6 +5371,8 @@ void xhci_init_driver(struct hc_driver *
+@@ -5378,6 +5378,8 @@ void xhci_init_driver(struct hc_driver *
  			drv->reset = over->reset;
  		if (over->start)
  			drv->start = over->start;

+ 1 - 1
target/linux/mediatek/patches-5.4/0900-bt-mtk-serial-fix.patch

@@ -19,7 +19,7 @@
  	},
  	[PORT_NPCM] = {
  		.name		= "Nuvoton 16550",
-@@ -2559,6 +2559,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2561,6 +2561,11 @@ serial8250_do_set_termios(struct uart_po
  	unsigned long flags;
  	unsigned int baud, quot, frac = 0;
  

+ 1 - 1
target/linux/mpc85xx/patches-5.4/102-powerpc-add-cmdline-override.patch

@@ -1,6 +1,6 @@
 --- a/arch/powerpc/Kconfig
 +++ b/arch/powerpc/Kconfig
-@@ -883,6 +883,14 @@ config CMDLINE_FORCE
+@@ -884,6 +884,14 @@ config CMDLINE_FORCE
  	  This is useful if you cannot or don't want to change the
  	  command-line options your boot loader passes to the kernel.
  

+ 5 - 5
target/linux/oxnas/patches-5.4/999-libata-hacks.patch

@@ -1,6 +1,6 @@
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
-@@ -1584,6 +1584,14 @@ unsigned ata_exec_internal_sg(struct ata
+@@ -1583,6 +1583,14 @@ unsigned ata_exec_internal_sg(struct ata
  		return AC_ERR_SYSTEM;
  	}
  
@@ -15,7 +15,7 @@
  	/* initialize internal qc */
  	qc = __ata_qc_from_tag(ap, ATA_TAG_INTERNAL);
  
-@@ -5123,6 +5131,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5122,6 +5130,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
  	if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
  		return NULL;
  
@@ -25,7 +25,7 @@
  	/* libsas case */
  	if (ap->flags & ATA_FLAG_SAS_HOST) {
  		tag = ata_sas_allocate_tag(ap);
-@@ -5168,6 +5179,8 @@ void ata_qc_free(struct ata_queued_cmd *
+@@ -5167,6 +5178,8 @@ void ata_qc_free(struct ata_queued_cmd *
  		qc->tag = ATA_TAG_POISON;
  		if (ap->flags & ATA_FLAG_SAS_HOST)
  			ata_sas_free_tag(tag, ap);
@@ -36,7 +36,7 @@
  
 --- a/include/linux/libata.h
 +++ b/include/linux/libata.h
-@@ -905,6 +905,8 @@ struct ata_port_operations {
+@@ -908,6 +908,8 @@ struct ata_port_operations {
  	void (*qc_prep)(struct ata_queued_cmd *qc);
  	unsigned int (*qc_issue)(struct ata_queued_cmd *qc);
  	bool (*qc_fill_rtf)(struct ata_queued_cmd *qc);
@@ -45,7 +45,7 @@
  
  	/*
  	 * Configuration and exception handling
-@@ -995,6 +997,9 @@ struct ata_port_operations {
+@@ -998,6 +1000,9 @@ struct ata_port_operations {
  	void (*phy_reset)(struct ata_port *ap);
  	void (*eng_timeout)(struct ata_port *ap);