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

Configure Feed

Select the types of activity you want to include in your feed.

ALSA: at73c213: Use guard() for mutex locks

Replace the manual mutex lock/unlock pairs with guard() for code
simplification.

Only code refactoring, and no behavior change.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250829151335.7342-10-tiwai@suse.de

+10 -29
+10 -29
sound/spi/at73c213.c
··· 401 401 int mask = (kcontrol->private_value >> 16) & 0xff; 402 402 int invert = (kcontrol->private_value >> 24) & 0xff; 403 403 404 - mutex_lock(&chip->mixer_lock); 404 + guard(mutex)(&chip->mixer_lock); 405 405 406 406 ucontrol->value.integer.value[0] = 407 407 (chip->reg_image[reg] >> shift) & mask; ··· 409 409 if (invert) 410 410 ucontrol->value.integer.value[0] = 411 411 mask - ucontrol->value.integer.value[0]; 412 - 413 - mutex_unlock(&chip->mixer_lock); 414 412 415 413 return 0; 416 414 } ··· 429 431 val = mask - val; 430 432 val <<= shift; 431 433 432 - mutex_lock(&chip->mixer_lock); 434 + guard(mutex)(&chip->mixer_lock); 433 435 434 436 val = (chip->reg_image[reg] & ~(mask << shift)) | val; 435 437 change = val != chip->reg_image[reg]; 436 438 retval = snd_at73c213_write_reg(chip, reg, val); 437 - 438 - mutex_unlock(&chip->mixer_lock); 439 439 440 440 if (retval) 441 441 return retval; ··· 469 473 int mask = (kcontrol->private_value >> 24) & 0xff; 470 474 int invert = (kcontrol->private_value >> 22) & 1; 471 475 472 - mutex_lock(&chip->mixer_lock); 476 + guard(mutex)(&chip->mixer_lock); 473 477 474 478 ucontrol->value.integer.value[0] = 475 479 (chip->reg_image[left_reg] >> shift_left) & mask; ··· 482 486 ucontrol->value.integer.value[1] = 483 487 mask - ucontrol->value.integer.value[1]; 484 488 } 485 - 486 - mutex_unlock(&chip->mixer_lock); 487 489 488 490 return 0; 489 491 } ··· 508 514 val1 <<= shift_left; 509 515 val2 <<= shift_right; 510 516 511 - mutex_lock(&chip->mixer_lock); 517 + guard(mutex)(&chip->mixer_lock); 512 518 513 519 val1 = (chip->reg_image[left_reg] & ~(mask << shift_left)) | val1; 514 520 val2 = (chip->reg_image[right_reg] & ~(mask << shift_right)) | val2; 515 521 change = val1 != chip->reg_image[left_reg] 516 522 || val2 != chip->reg_image[right_reg]; 517 523 retval = snd_at73c213_write_reg(chip, left_reg, val1); 518 - if (retval) { 519 - mutex_unlock(&chip->mixer_lock); 520 - goto out; 521 - } 524 + if (retval) 525 + return retval; 522 526 retval = snd_at73c213_write_reg(chip, right_reg, val2); 523 - if (retval) { 524 - mutex_unlock(&chip->mixer_lock); 525 - goto out; 526 - } 527 - 528 - mutex_unlock(&chip->mixer_lock); 527 + if (retval) 528 + return retval; 529 529 530 530 return change; 531 - 532 - out: 533 - return retval; 534 531 } 535 532 536 533 #define snd_at73c213_mono_switch_info snd_ctl_boolean_mono_info ··· 534 549 int shift = (kcontrol->private_value >> 8) & 0xff; 535 550 int invert = (kcontrol->private_value >> 24) & 0xff; 536 551 537 - mutex_lock(&chip->mixer_lock); 552 + guard(mutex)(&chip->mixer_lock); 538 553 539 554 ucontrol->value.integer.value[0] = 540 555 (chip->reg_image[reg] >> shift) & 0x01; ··· 542 557 if (invert) 543 558 ucontrol->value.integer.value[0] = 544 559 0x01 - ucontrol->value.integer.value[0]; 545 - 546 - mutex_unlock(&chip->mixer_lock); 547 560 548 561 return 0; 549 562 } ··· 566 583 val = mask - val; 567 584 val <<= shift; 568 585 569 - mutex_lock(&chip->mixer_lock); 586 + guard(mutex)(&chip->mixer_lock); 570 587 571 588 val |= (chip->reg_image[reg] & ~(mask << shift)); 572 589 change = val != chip->reg_image[reg]; 573 590 574 591 retval = snd_at73c213_write_reg(chip, reg, val); 575 - 576 - mutex_unlock(&chip->mixer_lock); 577 592 578 593 if (retval) 579 594 return retval;