linux-uconsole/drivers/firmware/google
Duncan Laurie a2204a2955 gsmi: Fix bug in append_to_eventlog sysfs handler
[ Upstream commit 655603de68 ]

The sysfs handler should return the number of bytes consumed, which in the
case of a successful write is the entire buffer.  Also fix a bug where
param.data_len was being set to (count - (2 * sizeof(u32))) instead of just
(count - sizeof(u32)).  The latter is correct because we skip over the
leading u32 which is our param.type, but we were also incorrectly
subtracting sizeof(u32) on the line where we were actually setting
param.data_len:

	param.data_len = count - sizeof(u32);

This meant that for our example event.kernel_software_watchdog with total
length 10 bytes, param.data_len was just 2 prior to this change.

To test, successfully append an event to the log with gsmi sysfs.
This sample event is for a "Kernel Software Watchdog"

> xxd -g 1 event.kernel_software_watchdog
0000000: 01 00 00 00 ad de 06 00 00 00

> cat event.kernel_software_watchdog > /sys/firmware/gsmi/append_to_eventlog

> mosys eventlog list | tail -1
14 | 2012-06-25 10:14:14 | Kernl Event | Software Watchdog

Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
Signed-off-by: Furquan Shaikh <furquan@google.com>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Justin TerAvest <teravest@chromium.org>
[zwisler: updated changelog for 2nd bug fix and upstream]
Signed-off-by: Ross Zwisler <zwisler@google.com>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-01 09:16:22 +01:00
..
coreboot_table-acpi.c firmware: coreboot: Expose the coreboot table as a bus 2018-04-23 13:37:19 +02:00
coreboot_table-of.c firmware: coreboot: Expose the coreboot table as a bus 2018-04-23 13:37:19 +02:00
coreboot_table.c firmware: coreboot: Unmap ioregion after device population 2018-11-13 11:08:37 -08:00
coreboot_table.h firmware: coreboot: Add coreboot framebuffer driver 2018-04-23 13:37:19 +02:00
framebuffer-coreboot.c firmware: coreboot: Add coreboot framebuffer driver 2018-04-23 13:37:19 +02:00
gsmi.c gsmi: Fix bug in append_to_eventlog sysfs handler 2019-12-01 09:16:22 +01:00
Kconfig firmware: coreboot: Add coreboot framebuffer driver 2018-04-23 13:37:19 +02:00
Makefile firmware: coreboot: Add coreboot framebuffer driver 2018-04-23 13:37:19 +02:00
memconsole-coreboot.c firmware: memconsole: Probe via coreboot bus 2018-04-23 13:37:19 +02:00
memconsole-x86-legacy.c dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
memconsole.c
memconsole.h
vpd.c firmware: google: check if size is valid when decoding VPD data 2019-09-21 07:16:44 +02:00
vpd_decode.c firmware: google: increment VPD key_len properly 2019-10-17 13:45:20 -07:00
vpd_decode.h firmware: google: check if size is valid when decoding VPD data 2019-09-21 07:16:44 +02:00