File tree 1 file changed +13
-2
lines changed
drivers/char/tpm/eventlog 1 file changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -63,6 +63,11 @@ static bool tpm_is_tpm2_log(void *bios_event_log, u64 len)
63
63
return n == 0 ;
64
64
}
65
65
66
+ static void tpm_bios_log_free (void * data )
67
+ {
68
+ kvfree (data );
69
+ }
70
+
66
71
/* read binary bios log */
67
72
int tpm_read_log_acpi (struct tpm_chip * chip )
68
73
{
@@ -136,7 +141,7 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
136
141
}
137
142
138
143
/* malloc EventLog space */
139
- log -> bios_event_log = devm_kmalloc ( & chip -> dev , len , GFP_KERNEL );
144
+ log -> bios_event_log = kvmalloc ( len , GFP_KERNEL );
140
145
if (!log -> bios_event_log )
141
146
return - ENOMEM ;
142
147
@@ -161,10 +166,16 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
161
166
goto err ;
162
167
}
163
168
169
+ ret = devm_add_action (& chip -> dev , tpm_bios_log_free , log -> bios_event_log );
170
+ if (ret ) {
171
+ log -> bios_event_log = NULL ;
172
+ goto err ;
173
+ }
174
+
164
175
return format ;
165
176
166
177
err :
167
- devm_kfree ( & chip -> dev , log -> bios_event_log );
178
+ tpm_bios_log_free ( log -> bios_event_log );
168
179
log -> bios_event_log = NULL ;
169
180
return ret ;
170
181
}
You can’t perform that action at this time.
0 commit comments