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
| ||
|
Date: Thu, 27 Sep 2012 15:13:14 +0100 From: Alan Cox <alan@...rguk.ukuu.org.uk> To: Davide Ciminaghi <ciminaghi@...dd.com> Cc: Mark Brown <broonie@...nsource.wolfsonmicro.com>, sameo@...ux.intel.com, rubini@...dd.com, giancarlo.asnaghi@...com, linux-kernel@...r.kernel.org Subject: Re: [PATCH 1/8] sta2x11-mfd : add apb-soc regs driver and factor out common code > as far as I know, nested locks are fine provided that you always take them in > the same order and release them in the opposite order (lock A, lock B, > unlock B, unlock A). So my conclusion is that nested spinlocks require > potential regmap users of sta2x11 registers to take the sta2x11-mfd spinlock > first. The pattern would be (sctl registers for instance): The release order does not matter. Taking AB and releasing AB or BA is fine. Taking AB and dropping B and retaking B is fine. Taking AB and somewhere else taking BA is not. There are performance reasons in some cases why taking AB releasing A is best with locks, but thats generally with sleepable locks. It's a bit more subtle because you often have other interactions. In particular people often come unstuck on del_timer_sync or waiting for workqueues and IRQs to finish (even in free_irq) while holding a lock that the handler needs to take. Alan -- 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