]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Jun 2014 03:52:16 +0000 (20:52 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Jun 2014 03:52:16 +0000 (20:52 -0700)
added patches:
pci-aspm-don-t-touch-aspm-if-forcibly-disabled.patch
xen-netfront-reduce-gso_max_size-to-account-for-max-tcp-header.patch

queue-3.4/drivers-hv-switch-to-use-mb-instead-of-smp_mb.patch
queue-3.4/pci-aspm-don-t-touch-aspm-if-forcibly-disabled.patch [new file with mode: 0644]
queue-3.4/series
queue-3.4/xen-netfront-reduce-gso_max_size-to-account-for-max-tcp-header.patch [new file with mode: 0644]

index d26a0b875823b35c3c5251e3a1efb11073ff6222..37bc94cda667786a612a27a7d930ab0b55d08bad 100644 (file)
@@ -22,6 +22,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
 [hq: Backported to 3.4:
  - Add the change in hv_ringbuffer_read]
 Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 ---
  drivers/hv/ring_buffer.c |    4 ++--
diff --git a/queue-3.4/pci-aspm-don-t-touch-aspm-if-forcibly-disabled.patch b/queue-3.4/pci-aspm-don-t-touch-aspm-if-forcibly-disabled.patch
new file mode 100644 (file)
index 0000000..4767dd2
--- /dev/null
@@ -0,0 +1,36 @@
+From a26d5ecb3201c11e03663a8f4a7dedc0c5f85c07 Mon Sep 17 00:00:00 2001
+From: Joe Lawrence <joe.lawrence@stratus.com>
+Date: Tue, 15 Jan 2013 15:31:28 -0500
+Subject: PCI/ASPM: Don't touch ASPM if forcibly disabled
+
+From: Joe Lawrence <joe.lawrence@stratus.com>
+
+commit a26d5ecb3201c11e03663a8f4a7dedc0c5f85c07 upstream.
+
+Don't allocate and track PCIe ASPM state when "pcie_aspm=off" is specified
+on the kernel command line.
+
+Based-on-patch-from: Matthew Garrett <mjg59@srcf.ucam.org>
+Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Reviewed-by: David Bulkow <david.bulkow@stratus.com>
+Acked-by: Myron Stowe <myron.stowe@redhat.com>
+[wyj: Backported to 3.4: context adjust]
+Signed-off-by: Yijing Wang <wangyijing@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/pci/pcie/aspm.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/pci/pcie/aspm.c
++++ b/drivers/pci/pcie/aspm.c
+@@ -583,6 +583,9 @@ void pcie_aspm_init_link_state(struct pc
+       struct pcie_link_state *link;
+       int blacklist = !!pcie_aspm_sanity_check(pdev);
++      if (!aspm_support_enabled)
++              return;
++
+       if (!pci_is_pcie(pdev) || pdev->link_state)
+               return;
+       if (pdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT &&
index fe1f2caaecc52dd31116211131437659f5996496..efad48ccb2cf781e9e5fa184d4490b5e02d05534 100644 (file)
@@ -209,3 +209,5 @@ backlight-atmel-pwm-bl-fix-gpio-polarity-in-remove.patch
 can-sja1000-fix-pre-post-_irq-handling-and-irq-handler-return-value.patch
 crypto-s390-fix-aes-xts-parameter-corruption.patch
 net-add-net_ratelimited_function-and-net_-level-_ratelimited-macros.patch
+xen-netfront-reduce-gso_max_size-to-account-for-max-tcp-header.patch
+pci-aspm-don-t-touch-aspm-if-forcibly-disabled.patch
diff --git a/queue-3.4/xen-netfront-reduce-gso_max_size-to-account-for-max-tcp-header.patch b/queue-3.4/xen-netfront-reduce-gso_max_size-to-account-for-max-tcp-header.patch
new file mode 100644 (file)
index 0000000..e8e5993
--- /dev/null
@@ -0,0 +1,86 @@
+From 9ecd1a75d977e2e8c48139c7d3efed183f898d94 Mon Sep 17 00:00:00 2001
+From: Wei Liu <wei.liu2@citrix.com>
+Date: Mon, 22 Apr 2013 02:20:41 +0000
+Subject: xen-netfront: reduce gso_max_size to account for max TCP header
+
+From: Wei Liu <wei.liu2@citrix.com>
+
+commit 9ecd1a75d977e2e8c48139c7d3efed183f898d94 upstream.
+
+The maximum packet including header that can be handled by netfront / netback
+wire format is 65535. Reduce gso_max_size accordingly.
+
+Drop skb and print warning when skb->len > 65535. This can 1) save the effort
+to send malformed packet to netback, 2) help spotting misconfiguration of
+netfront in the future.
+
+Signed-off-by: Wei Liu <wei.liu2@citrix.com>
+Acked-by: Ian Campbell <ian.campbell@citrix.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+[bwh: Backported to 3.2: adjust context]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+[hq: Backported to 3.4: adjust context]
+Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/xen-netfront.c       |   17 +++++++++++++++--
+ include/xen/interface/io/netif.h |    1 +
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/xen-netfront.c
++++ b/drivers/net/xen-netfront.c
+@@ -36,7 +36,7 @@
+ #include <linux/skbuff.h>
+ #include <linux/ethtool.h>
+ #include <linux/if_ether.h>
+-#include <linux/tcp.h>
++#include <net/tcp.h>
+ #include <linux/udp.h>
+ #include <linux/moduleparam.h>
+ #include <linux/mm.h>
+@@ -492,6 +492,16 @@ static int xennet_start_xmit(struct sk_b
+       unsigned int len = skb_headlen(skb);
+       unsigned long flags;
++      /* If skb->len is too big for wire format, drop skb and alert
++       * user about misconfiguration.
++       */
++      if (unlikely(skb->len > XEN_NETIF_MAX_TX_SIZE)) {
++              net_alert_ratelimited(
++                      "xennet: skb->len = %u, too big for wire format\n",
++                      skb->len);
++              goto drop;
++      }
++
+       frags += DIV_ROUND_UP(offset + len, PAGE_SIZE);
+       if (unlikely(frags > MAX_SKB_FRAGS + 1)) {
+               printk(KERN_ALERT "xennet: skb rides the rocket: %d frags\n",
+@@ -1045,7 +1055,8 @@ err:
+ static int xennet_change_mtu(struct net_device *dev, int mtu)
+ {
+-      int max = xennet_can_sg(dev) ? 65535 - ETH_HLEN : ETH_DATA_LEN;
++      int max = xennet_can_sg(dev) ?
++              XEN_NETIF_MAX_TX_SIZE - MAX_TCP_HEADER : ETH_DATA_LEN;
+       if (mtu > max)
+               return -EINVAL;
+@@ -1349,6 +1360,8 @@ static struct net_device * __devinit xen
+       SET_ETHTOOL_OPS(netdev, &xennet_ethtool_ops);
+       SET_NETDEV_DEV(netdev, &dev->dev);
++      netif_set_gso_max_size(netdev, XEN_NETIF_MAX_TX_SIZE - MAX_TCP_HEADER);
++
+       np->netdev = netdev;
+       netif_carrier_off(netdev);
+--- a/include/xen/interface/io/netif.h
++++ b/include/xen/interface/io/netif.h
+@@ -65,6 +65,7 @@
+ #define _XEN_NETTXF_extra_info                (3)
+ #define  XEN_NETTXF_extra_info                (1U<<_XEN_NETTXF_extra_info)
++#define XEN_NETIF_MAX_TX_SIZE 0xFFFF
+ struct xen_netif_tx_request {
+     grant_ref_t gref;      /* Reference to buffer page */
+     uint16_t offset;       /* Offset within buffer page */