diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2013-05-01 22:15:18 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2013-05-01 22:15:18 +0000 |
commit | eeea332f33f9eb0b8156e38e9d40bdfa7000fc81 (patch) | |
tree | a2a1dda283fe7e318b4047bb006a7c3c850c136f /target/linux/mvebu | |
parent | de1932b8b5abf22329a4522b760973938c5dd485 (diff) | |
download | upstream-eeea332f33f9eb0b8156e38e9d40bdfa7000fc81.tar.gz upstream-eeea332f33f9eb0b8156e38e9d40bdfa7000fc81.tar.bz2 upstream-eeea332f33f9eb0b8156e38e9d40bdfa7000fc81.zip |
kernel: update linux 3.8 to 3.8.11
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36507 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/mvebu')
-rw-r--r-- | target/linux/mvebu/Makefile | 2 | ||||
-rw-r--r-- | target/linux/mvebu/patches-3.8/004-net_mvneta_fix_driver_operations_smp.patch | 71 |
2 files changed, 1 insertions, 72 deletions
diff --git a/target/linux/mvebu/Makefile b/target/linux/mvebu/Makefile index b6f917f401..815aeba85b 100644 --- a/target/linux/mvebu/Makefile +++ b/target/linux/mvebu/Makefile @@ -13,7 +13,7 @@ FEATURES:=targz usb jffs2 pci pcie gpio CFLAGS:=-Os -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp MAINTAINER:=Florian Fainelli <florian@openwrt.org> -LINUX_VERSION:=3.8.10 +LINUX_VERSION:=3.8.11 include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/mvebu/patches-3.8/004-net_mvneta_fix_driver_operations_smp.patch b/target/linux/mvebu/patches-3.8/004-net_mvneta_fix_driver_operations_smp.patch deleted file mode 100644 index d1a8e42b98..0000000000 --- a/target/linux/mvebu/patches-3.8/004-net_mvneta_fix_driver_operations_smp.patch +++ /dev/null @@ -1,71 +0,0 @@ -From: Dmitri Epshtein <dima@marvell.com> - -In order for the driver to behave properly in a SMP context, the same -transmit queue should be used by the kernel in dev_queue_xmit() and in -the driver's mvneta_tx() function. To achieve that, the driver now -implements the ->ndo_select_txq() operation. - -For now, it always returns the same transmit queue, txq_def, until the -driver is expanded to properly take advantage of the multiqueue -capabilities of the hardware. - -Without this patch, the network driver crashes the kernel almost -immediately on Armada XP platforms, if the network load is at least a -little bit parallel (i.e several threads). - -[Thomas Petazzoni: reword commit message] -Signed-off-by: Dmitri Epshtein <dima@marvell.com> -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> ---- -This is 3.8-rc material. ---- - drivers/net/ethernet/marvell/mvneta.c | 17 +++++++++++++++-- - 1 file changed, 15 insertions(+), 2 deletions(-) - ---- a/drivers/net/ethernet/marvell/mvneta.c -+++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -1310,6 +1310,17 @@ static u32 mvneta_skb_tx_csum(struct mvn - return MVNETA_TX_L4_CSUM_NOT; - } - -+static u16 mvneta_tx_policy(struct mvneta_port *pp, struct sk_buff *skb) -+{ -+ return (u16)txq_def; -+} -+ -+static u16 mvneta_select_txq(struct net_device *dev, struct sk_buff *skb) -+{ -+ struct mvneta_port *pp = netdev_priv(dev); -+ return mvneta_tx_policy(pp, skb); -+} -+ - /* Returns rx queue pointer (find last set bit) according to causeRxTx - * value - */ -@@ -1476,7 +1487,8 @@ error: - static int mvneta_tx(struct sk_buff *skb, struct net_device *dev) - { - struct mvneta_port *pp = netdev_priv(dev); -- struct mvneta_tx_queue *txq = &pp->txqs[txq_def]; -+ u16 txq_id = mvneta_tx_policy(pp, skb); -+ struct mvneta_tx_queue *txq = &pp->txqs[txq_id]; - struct mvneta_tx_desc *tx_desc; - struct netdev_queue *nq; - int frags = 0; -@@ -1486,7 +1498,7 @@ static int mvneta_tx(struct sk_buff *skb - goto out; - - frags = skb_shinfo(skb)->nr_frags + 1; -- nq = netdev_get_tx_queue(dev, txq_def); -+ nq = netdev_get_tx_queue(dev, txq_id); - - /* Get a descriptor for the first part of the packet */ - tx_desc = mvneta_txq_next_desc_get(txq); -@@ -2550,6 +2562,7 @@ static const struct net_device_ops mvnet - .ndo_change_mtu = mvneta_change_mtu, - .ndo_tx_timeout = mvneta_tx_timeout, - .ndo_get_stats64 = mvneta_get_stats64, -+ .ndo_select_queue = mvneta_select_txq, - }; - - const struct ethtool_ops mvneta_eth_tool_ops = { |