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] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 27 Sep 2012 10:39:32 +0200
From:	Davide Ciminaghi <ciminaghi@...dd.com>
To:	Mark Brown <broonie@...nsource.wolfsonmicro.com>
Cc:	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

On Wed, Sep 26, 2012 at 05:49:33PM +0100, Mark Brown wrote:
> On Wed, Sep 26, 2012 at 06:31:45PM +0200, Davide Ciminaghi wrote:
> 
> > Oh, and there's another problem (I'm looking at the code right now, I had
> > forgotten about this): the clock framework also asks for a spinlock_t *.
> > Regmap has its own spinlock (or mutex), and I don't think it would be a
> > good idea trying to export it.
> 
> Why is this a problem?  Nested spinlocks are perfectly fine.

sorry, maybe my understanding of regmap is poor, but the problem I see is
that the regmap spinlock belongs to struct regmap, which is defined in
drivers/regmap/internal.h, so it is not visible to the caller(s)
(sta2x11-mfd in this case). My interpretation is that the reason for hiding
struct regmap (and the spinlock as a consequence) has to do with what
object-oriented people call "information hiding", so exporting the spinlock
address would somehow break the design.
We could add some regmap_get_lock_address() and read the spinlock
address from sta2x11-mfd, but then to be generic we should keep into account
that a mutex could be used by some bus, so the function prototype could for
example look like this:

void regmap_get_lock_address(struct regmap *, spinlock_t *s, struct mutex *m);

so, if a spinlock is used s would be filled with the spinlock's address (and
m set to NULL), while if a mutex is used, m would be set to the address of
the mutex (and s set to NULL). My personal opinion is that introducing 
such a function would expose too many implementation details to regmap
users, but if you think it is ok, this solution would of course be very simple.


Thanks
Davide
--
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