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
@@ -162,10 +167,16 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
162
167
goto err ;
163
168
}
164
169
170
+ ret = devm_add_action (& chip -> dev , tpm_bios_log_free , log -> bios_event_log );
171
+ if (ret ) {
172
+ log -> bios_event_log = NULL ;
173
+ goto err ;
174
+ }
175
+
165
176
return format ;
166
177
167
178
err :
168
- devm_kfree ( & chip -> dev , log -> bios_event_log );
179
+ tpm_bios_log_free ( log -> bios_event_log );
169
180
log -> bios_event_log = NULL ;
170
181
return ret ;
171
182
}
You can’t perform that action at this time.
0 commit comments