lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <A5ED84D3BB3A384992CBB9C77DEDA4D4137FC29E@USINDEM103.corp.hds.com>
Date:	Tue, 14 Aug 2012 21:38:20 +0000
From:	Seiji Aguchi <seiji.aguchi@....com>
To:	Mike Waychison <mikew@...gle.com>
CC:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"Luck, Tony (tony.luck@...el.com)" <tony.luck@...el.com>,
	"Matthew Garrett (mjg@...hat.com)" <mjg@...hat.com>,
	"dzickus@...hat.com" <dzickus@...hat.com>,
	"dle-develop@...ts.sourceforge.net" 
	<dle-develop@...ts.sourceforge.net>,
	Satoru Moriya <satoru.moriya@....com>
Subject: RE: efi_pstore: question about how to remove create_sysfs_entry()
 from a write callback.

> 
> Something like this (pseudo) may work:
> 
> /* Loop until we have all entries in efivars. */ while (1) {
>   variable_name = kzalloc(1024, GFP_KERNEL );
>   spin_lock_irqsave(&efivars->lock);
>   bool found = false;
>   while (1) {
>      ret = ops->get_next_variable(variable_name)
>      if (ret == EFI_NOT_FOUND)
>         break;
>      if (!variable_is_already_present(variable, &efivars->list) {
>        found = true;
>        break;
>      }
>   }
>   if (!found) {
>     kfree(variable_name);
>     break;
>   }
>   <Register in sysfs>
> }
> 

Thanks. It seems to work.
I will create a patch based on your pseudo code above.

> 
> If we are calling into pstore_info ops though from interrupt context, it seems we'll need to fix the immediate problem of updating the
> locking throughout to be interrupt safe.
> 

I agree with you. It should be fixing.  I will update the locking to be interrupt safe as well.

Seiji
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ