doit_reply_value() directly returns on get counter failure, which results
in stale sk_buff and genetlink header that aren't cleaned up. Fix it.

Fixes: c36218dc49f5 ("drm/ras: Introduce the DRM RAS infrastructure over 
generic netlink")
Signed-off-by: Raag Jadav <[email protected]>
---
 drivers/gpu/drm/drm_ras.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_ras.c b/drivers/gpu/drm/drm_ras.c
index d6eab29a1394..262a75f0c493 100644
--- a/drivers/gpu/drm/drm_ras.c
+++ b/drivers/gpu/drm/drm_ras.c
@@ -207,8 +207,11 @@ static int doit_reply_value(struct genl_info *info, u32 
node_id,
 
        ret = get_node_error_counter(node_id, error_id,
                                     &error_name, &value);
-       if (ret)
+       if (ret) {
+               genlmsg_cancel(msg, hdr);
+               nlmsg_free(msg);
                return ret;
+       }
 
        ret = msg_reply_value(msg, error_id, error_name, value);
        if (ret) {
-- 
2.43.0

Reply via email to