chiark / gitweb /
sd-bus: reuse the KDBUS_CMD_FREE wrapper wherever appropriate
authorLennart Poettering <lennart@poettering.net>
Mon, 26 Jan 2015 16:48:14 +0000 (17:48 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 26 Jan 2015 20:52:07 +0000 (21:52 +0100)
src/libsystemd/sd-bus/bus-kernel.c
src/libsystemd/sd-bus/bus-message.c

index e73a5077b54948e5ab1a639bfd21a053009460a9..b4d0af102faf7d056cb5d46cd7a05bdfae4f8635 100644 (file)
@@ -822,10 +822,6 @@ fail:
 }
 
 int bus_kernel_take_fd(sd_bus *b) {
-        struct kdbus_cmd_free cmd_free = {
-                .size = sizeof(cmd_free),
-                .flags = 0,
-        };
         struct kdbus_bloom_parameter *bloom = NULL;
         struct kdbus_cmd_hello *hello;
         struct kdbus_item_list *items;
@@ -989,12 +985,10 @@ int bus_kernel_take_fd(sd_bus *b) {
 
         /* free returned items */
         (void) bus_kernel_cmd_free(b, hello->offset);
-
         return bus_start_running(b);
 
 fail:
-        cmd_free.offset = hello->offset;
-        (void) ioctl(b->input_fd, KDBUS_CMD_FREE, &cmd_free);
+        (void) bus_kernel_cmd_free(b, hello->offset);
         return r;
 }
 
@@ -1019,7 +1013,6 @@ int bus_kernel_connect(sd_bus *b) {
 int bus_kernel_cmd_free(sd_bus *bus, uint64_t offset) {
         struct kdbus_cmd_free cmd = {
                 .size = sizeof(cmd),
-                .flags = 0,
                 .offset = offset,
         };
         int r;
index 9ae65bebc81e636a48ceb67abd1538d0a5706249..3f2d6e74c525b5628ceb7a6b6724814f799b2e41 100644 (file)
@@ -129,14 +129,8 @@ static void message_free(sd_bus_message *m) {
 
         message_reset_parts(m);
 
-        if (m->release_kdbus) {
-                struct kdbus_cmd_free cmd_free = { };
-
-                cmd_free.size = sizeof(cmd_free);
-                cmd_free.flags = 0;
-                cmd_free.offset = (uint8_t *)m->kdbus - (uint8_t *)m->bus->kdbus_buffer;
-                (void) ioctl(m->bus->input_fd, KDBUS_CMD_FREE, &cmd_free);
-        }
+        if (m->release_kdbus)
+                bus_kernel_cmd_free(m->bus, (uint8_t *) m->kdbus - (uint8_t *) m->bus->kdbus_buffer);
 
         if (m->free_kdbus)
                 free(m->kdbus);