Commit 91311239 authored by Russell King's avatar Russell King Committed by Kalle Valo

wlcore: tidy up use of fw_log.actual_buff_size

Tidy up the use of fw_log.actual_buff_size - rather than reading it
multiple times and applying the endian conversion, read it once into
actual_len and use that instead.
Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/E1lolvS-0003Ql-NJ@rmk-PC.armlinux.org.uk
parent 11ef6bc8
......@@ -40,7 +40,7 @@ int wlcore_event_fw_logger(struct wl1271 *wl)
buffer = kzalloc(WL18XX_LOGGER_SDIO_BUFF_MAX, GFP_KERNEL);
if (!buffer) {
wl1271_error("Fail to allocate fw logger memory");
fw_log.actual_buff_size = cpu_to_le32(0);
actual_len = 0;
goto out;
}
......@@ -49,30 +49,30 @@ int wlcore_event_fw_logger(struct wl1271 *wl)
if (ret < 0) {
wl1271_error("Fail to read logger buffer, error_id = %d",
ret);
fw_log.actual_buff_size = cpu_to_le32(0);
actual_len = 0;
goto free_out;
}
memcpy(&fw_log, buffer, sizeof(fw_log));
if (le32_to_cpu(fw_log.actual_buff_size) == 0)
actual_len = le32_to_cpu(fw_log.actual_buff_size);
if (actual_len == 0)
goto free_out;
actual_len = le32_to_cpu(fw_log.actual_buff_size);
start_loc = (le32_to_cpu(fw_log.buff_read_ptr) -
internal_fw_addrbase) - addr;
end_buff_addr += le32_to_cpu(fw_log.max_buff_size);
available_len = end_buff_addr -
(le32_to_cpu(fw_log.buff_read_ptr) -
internal_fw_addrbase);
actual_len = min(actual_len, available_len);
len = actual_len;
/* Copy initial part from end of ring buffer */
len = min(actual_len, available_len);
wl12xx_copy_fwlog(wl, &buffer[start_loc], len);
clear_addr = addr + start_loc + le32_to_cpu(fw_log.actual_buff_size) +
internal_fw_addrbase;
clear_addr = addr + start_loc + actual_len + internal_fw_addrbase;
len = le32_to_cpu(fw_log.actual_buff_size) - len;
/* Copy any remaining part from beginning of ring buffer */
len = actual_len - len;
if (len) {
wl12xx_copy_fwlog(wl,
&buffer[WL18XX_LOGGER_BUFF_OFFSET],
......@@ -93,7 +93,7 @@ int wlcore_event_fw_logger(struct wl1271 *wl)
free_out:
kfree(buffer);
out:
return le32_to_cpu(fw_log.actual_buff_size);
return actual_len;
}
EXPORT_SYMBOL_GPL(wlcore_event_fw_logger);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment