kernel: update kernel 4.4 to version 4.4.3
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 25 Feb 2016 21:54:39 +0000 (21:54 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 25 Feb 2016 21:54:39 +0000 (21:54 +0000)
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48783 3c298f89-4303-0410-b956-a3cf2f4a3e73

30 files changed:
include/kernel-version.mk
target/linux/ar71xx/patches-4.4/525-MIPS-ath79-enable-qca-usb-quirks.patch
target/linux/ar71xx/patches-4.4/609-MIPS-ath79-ap136-fixes.patch
target/linux/ar71xx/patches-4.4/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch
target/linux/bcm53xx/patches-4.4/710-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
target/linux/brcm2708/patches-4.4/0029-Add-dwc_otg-driver.patch
target/linux/brcm47xx/patches-4.4/800-bcma-add-table-of-serial-flashes-with-smaller-blocks.patch
target/linux/brcm47xx/patches-4.4/901-Revert-bcma-switch-GPIO-portions-to-use-GPIOLIB_IRQC.patch
target/linux/brcm47xx/patches-4.4/999-wl_exports.patch
target/linux/brcm63xx/patches-4.4/574-board_HG622.patch
target/linux/brcm63xx/patches-4.4/800-wl_exports.patch
target/linux/generic/patches-4.4/010-KEYS-Fix-keyring-ref-leak-in-join_session_keyring.patch [deleted file]
target/linux/generic/patches-4.4/100-dump_stack-avoid-potential-deadlocks.patch [deleted file]
target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/patches-4.4/721-phy_packets.patch
target/linux/generic/patches-4.4/820-usb_add_usb_find_device_by_name.patch
target/linux/lantiq/patches-4.4/0004-MIPS-lantiq-add-atm-hack.patch
target/linux/lantiq/patches-4.4/0032-USB-fix-roothub-for-IFXHCD.patch
target/linux/lantiq/patches-4.4/0044-pinctrl-lantiq-introduce-new-dedicated-devicetree-bi.patch
target/linux/mxs/patches-4.4/101-mxs-add-mxs_power.patch
target/linux/mxs/patches-4.4/102-mxs-add-regulator-driver.patch
target/linux/mxs/patches-4.4/103-dt-enable-regulator.patch
target/linux/mxs/patches-4.4/110-crypto-mxsdcp-provide-importexport.patch
target/linux/oxnas/patches-4.4/340-oxnas-pcie.patch
target/linux/sunxi/patches-4.4/116-crypto-add-missing-statesize.patch [deleted file]
target/linux/uml/patches-4.4/100-link-libpthread.patch
target/linux/uml/patches-4.4/101-mconsole-exec.patch
target/linux/uml/patches-4.4/102-pseudo-random-mac.patch
target/linux/zynq/patches-4.4/0001-arm-dts-zynq-zc702.dts-Set-default-rdinit-to-sbin-in.patch

index af1af70..3f4c71d 100644 (file)
@@ -5,12 +5,12 @@ LINUX_RELEASE?=1
 LINUX_VERSION-3.18 = .26
 LINUX_VERSION-4.1 = .16
 LINUX_VERSION-4.3 = .4
 LINUX_VERSION-3.18 = .26
 LINUX_VERSION-4.1 = .16
 LINUX_VERSION-4.3 = .4
-LINUX_VERSION-4.4 =
+LINUX_VERSION-4.4 = .3
 
 LINUX_KERNEL_MD5SUM-3.18.26 = fb3ef8da32a25607807887b9567a6927
 LINUX_KERNEL_MD5SUM-4.1.16 = e4bf22fed49b476b47acffc00c03267a
 LINUX_KERNEL_MD5SUM-4.3.4 = 5275d02132107c28b85f986bad576d91
 
 LINUX_KERNEL_MD5SUM-3.18.26 = fb3ef8da32a25607807887b9567a6927
 LINUX_KERNEL_MD5SUM-4.1.16 = e4bf22fed49b476b47acffc00c03267a
 LINUX_KERNEL_MD5SUM-4.3.4 = 5275d02132107c28b85f986bad576d91
-LINUX_KERNEL_MD5SUM-4.4 = 9a78fa2eb6c68ca5a40ed5af08142599
+LINUX_KERNEL_MD5SUM-4.4.3 = 5feab5a2c016e186e3088d4fae963ed7
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
index 61b6b4e..0e33674 100644 (file)
@@ -29,9 +29,7 @@
 -      u32 bootstrap;
 +      void __iomem *phy_reg;
 +      u32 t;
 -      u32 bootstrap;
 +      void __iomem *phy_reg;
 +      u32 t;
--      bootstrap = ath79_reset_rr(AR934X_RESET_REG_BOOTSTRAP);
--      if (bootstrap & AR934X_BOOTSTRAP_USB_MODE_DEVICE)
++
 +      phy_reg = ioremap(base, 4);
 +      if (!phy_reg)
 +              return;
 +      phy_reg = ioremap(base, 4);
 +      if (!phy_reg)
 +              return;
@@ -43,7 +41,9 @@
 +
 +      iounmap(phy_reg);
 +}
 +
 +      iounmap(phy_reg);
 +}
-+
+-      bootstrap = ath79_reset_rr(AR934X_RESET_REG_BOOTSTRAP);
+-      if (bootstrap & AR934X_BOOTSTRAP_USB_MODE_DEVICE)
 +static void ar934x_usb_reset_notifier(struct platform_device *pdev)
 +{
 +      if (pdev->id != -1)
 +static void ar934x_usb_reset_notifier(struct platform_device *pdev)
 +{
 +      if (pdev->id != -1)
index 5d9d802..4d7902e 100644 (file)
 +static void __init ap136_common_setup(void)
 +{
 +      u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
 +static void __init ap136_common_setup(void)
 +{
 +      u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
--static int ap136_pci_plat_dev_init(struct pci_dev *dev)
++
 +      ath79_register_m25p80(NULL);
 +
 +      ath79_register_leds_gpio(-1, ARRAY_SIZE(ap136_leds_gpio),
 +      ath79_register_m25p80(NULL);
 +
 +      ath79_register_leds_gpio(-1, ARRAY_SIZE(ap136_leds_gpio),
 +      ath79_register_wmac(art + AP136_WMAC_CALDATA_OFFSET, NULL);
 +
 +      ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
 +      ath79_register_wmac(art + AP136_WMAC_CALDATA_OFFSET, NULL);
 +
 +      ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
-+
+-static int ap136_pci_plat_dev_init(struct pci_dev *dev)
 +      ath79_register_mdio(0, 0x0);
 +      ath79_init_mac(ath79_eth0_data.mac_addr, art + AP136_MAC0_OFFSET, 0);
 +
 +      ath79_register_mdio(0, 0x0);
 +      ath79_init_mac(ath79_eth0_data.mac_addr, art + AP136_MAC0_OFFSET, 0);
 +
 +      /* GMAC0 of the AR8327 switch is connected to GMAC1 via SGMII */
 +      ap136_ar8327_pad0_cfg.mode = AR8327_PAD_MAC_SGMII;
 +      ap136_ar8327_pad0_cfg.sgmii_delay_en = true;
 +      /* GMAC0 of the AR8327 switch is connected to GMAC1 via SGMII */
 +      ap136_ar8327_pad0_cfg.mode = AR8327_PAD_MAC_SGMII;
 +      ap136_ar8327_pad0_cfg.sgmii_delay_en = true;
--      ath79_pci_set_plat_dev_init(ap136_pci_plat_dev_init);
--      ath79_register_pci();
++
 +      /* GMAC6 of the AR8327 switch is connected to GMAC0 via RGMII */
 +      ap136_ar8327_pad6_cfg.mode = AR8327_PAD_MAC_RGMII;
 +      ap136_ar8327_pad6_cfg.txclk_delay_en = true;
 +      ap136_ar8327_pad6_cfg.rxclk_delay_en = true;
 +      ap136_ar8327_pad6_cfg.txclk_delay_sel = AR8327_CLK_DELAY_SEL1;
 +      ap136_ar8327_pad6_cfg.rxclk_delay_sel = AR8327_CLK_DELAY_SEL2;
 +      /* GMAC6 of the AR8327 switch is connected to GMAC0 via RGMII */
 +      ap136_ar8327_pad6_cfg.mode = AR8327_PAD_MAC_RGMII;
 +      ap136_ar8327_pad6_cfg.txclk_delay_en = true;
 +      ap136_ar8327_pad6_cfg.rxclk_delay_en = true;
 +      ap136_ar8327_pad6_cfg.txclk_delay_sel = AR8327_CLK_DELAY_SEL1;
 +      ap136_ar8327_pad6_cfg.rxclk_delay_sel = AR8327_CLK_DELAY_SEL2;
-+
+-      ath79_pci_set_plat_dev_init(ap136_pci_plat_dev_init);
+-      ath79_register_pci();
 +      ath79_eth0_pll_data.pll_1000 = 0x56000000;
 +      ath79_eth1_pll_data.pll_1000 = 0x03000101;
 +
 +      ath79_eth0_pll_data.pll_1000 = 0x56000000;
 +      ath79_eth1_pll_data.pll_1000 = 0x03000101;
 +
index 237b030..a54c12b 100644 (file)
@@ -9,9 +9,6 @@
        u32 t, s;
  
 -      BUG_ON(!soc_is_ar934x() && !soc_is_qca953x() && !soc_is_qca956x());
        u32 t, s;
  
 -      BUG_ON(!soc_is_ar934x() && !soc_is_qca953x() && !soc_is_qca956x());
--
--      if (gpio >= AR934X_GPIO_COUNT)
--              return;
 +      if (soc_is_ar934x())
 +              reg_base = AR934X_GPIO_REG_OUT_FUNC0;
 +      else if (soc_is_qca953x())
 +      if (soc_is_ar934x())
 +              reg_base = AR934X_GPIO_REG_OUT_FUNC0;
 +      else if (soc_is_qca953x())
@@ -23,6 +20,9 @@
 +      else
 +              BUG();
  
 +      else
 +              BUG();
  
+-      if (gpio >= AR934X_GPIO_COUNT)
+-              return;
+-
 -      reg = AR934X_GPIO_REG_OUT_FUNC0 + 4 * (gpio / 4);
 +      reg = reg_base + 4 * (gpio / 4);
        s = 8 * (gpio % 4);
 -      reg = AR934X_GPIO_REG_OUT_FUNC0 + 4 * (gpio / 4);
 +      reg = reg_base + 4 * (gpio / 4);
        s = 8 * (gpio % 4);
index 82957f2..3a61570 100644 (file)
  #include <linux/uaccess.h>
  #include <linux/ipv6.h>
  #include <linux/icmpv6.h>
  #include <linux/uaccess.h>
  #include <linux/ipv6.h>
  #include <linux/icmpv6.h>
-@@ -776,10 +777,10 @@ static void tcp_v6_send_response(const s
+@@ -778,10 +779,10 @@ static void tcp_v6_send_response(const s
        topt = (__be32 *)(t1 + 1);
  
        if (tsecr) {
        topt = (__be32 *)(t1 + 1);
  
        if (tsecr) {
  #include <linux/netdevice.h>
 --- a/include/net/inet_ecn.h
 +++ b/include/net/inet_ecn.h
  #include <linux/netdevice.h>
 --- a/include/net/inet_ecn.h
 +++ b/include/net/inet_ecn.h
-@@ -115,13 +115,13 @@ static inline int IP6_ECN_set_ce(struct
- {
+@@ -124,9 +124,9 @@ static inline int IP6_ECN_set_ce(struct
        if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
                return 0;
        if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
                return 0;
--      *(__be32*)iph |= htonl(INET_ECN_CE << 20);
-+      net_hdr_word(iph) |= htonl(INET_ECN_CE << 20);
+-      from = *(__be32 *)iph;
++      from = net_hdr_word(iph);
+       to = from | htonl(INET_ECN_CE << 20);
+-      *(__be32 *)iph = to;
++      net_hdr_word(iph) = to;
+       if (skb->ip_summed == CHECKSUM_COMPLETE)
+               skb->csum = csum_add(csum_sub(skb->csum, from), to);
        return 1;
        return 1;
- }
+@@ -134,7 +134,7 @@ static inline int IP6_ECN_set_ce(struct
  
  static inline void IP6_ECN_clear(struct ipv6hdr *iph)
  {
  
  static inline void IP6_ECN_clear(struct ipv6hdr *iph)
  {
index 43c1978..6e8681c 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
  
  #include "b53_regs.h"
  #include "b53_priv.h"
  
  #include "b53_regs.h"
  #include "b53_priv.h"
-@@ -1313,6 +1314,20 @@ static int b53_switch_init(struct b53_de
+@@ -1370,6 +1371,20 @@ static int b53_switch_init(struct b53_de
                        sw_dev->cpu_port = 5;
        }
  
                        sw_dev->cpu_port = 5;
        }
  
index 909cffe..736aac1 100644 (file)
@@ -659,7 +659,7 @@ dwc_otg: Remove duplicate gadget probe/unregister function
  }
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
  }
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
-@@ -4946,7 +4946,7 @@ static void port_event(struct usb_hub *h
+@@ -4967,7 +4967,7 @@ static void port_event(struct usb_hub *h
        if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
                u16 status = 0, unused;
  
        if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
                u16 status = 0, unused;
  
index 99d909b..318dc55 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
  
  static struct resource bcma_sflash_resource = {
        .name   = "bcma_sflash",
  
  static struct resource bcma_sflash_resource = {
        .name   = "bcma_sflash",
-@@ -41,6 +42,13 @@ static const struct bcma_sflash_tbl_e bc
+@@ -42,6 +43,13 @@ static const struct bcma_sflash_tbl_e bc
        { NULL },
  };
  
        { NULL },
  };
  
@@ -35,7 +35,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
  static const struct bcma_sflash_tbl_e bcma_sflash_sst_tbl[] = {
        { "SST25WF512", 1, 0x1000, 16, },
        { "SST25VF512", 0x48, 0x1000, 16, },
  static const struct bcma_sflash_tbl_e bcma_sflash_sst_tbl[] = {
        { "SST25WF512", 1, 0x1000, 16, },
        { "SST25VF512", 0x48, 0x1000, 16, },
-@@ -84,6 +92,24 @@ static void bcma_sflash_cmd(struct bcma_
+@@ -85,6 +93,24 @@ static void bcma_sflash_cmd(struct bcma_
        bcma_err(cc->core->bus, "SFLASH control command failed (timeout)!\n");
  }
  
        bcma_err(cc->core->bus, "SFLASH control command failed (timeout)!\n");
  }
  
@@ -60,7 +60,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
  /* Initialize serial flash access */
  int bcma_sflash_init(struct bcma_drv_cc *cc)
  {
  /* Initialize serial flash access */
  int bcma_sflash_init(struct bcma_drv_cc *cc)
  {
-@@ -114,6 +140,10 @@ int bcma_sflash_init(struct bcma_drv_cc
+@@ -115,6 +141,10 @@ int bcma_sflash_init(struct bcma_drv_cc
                case 0x13:
                        return -ENOTSUPP;
                default:
                case 0x13:
                        return -ENOTSUPP;
                default:
index 585d56a..e686ba8 100644 (file)
@@ -195,7 +195,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
  #if IS_BUILTIN(CONFIG_OF)
        if (cc->core->bus->hosttype == BCMA_HOSTTYPE_SOC)
                chip->of_node   = cc->core->dev.of_node;
  #if IS_BUILTIN(CONFIG_OF)
        if (cc->core->bus->hosttype == BCMA_HOSTTYPE_SOC)
                chip->of_node   = cc->core->dev.of_node;
-@@ -216,13 +248,13 @@ int bcma_gpio_init(struct bcma_drv_cc *c
+@@ -217,13 +249,13 @@ int bcma_gpio_init(struct bcma_drv_cc *c
        else
                chip->base              = -1;
  
        else
                chip->base              = -1;
  
@@ -212,7 +212,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
                return err;
        }
  
                return err;
        }
  
-@@ -231,7 +263,7 @@ int bcma_gpio_init(struct bcma_drv_cc *c
+@@ -232,7 +264,7 @@ int bcma_gpio_init(struct bcma_drv_cc *c
  
  int bcma_gpio_unregister(struct bcma_drv_cc *cc)
  {
  
  int bcma_gpio_unregister(struct bcma_drv_cc *cc)
  {
@@ -223,7 +223,7 @@ Signed-off-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
  }
 --- a/include/linux/bcma/bcma_driver_chipcommon.h
 +++ b/include/linux/bcma/bcma_driver_chipcommon.h
  }
 --- a/include/linux/bcma/bcma_driver_chipcommon.h
 +++ b/include/linux/bcma/bcma_driver_chipcommon.h
-@@ -640,6 +640,7 @@ struct bcma_drv_cc {
+@@ -646,6 +646,7 @@ struct bcma_drv_cc {
        spinlock_t gpio_lock;
  #ifdef CONFIG_BCMA_DRIVER_GPIO
        struct gpio_chip gpio;
        spinlock_t gpio_lock;
  #ifdef CONFIG_BCMA_DRIVER_GPIO
        struct gpio_chip gpio;
index ea59f4f..9094ec8 100644 (file)
@@ -12,7 +12,7 @@
  static int cfe_env;
 --- a/arch/mips/mm/cache.c
 +++ b/arch/mips/mm/cache.c
  static int cfe_env;
 --- a/arch/mips/mm/cache.c
 +++ b/arch/mips/mm/cache.c
-@@ -59,6 +59,7 @@ void (*_dma_cache_wback)(unsigned long s
+@@ -60,6 +60,7 @@ void (*_dma_cache_wback)(unsigned long s
  void (*_dma_cache_inv)(unsigned long start, unsigned long size);
  
  EXPORT_SYMBOL(_dma_cache_wback_inv);
  void (*_dma_cache_inv)(unsigned long start, unsigned long size);
  
  EXPORT_SYMBOL(_dma_cache_wback_inv);
index 53818dc..1f2e3d2 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2057,6 +2057,53 @@ static struct board_info __initdata boar
+@@ -2058,6 +2058,53 @@ static struct board_info __initdata boar
        },
  };
  
        },
  };
  
@@ -54,7 +54,7 @@
  static struct sprom_fixup __initdata vr3025u_fixups[] = {
        { .offset = 97, .value = 0xfeb3 },
        { .offset = 98, .value = 0x1618 },
  static struct sprom_fixup __initdata vr3025u_fixups[] = {
        { .offset = 97, .value = 0xfeb3 },
        { .offset = 98, .value = 0x1618 },
-@@ -2563,6 +2610,7 @@ static const struct board_info __initcon
+@@ -2564,6 +2611,7 @@ static const struct board_info __initcon
        &board_96368mvwg,
        &board_96368mvngr,
        &board_DGND3700v1_3800B,
        &board_96368mvwg,
        &board_96368mvngr,
        &board_DGND3700v1_3800B,
@@ -62,7 +62,7 @@
        &board_HG655b,
        &board_P870HW51A_V2,
        &board_VR3025u,
        &board_HG655b,
        &board_P870HW51A_V2,
        &board_VR3025u,
-@@ -2671,6 +2719,7 @@ static struct of_device_id const bcm963x
+@@ -2672,6 +2720,7 @@ static struct of_device_id const bcm963x
        { .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
        { .compatible = "comtrend,vr-3026e", .data = &board_VR3026e, },
        { .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
        { .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
        { .compatible = "comtrend,vr-3026e", .data = &board_VR3026e, },
        { .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
index 68d37c7..7f8720a 100644 (file)
@@ -15,7 +15,7 @@
        unsigned int check_len;
 --- a/arch/mips/mm/cache.c
 +++ b/arch/mips/mm/cache.c
        unsigned int check_len;
 --- a/arch/mips/mm/cache.c
 +++ b/arch/mips/mm/cache.c
-@@ -59,6 +59,7 @@ void (*_dma_cache_wback)(unsigned long s
+@@ -60,6 +60,7 @@ void (*_dma_cache_wback)(unsigned long s
  void (*_dma_cache_inv)(unsigned long start, unsigned long size);
  
  EXPORT_SYMBOL(_dma_cache_wback_inv);
  void (*_dma_cache_inv)(unsigned long start, unsigned long size);
  
  EXPORT_SYMBOL(_dma_cache_wback_inv);
diff --git a/target/linux/generic/patches-4.4/010-KEYS-Fix-keyring-ref-leak-in-join_session_keyring.patch b/target/linux/generic/patches-4.4/010-KEYS-Fix-keyring-ref-leak-in-join_session_keyring.patch
deleted file mode 100644 (file)
index f22d8c3..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-From 7ca88764d45c209791e8813131c1457c2e9e51e7 Mon Sep 17 00:00:00 2001
-From: Yevgeny Pats <yevgeny@perception-point.io>
-Date: Mon, 11 Jan 2016 12:05:28 +0000
-Subject: KEYS: Fix keyring ref leak in join_session_keyring()
-
-If a thread is asked to join as a session keyring the keyring that's already
-set as its session, we leak a keyring reference.
-
-This can be tested with the following program:
-
-       #include <stddef.h>
-       #include <stdio.h>
-       #include <sys/types.h>
-       #include <keyutils.h>
-
-       int main(int argc, const char *argv[])
-       {
-               int i = 0;
-               key_serial_t serial;
-
-               serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING,
-                               "leaked-keyring");
-               if (serial < 0) {
-                       perror("keyctl");
-                       return -1;
-               }
-
-               if (keyctl(KEYCTL_SETPERM, serial,
-                          KEY_POS_ALL | KEY_USR_ALL) < 0) {
-                       perror("keyctl");
-                       return -1;
-               }
-
-               for (i = 0; i < 100; i++) {
-                       serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING,
-                                       "leaked-keyring");
-                       if (serial < 0) {
-                               perror("keyctl");
-                               return -1;
-                       }
-               }
-
-               return 0;
-       }
-
-If, after the program has run, there something like the following line in
-/proc/keys:
-
-3f3d898f I--Q---   100 perm 3f3f0000     0     0 keyring   leaked-keyring: empty
-
-with a usage count of 100 * the number of times the program has been run,
-then the kernel is malfunctioning.  If leaked-keyring has zero usages or
-has been garbage collected, then the problem is fixed.
-
-Reported-by: Yevgeny Pats <yevgeny@perception-point.io>
-Signed-off-by: David Howells <dhowells@redhat.com>
----
- security/keys/process_keys.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/security/keys/process_keys.c
-+++ b/security/keys/process_keys.c
-@@ -794,6 +794,7 @@ long join_session_keyring(const char *na
-               ret = PTR_ERR(keyring);
-               goto error2;
-       } else if (keyring == new->session_keyring) {
-+              key_put(keyring);
-               ret = 0;
-               goto error2;
-       }
diff --git a/target/linux/generic/patches-4.4/100-dump_stack-avoid-potential-deadlocks.patch b/target/linux/generic/patches-4.4/100-dump_stack-avoid-potential-deadlocks.patch
deleted file mode 100644 (file)
index a20de7a..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From: Eric Dumazet <edumazet@google.com>
-Date: Fri, 22 Jan 2016 23:06:44 -0800
-Subject: [PATCH] dump_stack: avoid potential deadlocks
-
-Some servers experienced fatal deadlocks because of a combination
-of bugs, leading to multiple cpus calling dump_stack().
-
-The checksumming bug was fixed in commit 34ae6a1aa054
-("ipv6: update skb->csum when CE mark is propagated").
-
-The second problem is a faulty locking in dump_stack()
-
-CPU1 runs in process context and calls dump_stack(), grabs dump_lock.
-
-   CPU2 receives a TCP packet under softirq, grabs socket spinlock, and
-   call dump_stack() from netdev_rx_csum_fault().
-
-   dump_stack() spins on atomic_cmpxchg(&dump_lock, -1, 2), since
-   dump_lock is owned by CPU1
-
-While dumping its stack, CPU1 is interrupted by a softirq, and happens
-to process a packet for the TCP socket locked by CPU2.
-
-CPU1 spins forever in spin_lock() : deadlock
-
-Stack trace on CPU1 looked like :
-
-[306295.402231] NMI backtrace for cpu 1
-[306295.402238] RIP: 0010:[<ffffffffa9804e95>]  [<ffffffffa9804e95>] _raw_spin_lock+0x25/0x30
-...
-[306295.402255] Stack:
-[306295.402256]  ffff88407f023cb0 ffffffffa99cbdc3 ffff88407f023ca0 ffff88012f496bb0
-[306295.402266]  ffffffffaa4dc1f0 ffff8820d94f0dc0 000000000000000a ffffffffaa4b4280
-[306295.402275]  ffff88407f023ce0 ffffffffa98a21d0 ffff88407f023cc0 ffff88407f023ca0
-[306295.402284] Call Trace:
-[306295.402286]  <IRQ>
-[306295.402288]
-[306295.402291]  [<ffffffffa99cbdc3>] tcp_v6_rcv+0x243/0x620
-[306295.402304]  [<ffffffffa99c38af>] ip6_input_finish+0x11f/0x330
-[306295.402309]  [<ffffffffa99c3b38>] ip6_input+0x38/0x40
-[306295.402313]  [<ffffffffa99c3b7c>] ip6_rcv_finish+0x3c/0x90
-[306295.402318]  [<ffffffffa99c3e79>] ipv6_rcv+0x2a9/0x500
-[306295.402323]  [<ffffffffa989a1a1>] process_backlog+0x461/0xaa0
-[306295.402332]  [<ffffffffa9899a57>] net_rx_action+0x147/0x430
-[306295.402337]  [<ffffffffa980cca7>] __do_softirq+0x167/0x2d0
-[306295.402341]  [<ffffffffa9d912dc>] call_softirq+0x1c/0x30
-[306295.402345]  [<ffffffffa980687f>] do_softirq+0x3f/0x80
-[306295.402350]  [<ffffffffa980cf7e>] irq_exit+0x6e/0xc0
-[306295.402355]  [<ffffffffa980a5b5>] smp_call_function_single_interrupt+0x35/0x40
-[306295.402360]  [<ffffffffa9d90bfa>] call_function_single_interrupt+0x6a/0x70
-[306295.402361]  <EOI>
-[306295.402364]
-[306295.402376]  [<ffffffffa9a3fa32>] printk+0x4d/0x4f
-[306295.402390]  [<ffffffffa99e1726>] printk_address+0x31/0x33
-[306295.402395]  [<ffffffffa99e175b>] print_trace_address+0x33/0x3c
-[306295.402408]  [<ffffffffa99e165b>] print_context_stack+0x7f/0x119
-[306295.402412]  [<ffffffffa99e07f1>] dump_trace+0x26b/0x28e
-[306295.402417]  [<ffffffffa99e17b3>] show_trace_log_lvl+0x4f/0x5c
-[306295.402421]  [<ffffffffa99e0a14>] show_stack_log_lvl+0x104/0x113
-[306295.402425]  [<ffffffffa99e1819>] show_stack+0x42/0x44
-[306295.402429]  [<ffffffffa9ba350a>] dump_stack+0x46/0x58
-[306295.402434]  [<ffffffffa9d0957d>] netdev_rx_csum_fault+0x38/0x3c
-[306295.402439]  [<ffffffffa9988e0e>] __skb_checksum_complete_head+0x6e/0x80
-[306295.402444]  [<ffffffffa9988e31>] __skb_checksum_complete+0x11/0x20
-[306295.402449]  [<ffffffffa98acf65>] tcp_rcv_established+0x2bd5/0x2fd0
-[306295.402468]  [<ffffffffa99cb69c>] tcp_v6_do_rcv+0x13c/0x620
-[306295.402477]  [<ffffffffa9984be5>] sk_backlog_rcv+0x15/0x30
-[306295.402482]  [<ffffffffa98931e2>] release_sock+0xd2/0x150
-[306295.402486]  [<ffffffffa98a51b1>] tcp_recvmsg+0x1c1/0xfc0
-[306295.402491]  [<ffffffffa98b637d>] inet_recvmsg+0x7d/0x90
-[306295.402495]  [<ffffffffa9891fcf>] sock_recvmsg+0xaf/0xe0
-[306295.402505]  [<ffffffffa9892611>] ___sys_recvmsg+0x111/0x3b0
-[306295.402528]  [<ffffffffa9892f5c>] SyS_recvmsg+0x5c/0xb0
-[306295.402532]  [<ffffffffa9d8fba2>] system_call_fastpath+0x16/0x1b
-
-Fixes: b58d977432c8 ("dump_stack: serialize the output from dump_stack()")
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Cc: Alex Thorlton <athorlton@sgi.com>
----
-
---- a/lib/dump_stack.c
-+++ b/lib/dump_stack.c
-@@ -25,6 +25,7 @@ static atomic_t dump_lock = ATOMIC_INIT(
- asmlinkage __visible void dump_stack(void)
- {
-+      unsigned long flags;
-       int was_locked;
-       int old;
-       int cpu;
-@@ -33,9 +34,8 @@ asmlinkage __visible void dump_stack(voi
-        * Permit this cpu to perform nested stack dumps while serialising
-        * against other CPUs
-        */
--      preempt_disable();
--
- retry:
-+      local_irq_save(flags);
-       cpu = smp_processor_id();
-       old = atomic_cmpxchg(&dump_lock, -1, cpu);
-       if (old == -1) {
-@@ -43,6 +43,7 @@ retry:
-       } else if (old == cpu) {
-               was_locked = 1;
-       } else {
-+              local_irq_restore(flags);
-               cpu_relax();
-               goto retry;
-       }
-@@ -52,7 +53,7 @@ retry:
-       if (!was_locked)
-               atomic_set(&dump_lock, -1);
--      preempt_enable();
-+      local_irq_restore(flags);
- }
- #else
- asmlinkage __visible void dump_stack(void)
index 921b809..256bd51 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4199,6 +4199,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4204,6 +4204,9 @@ static enum gro_result dev_gro_receive(s
        enum gro_result ret;
        int grow;
  
        enum gro_result ret;
        int grow;
  
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        if (!(skb->dev->features & NETIF_F_GRO))
                goto normal;
  
        if (!(skb->dev->features & NETIF_F_GRO))
                goto normal;
  
-@@ -5349,6 +5352,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5354,6 +5357,48 @@ static void __netdev_adjacent_dev_unlink
                                           &upper_dev->adj_list.lower);
  }
  
                                           &upper_dev->adj_list.lower);
  }
  
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *private)
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *private)
-@@ -5420,6 +5465,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5425,6 +5470,7 @@ static int __netdev_upper_dev_link(struc
                        goto rollback_lower_mesh;
        }
  
                        goto rollback_lower_mesh;
        }
  
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
        return 0;
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
        return 0;
-@@ -5546,6 +5592,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5551,6 +5597,7 @@ void netdev_upper_dev_unlink(struct net_
        list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
                __netdev_adjacent_dev_unlink(dev, i->dev);
  
        list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
                __netdev_adjacent_dev_unlink(dev, i->dev);
  
@@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
  }
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
  }
-@@ -6086,6 +6133,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6091,6 +6138,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
index 719275b..c599356 100644 (file)
@@ -86,7 +86,7 @@
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -2708,10 +2708,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -2713,10 +2713,20 @@ static int xmit_one(struct sk_buff *skb,
        if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
                dev_queue_xmit_nit(skb, dev);
  
        if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
                dev_queue_xmit_nit(skb, dev);
  
index f6ef9ce..1740d74 100644 (file)
@@ -74,7 +74,7 @@
   * @dev: device the buffer will be used with
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
   * @dev: device the buffer will be used with
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
-@@ -725,6 +725,7 @@ static inline bool usb_device_no_sg_cons
+@@ -729,6 +729,7 @@ static inline bool usb_device_no_sg_cons
        return udev && udev->bus && udev->bus->no_sg_constraint;
  }
  
        return udev && udev->bus && udev->bus->no_sg_constraint;
  }
  
index 53809d0..6b97f39 100644 (file)
@@ -441,7 +441,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  {
 --- a/arch/mips/mm/cache.c
 +++ b/arch/mips/mm/cache.c
  {
 --- a/arch/mips/mm/cache.c
 +++ b/arch/mips/mm/cache.c
-@@ -59,6 +59,8 @@ void (*_dma_cache_wback)(unsigned long s
+@@ -60,6 +60,8 @@ void (*_dma_cache_wback)(unsigned long s
  void (*_dma_cache_inv)(unsigned long start, unsigned long size);
  
  EXPORT_SYMBOL(_dma_cache_wback_inv);
  void (*_dma_cache_inv)(unsigned long start, unsigned long size);
  
  EXPORT_SYMBOL(_dma_cache_wback_inv);
index 1310e35..5a7cdb0 100644 (file)
@@ -20,7 +20,7 @@ Subject: [PATCH 32/36] USB: fix roothub for IFXHCD
  choice
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
  choice
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
-@@ -4337,7 +4337,7 @@ hub_port_init(struct usb_hub *hub, struc
+@@ -4358,7 +4358,7 @@ hub_port_init(struct usb_hub *hub, struc
                udev->ttport = hdev->ttport;
        } else if (udev->speed != USB_SPEED_HIGH
                        && hdev->speed == USB_SPEED_HIGH) {
                udev->ttport = hdev->ttport;
        } else if (udev->speed != USB_SPEED_HIGH
                        && hdev->speed == USB_SPEED_HIGH) {
index b7905f9..b27cb0b 100644 (file)
@@ -1266,7 +1266,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  /* ---------  pinconf related code --------- */
  static int xway_pinconf_get(struct pinctrl_dev *pctldev,
                                unsigned pin,
  /* ---------  pinconf related code --------- */
  static int xway_pinconf_get(struct pinctrl_dev *pctldev,
                                unsigned pin,
-@@ -714,10 +1601,7 @@ static struct gpio_chip xway_chip = {
+@@ -715,10 +1602,7 @@ static struct gpio_chip xway_chip = {
  
  
  /* --------- register the pinctrl layer --------- */
  
  
  /* --------- register the pinctrl layer --------- */
@@ -1278,7 +1278,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        int pin_count;
        const struct ltq_mfp_pin *mfp;
        const struct ltq_pin_group *grps;
        int pin_count;
        const struct ltq_mfp_pin *mfp;
        const struct ltq_pin_group *grps;
-@@ -726,22 +1610,54 @@ static struct pinctrl_xway_soc {
+@@ -727,22 +1611,54 @@ static struct pinctrl_xway_soc {
        unsigned int num_funcs;
        const unsigned *exin;
        unsigned int num_exin;
        unsigned int num_funcs;
        const unsigned *exin;
        unsigned int num_exin;
@@ -1349,7 +1349,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  };
  
  static struct pinctrl_gpio_range xway_gpio_range = {
  };
  
  static struct pinctrl_gpio_range xway_gpio_range = {
-@@ -750,9 +1666,14 @@ static struct pinctrl_gpio_range xway_gp
+@@ -751,9 +1667,14 @@ static struct pinctrl_gpio_range xway_gp
  };
  
  static const struct of_device_id xway_match[] = {
  };
  
  static const struct of_device_id xway_match[] = {
@@ -1367,7 +1367,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        {},
  };
  MODULE_DEVICE_TABLE(of, xway_match);
        {},
  };
  MODULE_DEVICE_TABLE(of, xway_match);
-@@ -774,7 +1695,7 @@ static int pinmux_xway_probe(struct plat
+@@ -775,7 +1696,7 @@ static int pinmux_xway_probe(struct plat
        if (match)
                xway_soc = (const struct pinctrl_xway_soc *) match->data;
        else
        if (match)
                xway_soc = (const struct pinctrl_xway_soc *) match->data;
        else
index 104736c..ed25042 100644 (file)
@@ -17,9 +17,9 @@
        depends on MFD_WM831X
 --- a/drivers/power/Makefile
 +++ b/drivers/power/Makefile
        depends on MFD_WM831X
 --- a/drivers/power/Makefile
 +++ b/drivers/power/Makefile
-@@ -10,6 +10,7 @@ obj-$(CONFIG_GENERIC_ADC_BATTERY)    += gen
- obj-$(CONFIG_PDA_POWER)               += pda_power.o
+@@ -11,6 +11,7 @@ obj-$(CONFIG_PDA_POWER)              += pda_power.o
  obj-$(CONFIG_APM_POWER)               += apm_power.o
  obj-$(CONFIG_APM_POWER)               += apm_power.o
+ obj-$(CONFIG_AXP20X_POWER)    += axp20x_usb_power.o
  obj-$(CONFIG_MAX8925_POWER)   += max8925_power.o
 +obj-$(CONFIG_MXS_POWER)               += mxs_power.o
  obj-$(CONFIG_WM831X_BACKUP)   += wm831x_backup.o
  obj-$(CONFIG_MAX8925_POWER)   += max8925_power.o
 +obj-$(CONFIG_MXS_POWER)               += mxs_power.o
  obj-$(CONFIG_WM831X_BACKUP)   += wm831x_backup.o
index 4690b3c..cb658c9 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/regulator/Kconfig
 +++ b/drivers/regulator/Kconfig
 --- a/drivers/regulator/Kconfig
 +++ b/drivers/regulator/Kconfig
-@@ -450,6 +450,14 @@ config REGULATOR_MT6397
+@@ -461,6 +461,14 @@ config REGULATOR_MT6397
          This driver supports the control of different power rails of device
          through regulator interface.
  
          This driver supports the control of different power rails of device
          through regulator interface.
  
        depends on MFD_PALMAS
 --- a/drivers/regulator/Makefile
 +++ b/drivers/regulator/Makefile
        depends on MFD_PALMAS
 --- a/drivers/regulator/Makefile
 +++ b/drivers/regulator/Makefile
-@@ -60,6 +60,7 @@ obj-$(CONFIG_REGULATOR_MC13783) += mc137
- obj-$(CONFIG_REGULATOR_MC13892) += mc13892-regulator.o
+@@ -61,6 +61,7 @@ obj-$(CONFIG_REGULATOR_MC13892) += mc138
  obj-$(CONFIG_REGULATOR_MC13XXX_CORE) +=  mc13xxx-regulator-core.o
  obj-$(CONFIG_REGULATOR_MC13XXX_CORE) +=  mc13xxx-regulator-core.o
+ obj-$(CONFIG_REGULATOR_MT6311) += mt6311-regulator.o
  obj-$(CONFIG_REGULATOR_MT6397)        += mt6397-regulator.o
 +obj-$(CONFIG_REGULATOR_MXS) += mxs-regulator.o
  obj-$(CONFIG_REGULATOR_QCOM_RPM) += qcom_rpm-regulator.o
  obj-$(CONFIG_REGULATOR_MT6397)        += mt6397-regulator.o
 +obj-$(CONFIG_REGULATOR_MXS) += mxs-regulator.o
  obj-$(CONFIG_REGULATOR_QCOM_RPM) += qcom_rpm-regulator.o
- obj-$(CONFIG_REGULATOR_PALMAS) += palmas-regulator.o
- obj-$(CONFIG_REGULATOR_PFUZE100) += pfuze100-regulator.o
+ obj-$(CONFIG_REGULATOR_QCOM_SMD_RPM) += qcom_smd-regulator.o
+ obj-$(CONFIG_REGULATOR_QCOM_SPMI) += qcom_spmi-regulator.o
 --- /dev/null
 +++ b/drivers/regulator/mxs-regulator.c
 @@ -0,0 +1,540 @@
 --- /dev/null
 +++ b/drivers/regulator/mxs-regulator.c
 @@ -0,0 +1,540 @@
index bfcf247..39ea035 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm/boot/dts/imx23.dtsi
 +++ b/arch/arm/boot/dts/imx23.dtsi
 --- a/arch/arm/boot/dts/imx23.dtsi
 +++ b/arch/arm/boot/dts/imx23.dtsi
-@@ -404,8 +404,46 @@
+@@ -439,8 +439,46 @@
                        };
  
                        power@80044000 {
                        };
  
                        power@80044000 {
@@ -50,7 +50,7 @@
                        saif1: saif@80046000 {
 --- a/arch/arm/boot/dts/imx28.dtsi
 +++ b/arch/arm/boot/dts/imx28.dtsi
                        saif1: saif@80046000 {
 --- a/arch/arm/boot/dts/imx28.dtsi
 +++ b/arch/arm/boot/dts/imx28.dtsi
-@@ -1035,8 +1035,46 @@
+@@ -1037,8 +1037,46 @@
                        };
  
                        power: power@80044000 {
                        };
  
                        power: power@80044000 {
index 5aa3d7d..d23e7c8 100644 (file)
@@ -21,11 +21,9 @@ Changes since v2:
  drivers/crypto/mxs-dcp.c | 24 ++++++++++++++++++++++++
  1 file changed, 24 insertions(+)
 
  drivers/crypto/mxs-dcp.c | 24 ++++++++++++++++++++++++
  1 file changed, 24 insertions(+)
 
-diff --git a/drivers/crypto/mxs-dcp.c b/drivers/crypto/mxs-dcp.c
-index 59ed54e..1e2017f 100644
 --- a/drivers/crypto/mxs-dcp.c
 +++ b/drivers/crypto/mxs-dcp.c
 --- a/drivers/crypto/mxs-dcp.c
 +++ b/drivers/crypto/mxs-dcp.c
-@@ -775,6 +775,24 @@ static void dcp_sha_cra_exit(struct crypto_tfm *tfm)
+@@ -775,6 +775,24 @@ static void dcp_sha_cra_exit(struct cryp
  {
  }
  
  {
  }
  
@@ -62,7 +60,7 @@ index 59ed54e..1e2017f 100644
                .base           = {
                        .cra_name               = "sha1",
                        .cra_driver_name        = "sha1-dcp",
                .base           = {
                        .cra_name               = "sha1",
                        .cra_driver_name        = "sha1-dcp",
-@@ -858,8 +879,11 @@ static struct ahash_alg dcp_sha256_alg = {
+@@ -858,8 +879,11 @@ static struct ahash_alg dcp_sha256_alg =
        .final  = dcp_sha_final,
        .finup  = dcp_sha_finup,
        .digest = dcp_sha_digest,
        .final  = dcp_sha_final,
        .finup  = dcp_sha_finup,
        .digest = dcp_sha_digest,
@@ -74,7 +72,3 @@ index 59ed54e..1e2017f 100644
                .base           = {
                        .cra_name               = "sha256",
                        .cra_driver_name        = "sha256-dcp",
                .base           = {
                        .cra_name               = "sha256",
                        .cra_driver_name        = "sha256-dcp",
--- 
-1.9.1
-
---
index 374f9b9..edc23b7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/pci/host/Kconfig
 +++ b/drivers/pci/host/Kconfig
 --- a/drivers/pci/host/Kconfig
 +++ b/drivers/pci/host/Kconfig
-@@ -172,4 +172,9 @@ config PCI_HISI
+@@ -173,4 +173,9 @@ config PCI_HISI
        help
          Say Y here if you want PCIe controller support on HiSilicon HIP05 SoC
  
        help
          Say Y here if you want PCIe controller support on HiSilicon HIP05 SoC
  
diff --git a/target/linux/sunxi/patches-4.4/116-crypto-add-missing-statesize.patch b/target/linux/sunxi/patches-4.4/116-crypto-add-missing-statesize.patch
deleted file mode 100644 (file)
index 261a19d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From 4f9ea86604e3ba64edd2817795798168fbb3c1a6 Mon Sep 17 00:00:00 2001
-From: LABBE Corentin <clabbe.montjoie@gmail.com>
-Date: Mon, 16 Nov 2015 09:35:54 +0100
-Subject: [PATCH] crypto: sun4i-ss - add missing statesize
-
-sun4i-ss implementaton of md5/sha1 is via ahash algorithms.
-Commit 8996eafdcbad ("crypto: ahash - ensure statesize is non-zero")
-made impossible to load them without giving statesize. This patch
-specifiy statesize for sha1 and md5.
-
-Fixes: 6298e948215f ("crypto: sunxi-ss - Add Allwinner Security System crypto accelerator")
-Cc: <stable@vger.kernel.org> # v4.3+
-Tested-by: Chen-Yu Tsai <wens@csie.org>
-Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
-Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
----
- drivers/crypto/sunxi-ss/sun4i-ss-core.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/crypto/sunxi-ss/sun4i-ss-core.c
-+++ b/drivers/crypto/sunxi-ss/sun4i-ss-core.c
-@@ -39,6 +39,7 @@ static struct sun4i_ss_alg_template ss_a
-               .import = sun4i_hash_import_md5,
-               .halg = {
-                       .digestsize = MD5_DIGEST_SIZE,
-+                      .statesize = sizeof(struct md5_state),
-                       .base = {
-                               .cra_name = "md5",
-                               .cra_driver_name = "md5-sun4i-ss",
-@@ -66,6 +67,7 @@ static struct sun4i_ss_alg_template ss_a
-               .import = sun4i_hash_import_sha1,
-               .halg = {
-                       .digestsize = SHA1_DIGEST_SIZE,
-+                      .statesize = sizeof(struct sha1_state),
-                       .base = {
-                               .cra_name = "sha1",
-                               .cra_driver_name = "sha1-sun4i-ss",
index 297f6d5..2ffab6b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/scripts/link-vmlinux.sh
 +++ b/scripts/link-vmlinux.sh
 --- a/scripts/link-vmlinux.sh
 +++ b/scripts/link-vmlinux.sh
-@@ -62,7 +62,7 @@
+@@ -62,7 +62,7 @@ vmlinux_link()
                        -Wl,--start-group                                    \
                                 ${KBUILD_VMLINUX_MAIN}                      \
                        -Wl,--end-group                                      \
                        -Wl,--start-group                                    \
                                 ${KBUILD_VMLINUX_MAIN}                      \
                        -Wl,--end-group                                      \
index 98f04f4..879b106 100644 (file)
@@ -17,7 +17,7 @@
 #
 --- a/arch/um/drivers/mconsole.h
 +++ b/arch/um/drivers/mconsole.h
 #
 --- a/arch/um/drivers/mconsole.h
 +++ b/arch/um/drivers/mconsole.h
-@@ -85,6 +85,7 @@
+@@ -85,6 +85,7 @@ extern void mconsole_cad(struct mc_reque
  extern void mconsole_stop(struct mc_request *req);
  extern void mconsole_go(struct mc_request *req);
  extern void mconsole_log(struct mc_request *req);
  extern void mconsole_stop(struct mc_request *req);
  extern void mconsole_go(struct mc_request *req);
  extern void mconsole_log(struct mc_request *req);
@@ -43,7 +43,7 @@
  #include <asm/uaccess.h>
  #include <asm/switch_to.h>
  
  #include <asm/uaccess.h>
  #include <asm/switch_to.h>
  
-@@ -121,6 +123,59 @@
+@@ -121,6 +123,59 @@ void mconsole_log(struct mc_request *req
        mconsole_reply(req, "", 0, 0);
  }
  
        mconsole_reply(req, "", 0, 0);
  }
  
  void mconsole_proc(struct mc_request *req)
  {
        struct vfsmount *mnt = task_active_pid_ns(current)->proc_mnt;
  void mconsole_proc(struct mc_request *req)
  {
        struct vfsmount *mnt = task_active_pid_ns(current)->proc_mnt;
-@@ -187,6 +242,7 @@
+@@ -187,6 +242,7 @@ void mconsole_proc(struct mc_request *re
      stop - pause the UML; it will do nothing until it receives a 'go' \n\
      go - continue the UML after a 'stop' \n\
      log <string> - make UML enter <string> into the kernel log\n\
      stop - pause the UML; it will do nothing until it receives a 'go' \n\
      go - continue the UML after a 'stop' \n\
      log <string> - make UML enter <string> into the kernel log\n\
  "
 --- a/arch/um/drivers/mconsole_user.c
 +++ b/arch/um/drivers/mconsole_user.c
  "
 --- a/arch/um/drivers/mconsole_user.c
 +++ b/arch/um/drivers/mconsole_user.c
-@@ -30,6 +30,7 @@
+@@ -30,6 +30,7 @@ static struct mconsole_command commands[
        { "stop", mconsole_stop, MCONSOLE_PROC },
        { "go", mconsole_go, MCONSOLE_INTR },
        { "log", mconsole_log, MCONSOLE_INTR },
        { "stop", mconsole_stop, MCONSOLE_PROC },
        { "go", mconsole_go, MCONSOLE_INTR },
        { "log", mconsole_log, MCONSOLE_INTR },
  };
 --- a/arch/um/os-Linux/file.c
 +++ b/arch/um/os-Linux/file.c
  };
 --- a/arch/um/os-Linux/file.c
 +++ b/arch/um/os-Linux/file.c
-@@ -535,6 +535,8 @@
+@@ -535,6 +535,8 @@ int os_create_unix_socket(const char *fi
  
        addr.sun_family = AF_UNIX;
  
  
        addr.sun_family = AF_UNIX;
  
        err = bind(sock, (struct sockaddr *) &addr, sizeof(addr));
 --- a/include/linux/kmod.h
 +++ b/include/linux/kmod.h
        err = bind(sock, (struct sockaddr *) &addr, sizeof(addr));
 --- a/include/linux/kmod.h
 +++ b/include/linux/kmod.h
-@@ -62,6 +62,7 @@
+@@ -62,6 +62,7 @@ struct subprocess_info {
        int wait;
        int retval;
        int (*init)(struct subprocess_info *info, struct cred *new);
        int wait;
        int retval;
        int (*init)(struct subprocess_info *info, struct cred *new);
        void (*cleanup)(struct subprocess_info *info);
        void *data;
  };
        void (*cleanup)(struct subprocess_info *info);
        void *data;
  };
-@@ -102,4 +103,6 @@
+@@ -102,4 +103,6 @@ extern int usermodehelper_read_trylock(v
  extern long usermodehelper_read_lock_wait(long timeout);
  extern void usermodehelper_read_unlock(void);
  
  extern long usermodehelper_read_lock_wait(long timeout);
  extern void usermodehelper_read_unlock(void);
  
  #include <asm/uaccess.h>
  
  #include <trace/events/module.h>
  #include <asm/uaccess.h>
  
  #include <trace/events/module.h>
-@@ -222,6 +223,28 @@
+@@ -222,6 +223,28 @@ static int call_usermodehelper_exec_asyn
        flush_signal_handlers(current, 1);
        spin_unlock_irq(&current->sighand->siglock);
  
        flush_signal_handlers(current, 1);
        spin_unlock_irq(&current->sighand->siglock);
  
        /*
         * Our parent (unbound workqueue) runs with elevated scheduling
         * priority. Avoid propagating that into the userspace child.
        /*
         * Our parent (unbound workqueue) runs with elevated scheduling
         * priority. Avoid propagating that into the userspace child.
-@@ -540,6 +563,20 @@
+@@ -540,6 +563,20 @@ struct subprocess_info *call_usermodehel
  }
  EXPORT_SYMBOL(call_usermodehelper_setup);
  
  }
  EXPORT_SYMBOL(call_usermodehelper_setup);
  
index 57598f9..fc54f60 100644 (file)
@@ -11,7 +11,7 @@ Applies to vanilla kernel 3.9.4.
 ===============================================================================
 --- a/arch/um/Kconfig.net
 +++ b/arch/um/Kconfig.net
 ===============================================================================
 --- a/arch/um/Kconfig.net
 +++ b/arch/um/Kconfig.net
-@@ -21,6 +21,19 @@
+@@ -21,6 +21,19 @@ config UML_NET
          enable at least one of the following transport options to actually
          make use of UML networking.
  
          enable at least one of the following transport options to actually
          make use of UML networking.
  
@@ -47,7 +47,7 @@ Applies to vanilla kernel 3.9.4.
  #define DRIVER_NAME "uml-netdev"
  
  static DEFINE_SPINLOCK(opened_lock);
  #define DRIVER_NAME "uml-netdev"
  
  static DEFINE_SPINLOCK(opened_lock);
-@@ -295,11 +302,47 @@
+@@ -295,11 +302,47 @@ static void uml_net_user_timer_expire(un
  #endif
  }
  
  #endif
  }
  
@@ -95,7 +95,7 @@ Applies to vanilla kernel 3.9.4.
  
        if (str == NULL)
                goto random;
  
        if (str == NULL)
                goto random;
-@@ -340,9 +383,26 @@
+@@ -340,9 +383,26 @@ static void setup_etheraddr(struct net_d
        return;
  
  random:
        return;
  
  random:
index af603a1..ef47c5f 100644 (file)
@@ -5,19 +5,14 @@ Subject: [PATCH] arm: dts: zynq-zc702.dts: Set default rdinit to /sbin/init
 
 Signed-off-by: Jason Wu <jason.wu.misc@gmail.com>
 
 
 Signed-off-by: Jason Wu <jason.wu.misc@gmail.com>
 
-diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
-index 68bd8c1..adf9a1d 100644
 --- a/arch/arm/boot/dts/zynq-zc702.dts
 +++ b/arch/arm/boot/dts/zynq-zc702.dts
 --- a/arch/arm/boot/dts/zynq-zc702.dts
 +++ b/arch/arm/boot/dts/zynq-zc702.dts
-@@ -31,7 +31,7 @@
-       };
-
-       chosen {
+@@ -30,7 +30,7 @@
+       };
+       chosen {
 -              bootargs = "earlyprintk";
 +              bootargs = "earlyprintk rdinit=/sbin/init";
 -              bootargs = "earlyprintk";
 +              bootargs = "earlyprintk rdinit=/sbin/init";
-               stdout-path = "serial0:115200n8";
-       };
-
---
-1.9.1
-
+               stdout-path = "serial0:115200n8";
+       };