From: Doug Ledford Date: Sat, 23 Apr 2016 00:14:58 +0000 (-0400) Subject: IB/core: Fix oops in ib_cache_gid_set_default_gid X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=f4e7de63ab273b6a5e35c82eb4fc6363c855ddd4;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git IB/core: Fix oops in ib_cache_gid_set_default_gid 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 --- diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c index cb00d59da456..c2e257d97eff 100644 --- a/drivers/infiniband/core/cache.c +++ b/drivers/infiniband/core/cache.c @@ -691,7 +691,8 @@ void ib_cache_gid_set_default_gid(struct ib_device *ib_dev, u8 port, NULL); /* Coudn't find default GID location */ - WARN_ON(ix < 0); + if (WARN_ON(ix < 0)) + goto release; zattr_type.gid_type = gid_type;