Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: sb: Fix assignment in if condition

A lot of code for SB drivers is in a legacy style with assignment in
if condition. This also made harder to catch some bugs (e.g. the
commit 1c98f574403d "ALSA: emu8000: Fix a use after free in
snd_emu8000_create_mixer").

This patch fixes the coding style. All are rather simple conversions
and there should be no functional changes.
(The changes in snd_emu8000_new() for hw->res_port1, 2 and 3 are
slightly different from the older ones, but this shouldn't matter
much in practice.)

Link: https://lore.kernel.org/r/20210608140540.17885-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>

+130 -89
+11 -6
sound/isa/sb/emu8000.c
··· 1029 1029 1030 1030 memset(emu->controls, 0, sizeof(emu->controls)); 1031 1031 for (i = 0; i < EMU8000_NUM_CONTROLS; i++) { 1032 - if ((err = snd_ctl_add(card, emu->controls[i] = snd_ctl_new1(mixer_defs[i], emu))) < 0) { 1032 + emu->controls[i] = snd_ctl_new1(mixer_defs[i], emu); 1033 + err = snd_ctl_add(card, emu->controls[i]); 1034 + if (err < 0) { 1033 1035 emu->controls[i] = NULL; 1034 1036 goto __error; 1035 1037 } ··· 1097 1095 hw->port1 = port; 1098 1096 hw->port2 = port + 0x400; 1099 1097 hw->port3 = port + 0x800; 1100 - if (!(hw->res_port1 = request_region(hw->port1, 4, "Emu8000-1")) || 1101 - !(hw->res_port2 = request_region(hw->port2, 4, "Emu8000-2")) || 1102 - !(hw->res_port3 = request_region(hw->port3, 4, "Emu8000-3"))) { 1098 + hw->res_port1 = request_region(hw->port1, 4, "Emu8000-1"); 1099 + hw->res_port2 = request_region(hw->port2, 4, "Emu8000-2"); 1100 + hw->res_port3 = request_region(hw->port3, 4, "Emu8000-3"); 1101 + if (!hw->res_port1 || !hw->res_port2 || !hw->res_port3) { 1103 1102 snd_printk(KERN_ERR "sbawe: can't grab ports 0x%lx, 0x%lx, 0x%lx\n", hw->port1, hw->port2, hw->port3); 1104 1103 snd_emu8000_free(hw); 1105 1104 return -EBUSY; ··· 1121 1118 } 1122 1119 1123 1120 snd_emu8000_init_hw(hw); 1124 - if ((err = snd_emu8000_create_mixer(card, hw)) < 0) { 1121 + err = snd_emu8000_create_mixer(card, hw); 1122 + if (err < 0) { 1125 1123 snd_emu8000_free(hw); 1126 1124 return err; 1127 1125 } 1128 1126 1129 - if ((err = snd_device_new(card, SNDRV_DEV_CODEC, hw, &ops)) < 0) { 1127 + err = snd_device_new(card, SNDRV_DEV_CODEC, hw, &ops); 1128 + if (err < 0) { 1130 1129 snd_emu8000_free(hw); 1131 1130 return err; 1132 1131 }
+2 -1
sound/isa/sb/emu8000_patch.c
··· 191 191 sp->v.truesize = truesize * 2; /* in bytes */ 192 192 193 193 snd_emux_terminate_all(emu->emu); 194 - if ((rc = snd_emu8000_open_dma(emu, EMU8000_RAM_WRITE)) != 0) 194 + rc = snd_emu8000_open_dma(emu, EMU8000_RAM_WRITE); 195 + if (rc) 195 196 return rc; 196 197 197 198 /* Set the address to start writing at */
+4 -2
sound/isa/sb/emu8000_pcm.c
··· 626 626 int err, i, ch; 627 627 628 628 snd_emux_terminate_all(rec->emu->emu); 629 - if ((err = emu8k_open_dram_for_pcm(rec->emu, rec->voices)) != 0) 629 + err = emu8k_open_dram_for_pcm(rec->emu, rec->voices); 630 + if (err) 630 631 return err; 631 632 rec->dram_opened = 1; 632 633 ··· 683 682 struct snd_pcm *pcm; 684 683 int err; 685 684 686 - if ((err = snd_pcm_new(card, "Emu8000 PCM", index, 1, 0, &pcm)) < 0) 685 + err = snd_pcm_new(card, "Emu8000 PCM", index, 1, 0, &pcm); 686 + if (err < 0) 687 687 return err; 688 688 pcm->private_data = emu; 689 689 pcm->private_free = snd_emu8000_pcm_free;
+39 -26
sound/isa/sb/sb16.c
··· 332 332 xdma8 = dma8[dev]; 333 333 xdma16 = dma16[dev]; 334 334 335 - if ((err = snd_sbdsp_create(card, 336 - port[dev], 337 - xirq, 338 - snd_sb16dsp_interrupt, 339 - xdma8, 340 - xdma16, 341 - SB_HW_AUTO, 342 - &chip)) < 0) 335 + err = snd_sbdsp_create(card, port[dev], xirq, snd_sb16dsp_interrupt, 336 + xdma8, xdma16, SB_HW_AUTO, &chip); 337 + if (err < 0) 343 338 return err; 344 339 345 340 acard->chip = chip; ··· 343 348 return -ENODEV; 344 349 } 345 350 chip->mpu_port = mpu_port[dev]; 346 - if (! is_isapnp_selected(dev) && (err = snd_sb16dsp_configure(chip)) < 0) 347 - return err; 351 + if (!is_isapnp_selected(dev)) { 352 + err = snd_sb16dsp_configure(chip); 353 + if (err < 0) 354 + return err; 355 + } 348 356 349 - if ((err = snd_sb16dsp_pcm(chip, 0)) < 0) 357 + err = snd_sb16dsp_pcm(chip, 0); 358 + if (err < 0) 350 359 return err; 351 360 352 361 strcpy(card->driver, ··· 370 371 xdma8 >= 0 ? "&" : "", xdma16); 371 372 372 373 if (chip->mpu_port > 0 && chip->mpu_port != SNDRV_AUTO_PORT) { 373 - if ((err = snd_mpu401_uart_new(card, 0, MPU401_HW_SB, 374 - chip->mpu_port, 375 - MPU401_INFO_IRQ_HOOK, -1, 376 - &chip->rmidi)) < 0) 374 + err = snd_mpu401_uart_new(card, 0, MPU401_HW_SB, 375 + chip->mpu_port, 376 + MPU401_INFO_IRQ_HOOK, -1, 377 + &chip->rmidi); 378 + if (err < 0) 377 379 return err; 378 380 chip->rmidi_callback = snd_mpu401_uart_interrupt; 379 381 } ··· 397 397 #else 398 398 int seqdev = 1; 399 399 #endif 400 - if ((err = snd_opl3_hwdep_new(opl3, 0, seqdev, &synth)) < 0) 400 + err = snd_opl3_hwdep_new(opl3, 0, seqdev, &synth); 401 + if (err < 0) 401 402 return err; 402 403 } 403 404 } 404 405 405 - if ((err = snd_sbmixer_new(chip)) < 0) 406 + err = snd_sbmixer_new(chip); 407 + if (err < 0) 406 408 return err; 407 409 408 410 #ifdef CONFIG_SND_SB16_CSP ··· 421 419 #endif 422 420 #ifdef SNDRV_SBAWE_EMU8000 423 421 if (awe_port[dev] > 0) { 424 - if ((err = snd_emu8000_new(card, 1, awe_port[dev], 425 - seq_ports[dev], NULL)) < 0) { 422 + err = snd_emu8000_new(card, 1, awe_port[dev], 423 + seq_ports[dev], NULL); 424 + if (err < 0) { 426 425 snd_printk(KERN_ERR PFX "fatal error - EMU-8000 synthesizer not detected at 0x%lx\n", awe_port[dev]); 427 426 428 427 return err; ··· 438 435 (mic_agc[dev] ? 0x00 : 0x01)); 439 436 spin_unlock_irqrestore(&chip->mixer_lock, flags); 440 437 441 - if ((err = snd_card_register(card)) < 0) 438 + err = snd_card_register(card); 439 + if (err < 0) 442 440 return err; 443 441 444 442 return 0; ··· 488 484 awe_port[dev] = port[dev] + 0x400; 489 485 #endif 490 486 491 - if ((err = snd_sb16_probe(card, dev)) < 0) { 487 + err = snd_sb16_probe(card, dev); 488 + if (err < 0) { 492 489 snd_card_free(card); 493 490 return err; 494 491 } ··· 511 506 static const int possible_dmas16[] = {5, 6, 7, -1}; 512 507 513 508 if (irq[dev] == SNDRV_AUTO_IRQ) { 514 - if ((irq[dev] = snd_legacy_find_free_irq(possible_irqs)) < 0) { 509 + irq[dev] = snd_legacy_find_free_irq(possible_irqs); 510 + if (irq[dev] < 0) { 515 511 snd_printk(KERN_ERR PFX "unable to find a free IRQ\n"); 516 512 return -EBUSY; 517 513 } 518 514 } 519 515 if (dma8[dev] == SNDRV_AUTO_DMA) { 520 - if ((dma8[dev] = snd_legacy_find_free_dma(possible_dmas8)) < 0) { 516 + dma8[dev] = snd_legacy_find_free_dma(possible_dmas8); 517 + if (dma8[dev] < 0) { 521 518 snd_printk(KERN_ERR PFX "unable to find a free 8-bit DMA\n"); 522 519 return -EBUSY; 523 520 } 524 521 } 525 522 if (dma16[dev] == SNDRV_AUTO_DMA) { 526 - if ((dma16[dev] = snd_legacy_find_free_dma(possible_dmas16)) < 0) { 523 + dma16[dev] = snd_legacy_find_free_dma(possible_dmas16); 524 + if (dma16[dev] < 0) { 527 525 snd_printk(KERN_ERR PFX "unable to find a free 16-bit DMA\n"); 528 526 return -EBUSY; 529 527 } ··· 599 591 res = snd_sb16_card_new(&pcard->card->dev, dev, &card); 600 592 if (res < 0) 601 593 return res; 602 - if ((res = snd_card_sb16_pnp(dev, card->private_data, pcard, pid)) < 0 || 603 - (res = snd_sb16_probe(card, dev)) < 0) { 594 + res = snd_card_sb16_pnp(dev, card->private_data, pcard, pid); 595 + if (res < 0) { 596 + snd_card_free(card); 597 + return res; 598 + } 599 + res = snd_sb16_probe(card, dev); 600 + if (res < 0) { 604 601 snd_card_free(card); 605 602 return res; 606 603 }
+10 -4
sound/isa/sb/sb16_csp.c
··· 112 112 if (csp_detect(chip, &version)) 113 113 return -ENODEV; 114 114 115 - if ((err = snd_hwdep_new(chip->card, "SB16-CSP", device, &hw)) < 0) 115 + err = snd_hwdep_new(chip->card, "SB16-CSP", device, &hw); 116 + if (err < 0) 116 117 return err; 117 118 118 - if ((p = kzalloc(sizeof(*p), GFP_KERNEL)) == NULL) { 119 + p = kzalloc(sizeof(*p), GFP_KERNEL); 120 + if (!p) { 119 121 snd_device_free(chip->card, hw); 120 122 return -ENOMEM; 121 123 } ··· 1047 1045 1048 1046 spin_lock_init(&p->q_lock); 1049 1047 1050 - if ((err = snd_ctl_add(card, p->qsound_switch = snd_ctl_new1(&snd_sb_qsound_switch, p))) < 0) { 1048 + p->qsound_switch = snd_ctl_new1(&snd_sb_qsound_switch, p); 1049 + err = snd_ctl_add(card, p->qsound_switch); 1050 + if (err < 0) { 1051 1051 p->qsound_switch = NULL; 1052 1052 goto __error; 1053 1053 } 1054 - if ((err = snd_ctl_add(card, p->qsound_space = snd_ctl_new1(&snd_sb_qsound_space, p))) < 0) { 1054 + p->qsound_space = snd_ctl_new1(&snd_sb_qsound_space, p); 1055 + err = snd_ctl_add(card, p->qsound_space); 1056 + if (err < 0) { 1055 1057 p->qsound_space = NULL; 1056 1058 goto __error; 1057 1059 }
+4 -2
sound/isa/sb/sb16_main.c
··· 703 703 unsigned char nval, oval; 704 704 int change; 705 705 706 - if ((nval = ucontrol->value.enumerated.item[0]) > 2) 706 + nval = ucontrol->value.enumerated.item[0]; 707 + if (nval > 2) 707 708 return -EINVAL; 708 709 spin_lock_irqsave(&chip->reg_lock, flags); 709 710 oval = snd_sb16_get_dma_mode(chip); ··· 837 836 struct snd_pcm *pcm; 838 837 int err; 839 838 840 - if ((err = snd_pcm_new(card, "SB16 DSP", device, 1, 1, &pcm)) < 0) 839 + err = snd_pcm_new(card, "SB16 DSP", device, 1, 1, &pcm); 840 + if (err < 0) 841 841 return err; 842 842 sprintf(pcm->name, "DSP v%i.%i", chip->version >> 8, chip->version & 0xff); 843 843 pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX;
+20 -18
sound/isa/sb/sb8.c
··· 101 101 } 102 102 103 103 if (port[dev] != SNDRV_AUTO_PORT) { 104 - if ((err = snd_sbdsp_create(card, port[dev], irq[dev], 105 - snd_sb8_interrupt, 106 - dma8[dev], 107 - -1, 108 - SB_HW_AUTO, 109 - &chip)) < 0) 104 + err = snd_sbdsp_create(card, port[dev], irq[dev], 105 + snd_sb8_interrupt, dma8[dev], 106 + -1, SB_HW_AUTO, &chip); 107 + if (err < 0) 110 108 goto _err; 111 109 } else { 112 110 /* auto-probe legacy ports */ ··· 143 145 goto _err; 144 146 } 145 147 146 - if ((err = snd_sb8dsp_pcm(chip, 0)) < 0) 148 + err = snd_sb8dsp_pcm(chip, 0); 149 + if (err < 0) 147 150 goto _err; 148 151 149 - if ((err = snd_sbmixer_new(chip)) < 0) 152 + err = snd_sbmixer_new(chip); 153 + if (err < 0) 150 154 goto _err; 151 155 152 156 if (chip->hardware == SB_HW_10 || chip->hardware == SB_HW_20) { 153 - if ((err = snd_opl3_create(card, chip->port + 8, 0, 154 - OPL3_HW_AUTO, 1, 155 - &opl3)) < 0) { 157 + err = snd_opl3_create(card, chip->port + 8, 0, 158 + OPL3_HW_AUTO, 1, &opl3); 159 + if (err < 0) 156 160 snd_printk(KERN_WARNING "sb8: no OPL device at 0x%lx\n", chip->port + 8); 157 - } 158 161 } else { 159 - if ((err = snd_opl3_create(card, chip->port, chip->port + 2, 160 - OPL3_HW_AUTO, 1, 161 - &opl3)) < 0) { 162 + err = snd_opl3_create(card, chip->port, chip->port + 2, 163 + OPL3_HW_AUTO, 1, &opl3); 164 + if (err < 0) { 162 165 snd_printk(KERN_WARNING "sb8: no OPL device at 0x%lx-0x%lx\n", 163 166 chip->port, chip->port + 2); 164 167 } 165 168 } 166 169 if (err >= 0) { 167 - if ((err = snd_opl3_hwdep_new(opl3, 0, 1, NULL)) < 0) 170 + err = snd_opl3_hwdep_new(opl3, 0, 1, NULL); 171 + if (err < 0) 168 172 goto _err; 169 173 } 170 174 171 - if ((err = snd_sb8dsp_midi(chip, 0)) < 0) 175 + err = snd_sb8dsp_midi(chip, 0); 176 + if (err < 0) 172 177 goto _err; 173 178 174 179 strcpy(card->driver, chip->hardware == SB_HW_PRO ? "SB Pro" : "SB8"); ··· 181 180 chip->port, 182 181 irq[dev], dma8[dev]); 183 182 184 - if ((err = snd_card_register(card)) < 0) 183 + err = snd_card_register(card); 184 + if (err < 0) 185 185 goto _err; 186 186 187 187 dev_set_drvdata(pdev, card);
+2 -1
sound/isa/sb/sb8_main.c
··· 567 567 int err; 568 568 size_t max_prealloc = 64 * 1024; 569 569 570 - if ((err = snd_pcm_new(card, "SB8 DSP", device, 1, 1, &pcm)) < 0) 570 + err = snd_pcm_new(card, "SB8 DSP", device, 1, 1, &pcm); 571 + if (err < 0) 571 572 return err; 572 573 sprintf(pcm->name, "DSP v%i.%i", chip->version >> 8, chip->version & 0xff); 573 574 pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX;
+2 -1
sound/isa/sb/sb8_midi.c
··· 251 251 struct snd_rawmidi *rmidi; 252 252 int err; 253 253 254 - if ((err = snd_rawmidi_new(chip->card, "SB8 MIDI", device, 1, 1, &rmidi)) < 0) 254 + err = snd_rawmidi_new(chip->card, "SB8 MIDI", device, 1, 1, &rmidi); 255 + if (err < 0) 255 256 return err; 256 257 strcpy(rmidi->name, "SB8 MIDI"); 257 258 snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT, &snd_sb8dsp_midi_output);
+6 -3
sound/isa/sb/sb_common.c
··· 238 238 if (hardware == SB_HW_ALS4000) 239 239 goto __skip_allocation; 240 240 241 - if ((chip->res_port = request_region(port, 16, "SoundBlaster")) == NULL) { 241 + chip->res_port = request_region(port, 16, "SoundBlaster"); 242 + if (!chip->res_port) { 242 243 snd_printk(KERN_ERR "sb: can't grab port 0x%lx\n", port); 243 244 snd_sbdsp_free(chip); 244 245 return -EBUSY; ··· 268 267 __skip_allocation: 269 268 chip->card = card; 270 269 chip->hardware = hardware; 271 - if ((err = snd_sbdsp_probe(chip)) < 0) { 270 + err = snd_sbdsp_probe(chip); 271 + if (err < 0) { 272 272 snd_sbdsp_free(chip); 273 273 return err; 274 274 } 275 - if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { 275 + err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); 276 + if (err < 0) { 276 277 snd_sbdsp_free(chip); 277 278 return err; 278 279 }
+30 -25
sound/isa/sb/sb_mixer.c
··· 485 485 strscpy(ctl->id.name, name, sizeof(ctl->id.name)); 486 486 ctl->id.index = index; 487 487 ctl->private_value = value; 488 - if ((err = snd_ctl_add(chip->card, ctl)) < 0) 488 + err = snd_ctl_add(chip->card, ctl); 489 + if (err < 0) 489 490 return err; 490 491 return 0; 491 492 } ··· 737 736 return 0; /* no mixer chip on SB1.x */ 738 737 case SB_HW_20: 739 738 case SB_HW_201: 740 - if ((err = snd_sbmixer_init(chip, 741 - snd_sb20_controls, 742 - ARRAY_SIZE(snd_sb20_controls), 743 - snd_sb20_init_values, 744 - ARRAY_SIZE(snd_sb20_init_values), 745 - "CTL1335")) < 0) 739 + err = snd_sbmixer_init(chip, 740 + snd_sb20_controls, 741 + ARRAY_SIZE(snd_sb20_controls), 742 + snd_sb20_init_values, 743 + ARRAY_SIZE(snd_sb20_init_values), 744 + "CTL1335"); 745 + if (err < 0) 746 746 return err; 747 747 break; 748 748 case SB_HW_PRO: 749 749 case SB_HW_JAZZ16: 750 - if ((err = snd_sbmixer_init(chip, 751 - snd_sbpro_controls, 752 - ARRAY_SIZE(snd_sbpro_controls), 753 - snd_sbpro_init_values, 754 - ARRAY_SIZE(snd_sbpro_init_values), 755 - "CTL1345")) < 0) 750 + err = snd_sbmixer_init(chip, 751 + snd_sbpro_controls, 752 + ARRAY_SIZE(snd_sbpro_controls), 753 + snd_sbpro_init_values, 754 + ARRAY_SIZE(snd_sbpro_init_values), 755 + "CTL1345"); 756 + if (err < 0) 756 757 return err; 757 758 break; 758 759 case SB_HW_16: 759 760 case SB_HW_ALS100: 760 761 case SB_HW_CS5530: 761 - if ((err = snd_sbmixer_init(chip, 762 - snd_sb16_controls, 763 - ARRAY_SIZE(snd_sb16_controls), 764 - snd_sb16_init_values, 765 - ARRAY_SIZE(snd_sb16_init_values), 766 - "CTL1745")) < 0) 762 + err = snd_sbmixer_init(chip, 763 + snd_sb16_controls, 764 + ARRAY_SIZE(snd_sb16_controls), 765 + snd_sb16_init_values, 766 + ARRAY_SIZE(snd_sb16_init_values), 767 + "CTL1745"); 768 + if (err < 0) 767 769 return err; 768 770 break; 769 771 case SB_HW_ALS4000: ··· 779 775 "ALS4000"); 780 776 if (err < 0) 781 777 return err; 782 - if ((err = snd_sbmixer_init(chip, 783 - snd_als4000_controls, 784 - ARRAY_SIZE(snd_als4000_controls), 785 - snd_als4000_init_values, 786 - ARRAY_SIZE(snd_als4000_init_values), 787 - "ALS4000")) < 0) 778 + err = snd_sbmixer_init(chip, 779 + snd_als4000_controls, 780 + ARRAY_SIZE(snd_als4000_controls), 781 + snd_als4000_init_values, 782 + ARRAY_SIZE(snd_als4000_init_values), 783 + "ALS4000"); 784 + if (err < 0) 788 785 return err; 789 786 break; 790 787 case SB_HW_DT019X: