kernel: update 4.1 to 4.1.10

Fixes a regression on spi flash devices (upstream commit 1583eaece6fa).

Changelogs:
* https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.7
* https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.8
* https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.9
* https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.10

096-ipv4-off-by-one-in-continuation-handling-in-proc-net.patch was applied
upstream and dropped.

Signed-off-by: Mathias Kresin <openwrt@kresin.me>
[update from 4.1.9 to 4.1.10]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 47104
This commit is contained in:
Hauke Mehrtens 2015-10-04 11:34:39 +00:00
parent dea417017e
commit 0cd478518f
41 changed files with 90 additions and 137 deletions

View file

@ -4,11 +4,11 @@ LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .21 LINUX_VERSION-3.18 = .21
LINUX_VERSION-4.0 = .9 LINUX_VERSION-4.0 = .9
LINUX_VERSION-4.1 = .6 LINUX_VERSION-4.1 = .10
LINUX_KERNEL_MD5SUM-3.18.21 = e4248caaa4cef318c04657e971b37298 LINUX_KERNEL_MD5SUM-3.18.21 = e4248caaa4cef318c04657e971b37298
LINUX_KERNEL_MD5SUM-4.0.9 = 40fc5f6e2d718e539b45e6601c71985b LINUX_KERNEL_MD5SUM-4.0.9 = 40fc5f6e2d718e539b45e6601c71985b
LINUX_KERNEL_MD5SUM-4.1.6 = 1dae0c808e34164cab3dfd57be88bd53 LINUX_KERNEL_MD5SUM-4.1.10 = 16953359a8c245d478294af65fd756a8
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

@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig --- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig
@@ -164,6 +164,11 @@ config MTD_OF_PARTS @@ -159,6 +159,11 @@ config MTD_OF_PARTS
the partition map from the children of the flash node, the partition map from the children of the flash node,
as described in Documentation/devicetree/bindings/mtd/partition.txt. as described in Documentation/devicetree/bindings/mtd/partition.txt.

View file

@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig --- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig
@@ -184,6 +184,12 @@ config MTD_BCM47XX_PARTS @@ -179,6 +179,12 @@ config MTD_BCM47XX_PARTS
This provides partitions parser for devices based on BCM47xx This provides partitions parser for devices based on BCM47xx
boards. boards.

View file

@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig --- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig
@@ -206,6 +206,12 @@ config MTD_MYLOADER_PARTS @@ -201,6 +201,12 @@ config MTD_MYLOADER_PARTS
You will still need the parsing functions to be called by the driver You will still need the parsing functions to be called by the driver
for your particular device. It won't happen automatically. for your particular device. It won't happen automatically.

View file

@ -1,5 +1,5 @@
--- a/arch/mips/ath79/mach-ubnt-xm.c 2015-08-19 21:26:47.694157530 -0600 --- a/arch/mips/ath79/mach-ubnt-xm.c
+++ b/arch/mips/ath79/mach-ubnt-xm.c 2015-08-20 16:24:06.908537535 -0600 +++ b/arch/mips/ath79/mach-ubnt-xm.c
@@ -642,3 +642,59 @@ static void __init ubnt_airgateway_setup @@ -642,3 +642,59 @@ static void __init ubnt_airgateway_setup
MIPS_MACHINE(ATH79_MACH_UBNT_AIRGW, "UBNT-AGW", "Ubiquiti AirGateway", MIPS_MACHINE(ATH79_MACH_UBNT_AIRGW, "UBNT-AGW", "Ubiquiti AirGateway",
ubnt_airgateway_setup); ubnt_airgateway_setup);

View file

@ -9,7 +9,7 @@
#define AR913X_BASE_FREQ 5000000 #define AR913X_BASE_FREQ 5000000
struct clk { struct clk {
@@ -99,8 +99,8 @@ @@ -99,8 +99,8 @@ static void __init ar724x_clocks_init(vo
div = ((pll >> AR724X_PLL_DIV_SHIFT) & AR724X_PLL_DIV_MASK); div = ((pll >> AR724X_PLL_DIV_SHIFT) & AR724X_PLL_DIV_MASK);
freq = div * ref_rate; freq = div * ref_rate;

View file

@ -23,7 +23,7 @@
select SOC_AR913X select SOC_AR913X
--- a/arch/mips/ath79/Makefile --- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile
@@ -50,6 +50,7 @@ obj-$(CONFIG_ATH79_MACH_AP132) += mach-ap132.o @@ -50,6 +50,7 @@ obj-$(CONFIG_ATH79_MACH_AP132) += mach-
obj-$(CONFIG_ATH79_MACH_AP136) += mach-ap136.o obj-$(CONFIG_ATH79_MACH_AP136) += mach-ap136.o
obj-$(CONFIG_ATH79_MACH_AP143) += mach-ap143.o obj-$(CONFIG_ATH79_MACH_AP143) += mach-ap143.o
obj-$(CONFIG_ATH79_MACH_AP147) += mach-ap147.o obj-$(CONFIG_ATH79_MACH_AP147) += mach-ap147.o

View file

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/Kconfig --- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig
@@ -763,6 +763,16 @@ config ATH79_MACH_CAP4200AG @@ -900,6 +900,16 @@ config ATH79_MACH_CAP4200AG
select ATH79_DEV_M25P80 select ATH79_DEV_M25P80
select ATH79_DEV_WMAC select ATH79_DEV_WMAC
@ -19,7 +19,7 @@
select SOC_QCA955X select SOC_QCA955X
--- a/arch/mips/ath79/Makefile --- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile
@@ -80,6 +80,7 @@ obj-$(CONFIG_ATH79_MACH_HORNET_UB) += ma @@ -91,6 +91,7 @@ obj-$(CONFIG_ATH79_MACH_HORNET_UB) += ma
obj-$(CONFIG_ATH79_MACH_MC_MAC1200R) += mach-mc-mac1200r.o obj-$(CONFIG_ATH79_MACH_MC_MAC1200R) += mach-mc-mac1200r.o
obj-$(CONFIG_ATH79_MACH_MR12) += mach-mr12.o obj-$(CONFIG_ATH79_MACH_MR12) += mach-mr12.o
obj-$(CONFIG_ATH79_MACH_MR16) += mach-mr16.o obj-$(CONFIG_ATH79_MACH_MR16) += mach-mr16.o
@ -29,7 +29,7 @@
obj-$(CONFIG_ATH79_MACH_MYNET_N600) += mach-mynet-n600.o obj-$(CONFIG_ATH79_MACH_MYNET_N600) += mach-mynet-n600.o
--- a/arch/mips/ath79/machtypes.h --- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h
@@ -69,6 +69,7 @@ enum ath79_mach_type { @@ -80,6 +80,7 @@ enum ath79_mach_type {
ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */ ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */
ATH79_MACH_MR12, /* Cisco Meraki MR12 */ ATH79_MACH_MR12, /* Cisco Meraki MR12 */
ATH79_MACH_MR16, /* Cisco Meraki MR16 */ ATH79_MACH_MR16, /* Cisco Meraki MR16 */

View file

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/Kconfig --- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig
@@ -1031,6 +1031,17 @@ @@ -1055,6 +1055,17 @@ config ATH79_MACH_TL_WA901ND_V2
select ATH79_DEV_M25P80 select ATH79_DEV_M25P80
select ATH79_DEV_WMAC select ATH79_DEV_WMAC
@ -20,7 +20,7 @@
select SOC_AR934X select SOC_AR934X
--- a/arch/mips/ath79/machtypes.h --- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h
@@ -152,6 +152,7 @@ @@ -155,6 +155,7 @@ enum ath79_mach_type {
ATH79_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */ ATH79_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */
ATH79_MACH_TL_WA901ND_V2, /* TP-LINK TL-WA901ND v2 */ ATH79_MACH_TL_WA901ND_V2, /* TP-LINK TL-WA901ND v2 */
ATH79_MACH_TL_WA901ND_V3, /* TP-LINK TL-WA901ND v3 */ ATH79_MACH_TL_WA901ND_V3, /* TP-LINK TL-WA901ND v3 */
@ -30,7 +30,7 @@
ATH79_MACH_TL_WDR6500_V2, /* TP-LINK TL-WDR6500 v2 */ ATH79_MACH_TL_WDR6500_V2, /* TP-LINK TL-WDR6500 v2 */
--- a/arch/mips/ath79/Makefile --- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile
@@ -128,6 +128,7 @@ @@ -131,6 +131,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WA7210N_V2) +
obj-$(CONFIG_ATH79_MACH_TL_WA830RE_V2) += mach-tl-wa830re-v2.o obj-$(CONFIG_ATH79_MACH_TL_WA830RE_V2) += mach-tl-wa830re-v2.o
obj-$(CONFIG_ATH79_MACH_TL_WA901ND) += mach-tl-wa901nd.o obj-$(CONFIG_ATH79_MACH_TL_WA901ND) += mach-tl-wa901nd.o
obj-$(CONFIG_ATH79_MACH_TL_WA901ND_V2) += mach-tl-wa901nd-v2.o obj-$(CONFIG_ATH79_MACH_TL_WA901ND_V2) += mach-tl-wa901nd-v2.o

View file

@ -241,7 +241,7 @@
*/ */
--- a/net/ipv6/datagram.c --- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c
@@ -414,7 +414,7 @@ int ipv6_recv_error(struct sock *sk, str @@ -424,7 +424,7 @@ int ipv6_recv_error(struct sock *sk, str
ipv6_iface_scope_id(&sin->sin6_addr, ipv6_iface_scope_id(&sin->sin6_addr,
IP6CB(skb)->iif); IP6CB(skb)->iif);
} else { } else {
@ -250,7 +250,7 @@
&sin->sin6_addr); &sin->sin6_addr);
sin->sin6_scope_id = 0; sin->sin6_scope_id = 0;
} }
@@ -751,12 +751,12 @@ int ip6_datagram_send_ctl(struct net *ne @@ -761,12 +761,12 @@ int ip6_datagram_send_ctl(struct net *ne
} }
if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
@ -267,7 +267,7 @@
case IPV6_2292HOPOPTS: case IPV6_2292HOPOPTS:
--- a/net/ipv6/ip6_gre.c --- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c +++ b/net/ipv6/ip6_gre.c
@@ -393,7 +393,7 @@ static void ip6gre_err(struct sk_buff *s @@ -394,7 +394,7 @@ static void ip6gre_err(struct sk_buff *s
t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr, t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr,
flags & GRE_KEY ? flags & GRE_KEY ?
@ -276,7 +276,7 @@
p[1]); p[1]);
if (!t) if (!t)
return; return;
@@ -475,11 +475,11 @@ static int ip6gre_rcv(struct sk_buff *sk @@ -476,11 +476,11 @@ static int ip6gre_rcv(struct sk_buff *sk
offset += 4; offset += 4;
} }
if (flags&GRE_KEY) { if (flags&GRE_KEY) {
@ -290,7 +290,7 @@
offset += 4; offset += 4;
} }
} }
@@ -744,7 +744,7 @@ static netdev_tx_t ip6gre_xmit2(struct s @@ -745,7 +745,7 @@ static netdev_tx_t ip6gre_xmit2(struct s
if (tunnel->parms.o_flags&GRE_SEQ) { if (tunnel->parms.o_flags&GRE_SEQ) {
++tunnel->o_seqno; ++tunnel->o_seqno;
@ -299,7 +299,7 @@
ptr--; ptr--;
} }
if (tunnel->parms.o_flags&GRE_KEY) { if (tunnel->parms.o_flags&GRE_KEY) {
@@ -840,7 +840,7 @@ static inline int ip6gre_xmit_ipv6(struc @@ -841,7 +841,7 @@ static inline int ip6gre_xmit_ipv6(struc
dsfield = ipv6_get_dsfield(ipv6h); dsfield = ipv6_get_dsfield(ipv6h);
if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS) if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)

View file

@ -47,6 +47,7 @@ CONFIG_ARM64_ERRATUM_824069=y
CONFIG_ARM64_ERRATUM_826319=y CONFIG_ARM64_ERRATUM_826319=y
CONFIG_ARM64_ERRATUM_827319=y CONFIG_ARM64_ERRATUM_827319=y
CONFIG_ARM64_ERRATUM_832075=y CONFIG_ARM64_ERRATUM_832075=y
CONFIG_ARM64_ERRATUM_843419=y
CONFIG_ARM64_ERRATUM_845719=y CONFIG_ARM64_ERRATUM_845719=y
# CONFIG_ARM64_PTDUMP is not set # CONFIG_ARM64_PTDUMP is not set
# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set

View file

@ -18,7 +18,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
--- a/arch/arm/Kconfig --- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig +++ b/arch/arm/Kconfig
@@ -2105,6 +2105,8 @@ source "drivers/Kconfig" @@ -2106,6 +2106,8 @@ source "drivers/Kconfig"
source "drivers/firmware/Kconfig" source "drivers/firmware/Kconfig"

View file

@ -16,9 +16,6 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
bcm4708-luxul-xwc-1000.dtb \ bcm4708-luxul-xwc-1000.dtb \
bcm4708-netgear-r6250.dtb \ bcm4708-netgear-r6250.dtb \
bcm4708-netgear-r6300-v2.dtb \ bcm4708-netgear-r6300-v2.dtb \
diff --git a/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts b/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts
new file mode 100644
index 0000000..705d0c2
--- /dev/null --- /dev/null
+++ b/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts +++ b/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts
@@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@

View file

@ -168,7 +168,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
config ARCH_MULTIPLATFORM config ARCH_MULTIPLATFORM
bool "Allow multiple platforms to be selected" bool "Allow multiple platforms to be selected"
depends on MMU depends on MMU
@@ -823,6 +859,9 @@ config ARCH_VIRT @@ -824,6 +860,9 @@ config ARCH_VIRT
# Kconfigs may be included either alphabetically (according to the # Kconfigs may be included either alphabetically (according to the
# plat- suffix) or along side the corresponding mach-* source. # plat- suffix) or along side the corresponding mach-* source.
# #
@ -6745,7 +6745,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
ENTRY(cpu_v6_dcache_clean_area) ENTRY(cpu_v6_dcache_clean_area)
--- a/arch/arm/mm/proc-v7.S --- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S
@@ -456,6 +456,7 @@ __v7_setup: @@ -460,6 +460,7 @@ __v7_setup_cont:
orr r0, r0, r6 @ set them orr r0, r0, r6 @ set them
THUMB( orr r0, r0, #1 << 30 ) @ Thumb exceptions THUMB( orr r0, r0, #1 << 30 ) @ Thumb exceptions
ret lr @ return to head.S:__ret ret lr @ return to head.S:__ret

View file

@ -11,7 +11,7 @@ Subject: [PATCH 033/171] config: Enable CONFIG_MEMCG, but leave it disabled
--- a/kernel/cgroup.c --- a/kernel/cgroup.c
+++ b/kernel/cgroup.c +++ b/kernel/cgroup.c
@@ -5393,6 +5393,29 @@ static int __init cgroup_disable(char *s @@ -5394,6 +5394,29 @@ static int __init cgroup_disable(char *s
} }
__setup("cgroup_disable=", cgroup_disable); __setup("cgroup_disable=", cgroup_disable);

View file

@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/spi/spi-bcm2835.c --- a/drivers/spi/spi-bcm2835.c
+++ b/drivers/spi/spi-bcm2835.c +++ b/drivers/spi/spi-bcm2835.c
@@ -359,6 +359,8 @@ static int bcm2835_spi_setup(struct spi_ @@ -376,6 +376,8 @@ static int bcm2835_spi_setup(struct spi_
{ {
int err; int err;
struct gpio_chip *chip; struct gpio_chip *chip;
@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/* /*
* sanity checking the native-chipselects * sanity checking the native-chipselects
*/ */
@@ -375,15 +377,42 @@ static int bcm2835_spi_setup(struct spi_ @@ -392,15 +394,42 @@ static int bcm2835_spi_setup(struct spi_
"setup: only two native chip-selects are supported\n"); "setup: only two native chip-selects are supported\n");
return -EINVAL; return -EINVAL;
} }

View file

@ -375,7 +375,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
static int bcm2835_spi_transfer_one_poll(struct spi_master *master, static int bcm2835_spi_transfer_one_poll(struct spi_master *master,
struct spi_device *spi, struct spi_device *spi,
struct spi_transfer *tfr, struct spi_transfer *tfr,
@@ -301,12 +582,26 @@ static int bcm2835_spi_transfer_one(stru @@ -299,6 +580,11 @@ static int bcm2835_spi_transfer_one(stru
return bcm2835_spi_transfer_one_poll(master, spi, tfr, return bcm2835_spi_transfer_one_poll(master, spi, tfr,
cs, xfer_time_us); cs, xfer_time_us);
@ -387,6 +387,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs);
} }
@@ -324,6 +610,15 @@ static int bcm2835_spi_prepare_message(s
static void bcm2835_spi_handle_err(struct spi_master *master, static void bcm2835_spi_handle_err(struct spi_master *master,
struct spi_message *msg) struct spi_message *msg)
{ {
@ -402,7 +403,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
bcm2835_spi_reset_hw(master); bcm2835_spi_reset_hw(master);
} }
@@ -505,6 +800,8 @@ static int bcm2835_spi_probe(struct plat @@ -523,6 +818,8 @@ static int bcm2835_spi_probe(struct plat
goto out_clk_disable; goto out_clk_disable;
} }
@ -411,7 +412,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
/* initialise the hardware with the default polarities */ /* initialise the hardware with the default polarities */
bcm2835_wr(bs, BCM2835_SPI_CS, bcm2835_wr(bs, BCM2835_SPI_CS,
BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX); BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
@@ -535,6 +832,8 @@ static int bcm2835_spi_remove(struct pla @@ -553,6 +850,8 @@ static int bcm2835_spi_remove(struct pla
clk_disable_unprepare(bs->clk); clk_disable_unprepare(bs->clk);

View file

@ -11,15 +11,15 @@ Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
--- a/drivers/spi/spi-bcm2835.c --- a/drivers/spi/spi-bcm2835.c
+++ b/drivers/spi/spi-bcm2835.c +++ b/drivers/spi/spi-bcm2835.c
@@ -592,6 +592,7 @@ static int bcm2835_spi_transfer_one(stru @@ -609,6 +609,7 @@ static int bcm2835_spi_prepare_message(s
return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); return 0;
} }
+#if 0 +#if 0
static void bcm2835_spi_handle_err(struct spi_master *master, static void bcm2835_spi_handle_err(struct spi_master *master,
struct spi_message *msg) struct spi_message *msg)
{ {
@@ -606,6 +607,7 @@ static void bcm2835_spi_handle_err(struc @@ -623,6 +624,7 @@ static void bcm2835_spi_handle_err(struc
/* and reset */ /* and reset */
bcm2835_spi_reset_hw(master); bcm2835_spi_reset_hw(master);
} }

View file

@ -9,15 +9,15 @@ Subject: [PATCH 163/171] spi: bcm2835: Fix buld error from previous commit
--- a/drivers/spi/spi-bcm2835.c --- a/drivers/spi/spi-bcm2835.c
+++ b/drivers/spi/spi-bcm2835.c +++ b/drivers/spi/spi-bcm2835.c
@@ -592,7 +592,6 @@ static int bcm2835_spi_transfer_one(stru @@ -609,7 +609,6 @@ static int bcm2835_spi_prepare_message(s
return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); return 0;
} }
-#if 0 -#if 0
static void bcm2835_spi_handle_err(struct spi_master *master, static void bcm2835_spi_handle_err(struct spi_master *master,
struct spi_message *msg) struct spi_message *msg)
{ {
@@ -607,7 +606,6 @@ static void bcm2835_spi_handle_err(struc @@ -624,7 +623,6 @@ static void bcm2835_spi_handle_err(struc
/* and reset */ /* and reset */
bcm2835_spi_reset_hw(master); bcm2835_spi_reset_hw(master);
} }

View file

@ -1,46 +0,0 @@
From 25b97c016b26039982daaa2c11d83979f93b71ab Mon Sep 17 00:00:00 2001
From: Andy Whitcroft <apw@canonical.com>
Date: Thu, 13 Aug 2015 20:49:01 +0100
Subject: [PATCH] ipv4: off-by-one in continuation handling in /proc/net/route
When generating /proc/net/route we emit a header followed by a line for
each route. When a short read is performed we will restart this process
based on the open file descriptor. When calculating the start point we
fail to take into account that the 0th entry is the header. This leads
us to skip the first entry when doing a continuation read.
This can be easily seen with the comparison below:
while read l; do echo "$l"; done </proc/net/route >A
cat /proc/net/route >B
diff -bu A B | grep '^[+-]'
On my example machine I have approximatly 10KB of route output. There we
see the very first non-title element is lost in the while read case,
and an entry around the 8K mark in the cat case:
+wlan0 00000000 02021EAC 0003 0 0 400 00000000 0 0 0
-tun1 00C0AC0A 00000000 0001 0 0 950 00C0FFFF 0 0 0
Fix up the off-by-one when reaquiring position on continuation.
Fixes: 8be33e955cb9 ("fib_trie: Fib walk rcu should take a tnode and key instead of a trie and a leaf")
BugLink: http://bugs.launchpad.net/bugs/1483440
Acked-by: Alexander Duyck <alexander.h.duyck@redhat.com>
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
net/ipv4/fib_trie.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -2457,7 +2457,7 @@ static struct key_vector *fib_route_get_
key = l->key + 1;
iter->pos++;
- if (pos-- <= 0)
+ if (--pos <= 0)
break;
l = NULL;

View file

@ -15,7 +15,7 @@ they still want to support gcc 3.3 -- well, we don't.
--- a/arch/powerpc/boot/Makefile --- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile
@@ -45,10 +45,10 @@ BOOTCFLAGS += -I$(obj) -I$(srctree)/$(ob @@ -48,10 +48,10 @@ BOOTCFLAGS += -I$(obj) -I$(srctree)/$(ob
DTC_FLAGS ?= -p 1024 DTC_FLAGS ?= -p 1024
$(obj)/4xx.o: BOOTCFLAGS += -mcpu=405 $(obj)/4xx.o: BOOTCFLAGS += -mcpu=405

View file

@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop; goto drop;
@@ -2852,6 +2854,7 @@ static int packet_create(struct net *net @@ -2851,6 +2853,7 @@ static int packet_create(struct net *net
spin_lock_init(&po->bind_lock); spin_lock_init(&po->bind_lock);
mutex_init(&po->pg_vec_lock); mutex_init(&po->pg_vec_lock);
po->prot_hook.func = packet_rcv; po->prot_hook.func = packet_rcv;
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (sock->type == SOCK_PACKET) if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt; po->prot_hook.func = packet_rcv_spkt;
@@ -3457,6 +3460,16 @@ packet_setsockopt(struct socket *sock, i @@ -3456,6 +3459,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit; po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0; return 0;
} }
@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
default: default:
return -ENOPROTOOPT; return -ENOPROTOOPT;
} }
@@ -3508,6 +3521,13 @@ static int packet_getsockopt(struct sock @@ -3507,6 +3520,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR: case PACKET_VNET_HDR:
val = po->has_vnet_hdr; val = po->has_vnet_hdr;
break; break;

View file

@ -61,7 +61,7 @@ Isolating individual bridge ports
skb = NULL; skb = NULL;
--- a/net/bridge/br_forward.c --- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c
@@ -118,7 +118,7 @@ EXPORT_SYMBOL_GPL(br_deliver); @@ -119,7 +119,7 @@ EXPORT_SYMBOL_GPL(br_deliver);
/* called with rcu_read_lock */ /* called with rcu_read_lock */
void br_forward(const struct net_bridge_port *to, struct sk_buff *skb, struct sk_buff *skb0) void br_forward(const struct net_bridge_port *to, struct sk_buff *skb, struct sk_buff *skb0)
{ {
@ -70,7 +70,7 @@ Isolating individual bridge ports
if (skb0) if (skb0)
deliver_clone(to, skb, __br_forward); deliver_clone(to, skb, __br_forward);
else else
@@ -174,7 +174,7 @@ static void br_flood(struct net_bridge * @@ -175,7 +175,7 @@ static void br_flood(struct net_bridge *
struct sk_buff *skb0, struct sk_buff *skb0,
void (*__packet_hook)(const struct net_bridge_port *p, void (*__packet_hook)(const struct net_bridge_port *p,
struct sk_buff *skb), struct sk_buff *skb),
@ -79,7 +79,7 @@ Isolating individual bridge ports
{ {
struct net_bridge_port *p; struct net_bridge_port *p;
struct net_bridge_port *prev; struct net_bridge_port *prev;
@@ -182,6 +182,8 @@ static void br_flood(struct net_bridge * @@ -183,6 +183,8 @@ static void br_flood(struct net_bridge *
prev = NULL; prev = NULL;
list_for_each_entry_rcu(p, &br->port_list, list) { list_for_each_entry_rcu(p, &br->port_list, list) {
@ -88,7 +88,7 @@ Isolating individual bridge ports
/* Do not flood unicast traffic to ports that turn it off */ /* Do not flood unicast traffic to ports that turn it off */
if (unicast && !(p->flags & BR_FLOOD)) if (unicast && !(p->flags & BR_FLOOD))
continue; continue;
@@ -216,14 +218,14 @@ out: @@ -217,14 +219,14 @@ out:
/* called with rcu_read_lock */ /* called with rcu_read_lock */
void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast) void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast)
{ {

View file

@ -310,7 +310,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
rcu_assign_pointer(*pp, p); rcu_assign_pointer(*pp, p);
--- a/net/bridge/br_forward.c --- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c
@@ -169,6 +169,34 @@ out: @@ -170,6 +170,34 @@ out:
return p; return p;
} }
@ -345,7 +345,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
/* called under bridge lock */ /* called under bridge lock */
static void br_flood(struct net_bridge *br, struct sk_buff *skb, static void br_flood(struct net_bridge *br, struct sk_buff *skb,
struct sk_buff *skb0, struct sk_buff *skb0,
@@ -241,6 +269,7 @@ static void br_multicast_flood(struct ne @@ -242,6 +270,7 @@ static void br_multicast_flood(struct ne
struct net_bridge_port *prev = NULL; struct net_bridge_port *prev = NULL;
struct net_bridge_port_group *p; struct net_bridge_port_group *p;
struct hlist_node *rp; struct hlist_node *rp;
@ -353,7 +353,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
rp = rcu_dereference(hlist_first_rcu(&br->router_list)); rp = rcu_dereference(hlist_first_rcu(&br->router_list));
p = mdst ? rcu_dereference(mdst->ports) : NULL; p = mdst ? rcu_dereference(mdst->ports) : NULL;
@@ -251,10 +280,19 @@ static void br_multicast_flood(struct ne @@ -252,10 +281,19 @@ static void br_multicast_flood(struct ne
rport = rp ? hlist_entry(rp, struct net_bridge_port, rlist) : rport = rp ? hlist_entry(rp, struct net_bridge_port, rlist) :
NULL; NULL;

View file

@ -1,6 +1,6 @@
--- a/net/netlink/af_netlink.c --- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c
@@ -1724,27 +1724,7 @@ void netlink_detachskb(struct sock *sk, @@ -1775,27 +1775,7 @@ void netlink_detachskb(struct sock *sk,
static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation) static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
{ {

View file

@ -1,6 +1,6 @@
--- a/include/linux/skbuff.h --- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h +++ b/include/linux/skbuff.h
@@ -2031,7 +2031,7 @@ static inline int pskb_network_may_pull( @@ -2027,7 +2027,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/ */
#ifndef NET_SKB_PAD #ifndef NET_SKB_PAD

View file

@ -14,7 +14,7 @@ when needed.
--- a/include/linux/skbuff.h --- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h +++ b/include/linux/skbuff.h
@@ -2076,6 +2076,24 @@ static inline void pskb_trim_unique(stru @@ -2072,6 +2072,24 @@ static inline void pskb_trim_unique(stru
BUG_ON(err); BUG_ON(err);
} }

View file

@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static void rt_fibinfo_free(struct rtable __rcu **rtp) static void rt_fibinfo_free(struct rtable __rcu **rtp)
--- a/net/ipv4/fib_trie.c --- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c
@@ -2352,6 +2352,7 @@ static const char *const rtn_type_names[ @@ -2348,6 +2348,7 @@ static const char *const rtn_type_names[
[RTN_THROW] = "THROW", [RTN_THROW] = "THROW",
[RTN_NAT] = "NAT", [RTN_NAT] = "NAT",
[RTN_XRESOLVE] = "XRESOLVE", [RTN_XRESOLVE] = "XRESOLVE",
@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static const struct rt6_info ip6_blk_hole_entry_template = { static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = { .dst = {
.__refcnt = ATOMIC_INIT(1), .__refcnt = ATOMIC_INIT(1),
@@ -1635,6 +1652,11 @@ int ip6_route_add(struct fib6_config *cf @@ -1634,6 +1651,11 @@ int ip6_route_info_create(struct fib6_co
rt->dst.output = ip6_pkt_prohibit_out; rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit; rt->dst.input = ip6_pkt_prohibit;
break; break;
@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
case RTN_THROW: case RTN_THROW:
default: default:
rt->dst.error = (cfg->fc_type == RTN_THROW) ? -EAGAIN rt->dst.error = (cfg->fc_type == RTN_THROW) ? -EAGAIN
@@ -2202,6 +2224,17 @@ static int ip6_pkt_prohibit_out(struct s @@ -2225,6 +2247,17 @@ static int ip6_pkt_prohibit_out(struct s
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
} }
@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/* /*
* Allocate a dst for local (unicast / anycast) address. * Allocate a dst for local (unicast / anycast) address.
*/ */
@@ -2428,7 +2461,8 @@ static int rtm_to_fib6_config(struct sk_ @@ -2451,7 +2484,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE || if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT || rtm->rtm_type == RTN_PROHIBIT ||
@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
cfg->fc_flags |= RTF_REJECT; cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL) if (rtm->rtm_type == RTN_LOCAL)
@@ -2644,6 +2678,9 @@ static int rt6_fill_node(struct net *net @@ -2793,6 +2827,9 @@ static int rt6_fill_node(struct net *net
case -EACCES: case -EACCES:
rtm->rtm_type = RTN_PROHIBIT; rtm->rtm_type = RTN_PROHIBIT;
break; break;
@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
case -EAGAIN: case -EAGAIN:
rtm->rtm_type = RTN_THROW; rtm->rtm_type = RTN_THROW;
break; break;
@@ -2901,6 +2938,8 @@ static int ip6_route_dev_notify(struct n @@ -3050,6 +3087,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif #endif
@@ -3117,6 +3156,17 @@ static int __net_init ip6_route_net_init @@ -3266,6 +3305,17 @@ static int __net_init ip6_route_net_init
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true); ip6_template_metrics, true);
@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
#endif #endif
net->ipv6.sysctl.flush_delay = 0; net->ipv6.sysctl.flush_delay = 0;
@@ -3135,6 +3185,8 @@ out: @@ -3284,6 +3334,8 @@ out:
return ret; return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
out_ip6_prohibit_entry: out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry: out_ip6_null_entry:
@@ -3152,6 +3204,7 @@ static void __net_exit ip6_route_net_exi @@ -3301,6 +3353,7 @@ static void __net_exit ip6_route_net_exi
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry); kfree(net->ipv6.ip6_blk_hole_entry);
@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
#endif #endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops); dst_entries_destroy(&net->ipv6.ip6_dst_ops);
} }
@@ -3248,6 +3301,9 @@ int __init ip6_route_init(void) @@ -3397,6 +3450,9 @@ int __init ip6_route_init(void)
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);

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
@@ -4039,6 +4039,9 @@ static enum gro_result dev_gro_receive(s @@ -4036,6 +4036,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;
@@ -5186,6 +5189,48 @@ static void __netdev_adjacent_dev_unlink @@ -5185,6 +5188,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)
@@ -5246,6 +5291,7 @@ static int __netdev_upper_dev_link(struc @@ -5245,6 +5290,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(NETDEV_CHANGEUPPER, dev); call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
return 0; return 0;
@@ -5363,6 +5409,7 @@ void netdev_upper_dev_unlink(struct net_ @@ -5362,6 +5408,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(NETDEV_CHANGEUPPER, dev); call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
} }
EXPORT_SYMBOL(netdev_upper_dev_unlink); EXPORT_SYMBOL(netdev_upper_dev_unlink);
@@ -5902,6 +5949,7 @@ int dev_set_mac_address(struct net_devic @@ -5901,6 +5948,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

@ -41,7 +41,7 @@
*/ */
--- a/include/linux/skbuff.h --- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h +++ b/include/linux/skbuff.h
@@ -2062,6 +2062,10 @@ static inline int pskb_trim(struct sk_bu @@ -2058,6 +2058,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0; return (len < skb->len) ? __pskb_trim(skb, len) : 0;
} }
@ -52,7 +52,7 @@
/** /**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer * pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter * @skb: buffer to alter
@@ -2188,16 +2192,6 @@ static inline struct sk_buff *dev_alloc_ @@ -2184,16 +2188,6 @@ static inline struct sk_buff *dev_alloc_
} }
@ -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
@@ -2649,10 +2649,20 @@ static int xmit_one(struct sk_buff *skb, @@ -2645,10 +2645,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

@ -23,7 +23,7 @@
/* The Mellanox Tavor device gives false positive parity errors /* The Mellanox Tavor device gives false positive parity errors
* Mark this device with a broken_parity_status, to allow * Mark this device with a broken_parity_status, to allow
* PCI scanning code to "skip" this now blacklisted device. * PCI scanning code to "skip" this now blacklisted device.
@@ -2925,6 +2926,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I @@ -2949,6 +2950,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
@ -31,7 +31,7 @@
/* /*
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To
@@ -2981,6 +2983,8 @@ static void fixup_debug_report(struct pc @@ -3005,6 +3007,8 @@ static void fixup_debug_report(struct pc
} }
} }
@ -40,7 +40,7 @@
/* /*
* Some BIOS implementations leave the Intel GPU interrupts enabled, * Some BIOS implementations leave the Intel GPU interrupts enabled,
* even though no one is handling them (f.e. i915 driver is never loaded). * even though no one is handling them (f.e. i915 driver is never loaded).
@@ -3015,6 +3019,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN @@ -3039,6 +3043,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);

View file

@ -49,7 +49,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
depends on ACPI && PCI depends on ACPI && PCI
--- a/drivers/ata/libata-core.c --- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c
@@ -728,6 +728,19 @@ u64 ata_tf_read_block(const struct ata_t @@ -728,6 +728,19 @@ u64 ata_tf_read_block(struct ata_taskfil
return block; return block;
} }
@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/** /**
* ata_build_rw_tf - Build ATA taskfile for given read/write request * ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile * @tf: Target ATA taskfile
@@ -4789,6 +4802,9 @@ struct ata_queued_cmd *ata_qc_new_init(s @@ -4773,6 +4786,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (tag < 0) if (tag < 0)
return NULL; return NULL;
} }
@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
qc = __ata_qc_from_tag(ap, tag); qc = __ata_qc_from_tag(ap, tag);
qc->tag = tag; qc->tag = tag;
@@ -5686,6 +5702,9 @@ struct ata_port *ata_port_alloc(struct a @@ -5670,6 +5686,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1; ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1; ap->stats.idle_irq = 1;
#endif #endif
@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
ata_sff_port_init(ap); ata_sff_port_init(ap);
return ap; return ap;
@@ -5707,6 +5726,12 @@ static void ata_host_release(struct devi @@ -5691,6 +5710,12 @@ static void ata_host_release(struct devi
kfree(ap->pmp_link); kfree(ap->pmp_link);
kfree(ap->slave_link); kfree(ap->slave_link);
@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kfree(ap); kfree(ap);
host->ports[i] = NULL; host->ports[i] = NULL;
} }
@@ -6153,7 +6178,23 @@ int ata_host_register(struct ata_host *h @@ -6137,7 +6162,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1; host->ports[i]->local_port_no = i + 1;
} }

View file

@ -184,7 +184,7 @@
--- a/net/ipv4/fib_trie.c --- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c
@@ -2630,10 +2630,12 @@ static const struct file_operations fib_ @@ -2626,10 +2626,12 @@ static const struct file_operations fib_
int __net_init fib_proc_init(struct net *net) int __net_init fib_proc_init(struct net *net)
{ {
@ -199,7 +199,7 @@
&fib_triestat_fops)) &fib_triestat_fops))
goto out2; goto out2;
@@ -2643,17 +2645,21 @@ int __net_init fib_proc_init(struct net @@ -2639,17 +2641,21 @@ int __net_init fib_proc_init(struct net
return 0; return 0;
out3: out3:

View file

@ -13,7 +13,7 @@
+#endif +#endif
--- a/lib/decompress_unlzo.c --- a/lib/decompress_unlzo.c
+++ b/lib/decompress_unlzo.c +++ b/lib/decompress_unlzo.c
@@ -38,6 +38,7 @@ @@ -39,6 +39,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/lzo.h> #include <linux/lzo.h>

View file

@ -17,7 +17,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
--- a/drivers/mtd/Kconfig --- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig
@@ -200,6 +200,13 @@ config MTD_MYLOADER_PARTS @@ -195,6 +195,13 @@ config MTD_MYLOADER_PARTS
You will still need the parsing functions to be called by the driver You will still need the parsing functions to be called by the driver
for your particular device. It won't happen automatically. for your particular device. It won't happen automatically.

View file

@ -63,7 +63,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
+ interface); + interface);
+ } + }
if (IS_ERR(phydev)) { if (IS_ERR_OR_NULL(phydev)) {
pr_err("%s: Could not attach to PHY\n", dev->name); pr_err("%s: Could not attach to PHY\n", dev->name);
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c

View file

@ -18,7 +18,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -856,7 +856,7 @@ static int stmmac_init_phy(struct net_de @@ -859,7 +859,7 @@ static int stmmac_init_phy(struct net_de
* device as well. * device as well.
* Note: phydev->phy_id is the result of reading the UID PHY registers. * Note: phydev->phy_id is the result of reading the UID PHY registers.
*/ */

View file

@ -5514,7 +5514,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
(transaction layer end-to-end CRC checking). (transaction layer end-to-end CRC checking).
--- a/include/linux/pci.h --- a/include/linux/pci.h
+++ b/include/linux/pci.h +++ b/include/linux/pci.h
@@ -1177,6 +1177,8 @@ void pci_walk_bus(struct pci_bus *top, i @@ -1179,6 +1179,8 @@ void pci_walk_bus(struct pci_bus *top, i
void *userdata); void *userdata);
int pci_cfg_space_size(struct pci_dev *dev); int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus); unsigned char pci_bus_max_busnr(struct pci_bus *bus);

View file

@ -182,7 +182,7 @@
mtd_pad_erasesize(struct mtd_info *mtd, int offset, int len) mtd_pad_erasesize(struct mtd_info *mtd, int offset, int len)
{ {
unsigned long mask = mtd->erasesize - 1; unsigned long mask = mtd->erasesize - 1;
@@ -833,7 +833,6 @@ static void split_uimage(struct mtd_info @@ -792,7 +792,6 @@ static void split_uimage(struct mtd_info
return; return;
len = be32_to_cpu(hdr.size) + 0x40; len = be32_to_cpu(hdr.size) + 0x40;

View file

@ -1,6 +1,6 @@
--- a/arch/arm/Kconfig --- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig +++ b/arch/arm/Kconfig
@@ -599,6 +599,18 @@ config ARCH_LPC32XX @@ -600,6 +600,18 @@ config ARCH_LPC32XX
help help
Support for the NXP LPC32XX family of processors Support for the NXP LPC32XX family of processors
@ -19,7 +19,7 @@
config ARCH_PXA config ARCH_PXA
bool "PXA2xx/PXA3xx-based" bool "PXA2xx/PXA3xx-based"
depends on MMU depends on MMU
@@ -897,6 +909,8 @@ source "arch/arm/mach-omap2/Kconfig" @@ -898,6 +910,8 @@ source "arch/arm/mach-omap2/Kconfig"
source "arch/arm/mach-orion5x/Kconfig" source "arch/arm/mach-orion5x/Kconfig"

View file

@ -15,7 +15,7 @@
/* initialize internal qc */ /* initialize internal qc */
/* XXX: Tag 0 is used for drivers with legacy EH as some /* XXX: Tag 0 is used for drivers with legacy EH as some
@@ -4796,6 +4804,9 @@ struct ata_queued_cmd *ata_qc_new_init(s @@ -4780,6 +4788,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (unlikely(ap->pflags & ATA_PFLAG_FROZEN)) if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
return NULL; return NULL;
@ -25,7 +25,7 @@
/* libsas case */ /* libsas case */
if (ap->flags & ATA_FLAG_SAS_HOST) { if (ap->flags & ATA_FLAG_SAS_HOST) {
tag = ata_sas_allocate_tag(ap); tag = ata_sas_allocate_tag(ap);
@@ -4841,6 +4852,8 @@ void ata_qc_free(struct ata_queued_cmd * @@ -4825,6 +4836,8 @@ void ata_qc_free(struct ata_queued_cmd *
qc->tag = ATA_TAG_POISON; qc->tag = ATA_TAG_POISON;
if (ap->flags & ATA_FLAG_SAS_HOST) if (ap->flags & ATA_FLAG_SAS_HOST)
ata_sas_free_tag(tag, ap); ata_sas_free_tag(tag, ap);