Home Home > GIT Browse > SLE15-SP1
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Tesarik <ptesarik@suse.cz>2019-07-20 00:05:45 +0200
committerPetr Tesarik <ptesarik@suse.cz>2019-07-20 00:06:00 +0200
commit93da7308154b1ab34336fce8a0480168a919730b (patch)
treeec60a74c6d6021e80cf7f17c18ebc1f705319aff
parent8139b271a3ec8424b2ff4da6a01baeeb0018091a (diff)
net/af_iucv: remove GFP_DMA restriction for HiperTransport
(bsc#1142221 LTC#179332).
-rw-r--r--patches.suse/net-af_iucv-remove-gfp_dma-restriction-for-hipertransport59
-rw-r--r--series.conf1
2 files changed, 60 insertions, 0 deletions
diff --git a/patches.suse/net-af_iucv-remove-gfp_dma-restriction-for-hipertransport b/patches.suse/net-af_iucv-remove-gfp_dma-restriction-for-hipertransport
new file mode 100644
index 0000000000..d18d0f56c6
--- /dev/null
+++ b/patches.suse/net-af_iucv-remove-gfp_dma-restriction-for-hipertransport
@@ -0,0 +1,59 @@
+From: Julian Wiedmann <jwi@linux.ibm.com>
+Date: Tue, 18 Jun 2019 20:42:59 +0200
+Subject: net/af_iucv: remove GFP_DMA restriction for HiperTransport
+Git-commit: fdbf6326912d578a31ac4ca0933c919eadf1d54c
+Patch-mainline: v5.2-rc1
+References: bsc#1142221 LTC#179332
+
+af_iucv sockets over z/VM IUCV require that their skbs are allocated
+in DMA memory. This restriction doesn't apply to connections over
+HiperSockets. So only set this limit for z/VM IUCV sockets, thereby
+increasing the likelihood that the large (and linear!) allocations for
+HiperTransport messages succeed.
+
+Fixes: 3881ac441f64 ("af_iucv: add HiperSockets transport")
+Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
+Reviewed-by: Ursula Braun <ubraun@linux.ibm.com>
+Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Acked-by: Petr Tesarik <ptesarik@suse.com>
+---
+ net/iucv/af_iucv.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/net/iucv/af_iucv.c
++++ b/net/iucv/af_iucv.c
+@@ -588,7 +588,6 @@ static struct sock *iucv_sock_alloc(stru
+
+ sk->sk_destruct = iucv_sock_destruct;
+ sk->sk_sndtimeo = IUCV_CONN_TIMEOUT;
+- sk->sk_allocation = GFP_DMA;
+
+ sock_reset_flag(sk, SOCK_ZAPPED);
+
+@@ -782,6 +781,7 @@ vm_bind:
+ memcpy(iucv->src_user_id, iucv_userid, 8);
+ sk->sk_state = IUCV_BOUND;
+ iucv->transport = AF_IUCV_TRANS_IUCV;
++ sk->sk_allocation |= GFP_DMA;
+ if (!iucv->msglimit)
+ iucv->msglimit = IUCV_QUEUELEN_DEFAULT;
+ goto done_unlock;
+@@ -806,6 +806,8 @@ static int iucv_sock_autobind(struct soc
+ return -EPROTO;
+
+ memcpy(iucv->src_user_id, iucv_userid, 8);
++ iucv->transport = AF_IUCV_TRANS_IUCV;
++ sk->sk_allocation |= GFP_DMA;
+
+ write_lock_bh(&iucv_sk_list.lock);
+ __iucv_auto_name(iucv);
+@@ -1782,6 +1784,8 @@ static int iucv_callback_connreq(struct
+
+ niucv = iucv_sk(nsk);
+ iucv_sock_init(nsk, sk);
++ niucv->transport = AF_IUCV_TRANS_IUCV;
++ nsk->sk_allocation |= GFP_DMA;
+
+ /* Set the new iucv_sock */
+ memcpy(niucv->dst_name, ipuser + 8, 8);
diff --git a/series.conf b/series.conf
index 642262392d..592df78d76 100644
--- a/series.conf
+++ b/series.conf
@@ -47704,6 +47704,7 @@
patches.drivers/IB-hfi1-Validate-fault-injection-opcode-user-input.patch
patches.drivers/IB-hfi1-Create-inline-to-get-extended-headers.patch
patches.drivers/net-udp_gso-Allow-TX-timestamp-with-UDP-GSO.patch
+ patches.suse/net-af_iucv-remove-gfp_dma-restriction-for-hipertransport
patches.drivers/net-hns3-Fix-inconsistent-indenting.patch
patches.fixes/tcp-refine-memory-limit-test-in-tcp_fragment.patch
patches.drivers/Bluetooth-Fix-regression-with-minimum-encryption-key.patch