diff options
author | Yuval Shaia <yuval.shaia@oracle.com> | 2017-12-13 11:25:19 +0100 |
---|---|---|
committer | Jason Gunthorpe <jgg@mellanox.com> | 2017-12-13 18:31:57 +0100 |
commit | 9d98e19ba08f6aa33a4a1414f3dfe8440e67530c (patch) | |
tree | acb548ca9679b56978a5bafdb08f85d3e79f85c7 | |
parent | iw_cxgb4: only insert drain cqes if wq is flushed (diff) | |
download | linux-9d98e19ba08f6aa33a4a1414f3dfe8440e67530c.tar.xz linux-9d98e19ba08f6aa33a4a1414f3dfe8440e67530c.zip |
IB/ipoib: Restore MM behavior in case of tx_ring allocation failure
memalloc_noio_save modifies the behavior of MM, we must restore it after
we are done.
Fixes: d83187dda9b9 ("IB/IPoIB: Convert IPoIB to memalloc_noio_* calls")
Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_cm.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c index 87f4bd99cdf7..2c13123bfd69 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c @@ -1145,6 +1145,7 @@ static int ipoib_cm_tx_init(struct ipoib_cm_tx *p, u32 qpn, noio_flag = memalloc_noio_save(); p->tx_ring = vzalloc(ipoib_sendq_size * sizeof(*p->tx_ring)); if (!p->tx_ring) { + memalloc_noio_restore(noio_flag); ret = -ENOMEM; goto err_tx; } |