Re: [PATCH] efi: pstore: Drop efivar lock when efi_pstore_open() returns with an error
"Ard Biesheuvel" <[email protected]>
| Newsgroups | org.kernel.vger.linux-efi,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Hi Thomas, On Mon, 27 Apr 2026, at 17:56, Thomas Huth wrote: > From: Thomas Huth <[email protected]> > > If kzalloc fails, the function returns -ENOMEM without calling > efivar_unlock(). Since open() returned an error, the calling site > in pstore_get_backend_records() won't call the close() function, so > the lock is never released. Thus drop the lock in case of errors here. > > Fixes: 859748255b434 ("efi: pstore: Omit efivars caching EFI varstore > access layer") > Assisted-by: Claude:claude-opus-4-6 > Signed-off-by: Thomas Huth <[email protected]> > --- > drivers/firmware/efi/efi-pstore.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > Queued in efi/urgent - thanks. > diff --git a/drivers/firmware/efi/efi-pstore.c > b/drivers/firmware/efi/efi-pstore.c > index a253b61449459..a5db3534f0a63 100644 > --- a/drivers/firmware/efi/efi-pstore.c > +++ b/drivers/firmware/efi/efi-pstore.c > @@ -60,8 +60,10 @@ static int efi_pstore_open(struct pstore_info *psi) > return err; > > psi->data = kzalloc(record_size, GFP_KERNEL); > - if (!psi->data) > + if (!psi->data) { > + efivar_unlock(); > return -ENOMEM; > + } > > return 0; > } > -- > 2.53.0