aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2014-01-26 11:30:34 +0000
committerGabor Juhos <juhosg@openwrt.org>2014-01-26 11:30:34 +0000
commita2543d72d8a0b4a9efcee26c8af36d618de4c863 (patch)
treee8655a579d54b55e648ec1750bb282fc1c5d7b61 /target
parente41e531e3b6a5fa99db8b682c00e47fc15d3d401 (diff)
downloadupstream-a2543d72d8a0b4a9efcee26c8af36d618de4c863.tar.gz
upstream-a2543d72d8a0b4a9efcee26c8af36d618de4c863.tar.bz2
upstream-a2543d72d8a0b4a9efcee26c8af36d618de4c863.zip
kernel: update 3.10 to 3.10.28
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 39399
Diffstat (limited to 'target')
-rw-r--r--target/linux/ar7/Makefile2
-rw-r--r--target/linux/ar7/patches-3.10/110-flash.patch2
-rw-r--r--target/linux/ar7/patches-3.10/320-ac49x-mtd-partitions.patch4
-rw-r--r--target/linux/ar71xx/Makefile2
-rw-r--r--target/linux/ar71xx/patches-3.10/404-mtd-wrt160nl-trx-parser.patch4
-rw-r--r--target/linux/ar71xx/patches-3.10/405-mtd-tp-link-partition-parser.patch6
-rw-r--r--target/linux/avr32/Makefile2
-rw-r--r--target/linux/bcm53xx/Makefile2
-rw-r--r--target/linux/brcm2708/Makefile2
-rw-r--r--target/linux/brcm47xx/Makefile2
-rw-r--r--target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch4
-rw-r--r--target/linux/brcm63xx/Makefile2
-rw-r--r--target/linux/cns21xx/Makefile2
-rw-r--r--target/linux/generic/patches-3.10/430-mtd-add-myloader-partition-parser.patch4
-rw-r--r--target/linux/generic/patches-3.10/630-packet_socket_type.patch16
-rw-r--r--target/linux/generic/patches-3.10/655-increase_skb_pad.patch2
-rw-r--r--target/linux/generic/patches-3.10/656-skb_reduce_truesize-helper.patch2
-rw-r--r--target/linux/generic/patches-3.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch34
-rw-r--r--target/linux/generic/patches-3.10/721-phy_packets.patch4
-rw-r--r--target/linux/imx6/Makefile2
-rw-r--r--target/linux/ixp4xx/Makefile2
-rw-r--r--target/linux/kirkwood/Makefile2
-rw-r--r--target/linux/lantiq/Makefile2
-rw-r--r--target/linux/lantiq/patches-3.10/0008-NET-PHY-adds-driver-for-lantiq-PHY11G.patch2
-rw-r--r--target/linux/malta/Makefile2
-rw-r--r--target/linux/mpc85xx/Makefile2
-rw-r--r--target/linux/mvebu/Makefile2
-rw-r--r--target/linux/octeon/Makefile2
-rw-r--r--target/linux/ppc40x/Makefile2
-rw-r--r--target/linux/ppc44x/Makefile2
-rw-r--r--target/linux/ramips/Makefile2
-rw-r--r--target/linux/ramips/patches-3.10/0508-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch7
-rw-r--r--target/linux/ramips/patches-3.10/0509-MIPS-Kconfig-CMP-support-needs-to-select-SMP-as-well.patch7
-rw-r--r--target/linux/ramips/patches-3.10/0510-MIPS-Fix-SMP-core-calculations-when-using-MT-support.patch5
-rw-r--r--target/linux/ramips/patches-3.10/0511-MIPS-GIC-Send-IPIs-using-the-GIC.patch13
-rw-r--r--target/linux/ramips/patches-3.10/0512-USB-add-xhci-support-for-mt7621.patch168
-rw-r--r--target/linux/ramips/patches-3.10/999-memory-detect.patch10
-rw-r--r--target/linux/ramips/patches-3.10/999-raeth_fixes.patch10
-rw-r--r--target/linux/rb532/Makefile2
-rw-r--r--target/linux/realview/Makefile2
-rw-r--r--target/linux/sparc/Makefile2
-rw-r--r--target/linux/x86/alix2/target.mk2
-rw-r--r--target/linux/x86/generic/target.mk2
-rw-r--r--target/linux/x86/kvm_guest/target.mk2
-rw-r--r--target/linux/x86_64/Makefile2
-rw-r--r--target/linux/xburst/Makefile2
46 files changed, 157 insertions, 201 deletions
diff --git a/target/linux/ar7/Makefile b/target/linux/ar7/Makefile
index b21604744a..e28213b88d 100644
--- a/target/linux/ar7/Makefile
+++ b/target/linux/ar7/Makefile
@@ -13,7 +13,7 @@ FEATURES:=squashfs atm
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
SUBTARGETS:=generic ac49x
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/ar7/patches-3.10/110-flash.patch b/target/linux/ar7/patches-3.10/110-flash.patch
index 18ae78bfb6..e12eec5f7d 100644
--- a/target/linux/ar7/patches-3.10/110-flash.patch
+++ b/target/linux/ar7/patches-3.10/110-flash.patch
@@ -1,6 +1,6 @@
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
-@@ -15,7 +15,7 @@ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
+@@ -16,7 +16,7 @@ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
diff --git a/target/linux/ar7/patches-3.10/320-ac49x-mtd-partitions.patch b/target/linux/ar7/patches-3.10/320-ac49x-mtd-partitions.patch
index 3bccd3e187..f74ee17c39 100644
--- a/target/linux/ar7/patches-3.10/320-ac49x-mtd-partitions.patch
+++ b/target/linux/ar7/patches-3.10/320-ac49x-mtd-partitions.patch
@@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
-@@ -188,6 +188,11 @@ config MTD_OF_PARTS
+@@ -192,6 +192,11 @@ config MTD_OF_PARTS
the partition map from the children of the flash node,
as described in Documentation/devicetree/booting-without-of.txt.
@@ -14,7 +14,7 @@
---help---
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
-@@ -14,6 +14,7 @@ mtd-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtd
+@@ -15,6 +15,7 @@ mtd-$(CONFIG_MTD_SPLIT_LZMA_FW) += mtdsp
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
diff --git a/target/linux/ar71xx/Makefile b/target/linux/ar71xx/Makefile
index b65fe86065..a7ee05f36d 100644
--- a/target/linux/ar71xx/Makefile
+++ b/target/linux/ar71xx/Makefile
@@ -13,7 +13,7 @@ FEATURES:=mips16
CPU_TYPE=34kc
SUBTARGETS:=generic nand mikrotik
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/ar71xx/patches-3.10/404-mtd-wrt160nl-trx-parser.patch b/target/linux/ar71xx/patches-3.10/404-mtd-wrt160nl-trx-parser.patch
index 9ce86e0551..23d78186ca 100644
--- a/target/linux/ar71xx/patches-3.10/404-mtd-wrt160nl-trx-parser.patch
+++ b/target/linux/ar71xx/patches-3.10/404-mtd-wrt160nl-trx-parser.patch
@@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
-@@ -208,6 +208,12 @@ config MTD_BCM47XX_PARTS
+@@ -212,6 +212,12 @@ config MTD_BCM47XX_PARTS
This provides partitions parser for devices based on BCM47xx
boards.
@@ -15,7 +15,7 @@
depends on ADM5120 || ATHEROS_AR231X || ATHEROS_AR71XX || ATH79
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
-@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
+@@ -20,6 +20,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
diff --git a/target/linux/ar71xx/patches-3.10/405-mtd-tp-link-partition-parser.patch b/target/linux/ar71xx/patches-3.10/405-mtd-tp-link-partition-parser.patch
index 8551fa2d5d..3851a6bb4f 100644
--- a/target/linux/ar71xx/patches-3.10/405-mtd-tp-link-partition-parser.patch
+++ b/target/linux/ar71xx/patches-3.10/405-mtd-tp-link-partition-parser.patch
@@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
-@@ -210,7 +210,7 @@ config MTD_BCM47XX_PARTS
+@@ -214,7 +214,7 @@ config MTD_BCM47XX_PARTS
config MTD_WRT160NL_PARTS
tristate "Linksys WRT160NL partitioning support"
@@ -9,7 +9,7 @@
---help---
Linksys WRT160NL partitioning support
-@@ -230,6 +230,12 @@ config MTD_MYLOADER_PARTS
+@@ -234,6 +234,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.
@@ -24,7 +24,7 @@
config MTD_BLKDEVS
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
-@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
+@@ -20,6 +20,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
diff --git a/target/linux/avr32/Makefile b/target/linux/avr32/Makefile
index 5d78b04a28..326109cfe3 100644
--- a/target/linux/avr32/Makefile
+++ b/target/linux/avr32/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Atmel AVR32
FEATURES:=squashfs
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/bcm53xx/Makefile b/target/linux/bcm53xx/Makefile
index 826c7b9dc5..703f0d055a 100644
--- a/target/linux/bcm53xx/Makefile
+++ b/target/linux/bcm53xx/Makefile
@@ -13,7 +13,7 @@ FEATURES:=squashfs usb pci pcie gpio
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
CPU_TYPE:=cortex-a9
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/brcm2708/Makefile b/target/linux/brcm2708/Makefile
index 30d8739c4d..5457b42142 100644
--- a/target/linux/brcm2708/Makefile
+++ b/target/linux/brcm2708/Makefile
@@ -15,7 +15,7 @@ MAINTAINER:=Florian Fainelli <florian@openwrt.org>
CPU_TYPE:=arm1176jzf-s
CPU_SUBTYPE:=vfp
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += brcm2708-gpu-fw kmod-usb-hid kmod-sound-core kmod-sound-arm-bcm2835
diff --git a/target/linux/brcm47xx/Makefile b/target/linux/brcm47xx/Makefile
index a48003743e..ed5f12e092 100644
--- a/target/linux/brcm47xx/Makefile
+++ b/target/linux/brcm47xx/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Broadcom BCM947xx/953xx
FEATURES:=squashfs usb pcmcia
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += swconfig wpad-mini nvram \
diff --git a/target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch b/target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch
index 3529f8c901..f533a0046a 100644
--- a/target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch
+++ b/target/linux/brcm47xx/patches-3.10/790-tg3-phylib.patch
@@ -174,7 +174,7 @@
return phy_mii_ioctl(phydev, ifr, cmd);
}
-@@ -17190,8 +17197,10 @@ static int tg3_init_one(struct pci_dev *
+@@ -17193,8 +17200,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);
@@ -186,7 +186,7 @@
if (ssb_gige_is_rgmii(pdev))
tg3_flag_set(tp, RGMII_MODE);
}
-@@ -17461,7 +17470,7 @@ static int tg3_init_one(struct pci_dev *
+@@ -17464,7 +17473,7 @@ static int tg3_init_one(struct pci_dev *
if (tp->phy_flags & TG3_PHYFLG_IS_CONNECTED) {
struct phy_device *phydev;
diff --git a/target/linux/brcm63xx/Makefile b/target/linux/brcm63xx/Makefile
index c11552f8ed..15e870be60 100644
--- a/target/linux/brcm63xx/Makefile
+++ b/target/linux/brcm63xx/Makefile
@@ -11,7 +11,7 @@ BOARD:=brcm63xx
BOARDNAME:=Broadcom BCM63xx
SUBTARGETS:=generic smp
FEATURES:=squashfs usb atm pci pcmcia usbgadget
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/cns21xx/Makefile b/target/linux/cns21xx/Makefile
index 6e011f87e3..dcdda21957 100644
--- a/target/linux/cns21xx/Makefile
+++ b/target/linux/cns21xx/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Cavium Networks Econa CNS21xx
FEATURES:=squashfs
CPU_TYPE:=fa526
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/generic/patches-3.10/430-mtd-add-myloader-partition-parser.patch b/target/linux/generic/patches-3.10/430-mtd-add-myloader-partition-parser.patch
index 47c2fd06e7..fc352d2779 100644
--- a/target/linux/generic/patches-3.10/430-mtd-add-myloader-partition-parser.patch
+++ b/target/linux/generic/patches-3.10/430-mtd-add-myloader-partition-parser.patch
@@ -1,6 +1,6 @@
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
-@@ -208,6 +208,22 @@ config MTD_BCM47XX_PARTS
+@@ -212,6 +212,22 @@ config MTD_BCM47XX_PARTS
This provides partitions parser for devices based on BCM47xx
boards.
@@ -25,7 +25,7 @@
config MTD_BLKDEVS
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
-@@ -18,6 +18,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
+@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
diff --git a/target/linux/generic/patches-3.10/630-packet_socket_type.patch b/target/linux/generic/patches-3.10/630-packet_socket_type.patch
index 62a81c7c0c..14878d3820 100644
--- a/target/linux/generic/patches-3.10/630-packet_socket_type.patch
+++ b/target/linux/generic/patches-3.10/630-packet_socket_type.patch
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1382,6 +1382,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1403,6 +1403,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
struct sockaddr_pkt *spkt;
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
/*
* When we registered the protocol we saved the socket in the data
-@@ -1389,6 +1390,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1410,6 +1411,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
/*
* Yank back the headers [hope the device set this
-@@ -1401,7 +1403,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1422,7 +1424,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
@@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1608,12 +1610,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -1629,12 +1631,12 @@ static int packet_rcv(struct sk_buff *sk
int skb_len = skb->len;
unsigned int snaplen, res;
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -1726,12 +1728,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -1747,12 +1749,12 @@ static int tpacket_rcv(struct sk_buff *s
struct timespec ts;
__u32 ts_status;
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -2627,6 +2629,7 @@ static int packet_create(struct net *net
+@@ -2641,6 +2643,7 @@ static int packet_create(struct net *net
spin_lock_init(&po->bind_lock);
mutex_init(&po->pg_vec_lock);
po->prot_hook.func = packet_rcv;
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3237,6 +3240,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3251,6 +3254,16 @@ packet_setsockopt(struct socket *sock, i
po->tp_tx_has_off = !!val;
return 0;
}
@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
default:
return -ENOPROTOOPT;
}
-@@ -3288,6 +3301,13 @@ static int packet_getsockopt(struct sock
+@@ -3302,6 +3315,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
diff --git a/target/linux/generic/patches-3.10/655-increase_skb_pad.patch b/target/linux/generic/patches-3.10/655-increase_skb_pad.patch
index 44ab947bd6..f5b30fbf5d 100644
--- a/target/linux/generic/patches-3.10/655-increase_skb_pad.patch
+++ b/target/linux/generic/patches-3.10/655-increase_skb_pad.patch
@@ -1,6 +1,6 @@
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -1844,7 +1844,7 @@ static inline int pskb_network_may_pull(
+@@ -1849,7 +1849,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
diff --git a/target/linux/generic/patches-3.10/656-skb_reduce_truesize-helper.patch b/target/linux/generic/patches-3.10/656-skb_reduce_truesize-helper.patch
index 9aa96a8670..0a20f6baba 100644
--- a/target/linux/generic/patches-3.10/656-skb_reduce_truesize-helper.patch
+++ b/target/linux/generic/patches-3.10/656-skb_reduce_truesize-helper.patch
@@ -14,7 +14,7 @@ when needed.
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -1889,6 +1889,24 @@ static inline void pskb_trim_unique(stru
+@@ -1894,6 +1894,24 @@ static inline void pskb_trim_unique(stru
BUG_ON(err);
}
diff --git a/target/linux/generic/patches-3.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/patches-3.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 122d23c417..978b246607 100644
--- a/target/linux/generic/patches-3.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/patches-3.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -102,7 +102,7 @@
return -EINVAL;
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
-@@ -251,6 +251,24 @@ static const struct rt6_info ip6_prohibi
+@@ -250,6 +250,24 @@ static const struct rt6_info ip6_prohibi
.rt6i_ref = ATOMIC_INIT(1),
};
@@ -127,17 +127,19 @@
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
-@@ -1511,6 +1529,9 @@ int ip6_route_add(struct fib6_config *cf
- case RTN_THROW:
- rt->dst.error = -EAGAIN;
+@@ -1509,6 +1527,11 @@ int ip6_route_add(struct fib6_config *cf
+ rt->dst.output = ip6_pkt_prohibit_out;
+ rt->dst.input = ip6_pkt_prohibit;
break;
+ case RTN_FAILED_POLICY:
+ rt->dst.error = -EPERM;
++ rt->dst.output = ip6_pkt_failed_policy_out;
++ rt->dst.input = ip6_pkt_failed_policy;
+ break;
+ case RTN_THROW:
default:
- rt->dst.error = -ENETUNREACH;
- break;
-@@ -2090,6 +2111,17 @@ static int ip6_pkt_prohibit_out(struct s
+ rt->dst.error = (cfg->fc_type == RTN_THROW) ? -EAGAIN
+@@ -2088,6 +2111,17 @@ static int ip6_pkt_prohibit_out(struct s
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
@@ -152,10 +154,10 @@
+ return ip6_pkt_drop(skb, ICMPV6_POLICY_FAIL, IPSTATS_MIB_OUTNOROUTES);
+}
+
- #endif
-
/*
-@@ -2296,7 +2328,8 @@ static int rtm_to_fib6_config(struct sk_
+ * Allocate a dst for local (unicast / anycast) address.
+ */
+@@ -2290,7 +2324,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
@@ -165,7 +167,7 @@
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -2498,6 +2531,9 @@ static int rt6_fill_node(struct net *net
+@@ -2492,6 +2527,9 @@ static int rt6_fill_node(struct net *net
case -EACCES:
rtm->rtm_type = RTN_PROHIBIT;
break;
@@ -175,7 +177,7 @@
case -EAGAIN:
rtm->rtm_type = RTN_THROW;
break;
-@@ -2748,6 +2784,8 @@ static int ip6_route_dev_notify(struct n
+@@ -2742,6 +2780,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -184,7 +186,7 @@
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -3008,6 +3046,17 @@ static int __net_init ip6_route_net_init
+@@ -3002,6 +3042,17 @@ static int __net_init ip6_route_net_init
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
@@ -202,7 +204,7 @@
#endif
net->ipv6.sysctl.flush_delay = 0;
-@@ -3026,6 +3075,8 @@ out:
+@@ -3020,6 +3071,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -211,7 +213,7 @@
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -3043,6 +3094,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3037,6 +3090,7 @@ static void __net_exit ip6_route_net_exi
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry);
@@ -219,7 +221,7 @@
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
}
-@@ -3139,6 +3191,9 @@ int __init ip6_route_init(void)
+@@ -3133,6 +3187,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_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);
diff --git a/target/linux/generic/patches-3.10/721-phy_packets.patch b/target/linux/generic/patches-3.10/721-phy_packets.patch
index 7d51ae70ff..02a3b5b2df 100644
--- a/target/linux/generic/patches-3.10/721-phy_packets.patch
+++ b/target/linux/generic/patches-3.10/721-phy_packets.patch
@@ -34,7 +34,7 @@
#define IF_GET_IFACE 0x0001 /* for querying only */
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -1874,6 +1874,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -1879,6 +1879,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
@@ -45,7 +45,7 @@
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -1998,16 +2002,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2003,16 +2007,6 @@ static inline struct sk_buff *dev_alloc_
}
diff --git a/target/linux/imx6/Makefile b/target/linux/imx6/Makefile
index 01632ec256..38e8315e6f 100644
--- a/target/linux/imx6/Makefile
+++ b/target/linux/imx6/Makefile
@@ -14,7 +14,7 @@ CPU_TYPE:=cortex-a9
CPU_SUBTYPE:=vfpv3
MAINTAINER:=Luka Perkov <luka@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/ixp4xx/Makefile b/target/linux/ixp4xx/Makefile
index 659659cb69..b0450114b9 100644
--- a/target/linux/ixp4xx/Makefile
+++ b/target/linux/ixp4xx/Makefile
@@ -13,7 +13,7 @@ FEATURES:=squashfs
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
SUBTARGETS=generic harddisk
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/kirkwood/Makefile b/target/linux/kirkwood/Makefile
index 66399fb9b2..4d92a06130 100644
--- a/target/linux/kirkwood/Makefile
+++ b/target/linux/kirkwood/Makefile
@@ -13,7 +13,7 @@ FEATURES:=targz usb jffs2_nand ubifs
CPU_TYPE:=xscale
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/lantiq/Makefile b/target/linux/lantiq/Makefile
index fa7ac2555a..61900989c4 100644
--- a/target/linux/lantiq/Makefile
+++ b/target/linux/lantiq/Makefile
@@ -11,7 +11,7 @@ BOARDNAME:=Lantiq GPON/XWAY/SVIP
FEATURES:=squashfs
SUBTARGETS=xway xrx200 ase falcon
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
CPU_TYPE:=mips32r2
diff --git a/target/linux/lantiq/patches-3.10/0008-NET-PHY-adds-driver-for-lantiq-PHY11G.patch b/target/linux/lantiq/patches-3.10/0008-NET-PHY-adds-driver-for-lantiq-PHY11G.patch
index 274c5d9a1a..76d25684a5 100644
--- a/target/linux/lantiq/patches-3.10/0008-NET-PHY-adds-driver-for-lantiq-PHY11G.patch
+++ b/target/linux/lantiq/patches-3.10/0008-NET-PHY-adds-driver-for-lantiq-PHY11G.patch
@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
-@@ -149,6 +149,11 @@ config MICREL_PHY
+@@ -153,6 +153,11 @@ config MICREL_PHY
---help---
Currently has a driver for the KSZ8041
diff --git a/target/linux/malta/Makefile b/target/linux/malta/Makefile
index f36a195053..bc8a7d4f6e 100644
--- a/target/linux/malta/Makefile
+++ b/target/linux/malta/Makefile
@@ -12,7 +12,7 @@ SUBTARGETS:=le be le64 be64
INITRAMFS_EXTRA_FILES:=
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
DEVICE_TYPE:=developerboard
diff --git a/target/linux/mpc85xx/Makefile b/target/linux/mpc85xx/Makefile
index d2cd5edb79..d68c4dac27 100644
--- a/target/linux/mpc85xx/Makefile
+++ b/target/linux/mpc85xx/Makefile
@@ -14,7 +14,7 @@ FEATURES:=spe_fpu squashfs
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
SUBTARGETS=generic p1020
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/mvebu/Makefile b/target/linux/mvebu/Makefile
index 1061af0014..d15dacf874 100644
--- a/target/linux/mvebu/Makefile
+++ b/target/linux/mvebu/Makefile
@@ -14,7 +14,7 @@ CPU_TYPE:=cortex-a9
CPU_SUBTYPE:=vfpv3
MAINTAINER:=Luka Perkov <luka@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/octeon/Makefile b/target/linux/octeon/Makefile
index ec574dbc1a..a196e94b5a 100644
--- a/target/linux/octeon/Makefile
+++ b/target/linux/octeon/Makefile
@@ -14,7 +14,7 @@ CPU_TYPE:=octeon
CPU_CFLAGS_octeon:=-march=octeon
MAINTAINER:=John Crispin <blogic@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/ppc40x/Makefile b/target/linux/ppc40x/Makefile
index 8ca0deae1c..98caa11d84 100644
--- a/target/linux/ppc40x/Makefile
+++ b/target/linux/ppc40x/Makefile
@@ -13,7 +13,7 @@ FEATURES:=squashfs
CPU_TYPE:=405
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/ppc44x/Makefile b/target/linux/ppc44x/Makefile
index 7964e0a685..2f3cac730e 100644
--- a/target/linux/ppc44x/Makefile
+++ b/target/linux/ppc44x/Makefile
@@ -13,7 +13,7 @@ FEATURES:=squashfs broken
CPU_TYPE:=440
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/ramips/Makefile b/target/linux/ramips/Makefile
index c3f3e514ef..fd48dd2e63 100644
--- a/target/linux/ramips/Makefile
+++ b/target/linux/ramips/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Ralink RT288x/RT3xxx
SUBTARGETS:=rt305x mt7620a mt7620n mt7621 rt3883 rt288x
FEATURES:=squashfs gpio
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES+=\
diff --git a/target/linux/ramips/patches-3.10/0508-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch b/target/linux/ramips/patches-3.10/0508-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch
index ed9344168e..c089e5aa7f 100644
--- a/target/linux/ramips/patches-3.10/0508-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch
+++ b/target/linux/ramips/patches-3.10/0508-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch
@@ -16,11 +16,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/irq-gic.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
-diff --git a/arch/mips/kernel/irq-gic.c b/arch/mips/kernel/irq-gic.c
-index c01b307..5b5ddb2 100644
--- a/arch/mips/kernel/irq-gic.c
+++ b/arch/mips/kernel/irq-gic.c
-@@ -219,16 +219,15 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *cpumask,
+@@ -219,16 +219,15 @@ static int gic_set_affinity(struct irq_d
/* Assumption : cpumask refers to a single CPU */
spin_lock_irqsave(&gic_lock, flags);
@@ -44,6 +42,3 @@ index c01b307..5b5ddb2 100644
cpumask_copy(d->affinity, cpumask);
spin_unlock_irqrestore(&gic_lock, flags);
---
-1.7.10.4
-
diff --git a/target/linux/ramips/patches-3.10/0509-MIPS-Kconfig-CMP-support-needs-to-select-SMP-as-well.patch b/target/linux/ramips/patches-3.10/0509-MIPS-Kconfig-CMP-support-needs-to-select-SMP-as-well.patch
index 36295e2003..1e6afb21de 100644
--- a/target/linux/ramips/patches-3.10/0509-MIPS-Kconfig-CMP-support-needs-to-select-SMP-as-well.patch
+++ b/target/linux/ramips/patches-3.10/0509-MIPS-Kconfig-CMP-support-needs-to-select-SMP-as-well.patch
@@ -40,11 +40,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/Kconfig | 1 +
1 file changed, 1 insertion(+)
-diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
-index e82c066..b537fb1 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -2010,6 +2010,7 @@ config MIPS_VPE_APSP_API
+@@ -2038,6 +2038,7 @@ config MIPS_VPE_APSP_API
config MIPS_CMP
bool "MIPS CMP framework support"
depends on SYS_SUPPORTS_MIPS_CMP
@@ -52,6 +50,3 @@ index e82c066..b537fb1 100644
select SYNC_R4K
select SYS_SUPPORTS_SMP
select SYS_SUPPORTS_SCHED_SMT if SMP
---
-1.7.10.4
-
diff --git a/target/linux/ramips/patches-3.10/0510-MIPS-Fix-SMP-core-calculations-when-using-MT-support.patch b/target/linux/ramips/patches-3.10/0510-MIPS-Fix-SMP-core-calculations-when-using-MT-support.patch
index fa7a5944c5..e297876ab0 100644
--- a/target/linux/ramips/patches-3.10/0510-MIPS-Fix-SMP-core-calculations-when-using-MT-support.patch
+++ b/target/linux/ramips/patches-3.10/0510-MIPS-Fix-SMP-core-calculations-when-using-MT-support.patch
@@ -19,8 +19,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/smp-cmp.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
-diff --git a/arch/mips/kernel/smp-cmp.c b/arch/mips/kernel/smp-cmp.c
-index c2e5d74..5969f1e 100644
--- a/arch/mips/kernel/smp-cmp.c
+++ b/arch/mips/kernel/smp-cmp.c
@@ -99,7 +99,9 @@ static void cmp_init_secondary(void)
@@ -52,6 +50,3 @@ index c2e5d74..5969f1e 100644
smp_num_siblings = nvpe;
}
pr_info("Detected %i available secondary CPU(s)\n", ncpu);
---
-1.7.10.4
-
diff --git a/target/linux/ramips/patches-3.10/0511-MIPS-GIC-Send-IPIs-using-the-GIC.patch b/target/linux/ramips/patches-3.10/0511-MIPS-GIC-Send-IPIs-using-the-GIC.patch
index 6e4cfc7d4b..366fdb2aff 100644
--- a/target/linux/ramips/patches-3.10/0511-MIPS-GIC-Send-IPIs-using-the-GIC.patch
+++ b/target/linux/ramips/patches-3.10/0511-MIPS-GIC-Send-IPIs-using-the-GIC.patch
@@ -10,11 +10,9 @@ Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
arch/mips/kernel/smp-mt.c | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
-diff --git a/arch/mips/kernel/smp-mt.c b/arch/mips/kernel/smp-mt.c
-index 2f8c468..d057c84 100644
--- a/arch/mips/kernel/smp-mt.c
+++ b/arch/mips/kernel/smp-mt.c
-@@ -71,6 +71,7 @@ static unsigned int __init smvp_vpe_init(unsigned int tc, unsigned int mvpconf0,
+@@ -71,6 +71,7 @@ static unsigned int __init smvp_vpe_init
/* Record this as available CPU */
set_cpu_possible(tc, true);
@@ -22,7 +20,7 @@ index 2f8c468..d057c84 100644
__cpu_number_map[tc] = ++ncpu;
__cpu_logical_map[ncpu] = tc;
}
-@@ -112,12 +113,35 @@ static void __init smvp_tc_init(unsigned int tc, unsigned int mvpconf0)
+@@ -112,12 +113,35 @@ static void __init smvp_tc_init(unsigned
write_tc_c0_tchalt(TCHALT_H);
}
@@ -58,7 +56,7 @@ index 2f8c468..d057c84 100644
local_irq_save(flags);
vpflags = dvpe(); /* can't access the other CPU's registers whilst MVPE enabled */
-@@ -164,6 +188,8 @@ static void __cpuinit vsmp_init_secondary(void)
+@@ -164,6 +188,8 @@ static void __cpuinit vsmp_init_secondar
static void __cpuinit vsmp_smp_finish(void)
{
@@ -67,7 +65,7 @@ index 2f8c468..d057c84 100644
/* CDFIXME: remove this? */
write_c0_compare(read_c0_count() + (8* mips_hpt_frequency/HZ));
-@@ -178,6 +204,7 @@ static void __cpuinit vsmp_smp_finish(void)
+@@ -178,6 +204,7 @@ static void __cpuinit vsmp_smp_finish(vo
static void vsmp_cpus_done(void)
{
@@ -101,6 +99,3 @@ index 2f8c468..d057c84 100644
mips_mt_set_cpuoptions();
}
---
-1.7.10.4
-
diff --git a/target/linux/ramips/patches-3.10/0512-USB-add-xhci-support-for-mt7621.patch b/target/linux/ramips/patches-3.10/0512-USB-add-xhci-support-for-mt7621.patch
index 35cdf1b2dc..acaf1dcc52 100644
--- a/target/linux/ramips/patches-3.10/0512-USB-add-xhci-support-for-mt7621.patch
+++ b/target/linux/ramips/patches-3.10/0512-USB-add-xhci-support-for-mt7621.patch
@@ -1,8 +1,6 @@
-Index: linux-3.10.26/drivers/usb/core/hub.c
-===================================================================
---- linux-3.10.26.orig/drivers/usb/core/hub.c 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/core/hub.c 2014-01-19 16:29:18.548615960 +0000
-@@ -1259,7 +1259,7 @@
+--- a/drivers/usb/core/hub.c
++++ b/drivers/usb/core/hub.c
+@@ -1259,7 +1259,7 @@ static void hub_quiesce(struct usb_hub *
if (type != HUB_SUSPEND) {
/* Disconnect all the children */
for (i = 0; i < hdev->maxchild; ++i) {
@@ -11,11 +9,9 @@ Index: linux-3.10.26/drivers/usb/core/hub.c
usb_disconnect(&hub->ports[i]->child);
}
}
-Index: linux-3.10.26/drivers/usb/core/port.c
-===================================================================
---- linux-3.10.26.orig/drivers/usb/core/port.c 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/core/port.c 2014-01-19 16:29:18.548615960 +0000
-@@ -193,6 +193,7 @@
+--- a/drivers/usb/core/port.c
++++ b/drivers/usb/core/port.c
+@@ -193,6 +193,7 @@ exit:
void usb_hub_remove_port_device(struct usb_hub *hub,
int port1)
{
@@ -24,11 +20,9 @@ Index: linux-3.10.26/drivers/usb/core/port.c
+ device_unregister(&hub->ports[port1 - 1]->dev);
}
-Index: linux-3.10.26/drivers/usb/host/Kconfig
-===================================================================
---- linux-3.10.26.orig/drivers/usb/host/Kconfig 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/host/Kconfig 2014-01-19 16:29:18.548615960 +0000
-@@ -28,7 +28,11 @@
+--- a/drivers/usb/host/Kconfig
++++ b/drivers/usb/host/Kconfig
+@@ -28,7 +28,11 @@ config USB_XHCI_HCD
if USB_XHCI_HCD
config USB_XHCI_PLATFORM
@@ -41,11 +35,9 @@ Index: linux-3.10.26/drivers/usb/host/Kconfig
config USB_XHCI_HCD_DEBUGGING
bool "Debugging for the xHCI host controller"
-Index: linux-3.10.26/drivers/usb/host/Makefile
-===================================================================
---- linux-3.10.26.orig/drivers/usb/host/Makefile 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/host/Makefile 2014-01-19 16:30:54.964617843 +0000
-@@ -13,15 +13,23 @@
+--- a/drivers/usb/host/Makefile
++++ b/drivers/usb/host/Makefile
+@@ -13,15 +13,23 @@ fhci-$(CONFIG_FHCI_DEBUG) += fhci-dbg.o
xhci-hcd-y := xhci.o xhci-mem.o
xhci-hcd-y += xhci-ring.o xhci-hub.o xhci-dbg.o
@@ -70,10 +62,8 @@ Index: linux-3.10.26/drivers/usb/host/Makefile
obj-$(CONFIG_USB_EHCI_HCD) += ehci-hcd.o
obj-$(CONFIG_USB_EHCI_PCI) += ehci-pci.o
-Index: linux-3.10.26/drivers/usb/host/pci-quirks.h
-===================================================================
---- linux-3.10.26.orig/drivers/usb/host/pci-quirks.h 2014-01-19 16:29:17.392615927 +0000
-+++ linux-3.10.26/drivers/usb/host/pci-quirks.h 2014-01-19 16:29:18.548615960 +0000
+--- a/drivers/usb/host/pci-quirks.h
++++ b/drivers/usb/host/pci-quirks.h
@@ -1,7 +1,7 @@
#ifndef __LINUX_USB_PCI_QUIRKS_H
#define __LINUX_USB_PCI_QUIRKS_H
@@ -82,11 +72,9 @@ Index: linux-3.10.26/drivers/usb/host/pci-quirks.h
+#if defined (CONFIG_PCI) && !defined (CONFIG_USB_MT7621_XHCI_PLATFORM)
void uhci_reset_hc(struct pci_dev *pdev, unsigned long base);
int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base);
- bool usb_is_intel_switchable_xhci(struct pci_dev *pdev);
-Index: linux-3.10.26/drivers/usb/host/xhci.c
-===================================================================
---- linux-3.10.26.orig/drivers/usb/host/xhci.c 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/host/xhci.c 2014-01-19 16:29:18.548615960 +0000
+ #endif /* CONFIG_PCI */
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
@@ -30,6 +30,16 @@
#include "xhci.h"
@@ -104,7 +92,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
#define DRIVER_AUTHOR "Sarah Sharp"
#define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver"
-@@ -38,6 +48,18 @@
+@@ -38,6 +48,18 @@ static int link_quirk;
module_param(link_quirk, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(link_quirk, "Don't clear the chain bit on a link TRB");
@@ -123,7 +111,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
/* TODO: copied from ehci-hcd.c - can this be refactored? */
/*
* xhci_handshake - spin reading hc until handshake completes or fails
-@@ -189,7 +211,7 @@
+@@ -189,7 +211,7 @@ int xhci_reset(struct xhci_hcd *xhci)
return ret;
}
@@ -132,7 +120,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
static int xhci_free_msi(struct xhci_hcd *xhci)
{
int i;
-@@ -386,6 +408,7 @@
+@@ -386,6 +408,7 @@ static int xhci_try_enable_msi(struct us
return ret;
}
hcd->irq = pdev->irq;
@@ -140,7 +128,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
return 0;
}
-@@ -427,6 +450,11 @@
+@@ -427,6 +450,11 @@ static void compliance_mode_recovery(uns
xhci_dbg(xhci, "Attempting compliance mode recovery\n");
hcd = xhci->shared_hcd;
@@ -152,7 +140,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
if (hcd->state == HC_STATE_SUSPENDED)
usb_hcd_resume_root_hub(hcd);
-@@ -475,6 +503,9 @@
+@@ -475,6 +503,9 @@ bool xhci_compliance_mode_recovery_timer
{
const char *dmi_product_name, *dmi_sys_vendor;
@@ -162,7 +150,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
dmi_product_name = dmi_get_system_info(DMI_PRODUCT_NAME);
dmi_sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR);
if (!dmi_product_name || !dmi_sys_vendor)
-@@ -518,6 +549,10 @@
+@@ -518,6 +549,10 @@ int xhci_init(struct usb_hcd *hcd)
} else {
xhci_dbg(xhci, "xHCI doesn't need link TRB QUIRK\n");
}
@@ -173,7 +161,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
retval = xhci_mem_init(xhci, GFP_KERNEL);
xhci_dbg(xhci, "Finished xhci_init\n");
-@@ -661,7 +696,11 @@
+@@ -661,7 +696,11 @@ int xhci_run(struct usb_hcd *hcd)
xhci_dbg(xhci, "// Set the interrupt modulation register\n");
temp = xhci_readl(xhci, &xhci->ir_set->irq_control);
temp &= ~ER_IRQ_INTERVAL_MASK;
@@ -185,7 +173,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
xhci_writel(xhci, temp, &xhci->ir_set->irq_control);
/* Set the HCD state before we enable the irqs */
-@@ -682,6 +721,9 @@
+@@ -682,6 +721,9 @@ int xhci_run(struct usb_hcd *hcd)
xhci_queue_vendor_command(xhci, 0, 0, 0,
TRB_TYPE(TRB_NEC_GET_FW));
@@ -195,7 +183,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
xhci_dbg(xhci, "Finished xhci_run for USB2 roothub\n");
return 0;
}
-@@ -999,7 +1041,6 @@
+@@ -999,7 +1041,6 @@ int xhci_resume(struct xhci_hcd *xhci, b
/* If restore operation fails, re-initialize the HC during resume */
if ((temp & STS_SRE) || hibernated) {
@@ -203,7 +191,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) &&
!(xhci_all_ports_seen_u0(xhci))) {
del_timer_sync(&xhci->comp_mode_recovery_timer);
-@@ -1583,6 +1624,13 @@
+@@ -1583,6 +1624,13 @@ int xhci_drop_endpoint(struct usb_hcd *h
u32 drop_flag;
u32 new_add_flags, new_drop_flags, new_slot_info;
int ret;
@@ -217,7 +205,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
if (ret <= 0)
-@@ -1634,6 +1682,40 @@
+@@ -1634,6 +1682,40 @@ int xhci_drop_endpoint(struct usb_hcd *h
xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep);
@@ -258,7 +246,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x, new slot info = %#x\n",
(unsigned int) ep->desc.bEndpointAddress,
udev->slot_id,
-@@ -1669,6 +1751,18 @@
+@@ -1669,6 +1751,18 @@ int xhci_add_endpoint(struct usb_hcd *hc
u32 new_add_flags, new_drop_flags, new_slot_info;
struct xhci_virt_device *virt_dev;
int ret = 0;
@@ -277,7 +265,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
if (ret <= 0) {
-@@ -1731,6 +1825,56 @@
+@@ -1731,6 +1825,56 @@ int xhci_add_endpoint(struct usb_hcd *hc
return -ENOMEM;
}
@@ -334,7 +322,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs);
new_add_flags = le32_to_cpu(ctrl_ctx->add_flags);
-@@ -2694,7 +2838,7 @@
+@@ -2694,7 +2838,7 @@ int xhci_check_bandwidth(struct usb_hcd
if (ctrl_ctx->add_flags == cpu_to_le32(SLOT_FLAG) &&
ctrl_ctx->drop_flags == 0)
return 0;
@@ -343,7 +331,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
xhci_dbg(xhci, "New Input Control Context:\n");
slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx);
xhci_dbg_ctx(xhci, virt_dev->in_ctx,
-@@ -4230,10 +4374,14 @@
+@@ -4230,10 +4374,14 @@ static u16 xhci_call_host_update_timeout
u16 *timeout)
{
if (state == USB3_LPM_U1) {
@@ -358,7 +346,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
return xhci_calculate_intel_u2_timeout(udev, desc);
}
-@@ -4659,7 +4807,9 @@
+@@ -4659,7 +4807,9 @@ int xhci_gen_setup(struct usb_hcd *hcd,
/* Accept arbitrarily long scatter-gather lists */
hcd->self.sg_tablesize = ~0;
/* XHCI controllers don't stop the ep queue on short packets :| */
@@ -368,7 +356,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
if (usb_hcd_is_primary_hcd(hcd)) {
xhci = kzalloc(sizeof(struct xhci_hcd), GFP_KERNEL);
-@@ -4728,6 +4878,10 @@
+@@ -4728,6 +4878,10 @@ int xhci_gen_setup(struct usb_hcd *hcd,
goto error;
xhci_dbg(xhci, "Reset complete\n");
@@ -379,7 +367,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
temp = xhci_readl(xhci, &xhci->cap_regs->hcc_params);
if (HCC_64BIT_ADDR(temp)) {
xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n");
-@@ -4752,8 +4906,21 @@
+@@ -4752,8 +4906,21 @@ MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_LICENSE("GPL");
@@ -401,7 +389,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
int retval;
retval = xhci_register_pci();
-@@ -4766,6 +4933,33 @@
+@@ -4766,6 +4933,33 @@ static int __init xhci_hcd_init(void)
printk(KERN_DEBUG "Problem registering platform driver.");
goto unreg_pci;
}
@@ -435,7 +423,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
/*
* Check the compiler generated sizes of structures that must be laid
* out in specific ways for hardware access.
-@@ -4783,6 +4977,7 @@
+@@ -4783,6 +4977,7 @@ static int __init xhci_hcd_init(void)
BUILD_BUG_ON(sizeof(struct xhci_intr_reg) != 8*32/8);
/* xhci_run_regs has eight fields and embeds 128 xhci_intr_regs */
BUILD_BUG_ON(sizeof(struct xhci_run_regs) != (8+8*128)*32/8);
@@ -443,10 +431,8 @@ Index: linux-3.10.26/drivers/usb/host/xhci.c
return 0;
unreg_pci:
xhci_unregister_pci();
-Index: linux-3.10.26/drivers/usb/host/xhci-dbg.c
-===================================================================
---- linux-3.10.26.orig/drivers/usb/host/xhci-dbg.c 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/host/xhci-dbg.c 2014-01-19 16:29:18.548615960 +0000
+--- a/drivers/usb/host/xhci-dbg.c
++++ b/drivers/usb/host/xhci-dbg.c
@@ -21,6 +21,9 @@
*/
@@ -457,10 +443,8 @@ Index: linux-3.10.26/drivers/usb/host/xhci-dbg.c
#define XHCI_INIT_VALUE 0x0
-Index: linux-3.10.26/drivers/usb/host/xhci.h
-===================================================================
---- linux-3.10.26.orig/drivers/usb/host/xhci.h 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/host/xhci.h 2014-01-19 16:29:18.548615960 +0000
+--- a/drivers/usb/host/xhci.h
++++ b/drivers/usb/host/xhci.h
@@ -29,9 +29,24 @@
#include <linux/usb/hcd.h>
@@ -487,7 +471,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.h
/* xHCI PCI Configuration Registers */
#define XHCI_SBRN_OFFSET (0x60)
-@@ -1536,8 +1551,12 @@
+@@ -1536,8 +1551,12 @@ struct xhci_hcd {
/* Compliance Mode Recovery Data */
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
@@ -500,7 +484,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci.h
};
/* convert between an HCD pointer and the corresponding EHCI_HCD */
-@@ -1703,7 +1722,7 @@
+@@ -1703,7 +1722,7 @@ void xhci_urb_free_priv(struct xhci_hcd
void xhci_free_command(struct xhci_hcd *xhci,
struct xhci_command *command);
@@ -509,11 +493,9 @@ Index: linux-3.10.26/drivers/usb/host/xhci.h
/* xHCI PCI glue */
int xhci_register_pci(void);
void xhci_unregister_pci(void);
-Index: linux-3.10.26/drivers/usb/host/xhci-mem.c
-===================================================================
---- linux-3.10.26.orig/drivers/usb/host/xhci-mem.c 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/host/xhci-mem.c 2014-01-19 16:29:18.548615960 +0000
-@@ -65,6 +65,9 @@
+--- a/drivers/usb/host/xhci-mem.c
++++ b/drivers/usb/host/xhci-mem.c
+@@ -65,6 +65,9 @@ static struct xhci_segment *xhci_segment
static void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg)
{
@@ -523,7 +505,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-mem.c
if (seg->trbs) {
dma_pool_free(xhci->segment_pool, seg->trbs, seg->dma);
seg->trbs = NULL;
-@@ -1446,9 +1449,17 @@
+@@ -1446,9 +1449,17 @@ int xhci_endpoint_init(struct xhci_hcd *
max_burst = (usb_endpoint_maxp(&ep->desc)
& 0x1800) >> 11;
}
@@ -541,11 +523,9 @@ Index: linux-3.10.26/drivers/usb/host/xhci-mem.c
break;
default:
BUG();
-Index: linux-3.10.26/drivers/usb/host/xhci-plat.c
-===================================================================
---- linux-3.10.26.orig/drivers/usb/host/xhci-plat.c 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/host/xhci-plat.c 2014-01-19 16:29:18.548615960 +0000
-@@ -25,6 +25,13 @@
+--- a/drivers/usb/host/xhci-plat.c
++++ b/drivers/usb/host/xhci-plat.c
+@@ -25,6 +25,13 @@ static void xhci_plat_quirks(struct devi
* dev struct in order to setup MSI
*/
xhci->quirks |= XHCI_PLAT;
@@ -559,7 +539,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-plat.c
}
/* called during probe() after chip reset completes */
-@@ -96,20 +103,32 @@
+@@ -96,20 +103,32 @@ static int xhci_plat_probe(struct platfo
driver = &xhci_plat_xhci_driver;
@@ -592,11 +572,9 @@ Index: linux-3.10.26/drivers/usb/host/xhci-plat.c
if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len,
driver->description)) {
-Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
-===================================================================
---- linux-3.10.26.orig/drivers/usb/host/xhci-ring.c 2014-01-09 20:25:15.000000000 +0000
-+++ linux-3.10.26/drivers/usb/host/xhci-ring.c 2014-01-19 16:29:18.548615960 +0000
-@@ -236,7 +236,6 @@
+--- a/drivers/usb/host/xhci-ring.c
++++ b/drivers/usb/host/xhci-ring.c
+@@ -236,7 +236,6 @@ static void inc_enq(struct xhci_hcd *xhc
*/
if (!chain && !more_trbs_coming)
break;
@@ -604,7 +582,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
/* If we're not dealing with 0.95 hardware or
* isoc rings on AMD 0.96 host,
* carry over the chain bit of the previous TRB
-@@ -273,16 +272,20 @@
+@@ -273,16 +272,20 @@ static void inc_enq(struct xhci_hcd *xhc
static inline int room_on_ring(struct xhci_hcd *xhci, struct xhci_ring *ring,
unsigned int num_trbs)
{
@@ -625,7 +603,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
return 1;
}
-@@ -2910,6 +2913,7 @@
+@@ -2910,6 +2913,7 @@ static int prepare_ring(struct xhci_hcd
next = ring->enqueue;
while (last_trb(xhci, ring, ring->enq_seg, next)) {
@@ -633,7 +611,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
/* If we're not dealing with 0.95 hardware or isoc rings
* on AMD 0.96 host, clear the chain bit.
*/
-@@ -2919,7 +2923,9 @@
+@@ -2919,7 +2923,9 @@ static int prepare_ring(struct xhci_hcd
next->link.control &= cpu_to_le32(~TRB_CHAIN);
else
next->link.control |= cpu_to_le32(TRB_CHAIN);
@@ -644,7 +622,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
wmb();
next->link.control ^= cpu_to_le32(TRB_CYCLE);
-@@ -3049,6 +3055,9 @@
+@@ -3049,6 +3055,9 @@ static void giveback_first_trb(struct xh
start_trb->field[3] |= cpu_to_le32(start_cycle);
else
start_trb->field[3] &= cpu_to_le32(~TRB_CYCLE);
@@ -654,7 +632,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
xhci_ring_ep_doorbell(xhci, slot_id, ep_index, stream_id);
}
-@@ -3108,6 +3117,29 @@
+@@ -3108,6 +3117,29 @@ static u32 xhci_td_remainder(unsigned in
return (remainder >> 10) << 17;
}
@@ -684,7 +662,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
/*
* For xHCI 1.0 host controllers, TD size is the number of max packet sized
* packets remaining in the TD (*not* including this TRB).
-@@ -3245,6 +3277,7 @@
+@@ -3245,6 +3277,7 @@ static int queue_bulk_sg_tx(struct xhci_
}
/* Set the TRB length, TD size, and interrupter fields. */
@@ -692,7 +670,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
urb->transfer_buffer_length -
-@@ -3254,6 +3287,13 @@
+@@ -3254,6 +3287,13 @@ static int queue_bulk_sg_tx(struct xhci_
trb_buff_len, total_packet_count, urb,
num_trbs - 1);
}
@@ -706,7 +684,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
length_field = TRB_LEN(trb_buff_len) |
remainder |
TRB_INTR_TARGET(0);
-@@ -3316,6 +3356,9 @@
+@@ -3316,6 +3356,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
int running_total, trb_buff_len, ret;
unsigned int total_packet_count;
u64 addr;
@@ -716,7 +694,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
if (urb->num_sgs)
return queue_bulk_sg_tx(xhci, mem_flags, urb, slot_id, ep_index);
-@@ -3341,6 +3384,25 @@
+@@ -3341,6 +3384,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
running_total += TRB_MAX_BUFF_SIZE;
}
/* FIXME: this doesn't deal with URB_ZERO_PACKET - need one more */
@@ -742,7 +720,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
ret = prepare_transfer(xhci, xhci->devs[slot_id],
ep_index, urb->stream_id,
-@@ -3400,6 +3462,7 @@
+@@ -3400,6 +3462,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
field |= TRB_ISP;
/* Set the TRB length, TD size, and interrupter fields. */
@@ -750,7 +728,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
urb->transfer_buffer_length -
-@@ -3409,6 +3472,10 @@
+@@ -3409,6 +3472,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
trb_buff_len, total_packet_count, urb,
num_trbs - 1);
}
@@ -761,7 +739,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
length_field = TRB_LEN(trb_buff_len) |
remainder |
TRB_INTR_TARGET(0);
-@@ -3498,7 +3565,11 @@
+@@ -3498,7 +3565,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field |= 0x1;
/* xHCI 1.0 6.4.1.2.1: Transfer Type field */
@@ -773,7 +751,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
if (urb->transfer_buffer_length > 0) {
if (setup->bRequestType & USB_DIR_IN)
field |= TRB_TX_TYPE(TRB_DATA_IN);
-@@ -3522,7 +3593,12 @@
+@@ -3522,7 +3593,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field = TRB_TYPE(TRB_DATA);
length_field = TRB_LEN(urb->transfer_buffer_length) |
@@ -786,7 +764,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
TRB_INTR_TARGET(0);
if (urb->transfer_buffer_length > 0) {
if (setup->bRequestType & USB_DIR_IN)
-@@ -3533,7 +3609,7 @@
+@@ -3533,7 +3609,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
length_field,
field | ep_ring->cycle_state);
}
@@ -795,7 +773,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
/* Save the DMA address of the last TRB in the TD */
td->last_trb = ep_ring->enqueue;
-@@ -3645,6 +3721,9 @@
+@@ -3645,6 +3721,9 @@ static int xhci_queue_isoc_tx(struct xhc
u64 start_addr, addr;
int i, j;
bool more_trbs_coming;
@@ -805,7 +783,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
ep_ring = xhci->devs[slot_id]->eps[ep_index].ring;
-@@ -3658,6 +3737,21 @@
+@@ -3658,6 +3737,21 @@ static int xhci_queue_isoc_tx(struct xhc
start_trb = &ep_ring->enqueue->generic;
start_cycle = ep_ring->cycle_state;
@@ -827,7 +805,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
urb_priv = urb->hcpriv;
/* Queue the first TRB, even if it's zero-length */
for (i = 0; i < num_tds; i++) {
-@@ -3729,9 +3823,13 @@
+@@ -3729,9 +3823,13 @@ static int xhci_queue_isoc_tx(struct xhc
} else {
td->last_trb = ep_ring->enqueue;
field |= TRB_IOC;
@@ -841,7 +819,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
/* Set BEI bit except for the last td */
if (i < num_tds - 1)
field |= TRB_BEI;
-@@ -3746,6 +3844,7 @@
+@@ -3746,6 +3844,7 @@ static int xhci_queue_isoc_tx(struct xhc
trb_buff_len = td_remain_len;
/* Set the TRB length, TD size, & interrupter fields. */
@@ -849,7 +827,7 @@ Index: linux-3.10.26/drivers/usb/host/xhci-ring.c
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
td_len - running_total);
-@@ -3755,6 +3854,10 @@
+@@ -3755,6 +3854,10 @@ static int xhci_queue_isoc_tx(struct xhc
total_packet_count, urb,
(trbs_per_td - j - 1));
}
diff --git a/target/linux/ramips/patches-3.10/999-memory-detect.patch b/target/linux/ramips/patches-3.10/999-memory-detect.patch
index 2e857fbc44..165a1f0ded 100644
--- a/target/linux/ramips/patches-3.10/999-memory-detect.patch
+++ b/target/linux/ramips/patches-3.10/999-memory-detect.patch
@@ -1,8 +1,6 @@
-Index: linux-3.10.26/arch/mips/ralink/of.c
-===================================================================
---- linux-3.10.26.orig/arch/mips/ralink/of.c 2014-01-12 11:49:40.292069849 +0100
-+++ linux-3.10.26/arch/mips/ralink/of.c 2014-01-12 12:38:01.236138974 +0100
-@@ -80,6 +80,16 @@
+--- a/arch/mips/ralink/of.c
++++ b/arch/mips/ralink/of.c
+@@ -80,6 +80,16 @@ void __init device_tree_init(void)
}
extern struct boot_param_header __image_dtb;
@@ -19,7 +17,7 @@ Index: linux-3.10.26/arch/mips/ralink/of.c
void __init plat_mem_setup(void)
{
-@@ -90,8 +100,10 @@
+@@ -90,8 +100,10 @@ void __init plat_mem_setup(void)
* parsed resulting in our memory appearing
*/
__dt_setup_arch(&__image_dtb);
diff --git a/target/linux/ramips/patches-3.10/999-raeth_fixes.patch b/target/linux/ramips/patches-3.10/999-raeth_fixes.patch
index addf84cba6..5e1bb4d2ec 100644
--- a/target/linux/ramips/patches-3.10/999-raeth_fixes.patch
+++ b/target/linux/ramips/patches-3.10/999-raeth_fixes.patch
@@ -1,8 +1,6 @@
-Index: linux-3.10.26/drivers/net/ethernet/ralink/ralink_soc_eth.c
-===================================================================
---- linux-3.10.26.orig/drivers/net/ethernet/ralink/ralink_soc_eth.c 2014-01-12 11:49:40.052069844 +0100
-+++ linux-3.10.26/drivers/net/ethernet/ralink/ralink_soc_eth.c 2014-01-12 12:49:31.776155429 +0100
-@@ -335,7 +335,7 @@
+--- a/drivers/net/ethernet/ralink/ralink_soc_eth.c
++++ b/drivers/net/ethernet/ralink/ralink_soc_eth.c
+@@ -335,7 +335,7 @@ static int fe_start_xmit(struct sk_buff
if (priv->soc->tso)
fe_start_tso(skb, dev, nr_frags, tx);
@@ -11,7 +9,7 @@ Index: linux-3.10.26/drivers/net/ethernet/ralink/ralink_soc_eth.c
struct iphdr *iph = NULL;
struct tcphdr *th = NULL;
struct ipv6hdr *ip6h = NULL;
-@@ -741,8 +741,7 @@
+@@ -741,8 +741,7 @@ static int fe_probe(struct platform_devi
dev_info(&pdev->dev, "Enabling TSO\n");
netdev->features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_IPV6_CSUM;
}
diff --git a/target/linux/rb532/Makefile b/target/linux/rb532/Makefile
index e14884f6a8..9b2b1fc475 100644
--- a/target/linux/rb532/Makefile
+++ b/target/linux/rb532/Makefile
@@ -11,7 +11,7 @@ BOARD:=rb532
BOARDNAME:=Mikrotik RouterBoard 532
FEATURES:=pci targz broken
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += wpad-mini kmod-madwifi kmod-input-rb532
diff --git a/target/linux/realview/Makefile b/target/linux/realview/Makefile
index 0e40dbf345..358806ae6d 100644
--- a/target/linux/realview/Makefile
+++ b/target/linux/realview/Makefile
@@ -14,7 +14,7 @@ CPU_TYPE:=mpcore
CPU_SUBTYPE:=vfp
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
DEVICE_TYPE:=developerboard
diff --git a/target/linux/sparc/Makefile b/target/linux/sparc/Makefile
index 74ecf901af..ee244d8b03 100644
--- a/target/linux/sparc/Makefile
+++ b/target/linux/sparc/Makefile
@@ -11,7 +11,7 @@ BOARD:=sparc
BOARDNAME:=Sun UltraSPARC
FEATURES+=fpu tgz ext4 squashfs broken
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/x86/alix2/target.mk b/target/linux/x86/alix2/target.mk
index a72ea8a767..2f4799f010 100644
--- a/target/linux/x86/alix2/target.mk
+++ b/target/linux/x86/alix2/target.mk
@@ -19,7 +19,7 @@ DEFAULT_PACKAGES += \
kmod-ledtrig-heartbeat kmod-ledtrig-gpio \
kmod-ledtrig-netdev \
kmod-cpu-msr hwclock wpad
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
CS5535_MASK:=0x0b000042
CPU_TYPE := geode
diff --git a/target/linux/x86/generic/target.mk b/target/linux/x86/generic/target.mk
index 0b814fb4fb..e14692aa2e 100644
--- a/target/linux/x86/generic/target.mk
+++ b/target/linux/x86/generic/target.mk
@@ -1,6 +1,6 @@
BOARDNAME:=Generic
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
define Target/Description
Build firmware images for x86 based boards
diff --git a/target/linux/x86/kvm_guest/target.mk b/target/linux/x86/kvm_guest/target.mk
index c1aa53c620..376a5f8372 100644
--- a/target/linux/x86/kvm_guest/target.mk
+++ b/target/linux/x86/kvm_guest/target.mk
@@ -2,4 +2,4 @@ BOARDNAME:=KVM Guest
FEATURES:=ext4 pci usb
DEFAULT_PACKAGES += kmod-virtio-balloon kmod-virtio-net kmod-virtio-random
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
diff --git a/target/linux/x86_64/Makefile b/target/linux/x86_64/Makefile
index f2d91270ff..02b297a5cf 100644
--- a/target/linux/x86_64/Makefile
+++ b/target/linux/x86_64/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=x86_64
FEATURES:=ext4 vdi vmdk targz
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
KERNELNAME:=bzImage
diff --git a/target/linux/xburst/Makefile b/target/linux/xburst/Makefile
index c2d8dad581..b798523d7c 100644
--- a/target/linux/xburst/Makefile
+++ b/target/linux/xburst/Makefile
@@ -12,7 +12,7 @@ BOARDNAME:=Ingenic XBurst
FEATURES:=targz ubifs audio
SUBTARGETS:=qi_lb60 n516 n526 id800wt
-LINUX_VERSION:=3.10.26
+LINUX_VERSION:=3.10.28
DEVICE_TYPE=other