linux-brain/sound/isa
Arnd Bergmann eadf95a680 ALSA: opti9xx: shut up gcc-10 range warning
commit 5ce00760a84848d008554c693ceb6286f4d9c509 upstream.

gcc-10 points out a few instances of suspicious integer arithmetic
leading to value truncation:

sound/isa/opti9xx/opti92x-ad1848.c: In function 'snd_opti9xx_configure':
sound/isa/opti9xx/opti92x-ad1848.c:322:43: error: overflow in conversion from 'int' to 'unsigned char' changes value from '(int)snd_opti9xx_read(chip, 3) & -256 | 240' to '240' [-Werror=overflow]
  322 |   (snd_opti9xx_read(chip, reg) & ~(mask)) | ((value) & (mask)))
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
sound/isa/opti9xx/opti92x-ad1848.c:351:3: note: in expansion of macro 'snd_opti9xx_write_mask'
  351 |   snd_opti9xx_write_mask(chip, OPTi9XX_MC_REG(3), 0xf0, 0xff);
      |   ^~~~~~~~~~~~~~~~~~~~~~
sound/isa/opti9xx/miro.c: In function 'snd_miro_configure':
sound/isa/opti9xx/miro.c:873:40: error: overflow in conversion from 'int' to 'unsigned char' changes value from '(int)snd_miro_read(chip, 3) & -256 | 240' to '240' [-Werror=overflow]
  873 |   (snd_miro_read(chip, reg) & ~(mask)) | ((value) & (mask)))
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
sound/isa/opti9xx/miro.c:1010:3: note: in expansion of macro 'snd_miro_write_mask'
 1010 |   snd_miro_write_mask(chip, OPTi9XX_MC_REG(3), 0xf0, 0xff);
      |   ^~~~~~~~~~~~~~~~~~~

These are all harmless here as only the low 8 bit are passed down
anyway. Change the macros to inline functions to make the code
more readable and also avoid the warning.

Strictly speaking those functions also need locking to make the
read/write pair atomic, but it seems unlikely that anyone would
still run into that issue.

Fixes: 1841f613fd ("[ALSA] Add snd-miro driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20200429190216.85919-1-arnd@arndb.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-06 08:13:32 +02:00
..
ad1816a ALSA: ad1816a: Fix sparse warning wrt PCM format type 2018-07-27 09:05:27 +02:00
ad1848 ALSA: ad1848: fix format string overflow warning 2017-07-18 17:52:24 +02:00
cs423x ALSA: cs4236: fix error return comparison of an unsigned integer 2020-01-09 10:19:02 +01:00
es1688 ALSA: isa: Remove empty init and exit 2018-08-03 16:11:35 +02:00
galaxy ALSA: galaxy: Mark expected switch fall-throughs 2018-08-03 12:20:58 +02:00
gus ALSA: isa: Remove empty init and exit 2018-08-03 16:11:35 +02:00
msnd ALSA: msnd: Use NULL instead of 0 2018-07-26 08:31:33 +02:00
opti9xx ALSA: opti9xx: shut up gcc-10 range warning 2020-05-06 08:13:32 +02:00
sb ALSA: sb8: add a check for request_region 2019-04-20 09:15:55 +02:00
wavefront ALSA: wavefront: Convert timers to use timer_setup() 2017-10-24 21:33:03 +02:00
wss ALSA: wss: Fix invalid snd_free_pages() at error path 2018-12-05 19:32:08 +01:00
adlib.c Annotate hardware config module parameters in sound/isa/ 2017-04-20 12:02:32 +01:00
als100.c ALSA: als100: constify pnp_card_device_id 2017-08-17 12:42:19 +02:00
azt2320.c ALSA: azt2320: constify pnp_card_device_id 2017-08-17 12:42:21 +02:00
cmi8328.c ALSA: cmi8328: array_find() can be static 2018-04-23 08:48:54 +02:00
cmi8330.c ALSA: cmi8330: constify pnp_card_device_id 2017-08-17 12:42:22 +02:00
es18xx.c ALSA: es18xx: mark expected switch fall-through 2018-08-03 12:21:02 +02:00
Kconfig ALSA: Fix references to Documentation/.*/MultiSound 2018-06-26 17:45:31 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
opl3sa2.c ALSA: opl3sa2: constify pnp_device_id and pnp_card_device_id 2017-08-17 12:42:16 +02:00
sc6000.c ALSA: sc6000: fix spelling mistake: "iomaped" -> "iomapped" 2018-05-02 16:01:15 +02:00
sscape.c ALSA: sscape: constify pnp_card_device_id 2017-08-17 12:42:31 +02:00