[PATCH 4.5 121/200] IB/core: Fix oops in ib_cache_gid_set_default_gid
From: Greg Kroah-Hartman
Date: Mon May 02 2016 - 21:08:55 EST
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Doug Ledford <dledford@xxxxxxxxxx>
commit f4e7de63ab273b6a5e35c82eb4fc6363c855ddd4 upstream.
When we fail to find the default gid index, we can't continue
processing in this routine or else we will pass a negative
index to later routines resulting in invalid memory access
attempts and a kernel oops.
Fixes: 03db3a2d81e6 (IB/core: Add RoCE GID table management)
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
drivers/infiniband/core/cache.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/drivers/infiniband/core/cache.c
+++ b/drivers/infiniband/core/cache.c
@@ -691,7 +691,8 @@ void ib_cache_gid_set_default_gid(struct
NULL);
/* Coudn't find default GID location */
- WARN_ON(ix < 0);
+ if (WARN_ON(ix < 0))
+ goto release;
zattr_type.gid_type = gid_type;