mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
thunderbolt: Release request if tb_cfg_request() fails in __tb_xdomain_response()
If tb_cfg_request() fails setting up the request (for example the control channel is shut down already) it returns an error without calling the callback. To avoid leaking that memory, call tb_cfg_request_put() if tb_cfg_request() fails. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
parent
138ec65b2c
commit
4c63f29872
|
|
@ -136,6 +136,7 @@ static int __tb_xdomain_response(struct tb_ctl *ctl, const void *response,
|
|||
size_t size, enum tb_cfg_pkg_type type)
|
||||
{
|
||||
struct tb_cfg_request *req;
|
||||
int ret;
|
||||
|
||||
req = tb_cfg_request_alloc();
|
||||
if (!req)
|
||||
|
|
@ -147,7 +148,11 @@ static int __tb_xdomain_response(struct tb_ctl *ctl, const void *response,
|
|||
req->request_size = size;
|
||||
req->request_type = type;
|
||||
|
||||
return tb_cfg_request(ctl, req, response_ready, req);
|
||||
ret = tb_cfg_request(ctl, req, response_ready, req);
|
||||
if (ret)
|
||||
tb_cfg_request_put(req);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user