kernel: bump 5.4 to 5.4.36
authorPetr Štetiar <ynezz@true.cz>
Wed, 29 Apr 2020 21:24:49 +0000 (23:24 +0200)
committerPetr Štetiar <ynezz@true.cz>
Wed, 29 Apr 2020 22:52:04 +0000 (00:52 +0200)
Refreshed patches, removed upstreamed patch:

 generic/hack: 551-loop-Better-discard-support-for-block-devices.patch

Added generic config symbol `ARM64_ERRATUM_1542419` due to Fixes:
f2791551cedb ("arm64: errata: Hide CTR_EL0.DIC on systems affected by
Neoverse-N1 #1542419").

Run tested: qemu-x86-64, apalis, nbg6617
Build tested: x86/64, imx6, ipq40xx, sunxi/a53

Signed-off-by: Petr Štetiar <ynezz@true.cz>
21 files changed:
include/kernel-version.mk
target/linux/apm821xx/patches-5.4/802-usb-xhci-force-msi-renesas-xhci.patch
target/linux/bcm27xx/patches-5.4/950-0037-Add-dwc_otg-driver.patch
target/linux/bcm27xx/patches-5.4/950-0212-bcmgenet-Better-coalescing-parameter-defaults.patch
target/linux/bcm27xx/patches-5.4/950-0222-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
target/linux/bcm27xx/patches-5.4/950-0268-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch
target/linux/bcm27xx/patches-5.4/950-0296-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
target/linux/bcm27xx/patches-5.4/950-0318-dma-direct-Temporary-DMA-fix-on-arm64.patch
target/linux/bcm27xx/patches-5.4/950-0341-drm-v3d-The-third-IRQ-is-optional.patch
target/linux/bcm27xx/patches-5.4/950-0450-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch
target/linux/bcm27xx/patches-5.4/950-0452-PCI-of-Add-inbound-resource-parsing-to-helpers.patch
target/linux/bcm27xx/patches-5.4/950-0455-dma-direct-exclude-dma_direct_map_resource-from-the-.patch
target/linux/bcm27xx/patches-5.4/950-0456-dma-mapping-treat-dev-bus_dma_mask-as-a-DMA-limit.patch
target/linux/bcm53xx/patches-5.4/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/generic/backport-5.4/750-v5.5-net-phy-add-support-for-clause-37-auto-negotiation.patch
target/linux/generic/config-5.4
target/linux/generic/hack-5.4/550-loop-Report-EOPNOTSUPP-properly.patch
target/linux/generic/hack-5.4/551-loop-Better-discard-support-for-block-devices.patch [deleted file]
target/linux/generic/hack-5.4/702-phy_add_aneg_done_function.patch
target/linux/generic/hack-5.4/902-debloat_proc.patch
target/linux/ramips/patches-5.4/991-at803x.patch

index 1d1c8f6bdf62eeca15609476ea79298e94299d57..5f364ec2079be84e43fd55dbbb2a6a1ba13a256e 100644 (file)
@@ -8,11 +8,11 @@ endif
 
 LINUX_VERSION-4.14 = .176
 LINUX_VERSION-4.19 = .115
-LINUX_VERSION-5.4 = .35
+LINUX_VERSION-5.4 = .36
 
 LINUX_KERNEL_HASH-4.14.176 = bcae0956baaeb55dab5bad0401873fbc5baaa7fbe957ea6d27a5ab241cec5ca2
 LINUX_KERNEL_HASH-4.19.115 = 11b2d97c8ea5ceb40c5e1d0bb87ad5b2b8c84560181bc60c0d28ec3a3e3801c2
-LINUX_KERNEL_HASH-5.4.35 = e16bd5f7284a80a41328bf712e1136b0adf5b71cc0bd263efa7cac75539806d4
+LINUX_KERNEL_HASH-5.4.36 = b9faea98122e8316af8fb428c942e81797b5d28a8fc59a24a4e47959e3765b8d
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index 55686a2fd847e00f1c5188b361da2b8c6d2397b7..7f09adf6a3e046d224b14b553a31f18e03fc4e14 100644 (file)
@@ -43,7 +43,7 @@ produce a noisy warning.
                hcd->msi_enabled = 1;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1879,6 +1879,7 @@ struct xhci_hcd {
+@@ -1880,6 +1880,7 @@ struct xhci_hcd {
        struct xhci_hub         usb2_rhub;
        struct xhci_hub         usb3_rhub;
        /* support xHCI 1.0 spec USB2 hardware LPM */
index 0823c01c53255e01c574ad69594f4f9e22fa4c51..a613aa6e602a21173f7162d516f12f5a81931560 100644 (file)
@@ -1040,7 +1040,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
  }
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
-@@ -5306,7 +5306,7 @@ static void port_event(struct usb_hub *h
+@@ -5318,7 +5318,7 @@ static void port_event(struct usb_hub *h
                port_dev->over_current_count++;
                port_over_current_notify(port_dev);
  
@@ -1051,7 +1051,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
                                USB_PORT_FEAT_C_OVER_CURRENT);
 --- a/drivers/usb/core/message.c
 +++ b/drivers/usb/core/message.c
-@@ -1993,6 +1993,85 @@ free_interfaces:
+@@ -2000,6 +2000,85 @@ free_interfaces:
        if (cp->string == NULL &&
                        !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS))
                cp->string = usb_cache_string(dev, cp->desc.iConfiguration);
index f2e829aec3e51aa93e8e779b11d6ee867d4f078a..58418ce97350371d07254b99840afc86621aa872 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2145,7 +2145,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2147,7 +2147,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 <phil@raspberrypi.org>
        /* Disable rate control for now */
        bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
                                  TDMA_FLOW_PERIOD);
-@@ -3567,9 +3567,12 @@ static int bcmgenet_probe(struct platfor
+@@ -3570,9 +3570,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 */
index fe1d069c20d8c6a29ec169bd6ecee6731c75c2e4..127e91cd24ef771f061986a9844bb54e1df7814b 100644 (file)
@@ -46,7 +46,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
   * have been called previously.  Use for set_configuration, set_interface,
 --- a/drivers/usb/core/message.c
 +++ b/drivers/usb/core/message.c
-@@ -1113,6 +1113,21 @@ static void remove_intf_ep_devs(struct u
+@@ -1120,6 +1120,21 @@ static void remove_intf_ep_devs(struct u
        intf->ep_devs_created = 0;
  }
  
index afddaa9462e01faddbfb596b1a96883de12f3073..6dba6fbc5f12747c4c84db71166d301e9af19877 100644 (file)
@@ -48,7 +48,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
        dma_addr_t addr;
        u64 hw_dequeue;
        bool cycle_found = false;
-@@ -548,7 +551,28 @@ void xhci_find_new_dequeue_state(struct
+@@ -565,7 +568,28 @@ void xhci_find_new_dequeue_state(struct
        hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
        new_seg = ep_ring->deq_seg;
        new_deq = ep_ring->dequeue;
@@ -80,7 +80,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
        /*
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1872,6 +1872,7 @@ struct xhci_hcd {
+@@ -1873,6 +1873,7 @@ struct xhci_hcd {
  #define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
  #define XHCI_RESET_PLL_ON_DISCONNECT  BIT_ULL(34)
  #define XHCI_SNPS_BROKEN_SUSPEND    BIT_ULL(35)
index 73f92187f2df47aa56b94d3d6469b086e7d333f0..e52b4e90222a3afbf06da1cb94ff053067f12278 100644 (file)
@@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
        /* MIPS chips strapped for BE will automagically configure the
-@@ -1991,6 +1995,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -1993,6 +1997,11 @@ static void reset_umac(struct bcmgenet_p
        bcmgenet_rbuf_ctrl_set(priv, 0);
        udelay(10);
  
index e368ae6cd9ae77fa8e5b409a8d0afe35992b182b..327a77c424dbd1c0c633a8b1bb38a5dcd7ad36da 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/kernel/dma/direct.c
 +++ b/kernel/dma/direct.c
-@@ -397,7 +397,7 @@ int dma_direct_supported(struct device *
+@@ -398,7 +398,7 @@ int dma_direct_supported(struct device *
        if (IS_ENABLED(CONFIG_ZONE_DMA))
                min_mask = DMA_BIT_MASK(ARCH_ZONE_DMA_BITS);
        else
index ea583b105acd6af3bc4c7b2027652a05c7d024c1..e58d8af2d04ad61a486c8cb4d22bad3614e98d5c 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -3468,7 +3468,7 @@ static int bcmgenet_probe(struct platfor
+@@ -3471,7 +3471,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);
index 5de73d37f7da4aa40c444f89dcfba2811bf3511c..c3ae61c993f6c414a46d9b9dc8316a3579b14570 100644 (file)
@@ -175,7 +175,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
  
  static void report_addr(struct device *dev, dma_addr_t dma_addr, size_t size)
  {
-@@ -69,7 +68,7 @@ static gfp_t __dma_direct_optimal_gfp_ma
+@@ -70,7 +69,7 @@ static gfp_t __dma_direct_optimal_gfp_ma
         * Note that GFP_DMA32 and GFP_DMA are no ops without the corresponding
         * zones.
         */
@@ -184,7 +184,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
                return GFP_DMA;
        if (*phys_mask <= DMA_BIT_MASK(32))
                return GFP_DMA32;
-@@ -395,7 +394,7 @@ int dma_direct_supported(struct device *
+@@ -396,7 +395,7 @@ int dma_direct_supported(struct device *
        u64 min_mask;
  
        if (IS_ENABLED(CONFIG_ZONE_DMA))
index 0d74bc57ad5ed2f3de5d6389468418ea4a7c2172..987351c1fce0ccb6ca57998235f5be372e3a8abb 100644 (file)
@@ -382,7 +382,7 @@ Cc: linux-rockchip@lists.infradead.org
  
 --- a/drivers/pci/pci.h
 +++ b/drivers/pci/pci.h
-@@ -636,11 +636,15 @@ static inline void pci_release_bus_of_no
+@@ -637,11 +637,15 @@ static inline void pci_release_bus_of_no
  #if defined(CONFIG_OF_ADDRESS)
  int devm_of_pci_get_host_bridge_resources(struct device *dev,
                        unsigned char busno, unsigned char bus_max,
index 94a1329d84986320f5891bd156ed1734febb0b13..dca3fbfb57fec98dcfaf99c6915a76d76b4c878f 100644 (file)
@@ -84,7 +84,7 @@ Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
  
 --- a/kernel/dma/direct.c
 +++ b/kernel/dma/direct.c
-@@ -325,7 +325,7 @@ static inline bool dma_direct_possible(s
+@@ -326,7 +326,7 @@ static inline bool dma_direct_possible(s
                size_t size)
  {
        return swiotlb_force != SWIOTLB_FORCE &&
@@ -93,7 +93,7 @@ Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
  }
  
  dma_addr_t dma_direct_map_page(struct device *dev, struct page *page,
-@@ -374,7 +374,7 @@ dma_addr_t dma_direct_map_resource(struc
+@@ -375,7 +375,7 @@ dma_addr_t dma_direct_map_resource(struc
  {
        dma_addr_t dma_addr = paddr;
  
index 155e18936a0379a719dd737854e39f9ec53492ea..162a91c5306eab2b65862086d8d3e7d775f18024 100644 (file)
@@ -296,7 +296,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
        }
        WARN_ON_ONCE(1);
  }
-@@ -50,15 +50,14 @@ u64 dma_direct_get_required_mask(struct
+@@ -51,15 +51,14 @@ u64 dma_direct_get_required_mask(struct
  }
  
  static gfp_t __dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
@@ -316,7 +316,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
  
        /*
         * Optimistically try the zone that the physical address mask falls
-@@ -68,9 +67,9 @@ static gfp_t __dma_direct_optimal_gfp_ma
+@@ -69,9 +68,9 @@ static gfp_t __dma_direct_optimal_gfp_ma
         * Note that GFP_DMA32 and GFP_DMA are no ops without the corresponding
         * zones.
         */
@@ -328,7 +328,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
                return GFP_DMA32;
        return 0;
  }
-@@ -78,7 +77,7 @@ static gfp_t __dma_direct_optimal_gfp_ma
+@@ -79,7 +78,7 @@ static gfp_t __dma_direct_optimal_gfp_ma
  static bool dma_coherent_ok(struct device *dev, phys_addr_t phys, size_t size)
  {
        return phys_to_dma_direct(dev, phys) + size - 1 <=
@@ -337,7 +337,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
  }
  
  struct page *__dma_direct_alloc_pages(struct device *dev, size_t size,
-@@ -87,7 +86,7 @@ struct page *__dma_direct_alloc_pages(st
+@@ -88,7 +87,7 @@ struct page *__dma_direct_alloc_pages(st
        size_t alloc_size = PAGE_ALIGN(size);
        int node = dev_to_node(dev);
        struct page *page = NULL;
@@ -346,7 +346,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
  
        if (attrs & DMA_ATTR_NO_WARN)
                gfp |= __GFP_NOWARN;
-@@ -95,7 +94,7 @@ struct page *__dma_direct_alloc_pages(st
+@@ -96,7 +95,7 @@ struct page *__dma_direct_alloc_pages(st
        /* we always manually zero the memory once we are done: */
        gfp &= ~__GFP_ZERO;
        gfp |= __dma_direct_optimal_gfp_mask(dev, dev->coherent_dma_mask,
@@ -355,7 +355,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
        page = dma_alloc_contiguous(dev, alloc_size, gfp);
        if (page && !dma_coherent_ok(dev, page_to_phys(page), size)) {
                dma_free_contiguous(dev, page, alloc_size);
-@@ -109,7 +108,7 @@ again:
+@@ -110,7 +109,7 @@ again:
                page = NULL;
  
                if (IS_ENABLED(CONFIG_ZONE_DMA32) &&
index d0ffcee460bb0685fde2a094dd7c66d78a079ef4..4c4db76b010033ae2cabe9aa50144c781db753be 100644 (file)
@@ -127,7 +127,7 @@ it on BCM4708 family.
  /*
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1872,6 +1872,7 @@ struct xhci_hcd {
+@@ -1873,6 +1873,7 @@ struct xhci_hcd {
  #define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
  #define XHCI_RESET_PLL_ON_DISCONNECT  BIT_ULL(34)
  #define XHCI_SNPS_BROKEN_SUSPEND    BIT_ULL(35)
index da76523730e68e8bfb84c6e25480b5d397c51b80..855c4d2aac5644bd83ece59325c8a9cf95497176 100644 (file)
@@ -18,15 +18,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  include/linux/phy.h          |   4 +
  2 files changed, 143 insertions(+)
 
-diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
-index f1f60bd4865a..fa71998fea51 100644
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1607,6 +1607,40 @@ static int genphy_config_advert(struct phy_device *phydev)
-       return changed;
+@@ -1679,6 +1679,40 @@ static int genphy_config_advert(struct p
  }
  
-+/**
+ /**
 + * genphy_c37_config_advert - sanitize and advertise auto-negotiation parameters
 + * @phydev: target phy_device struct
 + *
@@ -60,14 +57,14 @@ index f1f60bd4865a..fa71998fea51 100644
 +                                adv);
 +}
 +
- /**
++/**
   * genphy_config_eee_advert - disable unwanted eee mode advertisement
   * @phydev: target phy_device struct
-@@ -1715,6 +1749,54 @@ int __genphy_config_aneg(struct phy_device *phydev, bool changed)
- }
+  *
+@@ -1787,6 +1821,54 @@ int __genphy_config_aneg(struct phy_devi
  EXPORT_SYMBOL(__genphy_config_aneg);
  
-+/**
+ /**
 + * genphy_c37_config_aneg - restart auto-negotiation or write BMCR
 + * @phydev: target phy_device struct
 + *
@@ -115,14 +112,14 @@ index f1f60bd4865a..fa71998fea51 100644
 +}
 +EXPORT_SYMBOL(genphy_c37_config_aneg);
 +
- /**
++/**
   * genphy_aneg_done - return auto-negotiation status
   * @phydev: target phy_device struct
-@@ -1886,6 +1968,63 @@ int genphy_read_status(struct phy_device *phydev)
- }
+  *
+@@ -1958,6 +2040,63 @@ int genphy_read_status(struct phy_device
  EXPORT_SYMBOL(genphy_read_status);
  
-+/**
+ /**
 + * genphy_c37_read_status - check the link status and update current link state
 + * @phydev: target phy_device struct
 + *
@@ -179,14 +176,13 @@ index f1f60bd4865a..fa71998fea51 100644
 +}
 +EXPORT_SYMBOL(genphy_c37_read_status);
 +
- /**
++/**
   * genphy_soft_reset - software reset the PHY via BMCR_RESET bit
   * @phydev: target phy_device struct
-diff --git a/include/linux/phy.h b/include/linux/phy.h
-index 9a0e981df502..78436d58ce7c 100644
+  *
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -1106,6 +1106,10 @@ int genphy_read_mmd_unsupported(struct phy_device *phdev, int devad,
+@@ -1120,6 +1120,10 @@ int genphy_read_mmd_unsupported(struct p
  int genphy_write_mmd_unsupported(struct phy_device *phdev, int devnum,
                                 u16 regnum, u16 val);
  
index 21dd447cdfeca0a818f0827966698c1708cf747b..a4ff887aa167280fc38194dc9f4cf0ab32212089 100644 (file)
@@ -306,6 +306,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
 # CONFIG_ARM64_ERRATUM_843419 is not set
 # CONFIG_ARM64_ERRATUM_845719 is not set
 # CONFIG_ARM64_ERRATUM_858921 is not set
+# CONFIG_ARM64_ERRATUM_1542419 is not set
 # CONFIG_ARM64_HW_AFDBM is not set
 # CONFIG_ARM64_LSE_ATOMICS is not set
 # CONFIG_ARM64_MODULE_PLTS is not set
index 479513bf546d4ff91d5d564dec9bb0e4ae798a5f..754c01be1b0b3eeefce615eccdef649ceade202f 100644 (file)
@@ -18,7 +18,7 @@ Reviewed-by: Bart Van Assche <bvanassche@acm.org>
 
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
-@@ -461,7 +461,7 @@ static void lo_complete_rq(struct reques
+@@ -462,7 +462,7 @@ static void lo_complete_rq(struct reques
        if (!cmd->use_aio || cmd->ret < 0 || cmd->ret == blk_rq_bytes(rq) ||
            req_op(rq) != REQ_OP_READ) {
                if (cmd->ret < 0)
@@ -27,7 +27,7 @@ Reviewed-by: Bart Van Assche <bvanassche@acm.org>
                goto end_io;
        }
  
-@@ -1950,7 +1950,10 @@ static void loop_handle_cmd(struct loop_
+@@ -1970,7 +1970,10 @@ static void loop_handle_cmd(struct loop_
   failed:
        /* complete non-aio request */
        if (!cmd->use_aio || ret) {
diff --git a/target/linux/generic/hack-5.4/551-loop-Better-discard-support-for-block-devices.patch b/target/linux/generic/hack-5.4/551-loop-Better-discard-support-for-block-devices.patch
deleted file mode 100644 (file)
index 3809129..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-From 3117c3f45edbcc269baaebd3d13f39b7bf884aa6 Mon Sep 17 00:00:00 2001
-From: Evan Green <evgreen@chromium.org>
-Date: Thu, 14 Nov 2019 15:50:08 -0800
-Subject: loop: Better discard support for block devices
-
-If the backing device for a loop device is itself a block device,
-then mirror the "write zeroes" capabilities of the underlying
-block device into the loop device. Copy this capability into both
-max_write_zeroes_sectors and max_discard_sectors of the loop device.
-
-The reason for this is that REQ_OP_DISCARD on a loop device translates
-into blkdev_issue_zeroout(), rather than blkdev_issue_discard(). This
-presents a consistent interface for loop devices (that discarded data
-is zeroed), regardless of the backing device type of the loop device.
-There should be no behavior change for loop devices backed by regular
-files.
-
-This change fixes blktest block/003, and removes an extraneous
-error print in block/013 when testing on a loop device backed
-by a block device that does not support discard.
-
-Signed-off-by: Evan Green <evgreen@chromium.org>
-Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
-Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
----
- drivers/block/loop.c | 40 +++++++++++++++++++++++++++++-----------
- 1 file changed, 29 insertions(+), 11 deletions(-)
-
---- a/drivers/block/loop.c
-+++ b/drivers/block/loop.c
-@@ -427,11 +427,12 @@ static int lo_fallocate(struct loop_devi
-        * information.
-        */
-       struct file *file = lo->lo_backing_file;
-+      struct request_queue *q = lo->lo_queue;
-       int ret;
-       mode |= FALLOC_FL_KEEP_SIZE;
--      if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) {
-+      if (!blk_queue_discard(q)) {
-               ret = -EOPNOTSUPP;
-               goto out;
-       }
-@@ -862,6 +863,21 @@ static void loop_config_discard(struct l
-       struct file *file = lo->lo_backing_file;
-       struct inode *inode = file->f_mapping->host;
-       struct request_queue *q = lo->lo_queue;
-+      struct request_queue *backingq;
-+
-+      /*
-+       * If the backing device is a block device, mirror its zeroing
-+       * capability. REQ_OP_DISCARD translates to a zero-out even when backed
-+       * by block devices to keep consistent behavior with file-backed loop
-+       * devices.
-+       */
-+      if (S_ISBLK(inode->i_mode) && !lo->lo_encrypt_key_size) {
-+              backingq = bdev_get_queue(inode->i_bdev);
-+              blk_queue_max_discard_sectors(q,
-+                      backingq->limits.max_write_zeroes_sectors);
-+
-+              blk_queue_max_write_zeroes_sectors(q,
-+                      backingq->limits.max_write_zeroes_sectors);
-       /*
-        * We use punch hole to reclaim the free space used by the
-@@ -869,22 +885,24 @@ static void loop_config_discard(struct l
-        * encryption is enabled, because it may give an attacker
-        * useful information.
-        */
--      if ((!file->f_op->fallocate) ||
--          lo->lo_encrypt_key_size) {
-+      } else if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) {
-               q->limits.discard_granularity = 0;
-               q->limits.discard_alignment = 0;
-               blk_queue_max_discard_sectors(q, 0);
-               blk_queue_max_write_zeroes_sectors(q, 0);
--              blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
--              return;
--      }
--      q->limits.discard_granularity = inode->i_sb->s_blocksize;
--      q->limits.discard_alignment = 0;
-+      } else {
-+              q->limits.discard_granularity = inode->i_sb->s_blocksize;
-+              q->limits.discard_alignment = 0;
--      blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
--      blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
--      blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
-+              blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
-+              blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
-+      }
-+
-+      if (q->limits.max_write_zeroes_sectors)
-+              blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
-+      else
-+              blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
- }
- static void loop_unprepare_queue(struct loop_device *lo)
index f82cef1f9444d0e391c2fc19e4b5cfdc3487bc75..f58b1900252b6a9df9e4fc4c75b80b0168ef56eb 100644 (file)
@@ -15,7 +15,7 @@
  
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1827,6 +1827,9 @@ int genphy_update_link(struct phy_device
+@@ -1909,6 +1909,9 @@ int genphy_update_link(struct phy_device
        if (bmcr & BMCR_ANRESTART)
                goto done;
  
index f652751339a41a83347293bcfc59ea76aff08cb3..d2acd40e19d4207dc48243dfd2f8ab097bc2b888 100644 (file)
@@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!pe)
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
-@@ -3552,6 +3552,8 @@ static const struct seq_operations vmall
+@@ -3562,6 +3562,8 @@ static const struct seq_operations vmall
  
  static int __init proc_vmalloc_init(void)
  {
index 60afe2a35f9dc7b8d27417d721f0e3ef77ed1956..dd1d2755ed6788519c86d0143a8a535ff71224ed 100644 (file)
@@ -12,11 +12,9 @@ Signed-off-by: René van Dorst <opensource@vdorst.com>
  drivers/net/phy/at803x.c | 74 ++++++++++++++++++++++++++++++++++++++++
  1 file changed, 74 insertions(+)
 
-diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
-index 481cf48c9b9e4..a6536ecf15db4 100644
 --- a/drivers/net/phy/at803x.c
 +++ b/drivers/net/phy/at803x.c
-@@ -19,6 +19,7 @@
+@@ -14,6 +14,7 @@
  #include <linux/etherdevice.h>
  #include <linux/of_gpio.h>
  #include <linux/gpio/consumer.h>
@@ -24,7 +22,7 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
  
  #define AT803X_SPECIFIC_STATUS                        0x11
  #define AT803X_SS_SPEED_MASK                  (3 << 14)
-@@ -57,9 +58,18 @@
+@@ -53,9 +54,18 @@
  
  #define AT803X_MODE_CFG_MASK                  0x0F
  #define AT803X_MODE_CFG_SGMII                 0x01
@@ -43,8 +41,8 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
  
  #define AT803X_DEBUG_REG_0                    0x00
  #define AT803X_DEBUG_RX_CLK_DLY_EN            BIT(15)
-@@ -475,10 +485,56 @@ static int at803x_parse_dt(struct phy_device *phydev)
-       return 0;
+@@ -243,10 +253,56 @@ static int at803x_resume(struct phy_devi
+       return phy_modify(phydev, MII_BMCR, BMCR_PDOWN | BMCR_ISOLATE, 0);
  }
  
 +static int at803x_mode(struct phy_device *phydev)
@@ -100,7 +98,7 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
  
        priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
        if (!priv)
-@@ -658,6 +714,10 @@ static int at803x_read_status(struct phy_device *phydev)
+@@ -394,6 +450,10 @@ static int at803x_read_status(struct phy
  {
        int ss, err, old_link = phydev->link;
  
@@ -111,7 +109,7 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
        /* Update the link, but return if there was an error */
        err = genphy_update_link(phydev);
        if (err)
-@@ -712,6 +772,19 @@ static int at803x_read_status(struct phy_device *phydev)
+@@ -448,6 +508,19 @@ static int at803x_read_status(struct phy
        return 0;
  }
  
@@ -130,8 +128,8 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
 +
  static struct phy_driver at803x_driver[] = {
  {
-       /* Qualcomm Atheros AR8035 */
-@@ -758,6 +831,7 @@ static struct phy_driver at803x_driver[] = {
+       /* ATHEROS 8035 */
+@@ -491,6 +564,7 @@ static struct phy_driver at803x_driver[]
        .suspend                = at803x_suspend,
        .resume                 = at803x_resume,
        /* PHY_GBIT_FEATURES */