Commit 1e5185c
can: raw: add locking for raw flags bitfield
With commit 890e519 ("can: raw: use bitfields to store flags in
struct raw_sock") the formerly separate integer values have been integrated
into a single bitfield. This led to a read-modify-write operation when
changing a flag in raw_setsockopt() which now needs a locking to prevent
concurrent access.
Instead of adding a lock/unlock hell in each of the flag manipulations this
patch introduces a wrapper for a new raw_setsockopt_locked() function
analogue to the isotp_setsockopt[_locked]() approach in net/can/isotp.c
Fixes: 890e519 ("can: raw: use bitfields to store flags in struct raw_sock")
Reported-by: Eulgyu Kim <eulgyukim@snu.ac.kr>
Closes: https://lore.kernel.org/linux-can/20260503112200.22727-1-eulgyukim@snu.ac.kr/
Tested-by: Eulgyu Kim <eulgyukim@snu.ac.kr>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Reviewed-by: Vincent Mailhol <mailhol@kernel.org>
Tested-by: Vincent Mailhol <mailhol@kernel.org>
Link: https://patch.msgid.link/20260504111928.41856-1-socketcan@hartkopp.net
[mkl: use Closes tag instead of Link]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>1 parent c43122f commit 1e5185c
1 file changed
Lines changed: 30 additions & 36 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
562 | 562 | | |
563 | 563 | | |
564 | 564 | | |
565 | | - | |
566 | | - | |
| 565 | + | |
| 566 | + | |
567 | 567 | | |
568 | 568 | | |
569 | 569 | | |
| |||
575 | 575 | | |
576 | 576 | | |
577 | 577 | | |
578 | | - | |
579 | | - | |
580 | | - | |
581 | 578 | | |
582 | 579 | | |
583 | 580 | | |
| |||
598 | 595 | | |
599 | 596 | | |
600 | 597 | | |
601 | | - | |
602 | | - | |
603 | | - | |
604 | 598 | | |
605 | | - | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
611 | | - | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
612 | 603 | | |
613 | 604 | | |
614 | 605 | | |
| |||
622 | 613 | | |
623 | 614 | | |
624 | 615 | | |
625 | | - | |
| 616 | + | |
626 | 617 | | |
627 | 618 | | |
628 | 619 | | |
| |||
642 | 633 | | |
643 | 634 | | |
644 | 635 | | |
645 | | - | |
646 | | - | |
647 | | - | |
648 | | - | |
649 | | - | |
650 | 636 | | |
651 | 637 | | |
652 | 638 | | |
| |||
658 | 644 | | |
659 | 645 | | |
660 | 646 | | |
661 | | - | |
662 | | - | |
663 | | - | |
664 | 647 | | |
665 | | - | |
666 | | - | |
667 | | - | |
668 | | - | |
669 | | - | |
670 | | - | |
| 648 | + | |
| 649 | + | |
671 | 650 | | |
672 | 651 | | |
673 | 652 | | |
| |||
676 | 655 | | |
677 | 656 | | |
678 | 657 | | |
679 | | - | |
| 658 | + | |
680 | 659 | | |
681 | 660 | | |
682 | 661 | | |
| |||
685 | 664 | | |
686 | 665 | | |
687 | 666 | | |
688 | | - | |
689 | | - | |
690 | | - | |
691 | | - | |
692 | | - | |
693 | 667 | | |
694 | 668 | | |
695 | 669 | | |
| |||
769 | 743 | | |
770 | 744 | | |
771 | 745 | | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
772 | 766 | | |
773 | 767 | | |
774 | 768 | | |
| |||
0 commit comments