diff options
Diffstat (limited to 'drivers/xen/xenbus/xenbus_dev_frontend.c')
-rw-r--r-- | drivers/xen/xenbus/xenbus_dev_frontend.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/xen/xenbus/xenbus_dev_frontend.c b/drivers/xen/xenbus/xenbus_dev_frontend.c index 1f4733b80c87..f3b089b7c0b6 100644 --- a/drivers/xen/xenbus/xenbus_dev_frontend.c +++ b/drivers/xen/xenbus/xenbus_dev_frontend.c | |||
@@ -442,8 +442,10 @@ static int xenbus_write_transaction(unsigned msg_type, | |||
442 | return xenbus_command_reply(u, XS_ERROR, "ENOENT"); | 442 | return xenbus_command_reply(u, XS_ERROR, "ENOENT"); |
443 | 443 | ||
444 | rc = xenbus_dev_request_and_reply(&u->u.msg, u); | 444 | rc = xenbus_dev_request_and_reply(&u->u.msg, u); |
445 | if (rc) | 445 | if (rc && trans) { |
446 | list_del(&trans->list); | ||
446 | kfree(trans); | 447 | kfree(trans); |
448 | } | ||
447 | 449 | ||
448 | out: | 450 | out: |
449 | return rc; | 451 | return rc; |