Commit 63b81c8
stm32xx-i2c: remove I2cControl function table (#2121)
It turns out that, in practice, we only ever provide a single function
for each of `wfi` and `enable` here. This makes the table itself an
unnecessary level of indirection, which has some deleterious effects:
- It opens the possibility for _different_ I2cControl structs containing
_different_ function pointers to be passed to each call, complicating
analysis. (Searching for this phenomenon was what led me to notice that
we only ever use one implementation.)
- It makes it a lot harder to recognize use of syscalls (or misuse of
syscalls) in the I2C layer.
- It routes important parts of the I2C stack through indirect function
calls, defeating stack analysis.
- It adds a bunch of code that isn't really necessary, as it turns out.
This commit removes the dispatch table, inlining the existing functions
into their callsites (and introducing a utility function for the wfi
behavior).
---------
Co-authored-by: Matt Keeter <[email protected]>1 parent 7584e1d commit 63b81c8
File tree
7 files changed
+63
-107
lines changed- drv
- stm32xx-i2c-server/src
- stm32xx-i2c/src
7 files changed
+63
-107
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
99 | 98 | | |
100 | 99 | | |
101 | 100 | | |
| |||
127 | 126 | | |
128 | 127 | | |
129 | 128 | | |
130 | | - | |
| 129 | + | |
131 | 130 | | |
132 | 131 | | |
133 | 132 | | |
| |||
157 | 156 | | |
158 | 157 | | |
159 | 158 | | |
160 | | - | |
| 159 | + | |
161 | 160 | | |
162 | 161 | | |
163 | 162 | | |
| |||
201 | 200 | | |
202 | 201 | | |
203 | 202 | | |
204 | | - | |
| 203 | + | |
205 | 204 | | |
206 | 205 | | |
207 | 206 | | |
| |||
378 | 377 | | |
379 | 378 | | |
380 | 379 | | |
381 | | - | |
382 | | - | |
383 | | - | |
384 | | - | |
385 | | - | |
386 | | - | |
387 | | - | |
388 | | - | |
389 | | - | |
390 | | - | |
391 | | - | |
392 | | - | |
393 | | - | |
394 | | - | |
395 | | - | |
396 | | - | |
397 | | - | |
398 | | - | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
403 | | - | |
404 | | - | |
405 | | - | |
406 | | - | |
407 | | - | |
408 | | - | |
409 | | - | |
410 | | - | |
411 | | - | |
412 | | - | |
413 | | - | |
414 | | - | |
| 380 | + | |
415 | 381 | | |
416 | 382 | | |
417 | 383 | | |
| |||
438 | 404 | | |
439 | 405 | | |
440 | 406 | | |
441 | | - | |
442 | | - | |
443 | | - | |
444 | | - | |
445 | | - | |
446 | | - | |
447 | | - | |
448 | | - | |
| 407 | + | |
| 408 | + | |
449 | 409 | | |
450 | 410 | | |
451 | 411 | | |
| |||
511 | 471 | | |
512 | 472 | | |
513 | 473 | | |
514 | | - | |
515 | 474 | | |
516 | 475 | | |
517 | 476 | | |
| |||
775 | 734 | | |
776 | 735 | | |
777 | 736 | | |
778 | | - | |
779 | 737 | | |
780 | 738 | | |
781 | 739 | | |
| |||
788 | 746 | | |
789 | 747 | | |
790 | 748 | | |
791 | | - | |
| 749 | + | |
792 | 750 | | |
793 | 751 | | |
794 | 752 | | |
| |||
815 | 773 | | |
816 | 774 | | |
817 | 775 | | |
818 | | - | |
| 776 | + | |
819 | 777 | | |
820 | 778 | | |
821 | 779 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | 79 | | |
91 | 80 | | |
92 | 81 | | |
| |||
109 | 98 | | |
110 | 99 | | |
111 | 100 | | |
112 | | - | |
113 | 101 | | |
114 | 102 | | |
115 | 103 | | |
| |||
126 | 114 | | |
127 | 115 | | |
128 | 116 | | |
129 | | - | |
130 | 117 | | |
131 | 118 | | |
132 | 119 | | |
| |||
503 | 490 | | |
504 | 491 | | |
505 | 492 | | |
506 | | - | |
| 493 | + | |
| 494 | + | |
507 | 495 | | |
508 | | - | |
| 496 | + | |
509 | 497 | | |
510 | | - | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
511 | 501 | | |
512 | 502 | | |
513 | 503 | | |
514 | | - | |
| 504 | + | |
515 | 505 | | |
516 | 506 | | |
517 | 507 | | |
| |||
607 | 597 | | |
608 | 598 | | |
609 | 599 | | |
610 | | - | |
611 | 600 | | |
612 | 601 | | |
613 | 602 | | |
| |||
652 | 641 | | |
653 | 642 | | |
654 | 643 | | |
655 | | - | |
656 | | - | |
| 644 | + | |
| 645 | + | |
657 | 646 | | |
658 | 647 | | |
659 | 648 | | |
| |||
682 | 671 | | |
683 | 672 | | |
684 | 673 | | |
685 | | - | |
686 | | - | |
| 674 | + | |
| 675 | + | |
687 | 676 | | |
688 | 677 | | |
689 | 678 | | |
| |||
730 | 719 | | |
731 | 720 | | |
732 | 721 | | |
733 | | - | |
734 | | - | |
| 722 | + | |
| 723 | + | |
735 | 724 | | |
736 | 725 | | |
737 | 726 | | |
| |||
785 | 774 | | |
786 | 775 | | |
787 | 776 | | |
788 | | - | |
789 | | - | |
| 777 | + | |
| 778 | + | |
790 | 779 | | |
791 | 780 | | |
792 | 781 | | |
| |||
820 | 809 | | |
821 | 810 | | |
822 | 811 | | |
823 | | - | |
824 | 812 | | |
825 | 813 | | |
826 | 814 | | |
| |||
864 | 852 | | |
865 | 853 | | |
866 | 854 | | |
867 | | - | |
868 | | - | |
| 855 | + | |
| 856 | + | |
869 | 857 | | |
870 | 858 | | |
871 | 859 | | |
| |||
1191 | 1179 | | |
1192 | 1180 | | |
1193 | 1181 | | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
91 | | - | |
92 | 91 | | |
93 | 92 | | |
94 | 93 | | |
| |||
102 | 101 | | |
103 | 102 | | |
104 | 103 | | |
105 | | - | |
106 | 104 | | |
107 | 105 | | |
108 | 106 | | |
| |||
115 | 113 | | |
116 | 114 | | |
117 | 115 | | |
118 | | - | |
119 | 116 | | |
120 | 117 | | |
121 | 118 | | |
122 | 119 | | |
123 | 120 | | |
124 | 121 | | |
125 | 122 | | |
126 | | - | |
127 | 123 | | |
128 | 124 | | |
129 | 125 | | |
| |||
136 | 132 | | |
137 | 133 | | |
138 | 134 | | |
139 | | - | |
140 | 135 | | |
141 | 136 | | |
142 | 137 | | |
| |||
146 | 141 | | |
147 | 142 | | |
148 | 143 | | |
149 | | - | |
150 | 144 | | |
151 | 145 | | |
152 | 146 | | |
| |||
170 | 164 | | |
171 | 165 | | |
172 | 166 | | |
173 | | - | |
174 | | - | |
| 167 | + | |
| 168 | + | |
175 | 169 | | |
176 | 170 | | |
177 | 171 | | |
| |||
0 commit comments