Commit ebfb5e8
Revert "wifi: wilc1000: convert list management to RCU"
This reverts commit f236464
Commit f236464 ("wifi: wilc1000: convert list management to RCU")
replaced SRCU with RCU, aiming to simplify RCU usage in the driver. No
documentation or commit history hinted about why SRCU has been preferred
in original design, so it has been assumed to be safe to do this
conversion.
Unfortunately, some static analyzers raised warnings, confirmed by runtime
checker, not long after the merge. At least three different issues arose
when switching to RCU:
- wilc_wlan_txq_filter_dup_tcp_ack is executed in a RCU read critical
section yet calls wait_for_completion_timeout
- wilc_wfi_init_mon_interface calls kmalloc and register_netdevice while
manipulating a vif retrieved from vif list
- set_channel sends command to chip (and so, also waits for a completion)
while holding a vif retrieved from vif list (so, in RCU read critical
section)
Some of those issues are not trivial to fix and would need bigger driver
rework. Fix those issues by reverting the SRCU to RCU conversion commit
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/linux-wireless/3b46ec7c-baee-49fd-b760-3bc12fb12eaf@moroto.mountain/
Fixes: f236464 ("wifi: wilc1000: convert list management to RCU")
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240528-wilc_revert_srcu_to_rcu-v1-1-bce096e0798c@bootlin.com1 parent 10bc855 commit ebfb5e8
5 files changed
Lines changed: 64 additions & 45 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
| 240 | + | |
240 | 241 | | |
241 | | - | |
| 242 | + | |
242 | 243 | | |
243 | 244 | | |
244 | | - | |
| 245 | + | |
245 | 246 | | |
246 | 247 | | |
247 | 248 | | |
| |||
252 | 253 | | |
253 | 254 | | |
254 | 255 | | |
255 | | - | |
| 256 | + | |
256 | 257 | | |
257 | 258 | | |
258 | 259 | | |
| |||
805 | 806 | | |
806 | 807 | | |
807 | 808 | | |
| 809 | + | |
808 | 810 | | |
809 | | - | |
| 811 | + | |
810 | 812 | | |
811 | 813 | | |
812 | 814 | | |
| |||
861 | 863 | | |
862 | 864 | | |
863 | 865 | | |
864 | | - | |
| 866 | + | |
865 | 867 | | |
866 | 868 | | |
867 | 869 | | |
| |||
1537 | 1539 | | |
1538 | 1540 | | |
1539 | 1541 | | |
| 1542 | + | |
1540 | 1543 | | |
1541 | | - | |
| 1544 | + | |
1542 | 1545 | | |
1543 | 1546 | | |
1544 | 1547 | | |
1545 | 1548 | | |
1546 | | - | |
| 1549 | + | |
1547 | 1550 | | |
1548 | 1551 | | |
1549 | 1552 | | |
1550 | 1553 | | |
1551 | 1554 | | |
1552 | | - | |
| 1555 | + | |
1553 | 1556 | | |
1554 | 1557 | | |
1555 | 1558 | | |
1556 | 1559 | | |
1557 | 1560 | | |
1558 | 1561 | | |
1559 | 1562 | | |
1560 | | - | |
| 1563 | + | |
1561 | 1564 | | |
1562 | 1565 | | |
1563 | 1566 | | |
1564 | 1567 | | |
1565 | | - | |
| 1568 | + | |
1566 | 1569 | | |
1567 | 1570 | | |
1568 | 1571 | | |
| |||
1610 | 1613 | | |
1611 | 1614 | | |
1612 | 1615 | | |
1613 | | - | |
| 1616 | + | |
1614 | 1617 | | |
1615 | 1618 | | |
1616 | 1619 | | |
| |||
1635 | 1638 | | |
1636 | 1639 | | |
1637 | 1640 | | |
| 1641 | + | |
1638 | 1642 | | |
1639 | | - | |
| 1643 | + | |
1640 | 1644 | | |
1641 | 1645 | | |
1642 | | - | |
| 1646 | + | |
1643 | 1647 | | |
1644 | 1648 | | |
1645 | 1649 | | |
1646 | 1650 | | |
1647 | 1651 | | |
1648 | | - | |
| 1652 | + | |
1649 | 1653 | | |
1650 | 1654 | | |
1651 | 1655 | | |
1652 | 1656 | | |
1653 | 1657 | | |
1654 | 1658 | | |
| 1659 | + | |
1655 | 1660 | | |
1656 | 1661 | | |
1657 | 1662 | | |
1658 | 1663 | | |
1659 | 1664 | | |
1660 | 1665 | | |
1661 | 1666 | | |
1662 | | - | |
| 1667 | + | |
1663 | 1668 | | |
1664 | 1669 | | |
1665 | | - | |
| 1670 | + | |
1666 | 1671 | | |
1667 | 1672 | | |
1668 | 1673 | | |
| |||
1674 | 1679 | | |
1675 | 1680 | | |
1676 | 1681 | | |
1677 | | - | |
| 1682 | + | |
1678 | 1683 | | |
1679 | 1684 | | |
1680 | 1685 | | |
| |||
1757 | 1762 | | |
1758 | 1763 | | |
1759 | 1764 | | |
| 1765 | + | |
1760 | 1766 | | |
1761 | 1767 | | |
1762 | 1768 | | |
| |||
1767 | 1773 | | |
1768 | 1774 | | |
1769 | 1775 | | |
| 1776 | + | |
1770 | 1777 | | |
1771 | 1778 | | |
1772 | 1779 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1570 | 1570 | | |
1571 | 1571 | | |
1572 | 1572 | | |
| 1573 | + | |
1573 | 1574 | | |
1574 | 1575 | | |
1575 | 1576 | | |
1576 | 1577 | | |
1577 | | - | |
| 1578 | + | |
1578 | 1579 | | |
1579 | 1580 | | |
1580 | 1581 | | |
| |||
1606 | 1607 | | |
1607 | 1608 | | |
1608 | 1609 | | |
1609 | | - | |
| 1610 | + | |
1610 | 1611 | | |
1611 | 1612 | | |
1612 | 1613 | | |
1613 | 1614 | | |
1614 | 1615 | | |
1615 | 1616 | | |
1616 | 1617 | | |
| 1618 | + | |
1617 | 1619 | | |
1618 | 1620 | | |
1619 | 1621 | | |
1620 | 1622 | | |
1621 | 1623 | | |
1622 | 1624 | | |
1623 | | - | |
| 1625 | + | |
1624 | 1626 | | |
1625 | 1627 | | |
1626 | 1628 | | |
| |||
1647 | 1649 | | |
1648 | 1650 | | |
1649 | 1651 | | |
1650 | | - | |
| 1652 | + | |
1651 | 1653 | | |
1652 | 1654 | | |
1653 | 1655 | | |
1654 | 1656 | | |
1655 | 1657 | | |
1656 | 1658 | | |
1657 | 1659 | | |
| 1660 | + | |
1658 | 1661 | | |
1659 | 1662 | | |
1660 | 1663 | | |
1661 | 1664 | | |
1662 | | - | |
| 1665 | + | |
1663 | 1666 | | |
1664 | 1667 | | |
1665 | 1668 | | |
| |||
1684 | 1687 | | |
1685 | 1688 | | |
1686 | 1689 | | |
1687 | | - | |
| 1690 | + | |
1688 | 1691 | | |
1689 | 1692 | | |
1690 | 1693 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| 130 | + | |
130 | 131 | | |
131 | 132 | | |
132 | 133 | | |
133 | | - | |
| 134 | + | |
134 | 135 | | |
135 | 136 | | |
136 | 137 | | |
137 | 138 | | |
138 | | - | |
| 139 | + | |
139 | 140 | | |
140 | 141 | | |
141 | 142 | | |
142 | 143 | | |
143 | 144 | | |
| 145 | + | |
144 | 146 | | |
145 | 147 | | |
146 | | - | |
| 148 | + | |
147 | 149 | | |
148 | 150 | | |
149 | 151 | | |
150 | 152 | | |
151 | | - | |
| 153 | + | |
152 | 154 | | |
153 | 155 | | |
154 | 156 | | |
| |||
653 | 655 | | |
654 | 656 | | |
655 | 657 | | |
| 658 | + | |
656 | 659 | | |
657 | 660 | | |
658 | 661 | | |
| |||
664 | 667 | | |
665 | 668 | | |
666 | 669 | | |
667 | | - | |
| 670 | + | |
668 | 671 | | |
669 | 672 | | |
670 | 673 | | |
671 | 674 | | |
672 | | - | |
| 675 | + | |
673 | 676 | | |
674 | 677 | | |
675 | | - | |
| 678 | + | |
676 | 679 | | |
677 | 680 | | |
678 | 681 | | |
679 | | - | |
| 682 | + | |
680 | 683 | | |
681 | 684 | | |
682 | 685 | | |
| |||
764 | 767 | | |
765 | 768 | | |
766 | 769 | | |
| 770 | + | |
767 | 771 | | |
768 | 772 | | |
769 | | - | |
| 773 | + | |
770 | 774 | | |
771 | 775 | | |
772 | 776 | | |
773 | 777 | | |
774 | | - | |
| 778 | + | |
775 | 779 | | |
776 | 780 | | |
777 | 781 | | |
| |||
815 | 819 | | |
816 | 820 | | |
817 | 821 | | |
| 822 | + | |
818 | 823 | | |
819 | 824 | | |
820 | 825 | | |
821 | 826 | | |
822 | 827 | | |
823 | | - | |
| 828 | + | |
824 | 829 | | |
825 | 830 | | |
826 | 831 | | |
| |||
848 | 853 | | |
849 | 854 | | |
850 | 855 | | |
851 | | - | |
| 856 | + | |
852 | 857 | | |
853 | 858 | | |
854 | 859 | | |
855 | 860 | | |
| 861 | + | |
856 | 862 | | |
857 | 863 | | |
858 | | - | |
| 864 | + | |
859 | 865 | | |
860 | 866 | | |
861 | 867 | | |
| |||
876 | 882 | | |
877 | 883 | | |
878 | 884 | | |
879 | | - | |
| 885 | + | |
880 | 886 | | |
881 | 887 | | |
882 | 888 | | |
| |||
906 | 912 | | |
907 | 913 | | |
908 | 914 | | |
909 | | - | |
| 915 | + | |
910 | 916 | | |
911 | 917 | | |
912 | 918 | | |
| |||
925 | 931 | | |
926 | 932 | | |
927 | 933 | | |
| 934 | + | |
928 | 935 | | |
929 | | - | |
| 936 | + | |
930 | 937 | | |
931 | 938 | | |
932 | 939 | | |
933 | 940 | | |
934 | 941 | | |
935 | 942 | | |
936 | | - | |
| 943 | + | |
937 | 944 | | |
938 | 945 | | |
939 | 946 | | |
| |||
983 | 990 | | |
984 | 991 | | |
985 | 992 | | |
986 | | - | |
| 993 | + | |
987 | 994 | | |
988 | 995 | | |
989 | 996 | | |
| |||
0 commit comments