In gb_operation_response_send, get an extra reference
before gb_message_send() with this comment "/* Reference will
be dropped when message has been sent. */". Therefore, we
should drop the got reference not only in the error branch,
but also in the complete branch.

Signed-off-by: Lv Yunlong <lyl2...@mail.ustc.edu.cn>
---
 drivers/greybus/operation.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/greybus/operation.c b/drivers/greybus/operation.c
index 8459e9bc0749..500b3fe53a04 100644
--- a/drivers/greybus/operation.c
+++ b/drivers/greybus/operation.c
@@ -855,6 +855,10 @@ static int gb_operation_response_send(struct gb_operation 
*operation,
        if (ret)
                goto err_put_active;
 
+       /*Drop reference after message send completes. */
+       gb_operation_put_active(operation);
+       gb_operation_put(operation);
+
        return 0;
 
 err_put_active:
-- 
2.25.1


Reply via email to