diff options
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/apei/erst.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c index e6cef8e1b534..6053f4780df9 100644 --- a/drivers/acpi/apei/erst.c +++ b/drivers/acpi/apei/erst.c | |||
@@ -932,8 +932,11 @@ static int erst_check_table(struct acpi_table_erst *erst_tab) | |||
932 | static int erst_open_pstore(struct pstore_info *psi); | 932 | static int erst_open_pstore(struct pstore_info *psi); |
933 | static int erst_close_pstore(struct pstore_info *psi); | 933 | static int erst_close_pstore(struct pstore_info *psi); |
934 | static ssize_t erst_reader(u64 *id, enum pstore_type_id *type, | 934 | static ssize_t erst_reader(u64 *id, enum pstore_type_id *type, |
935 | struct timespec *time); | 935 | struct timespec *time, struct pstore_info *psi); |
936 | static u64 erst_writer(enum pstore_type_id type, size_t size); | 936 | static u64 erst_writer(enum pstore_type_id type, unsigned int part, |
937 | size_t size, struct pstore_info *psi); | ||
938 | static int erst_clearer(enum pstore_type_id type, u64 id, | ||
939 | struct pstore_info *psi); | ||
937 | 940 | ||
938 | static struct pstore_info erst_info = { | 941 | static struct pstore_info erst_info = { |
939 | .owner = THIS_MODULE, | 942 | .owner = THIS_MODULE, |
@@ -942,7 +945,7 @@ static struct pstore_info erst_info = { | |||
942 | .close = erst_close_pstore, | 945 | .close = erst_close_pstore, |
943 | .read = erst_reader, | 946 | .read = erst_reader, |
944 | .write = erst_writer, | 947 | .write = erst_writer, |
945 | .erase = erst_clear | 948 | .erase = erst_clearer |
946 | }; | 949 | }; |
947 | 950 | ||
948 | #define CPER_CREATOR_PSTORE \ | 951 | #define CPER_CREATOR_PSTORE \ |
@@ -983,7 +986,7 @@ static int erst_close_pstore(struct pstore_info *psi) | |||
983 | } | 986 | } |
984 | 987 | ||
985 | static ssize_t erst_reader(u64 *id, enum pstore_type_id *type, | 988 | static ssize_t erst_reader(u64 *id, enum pstore_type_id *type, |
986 | struct timespec *time) | 989 | struct timespec *time, struct pstore_info *psi) |
987 | { | 990 | { |
988 | int rc; | 991 | int rc; |
989 | ssize_t len = 0; | 992 | ssize_t len = 0; |
@@ -1037,7 +1040,8 @@ out: | |||
1037 | return (rc < 0) ? rc : (len - sizeof(*rcd)); | 1040 | return (rc < 0) ? rc : (len - sizeof(*rcd)); |
1038 | } | 1041 | } |
1039 | 1042 | ||
1040 | static u64 erst_writer(enum pstore_type_id type, size_t size) | 1043 | static u64 erst_writer(enum pstore_type_id type, unsigned int part, |
1044 | size_t size, struct pstore_info *psi) | ||
1041 | { | 1045 | { |
1042 | struct cper_pstore_record *rcd = (struct cper_pstore_record *) | 1046 | struct cper_pstore_record *rcd = (struct cper_pstore_record *) |
1043 | (erst_info.buf - sizeof(*rcd)); | 1047 | (erst_info.buf - sizeof(*rcd)); |
@@ -1080,6 +1084,12 @@ static u64 erst_writer(enum pstore_type_id type, size_t size) | |||
1080 | return rcd->hdr.record_id; | 1084 | return rcd->hdr.record_id; |
1081 | } | 1085 | } |
1082 | 1086 | ||
1087 | static int erst_clearer(enum pstore_type_id type, u64 id, | ||
1088 | struct pstore_info *psi) | ||
1089 | { | ||
1090 | return erst_clear(id); | ||
1091 | } | ||
1092 | |||
1083 | static int __init erst_init(void) | 1093 | static int __init erst_init(void) |
1084 | { | 1094 | { |
1085 | int rc = 0; | 1095 | int rc = 0; |