Index: uspace/drv/nic/ar9271/wmi.c
===================================================================
--- uspace/drv/nic/ar9271/wmi.c	(revision a6625c98dc61fa3ce3d1c863ba6a7cb12cb1eacf)
+++ uspace/drv/nic/ar9271/wmi.c	(revision 2298fc4ceaad9c6c87e039322f796d1683088cce)
@@ -245,14 +245,12 @@
 	    host2uint16_t_be(++htc_device->sequence_number);
 
-	/* Send message. */
+	/* Send message (buffer will not be needed afterwards regardless of result). */
 	errno_t rc = htc_send_control_message(htc_device, buffer, buffer_size,
 	    htc_device->endpoints.wmi_endpoint);
-	if (rc != EOK) {
-		free(buffer);
+	free(buffer);
+	if (rc != EOK) {
 		usb_log_error("Failed to send WMI message. Error: %s\n", str_error_name(rc));
 		return rc;
 	}
-
-	free(buffer);
 
 	bool clean_resp_buffer = false;
@@ -271,5 +269,4 @@
 		    response_buffer_size, NULL);
 		if (rc != EOK) {
-			free(buffer);
 			usb_log_error("Failed to receive WMI message response. "
 			    "Error: %s\n", str_error_name(rc));
@@ -279,5 +276,4 @@
 		if (response_buffer_size < sizeof(htc_frame_header_t) +
 		    sizeof(wmi_command_header_t)) {
-			free(buffer);
 			usb_log_error("Corrupted response received.\n");
 			return EINVAL;
