mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-20 02:34:23 +08:00
RDMA/addr: Mark addr_resolve as might_sleep()
Under one path through ib_nl_fetch_ha() this calls nlmsg_new(GFP_KERNEL) which is a sleeping call. This is a very rare path, so mark fetch_ha() and the module external entry point that conditionally calls through to fetch_ha() as might_sleep(). Link: https://lore.kernel.org/r/20200506074701.9775-2-leon@kernel.org Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
90ae0b57e4
commit
f8f2a576cb
@ -371,6 +371,8 @@ static int fetch_ha(const struct dst_entry *dst, struct rdma_dev_addr *dev_addr,
|
||||
(const void *)&dst_in6->sin6_addr;
|
||||
sa_family_t family = dst_in->sa_family;
|
||||
|
||||
might_sleep();
|
||||
|
||||
/* If we have a gateway in IB mode then it must be an IB network */
|
||||
if (has_gateway(dst, family) && dev_addr->network == RDMA_NETWORK_IB)
|
||||
return ib_nl_fetch_ha(dev_addr, daddr, seq, family);
|
||||
@ -727,6 +729,8 @@ int roce_resolve_route_from_path(struct sa_path_rec *rec,
|
||||
struct rdma_dev_addr dev_addr = {};
|
||||
int ret;
|
||||
|
||||
might_sleep();
|
||||
|
||||
if (rec->roce.route_resolved)
|
||||
return 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user