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 <lyl2019@xxxxxxxxxxxxxxxx> --- 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 _______________________________________________ greybus-dev mailing list greybus-dev@xxxxxxxxxxxxxxxx https://lists.linaro.org/mailman/listinfo/greybus-dev