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-next>] [day] [month] [year] [list]
Date:	Mon, 15 Feb 2016 05:20:36 +0000
From:	Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>
To:	Mark Brown <broonie@...nel.org>,
	Greg KH <gregkh@...uxfoundation.org>
CC:	Linux-Kernel <linux-kernel@...r.kernel.org>,
	Linux-ALSA <alsa-devel@...a-project.org>
Subject: [PATCH 0/15 v2][RFC] cleanup regmap write functions


Hi Mark

Current regmap has many similar functions
        regmap_update_bits()
        regmap_update_bits_async()
        regmap_update_bits_check()
        regmap_update_bits_check_async()
But difference is very few.
And I would like to have _force_ feature on it too.

So, these patches add new regmap_update_bits_base()
which has _check, _async, and _force option.
Above functions are now defined as macro.

I used [RFC], because regmap has big effects.

1), 6), 9) adds new regmap_xxx_update_bits_base() functions
and current each functions are merged into it by macro.

Please review carefully especially 7), 10).
I think using ~0 mask is correct for
regmap_field_write() <-> regmap_field_update_bits_base()

 1) -  5) for regmap_xxx()
 6) -  8) for regmap_field_xxx()
 9) - 11) for regmap_fields_xxx()
12) - 13) adds _force_ macro
14)       remove unused regmap_write_bits() which was one of _force_ function
15)       rsnd driver uses _force_ function for register access

BTW, I noticed #if - #else - #endif on ${LINUX}/include/linux/regmap.h are strange.
Many functions/struct/macro are defined under #ifdef CONFIG_REGMAP,
but few are defined under #else. It can be trouble ?
Do we really need this #if ?

Kuninori Morimoto (15):
       1) regmap: add regmap_update_bits_base()
       2) regmap: merge regmap_update_bits() into macro
       3) regmap: merge regmap_update_bits_async() into macro
       4) regmap: merge regmap_update_bits_check() into macro
       5) regmap: merge regmap_update_bits_check_async() into macro
       6) regmap: add regmap_field_update_bits_base()
       7) regmap: merge regmap_field_write() into macro
       8) regmap: merge regmap_field_update_bits() into macro
       9) regmap: add regmap_fields_update_bits_base()
      10) regmap: merge regmap_fields_write() into macro
      11) regmap: merge regmap_fields_update_bits() into macro
      12) regmap: add regmap_field_force_xxx() macros
      13) regmap: add regmap_fields_force_xxx() macros
      14) regmpa: remove regmap_write_bits()
      15) ASoC: rsnd: rsnd_write() / rsnd_bset() uses regmap _force_ function

 drivers/base/regmap/regmap.c | 217 ++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------------
 include/linux/regmap.h       |  94 ++++++++++++++++++++++++++++-----------------------------
 sound/soc/sh/rcar/gen.c      |  21 ++-----------
 sound/soc/sh/rcar/rsnd.h     |   2 --
 4 files changed, 87 insertions(+), 247 deletions(-)



Best regards
---
Kuninori Morimoto

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ