ifeq ($(LINUX_VERSION),3.9.11)
LINUX_KERNEL_MD5SUM:=edbf88eb7f7d34dbd5d3887726790755
endif
-ifeq ($(LINUX_VERSION),3.10.10)
- LINUX_KERNEL_MD5SUM:=647f76225dd6bc112369ba573ba3de18
+ifeq ($(LINUX_VERSION),3.10.12)
+ LINUX_KERNEL_MD5SUM:=16e43b3c9957cf5af44863d6809efe38
endif
# disable the md5sum check for unknown kernel versions
CFLAGS:=-Os -pipe -mips32r2 -mtune=34kc -mno-branch-likely
SUBTARGETS:=generic nand
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
-@@ -172,6 +172,12 @@ config MTD_BCM47XX_PARTS
+@@ -176,6 +176,12 @@ config MTD_BCM47XX_PARTS
This provides partitions parser for devices based on BCM47xx
boards.
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
-@@ -174,7 +174,7 @@ config MTD_BCM47XX_PARTS
+@@ -178,7 +178,7 @@ config MTD_BCM47XX_PARTS
config MTD_WRT160NL_PARTS
tristate "Linksys WRT160NL partitioning support"
---help---
Linksys WRT160NL partitioning support
-@@ -194,6 +194,12 @@ config MTD_MYLOADER_PARTS
+@@ -198,6 +198,12 @@ config MTD_MYLOADER_PARTS
You will still need the parsing functions to be called by the driver
for your particular device. It won't happen automatically.
tpi->seq = 0;
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
-@@ -3592,13 +3592,14 @@ static bool tcp_parse_aligned_timestamp(
+@@ -3592,14 +3592,16 @@ static bool tcp_parse_aligned_timestamp(
{
const __be32 *ptr = (const __be32 *)(th + 1);
- tp->rx_opt.rcv_tsval = ntohl(*ptr);
+ tp->rx_opt.rcv_tsval = get_unaligned_be32(ptr);
++ptr;
-- tp->rx_opt.rcv_tsecr = ntohl(*ptr) - tp->tsoffset;
-+ tp->rx_opt.rcv_tsecr = get_unaligned_be32(ptr) - tp->tsoffset;
+ if (*ptr)
+- tp->rx_opt.rcv_tsecr = ntohl(*ptr) - tp->tsoffset;
++ tp->rx_opt.rcv_tsecr = get_unaligned_be32(ptr) -
++ tp->tsoffset;
+ else
+ tp->rx_opt.rcv_tsecr = 0;
return true;
- }
- return false;
--- a/include/uapi/linux/if_pppox.h
+++ b/include/uapi/linux/if_pppox.h
@@ -47,6 +47,7 @@ struct pppoe_addr {
FEATURES:=squashfs usb pci pcie gpio
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
FEATURES:=ext4 audio usb usbgadget display gpio
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += brcm2708-gpu-fw kmod-usb-hid kmod-sound-core kmod-sound-arm-bcm2835
+ENDPROC(__FIQ_Branch)
--- a/arch/arm/kernel/fiq.c
+++ b/arch/arm/kernel/fiq.c
-@@ -145,6 +145,7 @@ void disable_fiq(int fiq)
+@@ -141,6 +141,7 @@ void disable_fiq(int fiq)
EXPORT_SYMBOL(set_fiq_handler);
EXPORT_SYMBOL(__set_fiq_regs); /* defined in fiqasm.S */
EXPORT_SYMBOL(__get_fiq_regs); /* defined in fiqasm.S */
FEATURES:=squashfs usb pcmcia
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += swconfig kmod-diag wpad-mini nvram
tp->phy_flags &= ~TG3_PHYFLG_IS_CONNECTED;
}
}
-@@ -3985,7 +3992,7 @@ static int tg3_power_down_prepare(struct
+@@ -3999,7 +4006,7 @@ static int tg3_power_down_prepare(struct
struct phy_device *phydev;
u32 phyid, advertising;
tp->phy_flags |= TG3_PHYFLG_IS_LOW_POWER;
-@@ -11769,7 +11776,7 @@ static int tg3_get_settings(struct net_d
+@@ -11783,7 +11790,7 @@ static int tg3_get_settings(struct net_d
struct phy_device *phydev;
if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED))
return -EAGAIN;
return phy_ethtool_gset(phydev, cmd);
}
-@@ -11836,7 +11843,7 @@ static int tg3_set_settings(struct net_d
+@@ -11850,7 +11857,7 @@ static int tg3_set_settings(struct net_d
struct phy_device *phydev;
if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED))
return -EAGAIN;
return phy_ethtool_sset(phydev, cmd);
}
-@@ -11993,7 +12000,7 @@ static int tg3_nway_reset(struct net_dev
+@@ -12007,7 +12014,7 @@ static int tg3_nway_reset(struct net_dev
if (tg3_flag(tp, USE_PHYLIB)) {
if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED))
return -EAGAIN;
} else {
u32 bmcr;
-@@ -12109,7 +12116,7 @@ static int tg3_set_pauseparam(struct net
+@@ -12123,7 +12130,7 @@ static int tg3_set_pauseparam(struct net
u32 newadv;
struct phy_device *phydev;
if (!(phydev->supported & SUPPORTED_Pause) ||
(!(phydev->supported & SUPPORTED_Asym_Pause) &&
-@@ -13543,7 +13550,7 @@ static int tg3_ioctl(struct net_device *
+@@ -13557,7 +13564,7 @@ static int tg3_ioctl(struct net_device *
struct phy_device *phydev;
if (!(tp->phy_flags & TG3_PHYFLG_IS_CONNECTED))
return -EAGAIN;
return phy_mii_ioctl(phydev, ifr, cmd);
}
-@@ -17176,8 +17183,10 @@ static int tg3_init_one(struct pci_dev *
+@@ -17190,8 +17197,10 @@ static int tg3_init_one(struct pci_dev *
tg3_flag_set(tp, FLUSH_POSTED_WRITES);
if (ssb_gige_one_dma_at_once(pdev))
tg3_flag_set(tp, ONE_DMA_AT_ONCE);
if (ssb_gige_is_rgmii(pdev))
tg3_flag_set(tp, RGMII_MODE);
}
-@@ -17447,7 +17456,7 @@ static int tg3_init_one(struct pci_dev *
+@@ -17461,7 +17470,7 @@ static int tg3_init_one(struct pci_dev *
if (tp->phy_flags & TG3_PHYFLG_IS_CONNECTED) {
struct phy_device *phydev;
BOARDNAME:=Broadcom BCM63xx
SUBTARGETS:=generic smp
FEATURES:=squashfs usb atm pci pcmcia
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
include $(INCLUDE_DIR)/target.mk
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -1088,7 +1088,8 @@ static int m25p_probe(struct spi_device
+@@ -1091,7 +1091,8 @@ static int m25p_probe(struct spi_device
/* partitions should match sector boundaries; and it may be good to
* use readonly partitions for writeprotected sectors (BP2..BP0).
*/
/*
* Write an address range to the flash chip. Data must be written in
* FLASH_PAGESIZE chunks. The address range may be any size provided
-@@ -983,6 +1005,9 @@ static int m25p_probe(struct spi_device
+@@ -986,6 +1008,9 @@ static int m25p_probe(struct spi_device
return -ENOMEM;
}
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -972,6 +972,9 @@ static int m25p_probe(struct spi_device
+@@ -975,6 +975,9 @@ static int m25p_probe(struct spi_device
dev_warn(&spi->dev, "unrecognized id %s\n", data->type);
}
FEATURES:=squashfs
CFLAGS:=-Os -pipe -march=armv4 -mtune=fa526
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
+++ /dev/null
-Patch by: Nathan Zimmer <nzimmer@sgi.com>
-
-Fixes a regression in the commit
-"timer_list: Convert timer list to be a proper seq_file" which causes
-/proc/timer_list to return an infinite amount of data
-
-
---- a/kernel/time/timer_list.c
-+++ b/kernel/time/timer_list.c
-@@ -305,24 +305,26 @@ static void *timer_list_start(struct seq
- if (!*offset) {
- iter->cpu = -1;
- iter->now = ktime_to_ns(ktime_get());
-- } else if (iter->cpu >= nr_cpu_ids) {
-+ } else {
-+ iter->cpu = cpumask_next(iter->cpu, cpu_online_mask);
-+ if (iter->cpu >= nr_cpu_ids) {
- #ifdef CONFIG_GENERIC_CLOCKEVENTS
-- if (!iter->second_pass) {
-- iter->cpu = -1;
-- iter->second_pass = true;
-- } else
-- return NULL;
-+ if (!iter->second_pass) {
-+ iter->cpu = -1;
-+ iter->second_pass = true;
-+ } else
-+ return NULL;
- #else
-- return NULL;
-+ return NULL;
- #endif
-+ }
- }
-+
- return iter;
- }
-
- static void *timer_list_next(struct seq_file *file, void *v, loff_t *offset)
- {
-- struct timer_list_iter *iter = file->private;
-- iter->cpu = cpumask_next(iter->cpu, cpu_online_mask);
- ++*offset;
- return timer_list_start(file, offset);
- }
bool
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
-@@ -46,7 +46,7 @@ struct reg_default {
+@@ -47,7 +47,7 @@ struct reg_default {
unsigned int def;
};
/* Our partition linked list */
static LIST_HEAD(mtd_partitions);
static DEFINE_MUTEX(mtd_partitions_mutex);
-@@ -232,13 +234,60 @@ static int part_erase(struct mtd_info *m
+@@ -231,13 +233,60 @@ static int part_erase(struct mtd_info *m
struct mtd_part *part = PART(mtd);
int ret;
return ret;
}
-@@ -246,7 +295,25 @@ void mtd_erase_callback(struct erase_inf
+@@ -245,7 +294,25 @@ void mtd_erase_callback(struct erase_inf
{
if (instr->mtd->_erase == part_erase) {
struct mtd_part *part = PART(instr->mtd);
if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN)
instr->fail_addr -= part->offset;
instr->addr -= part->offset;
-@@ -506,18 +573,24 @@ static struct mtd_part *allocate_partiti
+@@ -505,18 +572,24 @@ static struct mtd_part *allocate_partiti
if ((slave->mtd.flags & MTD_WRITEABLE) &&
mtd_mod_by_eb(slave->offset, &slave->mtd)) {
/* Doesn't start on a boundary of major erase size */
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
-@@ -332,7 +332,14 @@ static int part_lock(struct mtd_info *mt
+@@ -331,7 +331,14 @@ static int part_lock(struct mtd_info *mt
static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
{
struct mtd_part *part = PART(mtd);
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
-@@ -172,6 +172,22 @@ config MTD_BCM47XX_PARTS
+@@ -176,6 +176,22 @@ config MTD_BCM47XX_PARTS
This provides partitions parser for devices based on BCM47xx
boards.
--- a/include/uapi/linux/pkt_sched.h
+++ b/include/uapi/linux/pkt_sched.h
-@@ -214,6 +214,33 @@ struct tc_sfq_xstats {
+@@ -222,6 +222,33 @@ struct tc_sfq_xstats {
__s32 allot;
};
default:
return -ENOPROTOOPT;
}
-@@ -3275,6 +3288,13 @@ static int packet_getsockopt(struct sock
+@@ -3277,6 +3290,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
+obj-$(subst m,y,$(CONFIG_IPV6)) += inet6_stubs.o
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
-@@ -1321,7 +1321,7 @@ out:
+@@ -1319,7 +1319,7 @@ out:
return ret;
}
const struct in6_addr *daddr, unsigned int prefs,
struct in6_addr *saddr)
{
-@@ -1446,7 +1446,6 @@ try_nextdev:
+@@ -1444,7 +1444,6 @@ try_nextdev:
in6_ifa_put(hiscore->ifa);
return 0;
}
int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr,
unsigned char banned_flags)
-@@ -5145,6 +5144,9 @@ int __init addrconf_init(void)
+@@ -5143,6 +5142,9 @@ int __init addrconf_init(void)
ipv6_addr_label_rtnl_register();
return 0;
errout:
rtnl_af_unregister(&inet6_ops);
-@@ -5163,6 +5165,9 @@ void addrconf_cleanup(void)
+@@ -5161,6 +5163,9 @@ void addrconf_cleanup(void)
struct net_device *dev;
int i;
__FR_ACT_MAX,
};
---- a/include/uapi/linux/icmpv6.h
-+++ b/include/uapi/linux/icmpv6.h
-@@ -115,6 +115,7 @@ struct icmp6hdr {
- #define ICMPV6_NOT_NEIGHBOUR 2
- #define ICMPV6_ADDR_UNREACH 3
- #define ICMPV6_PORT_UNREACH 4
-+#define ICMPV6_FAILED_POLICY 5
-
- /*
- * Codes for Time Exceeded
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -203,6 +203,7 @@ enum {
static void rt_fibinfo_free(struct rtable __rcu **rtp)
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -2334,6 +2334,7 @@ static const char *const rtn_type_names[
+@@ -2331,6 +2331,7 @@ static const char *const rtn_type_names[
[RTN_THROW] = "THROW",
[RTN_NAT] = "NAT",
[RTN_XRESOLVE] = "XRESOLVE",
+static int ip6_pkt_failed_policy(struct sk_buff *skb)
+{
-+ return ip6_pkt_drop(skb, ICMPV6_FAILED_POLICY, IPSTATS_MIB_INNOROUTES);
++ return ip6_pkt_drop(skb, ICMPV6_POLICY_FAIL, IPSTATS_MIB_INNOROUTES);
+}
+
+static int ip6_pkt_failed_policy_out(struct sk_buff *skb)
+{
+ skb->dev = skb_dst(skb)->dev;
-+ return ip6_pkt_drop(skb, ICMPV6_FAILED_POLICY, IPSTATS_MIB_OUTNOROUTES);
++ return ip6_pkt_drop(skb, ICMPV6_POLICY_FAIL, IPSTATS_MIB_OUTNOROUTES);
+}
+
#endif
if (!root_irq_dir)
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
-@@ -357,6 +357,8 @@ static int __init init_timer_list_procfs
+@@ -362,6 +362,8 @@ static int __init init_timer_list_procfs
{
struct proc_dir_entry *pe;
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -2590,10 +2590,12 @@ static const struct file_operations fib_
+@@ -2587,10 +2587,12 @@ static const struct file_operations fib_
int __net_init fib_proc_init(struct net *net)
{
&fib_triestat_fops))
goto out2;
-@@ -2603,17 +2605,21 @@ int __net_init fib_proc_init(struct net
+@@ -2600,17 +2602,21 @@ int __net_init fib_proc_init(struct net
return 0;
out3:
FEATURES:=ext4 rtc usb gpio
CFLAGS:=-Os -pipe -march=armv5te -mtune=arm926ej-s
MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
KERNELNAME:="zImage dtbs"
define Target/Description
CFLAGS:=-Os -pipe -mtune=cortex-a9 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp
MAINTAINER:=Luka Perkov <luka@openwrt.org>
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
-@@ -382,6 +382,15 @@
- };
+@@ -391,6 +391,15 @@
+ status = "disabled";
};
+ pcie: pcie@01ffc000 {
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
SUBTARGETS=generic harddisk
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
INITRAMFS_EXTRA_FILES:=
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
DEVICE_TYPE:=developerboard
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
SUBTARGETS=generic p1020
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
CFLAGS:=-Os -pipe -march=octeon -fno-caller-saves
MAINTAINER:=John Crispin <blogic@openwrt.org>
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
CFLAGS:=-Os -pipe -mcpu=405
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
CFLAGS:=-Os -pipe -mno-branch-likely
FEATURES:=squashfs gpio
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES+=\
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -922,10 +922,13 @@ static int m25p_probe(struct spi_device
+@@ -925,10 +925,13 @@ static int m25p_probe(struct spi_device
unsigned i;
struct mtd_part_parser_data ppdata;
struct device_node __maybe_unused *np = spi->dev.of_node;
#endif
/* Platform data helps sort out which chip type we have, as
-@@ -1001,6 +1004,8 @@ static int m25p_probe(struct spi_device
+@@ -1004,6 +1007,8 @@ static int m25p_probe(struct spi_device
if (data && data->name)
flash->mtd.name = data->name;
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
-@@ -807,10 +807,6 @@ static void split_uimage(struct mtd_info
+@@ -808,10 +808,6 @@ static void split_uimage(struct mtd_info
return;
len = be32_to_cpu(hdr.size) + 0x40;
CFLAGS:=-Os -pipe -march=armv6k -mtune=mpcore -mfloat-abi=softfp -mfpu=vfp
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
DEVICE_TYPE:=developerboard
kmod-ledtrig-heartbeat kmod-ledtrig-gpio \
kmod-ledtrig-netdev \
kmod-cpu-msr hwclock wpad
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
CS5535_MASK:=0x0b000042
CFLAGS += -march=geode -Os -mmmx -m3dnow -fno-align-jumps -fno-align-functions \
FEATURES:=targz ubifs audio
SUBTARGETS:=qi_lb60 n516 n526 id800wt
-LINUX_VERSION:=3.10.10
+LINUX_VERSION:=3.10.12
DEVICE_TYPE=other