kernel: bump 4.14 to 4.14.178
authorPetr Štetiar <ynezz@true.cz>
Mon, 4 May 2020 12:53:34 +0000 (14:53 +0200)
committerPetr Štetiar <ynezz@true.cz>
Mon, 4 May 2020 19:05:21 +0000 (21:05 +0200)
Refreshed all patches and removed upstreamed:

 oxnas/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch
 oxnas/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch

Fixes: CVE-2020-12114 and CVE-2020-11669

Runtime-tested on: qemu-x86-64
Compile-tested on: ath79/generic, x86/64, imx6

Signed-off-by: Petr Štetiar <ynezz@true.cz>
22 files changed:
include/kernel-version.mk
target/linux/ar71xx/patches-4.14/403-mtd_fix_cfi_cmdset_0002_status_check.patch
target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch
target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch
target/linux/ath79/patches-4.14/403-mtd_fix_cfi_cmdset_0002_status_check.patch
target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch
target/linux/brcm2708/patches-4.14/950-0037-Add-dwc_otg-driver.patch
target/linux/brcm2708/patches-4.14/950-0280-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch
target/linux/brcm2708/patches-4.14/950-0291-ARM-dts-bcm283x-Fix-DTC-warnings-about-missing-phy-c.patch
target/linux/brcm2708/patches-4.14/950-0341-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch
target/linux/brcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch
target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch
target/linux/generic/hack-4.14/902-debloat_proc.patch
target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch
target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch
target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch
target/linux/mxs/patches-4.14/110-crypto-mxsdcp-provide-importexport.patch
target/linux/oxnas/patches-4.14/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch [deleted file]
target/linux/oxnas/patches-4.14/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch [deleted file]
target/linux/ramips/patches-4.14/0037-mtd-cfi-cmdset-0002-force-word-write.patch

index 93464d4..6fd52f7 100644 (file)
@@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
 endif
 
-LINUX_VERSION-4.14 = .176
+LINUX_VERSION-4.14 = .178
 
-LINUX_KERNEL_HASH-4.14.176 = bcae0956baaeb55dab5bad0401873fbc5baaa7fbe957ea6d27a5ab241cec5ca2
+LINUX_KERNEL_HASH-4.14.178 = fd2c33875e822e3ded994b60c5a3dbe456c1d352abf0a886498ee49870ed98dd
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index 4ef2303..faf4391 100644 (file)
@@ -18,7 +18,7 @@
        xip_enable(map, chip, adr);
   op_done:
        if (mode == FL_OTP_WRITE)
-@@ -2236,7 +2238,6 @@ static int cfi_amdstd_panic_write(struct
+@@ -2240,7 +2242,6 @@ static int cfi_amdstd_panic_write(struct
        return 0;
  }
  
@@ -26,7 +26,7 @@
  /*
   * Handle devices with one erase region, that only implement
   * the chip erase command.
-@@ -2304,7 +2305,7 @@ static int __xipram do_erase_chip(struct
+@@ -2308,7 +2309,7 @@ static int __xipram do_erase_chip(struct
                }
  
                if (chip_good(map, adr, map_word_ff(map)))
@@ -35,7 +35,7 @@
  
                if (time_after(jiffies, timeo)) {
                        printk(KERN_WARNING "MTD %s(): software timeout\n",
-@@ -2328,6 +2329,7 @@ static int __xipram do_erase_chip(struct
+@@ -2332,6 +2333,7 @@ static int __xipram do_erase_chip(struct
                }
        }
  
@@ -43,7 +43,7 @@
        chip->state = FL_READY;
        xip_enable(map, chip, adr);
        DISABLE_VPP(map);
-@@ -2401,7 +2403,7 @@ static int __xipram do_erase_oneblock(st
+@@ -2405,7 +2407,7 @@ static int __xipram do_erase_oneblock(st
  
                if (chip_good(map, adr, map_word_ff(map))) {
                        xip_enable(map, chip, adr);
@@ -52,7 +52,7 @@
                }
  
                if (time_after(jiffies, timeo)) {
-@@ -2427,6 +2429,7 @@ static int __xipram do_erase_oneblock(st
+@@ -2431,6 +2433,7 @@ static int __xipram do_erase_oneblock(st
                }
        }
  
index 5a6eb77..9a367c2 100644 (file)
@@ -43,7 +43,7 @@
  static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
                                    unsigned long adr, const u_char *buf,
                                    int len)
-@@ -1928,7 +1933,6 @@ static int __xipram do_write_buffer(stru
+@@ -1932,7 +1937,6 @@ static int __xipram do_write_buffer(stru
        return ret;
  }
  
@@ -51,7 +51,7 @@
  static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
                                    size_t *retlen, const u_char *buf)
  {
-@@ -2003,6 +2007,7 @@ static int cfi_amdstd_write_buffers(stru
+@@ -2007,6 +2011,7 @@ static int cfi_amdstd_write_buffers(stru
  
        return 0;
  }
index 2585bb1..b6d8348 100644 (file)
        for (p = *head; p; p = p->next) {
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -466,7 +466,7 @@ static struct neighbour *ipv4_neigh_look
+@@ -464,7 +464,7 @@ static struct neighbour *ipv4_neigh_look
        else if (skb)
                pkey = &ip_hdr(skb)->daddr;
  
index 4ef2303..faf4391 100644 (file)
@@ -18,7 +18,7 @@
        xip_enable(map, chip, adr);
   op_done:
        if (mode == FL_OTP_WRITE)
-@@ -2236,7 +2238,6 @@ static int cfi_amdstd_panic_write(struct
+@@ -2240,7 +2242,6 @@ static int cfi_amdstd_panic_write(struct
        return 0;
  }
  
@@ -26,7 +26,7 @@
  /*
   * Handle devices with one erase region, that only implement
   * the chip erase command.
-@@ -2304,7 +2305,7 @@ static int __xipram do_erase_chip(struct
+@@ -2308,7 +2309,7 @@ static int __xipram do_erase_chip(struct
                }
  
                if (chip_good(map, adr, map_word_ff(map)))
@@ -35,7 +35,7 @@
  
                if (time_after(jiffies, timeo)) {
                        printk(KERN_WARNING "MTD %s(): software timeout\n",
-@@ -2328,6 +2329,7 @@ static int __xipram do_erase_chip(struct
+@@ -2332,6 +2333,7 @@ static int __xipram do_erase_chip(struct
                }
        }
  
@@ -43,7 +43,7 @@
        chip->state = FL_READY;
        xip_enable(map, chip, adr);
        DISABLE_VPP(map);
-@@ -2401,7 +2403,7 @@ static int __xipram do_erase_oneblock(st
+@@ -2405,7 +2407,7 @@ static int __xipram do_erase_oneblock(st
  
                if (chip_good(map, adr, map_word_ff(map))) {
                        xip_enable(map, chip, adr);
@@ -52,7 +52,7 @@
                }
  
                if (time_after(jiffies, timeo)) {
-@@ -2427,6 +2429,7 @@ static int __xipram do_erase_oneblock(st
+@@ -2431,6 +2433,7 @@ static int __xipram do_erase_oneblock(st
                }
        }
  
index 5622f06..5e98c56 100644 (file)
        for (p = *head; p; p = p->next) {
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -466,7 +466,7 @@ static struct neighbour *ipv4_neigh_look
+@@ -464,7 +464,7 @@ static struct neighbour *ipv4_neigh_look
        else if (skb)
                pkey = &ip_hdr(skb)->daddr;
  
index 5cb3fff..c0d9578 100644 (file)
@@ -841,7 +841,7 @@ Signed-off-by: Malik Olivier Boussejra <malik@boussejra.com>
  }
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
-@@ -5116,7 +5116,7 @@ static void port_event(struct usb_hub *h
+@@ -5130,7 +5130,7 @@ static void port_event(struct usb_hub *h
        if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
                u16 status = 0, unused;
  
@@ -852,7 +852,7 @@ Signed-off-by: Malik Olivier Boussejra <malik@boussejra.com>
                msleep(100);    /* Cool down */
 --- a/drivers/usb/core/message.c
 +++ b/drivers/usb/core/message.c
-@@ -1925,6 +1925,85 @@ free_interfaces:
+@@ -1932,6 +1932,85 @@ free_interfaces:
        if (cp->string == NULL &&
                        !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS))
                cp->string = usb_cache_string(dev, cp->desc.iConfiguration);
index 53ce265..416914d 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  /* Device and char device-related information */
  static DEFINE_IDA(gpio_ida);
  static dev_t gpio_devt;
-@@ -2323,7 +2325,7 @@ static int _gpiod_direction_output_raw(s
+@@ -2306,7 +2308,7 @@ static int _gpiod_direction_output_raw(s
        int ret;
  
        /* GPIOs used for IRQs shall not be set as output */
@@ -35,7 +35,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
                gpiod_err(desc,
                          "%s: tried to set a GPIO tied to an IRQ as output\n",
                          __func__);
-@@ -2849,7 +2851,7 @@ int gpiochip_lock_as_irq(struct gpio_chi
+@@ -2832,7 +2834,7 @@ int gpiochip_lock_as_irq(struct gpio_chi
                        set_bit(FLAG_IS_OUT, &desc->flags);
        }
  
index 402abec..c2ed7af 100644 (file)
@@ -17,7 +17,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
 
 --- a/arch/arm/boot/dts/bcm283x.dtsi
 +++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -639,5 +639,6 @@
+@@ -640,5 +640,6 @@
  
        usbphy: phy {
                compatible = "usb-nop-xceiv";
index eb3635a..65818b9 100644 (file)
@@ -142,7 +142,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
 +};
 --- a/arch/arm/boot/dts/bcm283x.dtsi
 +++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -544,6 +544,34 @@
+@@ -545,6 +545,34 @@
                        status = "disabled";
                };
  
index bbd3981..e1d43da 100644 (file)
@@ -89,7 +89,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
  
 --- a/drivers/gpio/gpiolib.c
 +++ b/drivers/gpio/gpiolib.c
-@@ -1958,7 +1958,8 @@ int gpiochip_add_pingroup_range(struct g
+@@ -1941,7 +1941,8 @@ int gpiochip_add_pingroup_range(struct g
  
        list_add_tail(&pin_range->node, &gdev->pin_ranges);
  
@@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
  }
  EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range);
  
-@@ -2010,7 +2011,7 @@ int gpiochip_add_pin_range(struct gpio_c
+@@ -1993,7 +1994,7 @@ int gpiochip_add_pin_range(struct gpio_c
  
        list_add_tail(&pin_range->node, &gdev->pin_ranges);
  
index 1c50186..e3f77ab 100644 (file)
@@ -48,7 +48,7 @@ Reviewed-by: John Gilmore <gnu@toad.com>
  #define       INADDR_ANY              ((unsigned long int) 0x00000000)
 --- a/net/ipv4/devinet.c
 +++ b/net/ipv4/devinet.c
-@@ -929,7 +929,7 @@ static int inet_abc_len(__be32 addr)
+@@ -934,7 +934,7 @@ static int inet_abc_len(__be32 addr)
  {
        int rc = -1;    /* Something else, probably a multicast. */
  
@@ -57,7 +57,7 @@ Reviewed-by: John Gilmore <gnu@toad.com>
                rc = 0;
        else {
                __u32 haddr = ntohl(addr);
-@@ -940,6 +940,8 @@ static int inet_abc_len(__be32 addr)
+@@ -945,6 +945,8 @@ static int inet_abc_len(__be32 addr)
                        rc = 16;
                else if (IN_CLASSC(haddr))
                        rc = 24;
index dddc347..bbc0455 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/net/ip6_route.h
 +++ b/include/net/ip6_route.h
-@@ -252,4 +252,26 @@ static inline bool rt6_duplicate_nexthop
+@@ -253,4 +253,26 @@ static inline bool rt6_duplicate_nexthop
               ipv6_addr_equal(&a->rt6i_gateway, &b->rt6i_gateway) &&
               !lwtunnel_cmp_encap(a->dst.lwtstate, b->dst.lwtstate);
  }
index 30328b8..54c6b4d 100644 (file)
@@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                return -ENOMEM;
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
-@@ -2786,6 +2786,8 @@ static const struct file_operations proc
+@@ -2798,6 +2798,8 @@ static const struct file_operations proc
  
  static int __init proc_vmalloc_init(void)
  {
@@ -393,7 +393,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -428,6 +428,9 @@ static struct pernet_operations ip_rt_pr
+@@ -426,6 +426,9 @@ static struct pernet_operations ip_rt_pr
  
  static int __init ip_rt_proc_init(void)
  {
index 067de75..286e98f 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        __u16                   tc_index;       /* traffic control index */
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4805,6 +4805,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4806,6 +4806,9 @@ static enum gro_result dev_gro_receive(s
        enum gro_result ret;
        int grow;
  
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (netif_elide_gro(skb->dev))
                goto normal;
  
-@@ -6282,6 +6285,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -6283,6 +6286,48 @@ static void __netdev_adjacent_dev_unlink
                                           &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,
                                   struct net_device *upper_dev, bool master,
                                   void *upper_priv, void *upper_info)
-@@ -6320,6 +6365,7 @@ static int __netdev_upper_dev_link(struc
+@@ -6321,6 +6366,7 @@ static int __netdev_upper_dev_link(struc
        if (ret)
                return ret;
  
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                            &changeupper_info.info);
        ret = notifier_to_errno(ret);
-@@ -6397,6 +6443,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -6398,6 +6444,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 <nbd@nbd.name>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
  }
-@@ -6961,6 +7008,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6962,6 +7009,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
index 784b10d..07fc71f 100644 (file)
@@ -442,7 +442,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  
 --- a/drivers/soc/imx/gpc.c
 +++ b/drivers/soc/imx/gpc.c
-@@ -209,7 +209,7 @@ static int imx_pgc_power_domain_probe(st
+@@ -210,7 +210,7 @@ static int imx_pgc_power_domain_probe(st
                        goto genpd_err;
        }
  
@@ -713,7 +713,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  }
  
  #ifdef CONFIG_NET_INGRESS
-@@ -6341,7 +6342,15 @@ static int __netdev_upper_dev_link(struc
+@@ -6342,7 +6343,15 @@ static int __netdev_upper_dev_link(struc
                                   struct net_device *upper_dev, bool master,
                                   void *upper_priv, void *upper_info)
  {
@@ -730,7 +730,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        int ret = 0;
  
        ASSERT_RTNL();
-@@ -6359,12 +6368,7 @@ static int __netdev_upper_dev_link(struc
+@@ -6360,12 +6369,7 @@ static int __netdev_upper_dev_link(struc
        if (master && netdev_master_upper_dev_get(dev))
                return -EBUSY;
  
@@ -744,7 +744,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                                            &changeupper_info.info);
        ret = notifier_to_errno(ret);
        if (ret)
-@@ -6376,7 +6380,7 @@ static int __netdev_upper_dev_link(struc
+@@ -6377,7 +6381,7 @@ static int __netdev_upper_dev_link(struc
                return ret;
  
        netdev_update_addr_mask(dev);
@@ -753,7 +753,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                                            &changeupper_info.info);
        ret = notifier_to_errno(ret);
        if (ret)
-@@ -6440,21 +6444,25 @@ EXPORT_SYMBOL(netdev_master_upper_dev_li
+@@ -6441,21 +6445,25 @@ EXPORT_SYMBOL(netdev_master_upper_dev_li
  void netdev_upper_dev_unlink(struct net_device *dev,
                             struct net_device *upper_dev)
  {
@@ -784,7 +784,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                                      &changeupper_info.info);
  }
  EXPORT_SYMBOL(netdev_upper_dev_unlink);
-@@ -6470,11 +6478,13 @@ EXPORT_SYMBOL(netdev_upper_dev_unlink);
+@@ -6471,11 +6479,13 @@ EXPORT_SYMBOL(netdev_upper_dev_unlink);
  void netdev_bonding_info_change(struct net_device *dev,
                                struct netdev_bonding_info *bonding_info)
  {
@@ -800,7 +800,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                                      &info.info);
  }
  EXPORT_SYMBOL(netdev_bonding_info_change);
-@@ -6600,11 +6610,13 @@ EXPORT_SYMBOL(dev_get_nest_level);
+@@ -6601,11 +6611,13 @@ EXPORT_SYMBOL(dev_get_nest_level);
  void netdev_lower_state_changed(struct net_device *lower_dev,
                                void *lower_state_info)
  {
@@ -816,7 +816,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                                      &changelowerstate_info.info);
  }
  EXPORT_SYMBOL(netdev_lower_state_changed);
-@@ -6895,11 +6907,14 @@ void __dev_notify_flags(struct net_devic
+@@ -6896,11 +6908,14 @@ void __dev_notify_flags(struct net_devic
  
        if (dev->flags & IFF_UP &&
            (changes & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI | IFF_VOLATILE))) {
index 47481cf..d0bee3b 100644 (file)
@@ -323,7 +323,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        usb_phy_set_suspend(dwc->usb2_phy, 0);
        usb_phy_set_suspend(dwc->usb3_phy, 0);
        ret = phy_power_on(dwc->usb2_generic_phy);
-@@ -870,6 +1006,22 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -873,6 +1009,22 @@ static int dwc3_core_init(struct dwc3 *d
                dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
        }
  
@@ -346,7 +346,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        return 0;
  
  err4:
-@@ -1076,6 +1228,8 @@ static void dwc3_get_properties(struct d
+@@ -1079,6 +1231,8 @@ static void dwc3_get_properties(struct d
                                &hird_threshold);
        dwc->usb3_lpm_capable = device_property_read_bool(dev,
                                "snps,usb3_lpm_capable");
@@ -355,9 +355,9 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  
        dwc->disable_scramble_quirk = device_property_read_bool(dev,
                                "snps,disable_scramble_quirk");
-@@ -1108,8 +1262,16 @@ static void dwc3_get_properties(struct d
-       dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
-                               "snps,dis-tx-ipgap-linecheck-quirk");
+@@ -1113,8 +1267,16 @@ static void dwc3_get_properties(struct d
+       dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev,
+                               "snps,parkmode-disable-ss-quirk");
  
 +      dwc->quirk_reverse_in_out = device_property_read_bool(dev,
 +                              "snps,quirk_reverse_in_out");
@@ -372,7 +372,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        device_property_read_u8(dev, "snps,tx_de_emphasis",
                                &tx_de_emphasis);
        device_property_read_string(dev, "snps,hsphy_interface",
-@@ -1120,6 +1282,9 @@ static void dwc3_get_properties(struct d
+@@ -1125,6 +1287,9 @@ static void dwc3_get_properties(struct d
        dwc->dis_metastability_quirk = device_property_read_bool(dev,
                                "snps,dis_metastability_quirk");
  
@@ -382,7 +382,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        dwc->lpm_nyet_threshold = lpm_nyet_threshold;
        dwc->tx_de_emphasis = tx_de_emphasis;
  
-@@ -1371,12 +1536,14 @@ static int dwc3_resume_common(struct dwc
+@@ -1376,12 +1541,14 @@ static int dwc3_resume_common(struct dwc
  
        switch (dwc->dr_mode) {
        case USB_DR_MODE_PERIPHERAL:
@@ -440,9 +440,9 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
 +#define DWC3_GUCTL_HSTINAUTORETRY     BIT(14)
 +
  /* Global User Control 1 Register */
+ #define DWC3_GUCTL1_PARKMODE_DISABLE_SS       BIT(17)
  #define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS    BIT(28)
- #define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24)
-@@ -477,6 +506,14 @@
+@@ -478,6 +507,14 @@
  #define DWC3_DEV_IMOD_INTERVAL_SHIFT  0
  #define DWC3_DEV_IMOD_INTERVAL_MASK   (0xffff << 0)
  
@@ -457,7 +457,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  /* Structures */
  
  struct dwc3_trb;
-@@ -788,6 +825,7 @@ struct dwc3_scratchpad_array {
+@@ -789,6 +826,7 @@ struct dwc3_scratchpad_array {
   * @regs: base address for our registers
   * @regs_size: address space size
   * @fladj: frame length adjustment
@@ -465,7 +465,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
   * @irq_gadget: peripheral controller's IRQ number
   * @nr_scratch: number of scratch buffers
   * @u1u2: only used on revisions <1.83a for workaround
-@@ -843,6 +881,7 @@ struct dwc3_scratchpad_array {
+@@ -844,6 +882,7 @@ struct dwc3_scratchpad_array {
   * @setup_packet_pending: true when there's a Setup Packet in FIFO. Workaround
   * @three_stage_setup: set if we perform a three phase setup
   * @usb3_lpm_capable: set if hadrware supports Link Power Management
@@ -473,7 +473,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
   * @disable_scramble_quirk: set if we enable the disable scramble quirk
   * @u2exit_lfps_quirk: set if we enable u2exit lfps quirk
   * @u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk
-@@ -922,6 +961,12 @@ struct dwc3 {
+@@ -925,6 +964,12 @@ struct dwc3 {
        enum usb_phy_interface  hsphy_mode;
  
        u32                     fladj;
@@ -486,7 +486,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        u32                     irq_gadget;
        u32                     nr_scratch;
        u32                     u1u2;
-@@ -1006,6 +1051,7 @@ struct dwc3 {
+@@ -1009,6 +1054,7 @@ struct dwc3 {
        unsigned                setup_packet_pending:1;
        unsigned                three_stage_setup:1;
        unsigned                usb3_lpm_capable:1;
@@ -494,7 +494,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  
        unsigned                disable_scramble_quirk:1;
        unsigned                u2exit_lfps_quirk:1;
-@@ -1025,6 +1071,11 @@ struct dwc3 {
+@@ -1029,6 +1075,11 @@ struct dwc3 {
  
        unsigned                tx_de_emphasis_quirk:1;
        unsigned                tx_de_emphasis:2;
@@ -528,7 +528,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
                reg &= ~DWC3_DCTL_INITU2ENA;
 --- a/drivers/usb/dwc3/gadget.c
 +++ b/drivers/usb/dwc3/gadget.c
-@@ -3220,6 +3220,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3216,6 +3216,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
  {
        int ret;
        int irq;
@@ -536,7 +536,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  
        irq = dwc3_gadget_get_irq(dwc);
        if (irq < 0) {
-@@ -3298,6 +3299,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3294,6 +3295,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
  
        dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed);
  
index 6077f97..4362863 100644 (file)
@@ -5715,7 +5715,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        int     (*start)(struct pci_epc *epc);
        void    (*stop)(struct pci_epc *epc);
        struct module *owner;
-@@ -91,8 +97,17 @@ struct pci_epc {
+@@ -94,8 +100,17 @@ struct pci_epc {
        struct config_group             *group;
        /* spinlock to protect against concurrent access of EP controller */
        spinlock_t                      lock;
@@ -5733,7 +5733,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  #define to_pci_epc(device) container_of((device), struct pci_epc, dev)
  
  #define pci_epc_create(dev, ops)    \
-@@ -124,17 +139,23 @@ void pci_epc_destroy(struct pci_epc *epc
+@@ -127,17 +142,23 @@ void pci_epc_destroy(struct pci_epc *epc
  int pci_epc_add_epf(struct pci_epc *epc, struct pci_epf *epf);
  void pci_epc_linkup(struct pci_epc *epc);
  void pci_epc_remove_epf(struct pci_epc *epc, struct pci_epf *epf);
index 4a1722a..49e96d1 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/crypto/mxs-dcp.c
 +++ b/drivers/crypto/mxs-dcp.c
-@@ -833,6 +833,24 @@ static void dcp_sha_cra_exit(struct cryp
+@@ -831,6 +831,24 @@ static void dcp_sha_cra_exit(struct cryp
  {
  }
  
@@ -25,7 +25,7 @@
  /* AES 128 ECB and AES 128 CBC */
  static struct crypto_alg dcp_aes_algs[] = {
        {
-@@ -892,8 +910,11 @@ static struct ahash_alg dcp_sha1_alg = {
+@@ -890,8 +908,11 @@ static struct ahash_alg dcp_sha1_alg = {
        .final  = dcp_sha_final,
        .finup  = dcp_sha_finup,
        .digest = dcp_sha_digest,
@@ -37,7 +37,7 @@
                .base           = {
                        .cra_name               = "sha1",
                        .cra_driver_name        = "sha1-dcp",
-@@ -916,8 +937,11 @@ static struct ahash_alg dcp_sha256_alg =
+@@ -914,8 +935,11 @@ static struct ahash_alg dcp_sha256_alg =
        .final  = dcp_sha_final,
        .finup  = dcp_sha_finup,
        .digest = dcp_sha_digest,
diff --git a/target/linux/oxnas/patches-4.14/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch b/target/linux/oxnas/patches-4.14/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch
deleted file mode 100644 (file)
index f4285aa..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-From patchwork Thu Mar 19 02:34:48 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Sungbo Eo <mans0n@gorani.run>
-X-Patchwork-Id: 11446405
-From: Sungbo Eo <mans0n@gorani.run>
-To: Linus Walleij <linus.walleij@linaro.org>,
- Thomas Gleixner <tglx@linutronix.de>, Jason Cooper <jason@lakedaemon.net>,
- Marc Zyngier <maz@kernel.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org, linux-oxnas@groups.io
-Subject: [PATCH v2] irqchip/versatile-fpga: Handle chained IRQs properly
-Date: Thu, 19 Mar 2020 11:34:48 +0900
-Message-Id: <20200319023448.1479701-1-mans0n@gorani.run>
-In-Reply-To: <002b72cab9896fa5ac76a52e0cb503ff@kernel.org>
-References: <002b72cab9896fa5ac76a52e0cb503ff@kernel.org>
-MIME-Version: 1.0
-List-Id: <linux-arm-kernel.lists.infradead.org>
-Cc: Sungbo Eo <mans0n@gorani.run>, Neil Armstrong <narmstrong@baylibre.com>
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-
-Enclose the chained handler with chained_irq_{enter,exit}(), so that the
-muxed interrupts get properly acked.
-
-This patch also fixes a reboot bug on OX820 SoC, where the jiffies timer
-interrupt is never acked. The kernel waits a clock tick forever in
-calibrate_delay_converge(), which leads to a boot hang.
-
-Fixes: c41b16f8c9d9 ("ARM: integrator/versatile: consolidate FPGA IRQ handling code")
-Signed-off-by: Sungbo Eo <mans0n@gorani.run>
-Cc: Neil Armstrong <narmstrong@baylibre.com>
----
-v2: moved readl below chained_irq_enter()
-    added Fixes tag
-
- drivers/irqchip/irq-versatile-fpga.c | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
---- a/drivers/irqchip/irq-versatile-fpga.c
-+++ b/drivers/irqchip/irq-versatile-fpga.c
-@@ -6,6 +6,7 @@
- #include <linux/irq.h>
- #include <linux/io.h>
- #include <linux/irqchip.h>
-+#include <linux/irqchip/chained_irq.h>
- #include <linux/irqchip/versatile-fpga.h>
- #include <linux/irqdomain.h>
- #include <linux/module.h>
-@@ -68,12 +69,16 @@ static void fpga_irq_unmask(struct irq_d
- static void fpga_irq_handle(struct irq_desc *desc)
- {
-+      struct irq_chip *chip = irq_desc_get_chip(desc);
-       struct fpga_irq_data *f = irq_desc_get_handler_data(desc);
--      u32 status = readl(f->base + IRQ_STATUS);
-+      u32 status;
-+      chained_irq_enter(chip, desc);
-+
-+      status = readl(f->base + IRQ_STATUS);
-       if (status == 0) {
-               do_bad_IRQ(desc);
--              return;
-+              goto out;
-       }
-       do {
-@@ -82,6 +87,9 @@ static void fpga_irq_handle(struct irq_d
-               status &= ~(1 << irq);
-               generic_handle_irq(irq_find_mapping(f->domain, irq));
-       } while (status);
-+
-+out:
-+      chained_irq_exit(chip, desc);
- }
- /*
diff --git a/target/linux/oxnas/patches-4.14/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch b/target/linux/oxnas/patches-4.14/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch
deleted file mode 100644 (file)
index 7a82b5a..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-From patchwork Sat Mar 21 13:38:42 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Sungbo Eo <mans0n@gorani.run>
-X-Patchwork-Id: 11451163
-From: Sungbo Eo <mans0n@gorani.run>
-To: linux-oxnas@groups.io, Linus Walleij <linus.walleij@linaro.org>,
- Thomas Gleixner <tglx@linutronix.de>, Jason Cooper <jason@lakedaemon.net>,
- Marc Zyngier <maz@kernel.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Subject: [PATCH] irqchip/versatile-fpga: Apply clear-mask earlier
-Date: Sat, 21 Mar 2020 22:38:42 +0900
-Message-Id: <20200321133842.2408823-1-mans0n@gorani.run>
-MIME-Version: 1.0
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-
-Clear its own IRQs before the parent IRQ get enabled, so that the
-remaining IRQs do not accidentally interrupt the parent IRQ controller.
-
-This patch also fixes a reboot bug on OX820 SoC, where the remaining
-rps-timer IRQ raises a GIC interrupt that is left pending. After that,
-the rps-timer IRQ is cleared during driver initialization, and there's
-no IRQ left in rps-irq when local_irq_enable() is called, which evokes
-an error message "unexpected IRQ trap".
-
-Fixes: bdd272cbb97a ("irqchip: versatile FPGA: support cascaded interrupts from DT")
-Signed-off-by: Sungbo Eo <mans0n@gorani.run>
-Cc: Neil Armstrong <narmstrong@baylibre.com>
-Cc: Daniel Golle <daniel@makrotopia.org>
----
- drivers/irqchip/irq-versatile-fpga.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- a/drivers/irqchip/irq-versatile-fpga.c
-+++ b/drivers/irqchip/irq-versatile-fpga.c
-@@ -212,6 +212,9 @@ int __init fpga_irq_of_init(struct devic
-       if (of_property_read_u32(node, "valid-mask", &valid_mask))
-               valid_mask = 0;
-+      writel(clear_mask, base + IRQ_ENABLE_CLEAR);
-+      writel(clear_mask, base + FIQ_ENABLE_CLEAR);
-+
-       /* Some chips are cascaded from a parent IRQ */
-       parent_irq = irq_of_parse_and_map(node, 0);
-       if (!parent_irq) {
-@@ -221,9 +224,6 @@ int __init fpga_irq_of_init(struct devic
-       fpga_irq_init(base, node->name, 0, parent_irq, valid_mask, node);
--      writel(clear_mask, base + IRQ_ENABLE_CLEAR);
--      writel(clear_mask, base + FIQ_ENABLE_CLEAR);
--
-       /*
-        * On Versatile AB/PB, some secondary interrupts have a direct
-        * pass-thru to the primary controller for IRQs 20 and 22-31 which need
index 478af4c..39717bb 100644 (file)
@@ -52,7 +52,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
  static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
                                    unsigned long adr, const u_char *buf,
                                    int len)
-@@ -1926,7 +1931,6 @@ static int __xipram do_write_buffer(stru
+@@ -1930,7 +1935,6 @@ static int __xipram do_write_buffer(stru
        return ret;
  }
  
@@ -60,7 +60,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
  static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
                                    size_t *retlen, const u_char *buf)
  {
-@@ -2001,6 +2005,7 @@ static int cfi_amdstd_write_buffers(stru
+@@ -2005,6 +2009,7 @@ static int cfi_amdstd_write_buffers(stru
  
        return 0;
  }