[PATCH v4 0/4] Add support for Vendor Defined Error Types in Einj Module

From: Avadhut Naik
Date: Tue Jun 20 2023 - 23:51:44 EST


From: Avadhut Naik <Avadhut.Naik@xxxxxxx>

This patchset adds support for Vendor Defined Error types in the einj
module by exporting a binary blob file in module's debugfs directory.
Userspace tools can write OEM Defined Structures into the blob file as
part of injecting Vendor defined errors.

The first patch refactors available_error_type_show() function to ensure
all errors supported by the platform are output through einj module's
available_error_type file in debugfs.

The second patch adds a write callback for binary blobs created through
debugfs_create_blob() API.

The third patch fixes the permissions of panicinfo file in debugfs to
ensure it remains read-only

The fourth patch adds the required support i.e. establishing the memory
mapping and exporting it through debugfs blob file for Vendor-defined
Error types.

Changes in v2:
- Split the v1 patch, as was recommended, to have a separate patch for
changes in debugfs.
- Refactored available_error_type_show() function into a separate patch.
- Changed file permissions to octal format to remove checkpatch warnings.

Changes in v3:
- Use BIT macro for generating error masks instead of hex values since
ACPI spec uses bit numbers.
- Handle the corner case of acpi_os_map_iomem() returning NULL through
a local variable to a store the size of OEM defined data structure.

Changes in v4:
- Fix permissions for panicinfo file in debugfs.
- Replace acpi_os_map_iomem() and acpi_os_unmap_iomem() calls with
acpi_os_map_memory() and acpi_os_unmap_memory() respectively to avert
sparse warnings as suggested by Alexey.

Avadhut Naik (4):
ACPI: APEI: EINJ: Refactor available_error_type_show()
fs: debugfs: Add write functionality to debugfs blobs
platform/chrome: cros_ec_debugfs: Fix permissions for panicinfo
ACPI: APEI: EINJ: Add support for vendor defined error types

drivers/acpi/apei/einj.c | 67 ++++++++++++++++-------
drivers/platform/chrome/cros_ec_debugfs.c | 2 +-
fs/debugfs/file.c | 28 ++++++++--
3 files changed, 70 insertions(+), 27 deletions(-)

--
2.34.1