kernel: update kernel 4.4 to version 4.4.3

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 48783
This commit is contained in:
Hauke Mehrtens 2016-02-25 21:54:39 +00:00
parent 53814290e7
commit cb04b8d582
30 changed files with 85 additions and 316 deletions

View file

@ -5,12 +5,12 @@ LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .26 LINUX_VERSION-3.18 = .26
LINUX_VERSION-4.1 = .16 LINUX_VERSION-4.1 = .16
LINUX_VERSION-4.3 = .4 LINUX_VERSION-4.3 = .4
LINUX_VERSION-4.4 = LINUX_VERSION-4.4 = .3
LINUX_KERNEL_MD5SUM-3.18.26 = fb3ef8da32a25607807887b9567a6927 LINUX_KERNEL_MD5SUM-3.18.26 = fb3ef8da32a25607807887b9567a6927
LINUX_KERNEL_MD5SUM-4.1.16 = e4bf22fed49b476b47acffc00c03267a LINUX_KERNEL_MD5SUM-4.1.16 = e4bf22fed49b476b47acffc00c03267a
LINUX_KERNEL_MD5SUM-4.3.4 = 5275d02132107c28b85f986bad576d91 LINUX_KERNEL_MD5SUM-4.3.4 = 5275d02132107c28b85f986bad576d91
LINUX_KERNEL_MD5SUM-4.4 = 9a78fa2eb6c68ca5a40ed5af08142599 LINUX_KERNEL_MD5SUM-4.4.3 = 5feab5a2c016e186e3088d4fae963ed7
ifdef KERNEL_PATCHVER ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))

View file

@ -29,9 +29,7 @@
- u32 bootstrap; - u32 bootstrap;
+ void __iomem *phy_reg; + void __iomem *phy_reg;
+ u32 t; + u32 t;
+
- bootstrap = ath79_reset_rr(AR934X_RESET_REG_BOOTSTRAP);
- if (bootstrap & AR934X_BOOTSTRAP_USB_MODE_DEVICE)
+ phy_reg = ioremap(base, 4); + phy_reg = ioremap(base, 4);
+ if (!phy_reg) + if (!phy_reg)
+ return; + 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) +static void ar934x_usb_reset_notifier(struct platform_device *pdev)
+{ +{
+ if (pdev->id != -1) + if (pdev->id != -1)

View file

@ -135,8 +135,7 @@
+static void __init ap136_common_setup(void) +static void __init ap136_common_setup(void)
+{ +{
+ u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); + u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
+
-static int ap136_pci_plat_dev_init(struct pci_dev *dev)
+ ath79_register_m25p80(NULL); + ath79_register_m25p80(NULL);
+ +
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(ap136_leds_gpio), + ath79_register_leds_gpio(-1, ARRAY_SIZE(ap136_leds_gpio),
@ -151,7 +150,8 @@
+ ath79_register_wmac(art + AP136_WMAC_CALDATA_OFFSET, NULL); + ath79_register_wmac(art + AP136_WMAC_CALDATA_OFFSET, NULL);
+ +
+ ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN); + 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_register_mdio(0, 0x0);
+ ath79_init_mac(ath79_eth0_data.mac_addr, art + AP136_MAC0_OFFSET, 0); + ath79_init_mac(ath79_eth0_data.mac_addr, art + AP136_MAC0_OFFSET, 0);
+ +
@ -211,16 +211,16 @@
+ /* GMAC0 of the AR8327 switch is connected to GMAC1 via SGMII */ + /* GMAC0 of the AR8327 switch is connected to GMAC1 via SGMII */
+ ap136_ar8327_pad0_cfg.mode = AR8327_PAD_MAC_SGMII; + ap136_ar8327_pad0_cfg.mode = AR8327_PAD_MAC_SGMII;
+ ap136_ar8327_pad0_cfg.sgmii_delay_en = true; + 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 */ + /* GMAC6 of the AR8327 switch is connected to GMAC0 via RGMII */
+ ap136_ar8327_pad6_cfg.mode = AR8327_PAD_MAC_RGMII; + ap136_ar8327_pad6_cfg.mode = AR8327_PAD_MAC_RGMII;
+ ap136_ar8327_pad6_cfg.txclk_delay_en = true; + ap136_ar8327_pad6_cfg.txclk_delay_en = true;
+ ap136_ar8327_pad6_cfg.rxclk_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.txclk_delay_sel = AR8327_CLK_DELAY_SEL1;
+ ap136_ar8327_pad6_cfg.rxclk_delay_sel = AR8327_CLK_DELAY_SEL2; + 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_eth0_pll_data.pll_1000 = 0x56000000;
+ ath79_eth1_pll_data.pll_1000 = 0x03000101; + ath79_eth1_pll_data.pll_1000 = 0x03000101;
+ +

View file

@ -9,9 +9,6 @@
u32 t, s; u32 t, s;
- BUG_ON(!soc_is_ar934x() && !soc_is_qca953x() && !soc_is_qca956x()); - BUG_ON(!soc_is_ar934x() && !soc_is_qca953x() && !soc_is_qca956x());
-
- if (gpio >= AR934X_GPIO_COUNT)
- return;
+ if (soc_is_ar934x()) + if (soc_is_ar934x())
+ reg_base = AR934X_GPIO_REG_OUT_FUNC0; + reg_base = AR934X_GPIO_REG_OUT_FUNC0;
+ else if (soc_is_qca953x()) + else if (soc_is_qca953x())
@ -23,6 +20,9 @@
+ else + else
+ BUG(); + BUG();
- if (gpio >= AR934X_GPIO_COUNT)
- return;
-
- reg = AR934X_GPIO_REG_OUT_FUNC0 + 4 * (gpio / 4); - reg = AR934X_GPIO_REG_OUT_FUNC0 + 4 * (gpio / 4);
+ reg = reg_base + 4 * (gpio / 4); + reg = reg_base + 4 * (gpio / 4);
s = 8 * (gpio % 4); s = 8 * (gpio % 4);

View file

@ -214,7 +214,7 @@
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/ipv6.h> #include <linux/ipv6.h>
#include <linux/icmpv6.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); topt = (__be32 *)(t1 + 1);
if (tsecr) { if (tsecr) {
@ -632,14 +632,19 @@
#include <linux/netdevice.h> #include <linux/netdevice.h>
--- a/include/net/inet_ecn.h --- a/include/net/inet_ecn.h
+++ b/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))) if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
return 0; 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)
{ {

View file

@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
#include "b53_regs.h" #include "b53_regs.h"
#include "b53_priv.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;
} }

View file

@ -659,7 +659,7 @@ dwc_otg: Remove duplicate gadget probe/unregister function
} }
--- a/drivers/usb/core/hub.c --- a/drivers/usb/core/hub.c
+++ b/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) { if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
u16 status = 0, unused; u16 status = 0, unused;

View file

@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
static struct resource bcma_sflash_resource = { static struct resource bcma_sflash_resource = {
.name = "bcma_sflash", .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[] = { static const struct bcma_sflash_tbl_e bcma_sflash_sst_tbl[] = {
{ "SST25WF512", 1, 0x1000, 16, }, { "SST25WF512", 1, 0x1000, 16, },
{ "SST25VF512", 0x48, 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 */ /* Initialize serial flash access */
int bcma_sflash_init(struct bcma_drv_cc *cc) 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: case 0x13:
return -ENOTSUPP; return -ENOTSUPP;
default: default:

View file

@ -195,7 +195,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
#if IS_BUILTIN(CONFIG_OF) #if IS_BUILTIN(CONFIG_OF)
if (cc->core->bus->hosttype == BCMA_HOSTTYPE_SOC) if (cc->core->bus->hosttype == BCMA_HOSTTYPE_SOC)
chip->of_node = cc->core->dev.of_node; 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 else
chip->base = -1; 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 --- a/include/linux/bcma/bcma_driver_chipcommon.h
+++ b/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; spinlock_t gpio_lock;
#ifdef CONFIG_BCMA_DRIVER_GPIO #ifdef CONFIG_BCMA_DRIVER_GPIO
struct gpio_chip gpio; struct gpio_chip gpio;

View file

@ -12,7 +12,7 @@
static int cfe_env; static int cfe_env;
--- a/arch/mips/mm/cache.c --- a/arch/mips/mm/cache.c
+++ b/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); void (*_dma_cache_inv)(unsigned long start, unsigned long size);
EXPORT_SYMBOL(_dma_cache_wback_inv); EXPORT_SYMBOL(_dma_cache_wback_inv);

View file

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/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[] = { static struct sprom_fixup __initdata vr3025u_fixups[] = {
{ .offset = 97, .value = 0xfeb3 }, { .offset = 97, .value = 0xfeb3 },
{ .offset = 98, .value = 0x1618 }, { .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_96368mvwg,
&board_96368mvngr, &board_96368mvngr,
&board_DGND3700v1_3800B, &board_DGND3700v1_3800B,
@ -62,7 +62,7 @@
&board_HG655b, &board_HG655b,
&board_P870HW51A_V2, &board_P870HW51A_V2,
&board_VR3025u, &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-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,vr-3026e", .data = &board_VR3026e, }, { .compatible = "comtrend,vr-3026e", .data = &board_VR3026e, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, }, { .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },

View file

@ -15,7 +15,7 @@
unsigned int check_len; unsigned int check_len;
--- a/arch/mips/mm/cache.c --- a/arch/mips/mm/cache.c
+++ b/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); void (*_dma_cache_inv)(unsigned long start, unsigned long size);
EXPORT_SYMBOL(_dma_cache_wback_inv); EXPORT_SYMBOL(_dma_cache_wback_inv);

View file

@ -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;
}

View file

@ -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)

View file

@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/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; enum gro_result ret;
int grow; int grow;
@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (!(skb->dev->features & NETIF_F_GRO)) if (!(skb->dev->features & NETIF_F_GRO))
goto normal; 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, static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master, struct net_device *upper_dev, bool master,
void *private) 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, call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info); &changeupper_info.info);
return 0; 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) list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
__netdev_adjacent_dev_unlink(dev, i->dev); __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, call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info); &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) if (err)
return err; return err;
dev->addr_assign_type = NET_ADDR_SET; dev->addr_assign_type = NET_ADDR_SET;

View file

@ -86,7 +86,7 @@
help help
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/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)) if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
dev_queue_xmit_nit(skb, dev); dev_queue_xmit_nit(skb, dev);

View file

@ -74,7 +74,7 @@
* @dev: device the buffer will be used with * @dev: device the buffer will be used with
--- a/include/linux/usb.h --- a/include/linux/usb.h
+++ b/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;
} }

View file

@ -441,7 +441,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
{ {
--- a/arch/mips/mm/cache.c --- a/arch/mips/mm/cache.c
+++ b/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); void (*_dma_cache_inv)(unsigned long start, unsigned long size);
EXPORT_SYMBOL(_dma_cache_wback_inv); EXPORT_SYMBOL(_dma_cache_wback_inv);

View file

@ -20,7 +20,7 @@ Subject: [PATCH 32/36] USB: fix roothub for IFXHCD
choice choice
--- a/drivers/usb/core/hub.c --- a/drivers/usb/core/hub.c
+++ b/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; udev->ttport = hdev->ttport;
} else if (udev->speed != USB_SPEED_HIGH } else if (udev->speed != USB_SPEED_HIGH
&& hdev->speed == USB_SPEED_HIGH) { && hdev->speed == USB_SPEED_HIGH) {

View file

@ -1266,7 +1266,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
/* --------- pinconf related code --------- */ /* --------- pinconf related code --------- */
static int xway_pinconf_get(struct pinctrl_dev *pctldev, static int xway_pinconf_get(struct pinctrl_dev *pctldev,
unsigned pin, 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; int pin_count;
const struct ltq_mfp_pin *mfp; const struct ltq_mfp_pin *mfp;
const struct ltq_pin_group *grps; 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; unsigned int num_funcs;
const unsigned *exin; const unsigned *exin;
unsigned int num_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) if (match)
xway_soc = (const struct pinctrl_xway_soc *) match->data; xway_soc = (const struct pinctrl_xway_soc *) match->data;
else else

View file

@ -17,9 +17,9 @@
depends on MFD_WM831X depends on MFD_WM831X
--- a/drivers/power/Makefile --- a/drivers/power/Makefile
+++ b/drivers/power/Makefile +++ b/drivers/power/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_GENERIC_ADC_BATTERY) += gen @@ -11,6 +11,7 @@ obj-$(CONFIG_PDA_POWER) += pda_power.o
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_MAX8925_POWER) += max8925_power.o
+obj-$(CONFIG_MXS_POWER) += mxs_power.o +obj-$(CONFIG_MXS_POWER) += mxs_power.o
obj-$(CONFIG_WM831X_BACKUP) += wm831x_backup.o obj-$(CONFIG_WM831X_BACKUP) += wm831x_backup.o

View file

@ -1,6 +1,6 @@
--- a/drivers/regulator/Kconfig --- a/drivers/regulator/Kconfig
+++ b/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 This driver supports the control of different power rails of device
through regulator interface. through regulator interface.
@ -17,14 +17,14 @@
depends on MFD_PALMAS depends on MFD_PALMAS
--- a/drivers/regulator/Makefile --- a/drivers/regulator/Makefile
+++ b/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile
@@ -60,6 +60,7 @@ obj-$(CONFIG_REGULATOR_MC13783) += mc137 @@ -61,6 +61,7 @@ obj-$(CONFIG_REGULATOR_MC13892) += mc138
obj-$(CONFIG_REGULATOR_MC13892) += mc13892-regulator.o
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_MT6397) += mt6397-regulator.o
+obj-$(CONFIG_REGULATOR_MXS) += mxs-regulator.o +obj-$(CONFIG_REGULATOR_MXS) += mxs-regulator.o
obj-$(CONFIG_REGULATOR_QCOM_RPM) += qcom_rpm-regulator.o obj-$(CONFIG_REGULATOR_QCOM_RPM) += qcom_rpm-regulator.o
obj-$(CONFIG_REGULATOR_PALMAS) += palmas-regulator.o obj-$(CONFIG_REGULATOR_QCOM_SMD_RPM) += qcom_smd-regulator.o
obj-$(CONFIG_REGULATOR_PFUZE100) += pfuze100-regulator.o obj-$(CONFIG_REGULATOR_QCOM_SPMI) += qcom_spmi-regulator.o
--- /dev/null --- /dev/null
+++ b/drivers/regulator/mxs-regulator.c +++ b/drivers/regulator/mxs-regulator.c
@@ -0,0 +1,540 @@ @@ -0,0 +1,540 @@

View file

@ -1,6 +1,6 @@
--- a/arch/arm/boot/dts/imx23.dtsi --- a/arch/arm/boot/dts/imx23.dtsi
+++ b/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 { saif1: saif@80046000 {
--- a/arch/arm/boot/dts/imx28.dtsi --- a/arch/arm/boot/dts/imx28.dtsi
+++ b/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 {

View file

@ -21,11 +21,9 @@ Changes since v2:
drivers/crypto/mxs-dcp.c | 24 ++++++++++++++++++++++++ drivers/crypto/mxs-dcp.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+) 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 --- a/drivers/crypto/mxs-dcp.c
+++ b/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 = { .base = {
.cra_name = "sha1", .cra_name = "sha1",
.cra_driver_name = "sha1-dcp", .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, .final = dcp_sha_final,
.finup = dcp_sha_finup, .finup = dcp_sha_finup,
.digest = dcp_sha_digest, .digest = dcp_sha_digest,
@ -74,7 +72,3 @@ index 59ed54e..1e2017f 100644
.base = { .base = {
.cra_name = "sha256", .cra_name = "sha256",
.cra_driver_name = "sha256-dcp", .cra_driver_name = "sha256-dcp",
--
1.9.1
--

View file

@ -1,6 +1,6 @@
--- a/drivers/pci/host/Kconfig --- a/drivers/pci/host/Kconfig
+++ b/drivers/pci/host/Kconfig +++ b/drivers/pci/host/Kconfig
@@ -172,4 +172,9 @@ config PCI_HISI @@ -173,4 +173,9 @@ config PCI_HISI
help help
Say Y here if you want PCIe controller support on HiSilicon HIP05 SoC Say Y here if you want PCIe controller support on HiSilicon HIP05 SoC

View file

@ -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",

View file

@ -1,6 +1,6 @@
--- a/scripts/link-vmlinux.sh --- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh
@@ -62,7 +62,7 @@ @@ -62,7 +62,7 @@ vmlinux_link()
-Wl,--start-group \ -Wl,--start-group \
${KBUILD_VMLINUX_MAIN} \ ${KBUILD_VMLINUX_MAIN} \
-Wl,--end-group \ -Wl,--end-group \

View file

@ -17,7 +17,7 @@
# #
--- a/arch/um/drivers/mconsole.h --- a/arch/um/drivers/mconsole.h
+++ b/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_stop(struct mc_request *req);
extern void mconsole_go(struct mc_request *req); extern void mconsole_go(struct mc_request *req);
extern void mconsole_log(struct mc_request *req); extern void mconsole_log(struct mc_request *req);
@ -43,7 +43,7 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/switch_to.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);
} }
@ -103,7 +103,7 @@
void mconsole_proc(struct mc_request *req) void mconsole_proc(struct mc_request *req)
{ {
struct vfsmount *mnt = task_active_pid_ns(current)->proc_mnt; 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\ stop - pause the UML; it will do nothing until it receives a 'go' \n\
go - continue the UML after a 'stop' \n\ go - continue the UML after a 'stop' \n\
log <string> - make UML enter <string> into the kernel log\n\ log <string> - make UML enter <string> into the kernel log\n\
@ -113,7 +113,7 @@
" "
--- a/arch/um/drivers/mconsole_user.c --- a/arch/um/drivers/mconsole_user.c
+++ b/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 }, { "stop", mconsole_stop, MCONSOLE_PROC },
{ "go", mconsole_go, MCONSOLE_INTR }, { "go", mconsole_go, MCONSOLE_INTR },
{ "log", mconsole_log, MCONSOLE_INTR }, { "log", mconsole_log, MCONSOLE_INTR },
@ -123,7 +123,7 @@
}; };
--- a/arch/um/os-Linux/file.c --- a/arch/um/os-Linux/file.c
+++ b/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;
@ -134,7 +134,7 @@
err = bind(sock, (struct sockaddr *) &addr, sizeof(addr)); err = bind(sock, (struct sockaddr *) &addr, sizeof(addr));
--- a/include/linux/kmod.h --- a/include/linux/kmod.h
+++ b/include/linux/kmod.h +++ b/include/linux/kmod.h
@@ -62,6 +62,7 @@ @@ -62,6 +62,7 @@ struct subprocess_info {
int wait; int wait;
int retval; int retval;
int (*init)(struct subprocess_info *info, struct cred *new); int (*init)(struct subprocess_info *info, struct cred *new);
@ -142,7 +142,7 @@
void (*cleanup)(struct subprocess_info *info); void (*cleanup)(struct subprocess_info *info);
void *data; 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 long usermodehelper_read_lock_wait(long timeout);
extern void usermodehelper_read_unlock(void); extern void usermodehelper_read_unlock(void);
@ -159,7 +159,7 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <trace/events/module.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); flush_signal_handlers(current, 1);
spin_unlock_irq(&current->sighand->siglock); spin_unlock_irq(&current->sighand->siglock);
@ -188,7 +188,7 @@
/* /*
* Our parent (unbound workqueue) runs with elevated scheduling * Our parent (unbound workqueue) runs with elevated scheduling
* priority. Avoid propagating that into the userspace child. * 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);

View file

@ -11,7 +11,7 @@ Applies to vanilla kernel 3.9.4.
=============================================================================== ===============================================================================
--- a/arch/um/Kconfig.net --- a/arch/um/Kconfig.net
+++ b/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 enable at least one of the following transport options to actually
make use of UML networking. make use of UML networking.
@ -47,7 +47,7 @@ Applies to vanilla kernel 3.9.4.
#define DRIVER_NAME "uml-netdev" #define DRIVER_NAME "uml-netdev"
static DEFINE_SPINLOCK(opened_lock); 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) if (str == NULL)
goto random; goto random;
@@ -340,9 +383,26 @@ @@ -340,9 +383,26 @@ static void setup_etheraddr(struct net_d
return; return;
random: random:

View file

@ -5,11 +5,9 @@ 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 --- a/arch/arm/boot/dts/zynq-zc702.dts
+++ b/arch/arm/boot/dts/zynq-zc702.dts +++ b/arch/arm/boot/dts/zynq-zc702.dts
@@ -31,7 +31,7 @@ @@ -30,7 +30,7 @@
}; };
chosen { chosen {
@ -18,6 +16,3 @@ index 68bd8c1..adf9a1d 100644
stdout-path = "serial0:115200n8"; stdout-path = "serial0:115200n8";
}; };
--
1.9.1